Skip to main content

SIGNAL API

PyPI - Version Telegram chat

Обертка над API Signal

Официальная документация https://api.sgnl.pro/openapi/swagger/index.html

Установка

pip install -U sgnl-api

Пример

import asyncio
import os
from sgnl_api import DocsApi
from dotenv import load_dotenv

load_dotenv()
CLIENT_ID = os.getenv("CLIENT_ID")
SECRET_ID = os.getenv("SECRET_ID")


async def main():

    async with await DocsApi.create(
        client_id=CLIENT_ID,
        client_secret=SECRET_ID
    ) as docs:
        projects = await docs.project.get_list()
        for project in projects:
            print(project)


if __name__ == "__main__":
    asyncio.run(main())

Клиент можно использовать и без async with — тогда после завершения работы стоит вызвать await docs.aclose(), чтобы закрыть пул соединений.

Обработка ошибок

При ошибке API методы бросают исключение, а не возвращают dict с ключом error — проверять каждый ответ вручную не нужно.

from sgnl_api import DocsApi, SgnlApiError, SgnlNotFoundError

try:
    project = await docs.project.info(project_id)
except SgnlNotFoundError:
    ...
except SgnlApiError as e:
    print(e.status_code, e.message)

Иерархия исключений: SgnlApiError (базовое) → SgnlRequestError (сетевые ошибки/таймауты), SgnlAuthenticationError (401), SgnlBadRequestError (400), SgnlForbiddenError (403), SgnlNotFoundError (404), SgnlQuotaExceededError (450), SgnlServerError (5xx).

Методы

Обертка покрывает весь официальный API (swagger). Методы сгруппированы по ресурсам ровно как в спецификации (по тегам).

item

Метод Описание Возвращает
item.get_list Список файлов в директории list[dict]
item.count Количество файлов в директории int
item.search Поиск вложенных элементов в директории list[dict]
item.create_file Создает новый файл с версией UUID
item.create_link Создает новую ссылку UUID
item.get_link Получает ссылку для загрузки файла dict
item.get_item_version Возвращает версию элемента по UUID dict
item.add_version Добавляет новую версию к существующему файлу None
item.update Обновляет элемент (имя/ссылку) None
item.update_version Обновляет комментарий версии элемента None
item.delete Перемещает элемент в корзину None

folder

Метод Описание Возвращает
folder.get_list Список дочерних папок list[dict]
folder.create Создает новую папку UUID
folder.update Обновляет имя и/или цвет папки None
folder.rename Переименовывает папку None
folder.delete Перемещает папку в корзину None
folder.get_project_tree Дерево папок проекта с правами пользователя dict

project / project_user / project_user_custom_role

Метод Описание Возвращает
project.root_folder Информация о корневой папке проекта dict
project.root_folder_id UUID корневой папки проекта UUID
project.get_storage_id UUID хранилища, назначенного проекту UUID
project.get_list Список проектов list[dict]
project.info Информация о проекте dict
project.users Список пользователей проекта list[dict]
project.roles Список ролей проекта list[dict]
project.users_permissions Права пользователя в проекте list[str]
project_user.add Добавляет пользователей в проекты None
project_user.delete Удаляет пользователей из проектов None
project_user_custom_role.set Назначает кастомные роли пользователю в проекте None

company / company_user / company_user_custom_role

Метод Описание Возвращает
company.users_list Список пользователей компании list[dict]
company.roles_list Список ролей компании list[dict]
company_user.get_id_by_telegram_id UUID пользователя по Telegram id UUID
company_user.add Приглашает/добавляет пользователей в компанию list[dict]
company_user.delete Удаляет пользователей из компании None
company_user_custom_role.set Назначает кастомные роли пользователю в компании None

version

Метод Описание Возвращает
version.get_list Список версий файла list[dict]
version.count Количество версий файла int
version.find_batch Версии для пакета элементов list[dict]
version.create Создает новую версию объекта UUID

file (Object)

Метод Описание Возвращает
file.get_object_upload Получает тикет на загрузку объекта dict
file.commit_uploading Завершает загрузку объекта None
file.upload Загружает файл целиком (upload + commit) dict или None

attribute / attribute_type / attribute_value

Метод Описание Возвращает
attribute.get_list Список атрибутов по фильтру list[dict]
attribute_type.get_list Список типов атрибутов по фильтру list[dict]
attribute_value.list_issues Значения атрибутов замечаний list[dict]
attribute_value.list_items Значения атрибутов элементов list[dict]
attribute_value.list_folders Значения атрибутов папок list[dict]
attribute_value.set Устанавливает значения атрибутов None

issue и связанные (issue_type, issue_accesses, issue_comment, issue_attachment, issue_events, issue_project_settings)

