Class Studio

class edit_db.studio

Базовый класс для всех остальных классов.

Создание экземпляра обязательно, прежде всего.

CACHE = '.lineyka_cache'

Имя директории для хранения кеш файлов.

Type:str
COLOR_STATUS = {'checking': (1, 0.5872552395, 0.2531645298), 'close': (0.613, 0.373, 0.195), 'done': (0.175, 0.752, 0.113), 'null': (0.451000005, 0.451000005, 0.451000005), 'pause': (0.67, 0.539, 0.827), 'ready': (0.826, 0.249, 1), 'ready_to_send': (0.9367088675, 0.2608556151, 0.4905878305), 'recast': (0.8481012583, 0.1967110634, 0.1502964497), 'work': (0.520749867, 0.7143493295, 0.8227847815), 'work_to_outsorce': (0.2161512673, 0.5213058591, 0.8987341523)}

ключ - название статуса задачи, значение - соответствующий ему rgb (0 - 1)

Type:dict
COOKIE_NAME = '.cookie'

Наименование файла куки.

Type:str
EMPTY_FILES_DIR_NAME = 'empty_files'

имя директории для хранения пользовательских заготовок файлов, для тех приложений, которые не могут создавать пустой файл при открытии по несуществующему пути.

Создаётся в edit_db.studio.make_init_file()

Расположение в директории: ~/.lineyka/

Type:str
END_STATUSES = ('done', 'close')

Статусы задач завершённого состояния.

Type:tuple
EXTENSIONS = ['.blend', '.ma', '.tiff', '.ntp']

Список возможных расширений для рабочих файлов, которым будет сопоставляться приложение.

Заполняется в edit_db.studio.get_studio()

Примечание

Возможно совершенно бесполезный атрибут, так как эти значения есть edit_db.studio.SETTING_DATA [„extension“].keys()

Type:list
FARME_OFFSET = 100

Номер кадра, который будет считаться стартовым для сцен анимации.

Type:int
HOST = 'http://localhost:8000/'

интернет адрес облака.

Type:str
INIT_FILE = 'lineyka_init.json'

Имя json файла конфигурации. Содержит пути.

Создаётся в edit_db.studio.make_init_file()

Расположение в ~/edit_db.studio.INIT_FOLDER/

Type:str
INIT_FOLDER = '.lineyka'

Имя домашней директории линейки с файлами пользовательской конфигурации. Расположение в ~/

Type:str
LOOK_EXTENSION = '.jpg'

расширение файла изображения, которое используется в просмотре.

Type:str
MANAGER_LEVELS = ('manager', 'root')

Список пользовательских уровней, обладающих функцией менеджера.

Type:tuple
MULTI_PUBLISH_TASK_TYPES = ('sketch',)

Список задач, для которых возможен паблиш всех существующих веток, подробнее тут Branches и тут Commit Pull Push Publish.

Type:tuple
PREVIEW_EXTENSION = '.png'

расширение файла изображения, которое используется при создании превью изображения.

Type:str
PROJECTS_STATUSES = ('active', 'none')

Список возможных статусов для проектов.

Type:tuple
PROJECTS_UNITS = ('m', 'cm', 'mm')

Список возможных размерностей юнита 3d сцен.

Type:tuple
PROJECT_SETTING = '.project_setting.json'

имя json файла c параметрами проекта, дублируются из базы данных. Применяются к проекту при его повторном добавлении в студию.

Type:str
PUBLISH_FOLDER_NAME = 'publish'

имя паблиш директории

Type:str
SETTING_DATA = {'extension': {'.blend': 'blender', '.ma': 'maya', '.ntp': 'natron', '.ods': 'libreoffice', '.tiff': 'krita'}, 'task_visible_fields': ['activity', 'task_type', 'artist', 'priority', 'extension']}

словарь пользовательский настроек. Хранится в json файле edit_db.studio.set_file

Значения по ключам:
 
  • extension (dict): ключи - расширения файлов, значения - приложение которое им соответствует (имя экзешника или путь к нему).
  • task_visible_fields (list): список полей, отображаемых в ячейке задачи таблицы таск менеджера.

Примечание

А возможно наоборот превратить этот словарь в два атрибута, соответсвующих его ключам.

Type:dict
SOFT_DATA = None

?

STUDIO_SETTINGS_FILE = 'settings.py'

