Spaces:
Build error
Build error
# Database Module Documentation | |
The `database` module provides classes for managing database documents and data in the ShortGPT application. The module consists of three files: | |
- `content_data_manager.py`: Defines the `ContentDataManager` class, which manages the content data for a document in the database. | |
- `content_database.py`: Defines the `ContentDatabase` class, which provides methods for creating and accessing `ContentDataManager` instances. | |
- `db_document.py`: Defines the `DatabaseDocument` abstract base class and the `TinyMongoDocument` class, which represents a document in a TinyMongo database. | |
## File: content_data_manager.py | |
The `content_data_manager.py` file contains the `ContentDataManager` class, which is responsible for managing the content data for a document in the database. | |
### Class: ContentDataManager | |
#### `__init__(self, db_doc: DatabaseDocument, content_type: str, new=False)` | |
- Initializes a new instance of the `ContentDataManager` class. | |
- Parameters: | |
- `db_doc`: The `DatabaseDocument` instance representing the document in the database. | |
- `content_type`: The type of content to be managed by the `ContentDataManager`. | |
- `new`: (Optional) A boolean flag indicating whether the document is new or existing. Default is `False`. | |
#### `save(self, key, value)` | |
- Saves the specified key-value pair to the document. | |
- Parameters: | |
- `key`: The key of the data to be saved. | |
- `value`: The value of the data to be saved. | |
#### `get(self, key)` | |
- Retrieves the value associated with the specified key from the document. | |
- Parameters: | |
- `key`: The key of the data to be retrieved. | |
- Returns: | |
- The value associated with the specified key. | |
#### `_getId(self)` | |
- Retrieves the ID of the document. | |
- Returns: | |
- The ID of the document. | |
#### `delete(self)` | |
- Deletes the document from the database. | |
#### `__str__(self)` | |
- Returns a string representation of the document. | |
## File: content_database.py | |
The `content_database.py` file contains the `ContentDatabase` class, which provides methods for creating and accessing `ContentDataManager` instances. | |
### Class: ContentDatabase | |
#### `instanciateContentDataManager(self, id: str, content_type: str, new=False)` | |
- Creates a new `ContentDataManager` instance for the specified document ID and content type. | |
- Parameters: | |
- `id`: The ID of the document. | |
- `content_type`: The type of content to be managed by the `ContentDataManager`. | |
- `new`: (Optional) A boolean flag indicating whether the document is new or existing. Default is `False`. | |
- Returns: | |
- A new `ContentDataManager` instance. | |
#### `getContentDataManager(self, id, content_type: str)` | |
- Retrieves an existing `ContentDataManager` instance for the specified document ID and content type. | |
- Parameters: | |
- `id`: The ID of the document. | |
- `content_type`: The type of content to be managed by the `ContentDataManager`. | |
- Returns: | |
- The existing `ContentDataManager` instance, or `None` if not found. | |
#### `createContentDataManager(self, content_type: str) -> ContentDataManager` | |
- Creates a new `ContentDataManager` instance for a new document with the specified content type. | |
- Parameters: | |
- `content_type`: The type of content to be managed by the `ContentDataManager`. | |
- Returns: | |
- A new `ContentDataManager` instance. | |
## File: db_document.py | |
The `db_document.py` file contains the `DatabaseDocument` abstract base class and the `TinyMongoDocument` class, which represents a document in a TinyMongo database. | |
### Abstract Class: DatabaseDocument | |
- An abstract base class that defines the interface for a database document. | |
- Subclasses must implement the abstract methods: | |
- `_save(self, key, data)` | |
- `_get(self, key)` | |
- `_getId(self)` | |
- `__str__(self)` | |
- `_delete(self)` | |
### Class: TinyMongoDocument | |
- Represents a document in a TinyMongo database. | |
- Inherits from the `DatabaseDocument` abstract base class. | |
#### `__init__(self, db_name: str, collection_name: str, document_id: str, create=False)` | |
- Initializes a new instance of the `TinyMongoDocument` class. | |
- Parameters: | |
- `db_name`: The name of the database. | |
- `collection_name`: The name of the collection. | |
- `document_id`: The ID of the document. | |
- `create`: (Optional) A boolean flag indicating whether to create the document if it doesn't exist. Default is `False`. | |
#### `exists(self)` | |
- Checks if the document exists in the database. | |
- Returns: | |
- `True` if the document exists, `False` otherwise. | |
#### `_save(self, data)` | |
- Saves the specified data to the document. | |
- Parameters: | |
- `data`: The data to be saved. | |
#### `_get(self, key=None)` | |
- Retrieves the value associated with the specified key from the document. | |
- Parameters: | |
- `key`: (Optional) The key of the data to be retrieved. If not specified, returns the entire document. | |
- Returns: | |
- The value associated with the specified key, or the entire document if no key is specified. | |
#### `_delete(self, key)` | |
- Deletes the specified key from the document. | |
- Parameters: | |
- `key`: The key to be deleted. | |
#### `_getId(self)` | |
- Retrieves the ID of the document. | |
- Returns: | |
- The ID of the document. | |
#### `__str__(self)` | |
- Returns a string representation of the document. |