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.