Сообщество
Логин
Пароль
Забыли пароль?     Регистрация
Ещё проектики
Рабочее время
Минималистичный счётчик рабочего времени онлайн

Python api

Михаил
21 августа 2022 14:33
Всем привет,

Подумал кому-то может быть интересно. Я сделал обертку API дребеденег в удобной python библиотеке. Документация тут: https://mishamsk.github.io/drebedengi-python-api/. Для тех кому лень - pip install drebedengi-python-api и можно играться.

Пока это только get методы для «сутевых» объектов (транзакции, категории, тэги, счет и т.д.), так как сделал я это, ради другого проекта - системы отчетности и прогнозирования. Она сейчас у меня на ноутбуках, но надеюсь скоро выложить в открытом виде хорошую open source версию с порталом отчетности.

Тому кто анализирует данные глубже, чем встроенная отчетность должно быть полезно. Предложения и доработки приветствуются (через github pull request - смотрите https://mishamsk.github.io/drebedengi-python-api/contributing/).

P.S. все на английском, в том числе я привел термины из оригинального API к корректным английским терминам (вроде waste -> expense)
Петр
1 декабря 2022 09:22
Спасибо, Михаил.

Возможно, пригодится для моего проекта, интергарации Дребеденег в Slack. Сейчас использую форк библиотеки https://github.com/davojan/ts-ddng-client для запросов создания расходов, доходов, баланса и т.д. Она очень помогает. Не приходится углубляться в SOAP.

Функционал отчетов для Slack-бота пока не делал. Из отчетов только баланс кошельков сейчас показывается. Если дойдут руки до создания функционала отчетности и текущий клиент Дребеденег не будет удовлетворять, то готов буду рассмотреть эту библиотеку
Михаил
1 декабря 2022 16:02
Не за что. Я не делал обертки set методов, так как мне пока не было нужно, но в целом это очень просто и быстро, так как весь "геморрой" доисторического SOAP там уже побежден... С удовольствием приму contribution;-)

Не знал про ts клиент, спасибо за ссылку. Думаю, что выбор простой - на чем проект, на том и библиотеку имеет смысл использовать. Так что если пишете на ts/js, то нет смысла в мой python лезть.
hotepus
24 апреля 16:22
Михаил Пишет:
Всем привет,

Подумал кому-то может быть интересно. Я сделал обертку API дребеденег в удобной python библиотеке. Документация тут: https://mishamsk.github.io/drebedengi-python-api/. Для тех кому лень - pip install drebedengi-python-api и можно играться.

Пока это только get методы для «сутевых» объектов (транзакции, категории, тэги, счет и т.д.), так как сделал я это, ради другого проекта - системы отчетности и прогнозирования. Она сейчас у меня на ноутбуках, но надеюсь скоро выложить в открытом виде хорошую open source версию с порталом отчетности.

Тому кто анализирует данные глубже, чем встроенная отчетность должно быть полезно. Предложения и доработки приветствуются (через github pull request - смотрите https://mishamsk.github.io/drebedengi-python-api/contributing/).

P.S. все на английском, в том числе я привел термины из оригинального API к корректным английским терминам (вроде waste -> expense)
Подскажите пожалуйста, при обращении вида

api.get_transactions(
period_from=from_date,
period_to=to_date,
include_types=TransactionType.INCOME,
category_filter=ReportFilterType.SELECTED_ONLY,
category_filter_ids=[623786]
)

Вылетает
ValueError: The String type doesn't accept collections as value

Если передать как строку, то
drebedengi.api.DrebedengiAPIError: ("'r_category' = '623786' is not an array", '8')
Михаил
24 апреля 18:30
Честно говоря не знаю. Я не трогал библиотеку с тех пор как ее написал. Вот код, который меня ее использует: https://github.com/mishamsk/personal-analytics-hub/blob/71ca21cc663f8b540a009ac2817ba5d73106b1b5/etl/loader/drebedengi/loader.py#L127

там нет фильтра по категориям и он работает.

Я буду не против PR, если там бага и понятно как ее починить. Хотя не удивлюсь, если это проблема с SOAP drebedengi. Тут не хватает stack trace, но если падает на этой строке https://github.com/mishamsk/drebedengi-python-api/blob/117de57678e0098aea64486c3fac08685f40d4be/src/drebedengi/api.py#L178 - то значит дело в некорректном объявленом типе со стороны drebedengi. Можно ли это обойти как-то в той xml-soap библиотеке, что я использую не знаю. Надо копать
Чтобы отвечать на сообщения - зарегистрируйтесь и войдите в личный кабинет.