Метод Описание Возвращает
issue.get_list Список замечаний по фильтру list[dict]
issue.update Пакетное обновление замечаний (до 25 шт.) None
issue.count Количество замечаний по фильтру int
issue.item_issues_count Количество замечаний по элементам list[dict]
issue_type.get_list Список типов замечаний list[dict]
issue_accesses.get_list Правила доступа к замечаниям list[dict]
issue_comment.get_list Список комментариев замечания list[dict]
issue_comment.create Создает комментарий UUID
issue_comment.count Количество комментариев int
issue_attachment.get_list Список вложений замечания list[dict]
issue_attachment.download_object Тикет на загрузку вложения dict
issue_events.get_list История событий замечания list[dict]
issue_events.count Количество событий int
issue_project_settings.get Настройки замечаний проекта dict

review и связанные (review_group, review_item)

Метод Описание Возвращает
review.get_list Список согласований проекта list[dict]
review.update Обновляет основную информацию согласования None
review.count Количество согласований int
review.get_versions Версии согласований по id list[dict]
review.find_item_version_ids_by_review_version_ids Версии элементов по версиям согласования dict
review_group.get_list Список групп согласований list[dict]
review_item.get_statuses Статусы согласования для версий элементов list[dict]

share / storage

Метод Описание Возвращает
share.get_list Список ссылок общего доступа по фильтру list[dict]
share.create Создает ссылку общего доступа UUID
share.update Обновляет ссылку общего доступа None
share.delete Помечает ссылку удаленной/восстановленной None
share.count Количество ссылок по фильтру int
storage.get_list Список хранилищ документов list[dict]
Метод Описание Возвращает
cades_signature.get_list Список подписей CAdES версии list[dict]
cades_signature.create Создает подпись CAdES None
embedded_signature.get_list Список встроенных подписей элемента list[dict]
embedded_signature.create Создает встроенную подпись None
mchd.company_documents UUID доверенностей компании list[UUID]
mchd.attached_documents Доверенности, привязанные к подписи list[dict]
mchd.download Тикет на загрузку доверенности dict
card_public_link.regenerate Перегенерирует публичную ссылку карточки дашборда dict

documents_transfer / documents_transfer_item / documents_transfer_type / acceptance_certificate

Метод Описание Возвращает
documents_transfer.get_list Список передач документов по фильтру list[dict]
documents_transfer.get Данные передачи документов по id dict
documents_transfer.count Количество передач по фильтру int
documents_transfer.accesses Правила доступа для типов передач list[dict]
documents_transfer_item.get_list Список элементов передачи list[dict]
documents_transfer_item.count Количество элементов передачи int
documents_transfer_item.download Тикет на загрузку элемента передачи dict
documents_transfer_type.get_list Список типов передач документов list[dict]
acceptance_certificate.download Тикет на загрузку акта приема-передачи dict

permissions / application_user

Метод Описание Возвращает
permissions.upsert_batch Устанавливает права пользователей/ролей на папку None
permissions.get_tree Дерево папок проекта с правами dict
application_user.upsert Назначает роли пользователям в приложениях None
application_user.delete Отзывает доступ пользователей в приложениях None

forge / tangl / folder_items_naming_pattern

Метод Описание Возвращает
forge.convert Запускает конвертацию модели через Forge None
forge.get_viewers_data Токен и URN для Forge Viewer dict
tangl.convert Запускает конвертацию модели через Tangl None
folder_items_naming_pattern.find Шаблоны именования файлов папки dict

user_log

Метод Описание Возвращает
user_log.get_list Журнал действий пользователей list[dict]

Для методов, принимающих filter/find/values/items как dict, структура соответствует одноимённой схеме в спецификации API — ключи передаются в camelCase, как в JSON-теле запроса (например {"projectId": "...", "issueIds": [...]}).

Metadata

Release files for sgnl-api 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sgnl-api 0.2.0
File Size Uploaded Provenance Actions
sgnl_api-0.2.0.tar.gz 25.3 kB Without provenance Details for sgnl_api-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for sgnl-api 0.2.0
File Interpreter ABI Platform Actions
sgnl_api-0.2.0-py3-none-any.whl Python 3 none any Details for sgnl_api-0.2.0-py3-none-any.whl

Total release size: 64.1 kB

Release files / sgnl_api-0.2.0.tar.gz

Download URL sgnl_api-0.2.0.tar.gz
Size 25.3 kB
Tags Source
SHA-256 checksum
How to use checksums
065b9d9e781237e76a401a93c3b6e972cbe53113b78e7469bbda93a86d33c1d7
BLAKE2b-256 checksum
How to use checksums
ec9384ededad14a84e78243f46bf9536b4f8dfeaea070360ea4d4e09956b4b47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.4

Release files / sgnl_api-0.2.0-py3-none-any.whl

Download URL sgnl_api-0.2.0-py3-none-any.whl
Size 38.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fe0966d0d8224b61b8067f7d9a0b77e173f6bd636fe3b6c5d2f1f168765e044d
BLAKE2b-256 checksum
How to use checksums
708421577b2cfbf635bd73a14bdd79f5b20a6c152c959ac110eb30fdf2b3c41f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.4

Security for sgnl-api 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page