Файл студийных настроек, хранится в директории студии.

Type:str
USER_DATA_FILE_NAME = '.user_data.json'

Наименование текстового файла гдехранятся данные текущего пользователя (для облака).

Type:str
USER_LEVELS = ('user', 'extend_user', 'manager', 'root')

Список существующих пользователей

Примечание

Возможно стоит добавить superroot - который будет всего один, когда root`ов может быть сколько угодно.

Type:tuple
WORKING_STATUSES = ('ready', 'ready_to_send', 'work', 'work_to_outsorce', 'pause', 'recast')

Список статусов задач, не выполненного состояния.

Примечание

Возможно тупость, достаточно просто проверять, находится ли статуc в edit_db.studio.END_STATUSES

Type:tuple
_template_get_publish_path(c_task, version=False, branches=[], look=False)

Получение шаблонных путей для publish версий на сервере студии.

Примечание

Если не передавать version - то будет получен путь к файлам, которые располагаются сверху директорий версий - это файлы последней версии.

Examples

>> import edit_db as db
>> ...
>> # получаем объект текущей задачи current_task
>> ...
>> db._template_get_publish_path(current_task, version=25, branches=['master', 'branch1'], look=True)
>> (True, {'master' : 'path_to_project/assets/asset_name/publish/activity_name/'0025'/asset_name#master.LOOK_EXTENSION',
           'branch1' : 'path_to_project/assets/asset_name/publish/activity_name/'0025'/asset_name#branch1.LOOK_EXTENSION'})
>> db._template_get_publish_path(current_task, version=25)
>> (True, 'path_to_project/assets/asset_name/publish/activity_name/'0025'/asset_name.ext')
>> # Путь до финальной версии (для не скетч)
>> db._template_get_publish_path(current_task)
>> (True, 'path_to_project/assets/asset_name/publish/activity_name/asset_name.ext')
>> # Путь до финальной версии (для скетч)
>> db._template_get_publish_path(current_task, branches=['master', 'branch1'])
>> (True, {'master' : 'path_to_project/assets/asset_name/publish/activity_name/asset_name#master.ext',
           'branch1' : 'path_to_project/assets/asset_name/publish/activity_name/asset_name#branch1.ext'})
Параметры:
  • c_task (edit_db.task) – Объект задачи, для которой ищется файл.
  • version (int, str, optional) – Версия, число или строковое представление, если False - то путь до финальной версии, которая сверху версий (в паблиш/активити).
  • branches (list, optional) – Список веток из которых делался push или publish (в случае репаблиша) - для task_type из списка edit_db.studio.MULTI_PUBLISH_TASK_TYPES (например „sketch“).
  • look (bool, optional) – Рассматривается только если task_type из списка edit_db.studio.MULTI_PUBLISH_TASK_TYPES (например „sketch“), если False - то используется c_task.extension, если True - то используется edit_db.studio.LOOK_EXTENSION.
Результат:

  • (True, path) или (False, comment)
  • (True, {branch_name : path1, …}) или (False, comment) - для task_type из списка edit_db.studio.MULTI_PUBLISH_TASK_TYPES (например „sketch“)

Тип результата:

tuple

_template_get_push_path(c_task, version=False, branches=False, look=False)

Шаблонный путь к файлу или активити push версии на сервере студии.

Examples

>> import edit_db as db
>> ...
>> # получаем объект текущей задачи current_task
>> ...
>> db._template_get_push_path(current_task, version=25, branches=['master', 'branch1'], look=True)
>> (True, {'master' : 'path_to_project/assets/asset_name/activity_name/'0025'/asset_name#master.LOOK_EXTENSION',
           'branch1' : 'path_to_project/assets/asset_name/activity_name/'0025'/asset_name#branch1.LOOK_EXTENSION'})
>> db._template_get_push_path(current_task, version=25)
>> (True, 'path_to_project/assets/asset_name/activity_name/'0025'/asset_name.ext')
>> db._template_get_push_path(current_task)
>> (True, 'path_to_project/assets/asset_name/activity_name/')
Параметры:
  • c_task (edit_db.task) – Объект задачи, для которой ищется файл.
  • version (int, str, optional) – Версия, число или строковое представление, если False - то возврат только пути до активити.
  • branches (list, optional) – Список веток из которых делался push - для task_type из списка edit_db.studio.MULTI_PUBLISH_TASK_TYPES (например „sketch“).
  • look (bool, optional) – Рассматривается только если task_type из списка edit_db.studio.MULTI_PUBLISH_TASK_TYPES (например „sketch“), если False - то используется c_task.extension, если True - то используется edit_db.studio.LOOK_EXTENSION.
Результат:

  • (True, path) или (False, comment)
  • (True, {branch_name : path1, …}) или (False, comment) - для task_type из списка edit_db.studio.MULTI_PUBLISH_TASK_TYPES (например „sketch“)

Тип результата:

tuple

_template_get_work_path(c_task, version=False)

Шаблонный путь к файлу или активити в рабочей директории пользователя (edit_db.studio.work_folder).

Examples

>> import edit_db as db
>> ...
>> # получаем объект текущей задачи current_task
>> ...
>> db._template_get_work_path(current_task, version=25)
>> (True, 'path_to_work_folder/project_folder_name/assets/asset_name/activity_name/'0025'/asset_name.ext')
>> db._template_get_work_path(current_task)
>> (True, 'path_to_work_folder/project_folder_name/assets/asset_name/activity_name/')
Параметры:
  • c_task (edit_db.task) – Объект задачи, для которой ищется файл.
  • version (int, str, optional) – Версия, число или строковое представление, если False - то возврат только пути до активити.
Результат:

(True, path) или (False, comment)

Тип результата:

tuple

_template_version_num(version)

Приобразование номера версии к строке нужного формата (от 4 симолов).

Examples

>> import edit_db as db
>> db.studio._template_version_num(5)
>> (True, '0005')
>> db.studio._template_version_num('25')
>> (True, '0025')
Параметры:version (str, int) – Номер или строковое представление номера.
Результат:(True, str_version) или (False, comment)
Тип результата:tuple
artists_db = '.artists.db'

Имя файла ДБ (для Sqlite3) где содержится таблица данных edit_db.artist

Type:str
artists_keys = {'checking_tasks': 'json', 'date_joined': 'timestamp', 'date_joined_to_studio': 'timestamp', 'email': 'text', 'first_name': 'text', 'last_name': 'text', 'level': 'text', 'outsource': 'integer', 'password': 'text', 'phone': 'text', 'profile': 'json', 'share_dir': 'text', 'specialty': 'text', 'status': 'text', 'user_name': 'text', 'username': 'text', 'working_tasks': 'json', 'workroom': 'json'}

Обозначение данных хранимых в БД для объектов edit_db.artist . Ключи - заголовки, значения - тип данных БД.

Type:dict
artists_logs_db = '.artists_logs.db'

Имя файла ДБ (для Sqlite3) где содержится таблица данных логов `артистов, edit_db.log.

