wiydarrr's picture
Upload folder using huggingface_hub
5f685fd verified
|
raw
history blame
5.23 kB
# 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.