File size: 1,195 Bytes
d5e187b
 
6c9722e
 
4f6ee5b
 
 
 
 
6c9722e
 
d5e187b
6c9722e
 
 
4f6ee5b
6c9722e
 
4f6ee5b
6c9722e
 
 
4f6ee5b
6c9722e
 
4f6ee5b
6c9722e
 
 
 
4f6ee5b
6c9722e
 
4f6ee5b
6c9722e
 
 
4f6ee5b
6c9722e
 
 
4f6ee5b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

from dataclasses import dataclass, field
import logging

setup_logging = __import__('logging_config').setup_logging
setup_logging()

logger = logging.getLogger('entities')

@dataclass
class Entity:
    data: dict = field(default_factory=dict)

    def create(self, key: str, value: any):
        if not isinstance(key, str) or value is None:
            logger.error('Invalid key or value')
            return
        self.data[key] = value
        logger.info(f"Create: {key} = {value}")

    def read(self, key: str):
        if not isinstance(key, str):
            logger.error('Invalid key')
            return
        value = self.data.get(key)
        logger.info(f"Read: {key} = {value}")
        return value

    def update(self, key: str, value: any):
        if not isinstance(key, str) or value is None:
            logger.error('Invalid key or value')
            return
        self.data[key] = value
        logger.info(f"Update: {key} = {value}")

    def delete(self, key: str):
        if not isinstance(key, str):
            logger.error('Invalid key')
            return
        if key in self.data:
            del self.data[key]
            logger.info(f"Delete: {key}")