SQL Backend

SQL Settings

class progress_updater.backends.sql.SQLSettings(*, sql_dsn: str, sql_table: str = 'progress_updater_logs', sql_extras: Dict = None)

SQL Settings. Returns a SQLLog class and set SQL backend settings

Usage:

>>> from progress_updater.backends import SQLSettings
>>>
>>> settings = SQLSettings(
>>>     sql_dsn="postgresql+psycopg2://user:pass@postgres:5432/db"
>>> )
>>> SQLLog = SQLSettings.backend()  # type: Type[SQLLog]
>>> log = SQLLog(task_name="My task", description="A cool task")
>>> log.save()

SQL Log

class progress_updater.backends.sql.SQLLog(*, uuid: UUID = None, task_name: str, status: str = 'PENDING', log: str = '', description: str = None, start_time: datetime = None, end_time: datetime = None, created: datetime = None, updated: datetime = None)

SQLLog class. Defines the Log for SQL Backend

Usage:

>>> from progress_updater.backends import SQLSettings
>>>
>>> settings = SQLSettings(
>>>     sql_dsn="postgresql+psycopg2://user:pass@postgres:5432/db"
>>> )
>>> SQLLog = SQLSettings.backend()  # type: Type[SQLLog]
>>> log = SQLLog(task_name="My task", description="A cool task")
>>> log.save()
>>>
>>> assert log.dict() == {"task_name": "My task", ...}
>>> assert log.json() == '{"task_name": "My task", ...}'
>>>
>>> log = SQLLog.get(uuid=UUID("<your-uuid>"))
>>> assert log.description == "A cool task"
>>>
>>> assert log.delete() == 1
delete() int

Deletes object in DataBase

Usage:

>>> ...
>>> assert log.delete() == 1  # count deleted 1
>>> assert log.delete() == 0  # count deleted 0
>>> ...
classmethod get(uuid: UUID) Optional[SQLLog]

Get object from DataBase

Usage:

>>> ...
>>> log = SQLLog.get(uuid=UUID("<your-uuid>"))
>>> assert log.uuid == UUID("<your-uuid>")
>>>
save() SQLLog

Updates/Creates object in DataBase

Usage:

>>> ...
>>> log = SQLLog(task_name="My Task")
>>> log.save()
>>> log.description = "A new description"
>>> log.save()
>>> ...