Имя таблицы - „[username]_tasks_logs“

Type:str
artists_logs_keys = {'finish': 'timestamp', 'full_time': 'integer', 'price': 'real', 'project_name': 'text', 'start': 'timestamp', 'task_name': 'text'}

Обозначение данных хранимых в БД для лога артиста. Автоматическое заполнение при выполнении edit_db.task.commit(). Строка - задача. Ключи - заголовки, значения - тип данных БД. Спецификации - Commit Pull Push Publish и Time Logs

Type:dict
artists_t = 'artists'

Имя таблицы БД для edit_db.artist

Type:str
artists_time_logs_db = '.artists_time_logs.db'

Имя файла ДБ (для Sqlite3) где содержится таблица данных тайм логов `артистов, edit_db.log.

Имя таблицы - „[username]_time_logs“

Type:str
artists_time_logs_keys = {'date': 'timestamp', 'project_name': 'text', 'task_name': 'text', 'time': 'integer'}

Обозначение данных хранимых в БД для тайм лога артиста. Заполнение вручную по дням, для корректировки автозаполнения. Строка - задача/день. Ключи - заголовки, значения - тип данных БД. Спецификация Time Logs

Type:dict
asset_keys = {'content': 'text', 'description': 'text', 'group': 'text', 'id': 'text', 'loading_type': 'text', 'name': 'text', 'parent': 'json', 'priority': 'integer', 'season': 'text', 'status': 'text', 'type': 'text'}

Обозначение данных хранимых в БД для объектов edit_db.asset . Ключи - заголовки, значения - тип данных БД.

Type:dict
asset_types = ('object', 'location', 'shot_animation', 'film')

Список используемых типов ассетов.

Type:tuple
asset_types_with_season = ('animatic', 'shot_animation', 'camera', 'shot_render', 'shot_composition', 'film')

Список ассетов для которых имеет значение сезон.

Внимание

Совсем устаревшее, возможно надо полностью удалить.

Type:tuple
assets_db = '.assets.db'

Имя файла ДБ (для Sqlite3) где содержится таблица данных edit_db.asset. Имя таблицы - тип ассета.

Type:str
blend_service_images = {'bg_image_name': 'Lineyka_BG_Image', 'preview_img_name': 'Lineyka_Preview_Image'}

Имена служебных файлов графических изображений, которые не сохраняются в asset_folder/textures/ при выполнении процедуры Save Images в блендер аддоне.

Type:dict
cache_folder = False

Путь до директории кеш файлов tmp_folder/CACHE. Заполняется в edit_db.studio.get_studio()

Type:str
chats_db = '.chats.db'

Имя файла ДБ (для Sqlite3) где содержится таблица данных edit_db.chat

Type:str
chats_keys = {'author': 'text', 'color': 'json', 'date_time': 'timestamp', 'date_time_of_edit': 'timestamp', 'message_id': 'text', 'reading_status': 'json', 'status': 'text', 'topic': 'json'}

Обозначение данных хранимых в БД для объектов edit_db.chat . Ключи - заголовки, значения - тип данных БД.

Type:dict
convert_exe = False

Путь к исполняемому файлу convert приложения „Imagemagick“

Type:str
django_artists_keys = {'checking_tasks': 'json', 'date_joined': 'timestamp', 'date_joined_to_studio': 'timestamp', 'last_login': 'timestamp', 'working_tasks': 'json', 'workroom': 'json'}

Обозначение типа данных хранимых в django для конвертации в django_connect._input_data_converter() . Ключи - заголовки, значения - тип данных БД.

Type:dict
edit_extension(extension, action, new_extension=False)

Редактирование расширений (ключей) словаря соответсвия расширения файлов и приложений для них, в файле edit_db.studio.set_file

Параметры:
  • extension (str) – Изменяемое расширение файла (с точкой, например: „.obj“)
  • action (str) – Совершаемое действие. Действие из списка: [„ADD“, „REMOVE“, „EDIT“]
  • new_extension (str, optional) – Добавляемое расширение (с точкой, например: „.obj“) взамен существующего (первый параметр), для action = „EDIT“
Результат:

(True, „Ok!“) или (False, comment)

Тип результата:

tuple

edit_extension_dict(key, path)

Изменение словаря соответсвия расширения файлов и приложений для них, в файле edit_db.studio.set_file

Параметры:
  • key (str) – Расширение файла с точкой, например: „.obj“
  • path (str) – Путь до экзшника приложения или имя приложения (в зависимости от конфигурации), например „~/blender2.8/blender“ или „gimp“.
Результат:

(True, „Ok!“) или (False, comment)

Тип результата:

tuple

get_extension_dict()

Получение словаря соответсвия расширения файлов и приложений для них, из файла edit_db.studio.set_file.

Результат:(True, extension_dict) или (False, comment)
Тип результата:tuple
get_share_dir()

Пока не используется.

classmethod get_studio()

Заполнение атрибутов класса текущей студии. Которая определяется в edit_db.studio.set_studio().

Заполняемые атрибуты:

Результат:(True, [self.studio_folder, self.tmp_folder]) или (False, comment)
Тип результата:tuple
get_studios_list(studio_database='django')

Получение списка облачных студий пользователя (словари).

Параметры:studio_database (str) – Тип облака.
group_db = '.assets.db'

Имя файла ДБ (для Sqlite3) где содержится таблица данных edit_db.group

Type:str
group_keys = {'description': 'text', 'id': 'text', 'name': 'text', 'season': 'text', 'type': 'text'}

Обозначение данных хранимых в БД для объектов edit_db.group . Ключи - заголовки, значения - тип данных БД.

Type:dict
group_t = 'groups'

Имя таблицы БД для edit_db.group

Type:str
init_path = False

Путь до файла edit_db.INIT_FILE, поле заполняется при создании экземпляра edit_db.studio.

Type:str
list_of_assets_keys = ('asset_name', 'asset_type', 'set_of_tasks')

?

Type:tuple
list_of_assets_name = '.list_of_assets.json'

?

Type:str
loading_types = ('mesh', 'group', 'rig')

Типы загрузок ассетов в сцену.

Type:tuple
location_position_file = 'location_content_position.json'

?

Type:str
logs_db = '.tasks_logs.db'

Имя файла ДБ (для Sqlite3) где содержится таблица данных логов задачи/активити, edit_db.log.

Type:str
logs_keys = {'action': 'text', 'activity': 'text', 'artist': 'text', 'branch': 'json', 'date_time': 'timestamp', 'description': 'text', 'source': 'json', 'task_name': 'text', 'time': 'real', 'version': 'text'}

Обозначение данных хранимых в БД для лога задачи (на самом деле - лог активити ассета). Ключи - заголовки, значения - тип данных БД. Спецификация Time Logs

Type:dict
logs_t = 'logs'

Имя таблицы БД для лога задачи/активити

Type:str
classmethod make_init_file()

Создание при их отсутствии:

Расположение файлов ~/edit_db.studio.INIT_FOLDER/

Результат:None
Тип результата:None
meta_data_file = '.shot_meta_data.json'

Имя json файла с метадатой шота. Хранение в asset_folder/common/

Type:str
projects_db = '.projects.db'

Имя файла ДБ (для Sqlite3) где содержится таблица данных edit_db.project

Type:str
projects_keys = {'chat_img_path': 'text', 'fps': 'real', 'list_of_assets_path': 'text', 'name': 'text', 'path': 'text', 'preview_img_path': 'text', 'project_database': 'json', 'status': 'text', 'units': 'text'}

Обозначение данных хранимых в БД для объектов edit_db.project . Ключи - заголовки, значения - тип данных БД.

Type:dict
projects_t = 'projects'

Имя таблицы БД для edit_db.project

Type:str
recycle_bin_name = '-Recycle_Bin-'

Имя группы корзины удаляемых ассетов.

Type:str
season_db = '.assets.db'

Имя файла ДБ (для Sqlite3) где содержится таблица данных edit_db.season

Type:str
season_keys = {'id': 'text', 'name': 'text', 'status': 'text'}

Обозначение данных хранимых в БД для объектов edit_db.season . Ключи - заголовки, значения - тип данных БД.

Внимание

Устаревшее, так же как и класс, смотри Season Episode Sequence Shot.

Type:dict
season_t = 'season'

Имя таблицы БД для edit_db.season

Type:str
service_tasks = ('all', 'pre')

Префиксы сервисных задач.

Type:tuple
classmethod set_convert_exe_path(path)

Определение пути до исполняемого файла convert приложения ‘Imagemagick’, параметр edit_db.studio.convert_exe.

Параметры:path (str) – Путь до файла convert .
Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
set_file = 'user_setting.json'

Имя json файла конфигурации пользователя. Содержит словарь edit_db.studio.SETTING_DATA

Создаётся в edit_db.studio.make_init_file()

Расположение в ~/edit_db.studio.INIT_FOLDER/

Type:str
set_of_tasks_db = '.set_of_tasks.db'

Имя файла ДБ (для Sqlite3) где содержится таблица данных edit_db.set_of_tasks

Type:str
set_of_tasks_t = 'set_of_tasks'

Имя таблицы БД для edit_db.set_of_tasks

Type:str
set_path = False

?

Type:str
set_share_dir(path)

Пока не используется.

classmethod set_studio(path, cloud_studio=False)

Инициализация студийной директории.

  • Перезапись edit_db.studio.INIT_FILE (значение studio_folder).
  • Создание файловой структуры, при остуствии.
  • Создание директории студии (с именем <studio_name>_studio) в указанном каталоге path если передавать cloud_studio.
Параметры:
  • path (str) – Путь до новой директории студии.
  • cloud_studio (dict) – Словарь данных облачной студии. Если передаётся данный параметр, то в указанной директории будет создана директория студии с именем <studio_name>_studio и уже путь к данной директории будет указан в инит файле.
Результат:

(True, „Ok!“) или (False, comment)

Тип результата:

tuple

classmethod set_tmp_dir(path)

Определение пользовательской tmp директории - edit_db.studio.tmp_folder, в неё копируются открываемые сцены.

Параметры:path (str) – Путь до tmp директории.
Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
classmethod set_work_folder(path)

Установка директории для локального хранения ассетов пользователя, параметр edit_db.studio.work_folder.

Параметры:path (str) – Путь до директории.
Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
share_dir = False

?

Type:str
statistic_db = '.statistic.db'

Имя файла ДБ (для Sqlite3) где содержится таблица данных edit_db.statistic

Type:str
statistic_t = 'statistic'

Имя таблицы БД для edit_db.statistic

Type:str
statistics_keys = (('project_name', 'text'), ('task_name', 'text'), ('data_start', 'timestamp'), ('data_end', 'timestamp'), ('long_time', 'text'), ('cost', 'text'), ('status', 'text'))

(tuple) ?

studio_create(name, label, studio_database='django')

Создание облачной студии.

Параметры:
  • name (str) – Имя создаваемой студии, уникальное, используется в url, только латинские буквы и цифры. Транслитерация и перевод в нижний регистр будут сделаны автоматически.
  • label (str) – Лейбл создаваемой студии. То что будет использоваться в заголовках. Уникальность не требуется.
  • studio_database (str) – Тип облака.
Результат:

(True, comment) или (False, comment)

Тип результата:

tuple

studio_database = ['sqlite3', False]

Определение используемой в студии базы данных.

Type:list
studio_folder = False

Директория студии.

Type:str
studio_label = False

Подпись облачной студии. Не уникальное.

Type:str
studio_name = False

Имя облачной студии. Уникальное, используется в адресной строке.

Type:str
task_status = ('null', 'ready', 'ready_to_send', 'work', 'work_to_outsorce', 'pause', 'recast', 'checking', 'done', 'close')

список существующих статусов задач.

Type:tuple
task_types = ('animatic', 'film', 'sketch', 'textures', 'sculpt', 'model', 'rig', 'test_animation', 'specification', 'location', 'animation_shot', 'tech_anim', 'simulation_din', 'render', 'composition')

Список используемых типов задач.

Внимание

Надо дублировать в django.edit_db.forms.

Type:tuple
tasks_db = '.tasks.db'

Имя файла ДБ (для Sqlite3) где содержится таблица данных edit_db.task

Type:str
tasks_keys = {'activity': 'text', 'artist': 'text', 'chat_local': 'json', 'deadline': 'timestamp', 'description': 'text', 'end': 'timestamp', 'extension': 'text', 'full_time': 'real', 'input': 'json', 'level': 'text', 'output': 'json', 'outsource': 'integer', 'planned_time': 'real', 'price': 'real', 'priority': 'integer', 'readers': 'json', 'source': 'json', 'specification': 'text', 'start': 'timestamp', 'status': 'text', 'supervisor': 'text', 'task_name': 'text', 'task_type': 'text', 'time': 'json', 'web_chat': 'text'}

Обозначение данных хранимых в БД для объектов edit_db.task . Ключи - заголовки, значения - тип данных БД.

Type:dict
tasks_t = 'tasks'

Имя таблицы БД для edit_db.task

Type:str
test_unicum(name, studio_database='django')

Проверка уникальности имени. Применяется при выборе имени для создания новой студии.

Параметры:
  • name (str) – Проверяемое имя.
  • studio_database (str) – Тип облака.
Результат:

Если имя уникально: (True, comment) или: (False, comment)

Тип результата:

tuple

tmp_folder = False

tmp директория пользователя, в неё копируются открываемые сцены.

Type:str
user_registr_file_name = 'user_registr.json'

?

Type:str
work_folder = False

Директория для локального хранения ассетов пользователя. Создаётся вся файловая структура project/assets/asset/activity/version_dir/file. Определяе методом edit_db.studio.set_work_folder().

Type:str
workroom_db = '.artists.db'

Имя файла ДБ (для Sqlite3) где содержится таблица данных edit_db.workroom

Type:str
workroom_keys = {'id': 'text', 'name': 'text', 'type': 'json'}

Обозначение данных хранимых в БД для объектов edit_db.workroom . Ключи - заголовки, значения - тип данных БД.

Type:dict
workroom_t = 'workrooms'

Имя таблицы БД для edit_db.workroom

Type:str