kaiju_files.converters module¶
- class ErrorCodes[source]¶
Bases:
object- NO_CONVERTER_CLASS_FOUND = 'NO_CONVERTER_CLASS_FOUND'¶
- INVALID_CONVERTER_SETTINGS = 'INVALID_CONVERTER_SETTINGS'¶
- class FileConverterService[source]¶
Bases:
SQLService,AbstractRPCCompatibleFile converters storage and execution.
You can use it for image and other data types conversion.
First if you need a specific converter class you should inherit it from AbstractFileConverter interface and register it in converters class registry.
from kaiju_files.abc import AbstractFileConverter from kaiju_files.converters import converters class MyConverterClass(AbstractFileConverter): ... converters.register_class(MyConverterClass)
From now you can use it in you converter service. It’s best to init this service within a service context manager but you can init it directly by providing instances of a database service and a file service. Then you can save your converter settings and convert files using your converter.
my_converter_settings = {...} async with FileConverterService(...) as fcs: row = {'cls': 'MyConverterClass', 'name': 'my converter', 'settings': my_converter_settings} row = await fcs.create(row) versions_info = await fsc.convert(row['id'], my_file_id)
- service_name = 'FileConverter'¶
you may define a custom service name here
- MAX_PROCESSING_TIME = 300¶
- update_columns = {'settings', 'system'}¶
you may specify columns for update here
- __init__(app, database_service, file_service=False, converters=<kaiju_files.converters.FileConvertersRegistry object>, max_processing_time=300, logger=None)[source]¶
Initialize.
- Parameters:
app –
database_service (DatabaseService) –
file_service (FileService) –
converters – converters registry (uses default registry)
max_processing_time – conversion time limit (sec)
logger –
- async get_converter_class_specs(cls=None)[source]¶
Return a list of registered converter classes specification.
- Parameters:
cls (str | None) –
- async convert(id, file_id, settings=None, metadata=None, **__)[source]¶
Convert a file.
- Parameters:
id – converter ID
file_id – file to convert
settings (dict | None) – additional converter settings
metadata (dict | None) – additional metadata
- Returns:
- Return type:
_ConvertedFileInfo
- prepare_insert_data(data)[source]¶
Define your custom row init logic here.
- Parameters:
data (dict) –
- Return type:
dict