cdump / investments

Analysis of Interactive Brokers reports for tax reporting in Russia
MIT License
110 stars 20 forks source link

windows: Ломается на fee при одинаковых суммах в один день #60

Closed mladshij closed 1 year ago

mladshij commented 2 years ago

Если в activity отчёте между разделами "Deposits & Withdrawals" и "Dividends" есть такие строки:

Fees,Header,Subtitle,Currency,Date,Description,Amount Fees,Data,Other Fees,USD,2022-08-03,V**23:GLOBAL SNAPSHOT PNP FOR JUL 2022,-0.03 Fees,Data,Other Fees,USD,2022-08-03,V**23:GLOBAL SNAPSHOT PNP FOR JUL 2022,0.03 Fees,Data,Total,,,,0 Fees,Notes,"Market data is provided by Global Financial Information Services (GmbH). Your local broker collects amounts owed for fees and tax for such data on behalf of Global Financial Information Services (GmbH). Note, you are responsible for any applicable taxes relating to the provision of these services."

то всё ломается с ошибкой:

ValueError: Cannot set a DataFrame with multiple columns to the single column amount_rub

в ibtax.py, line 102, in prepare_fees_report:

df['amount_rub'] = df.apply(lambda x: cbr_client_usd.convert_to_rub(x['amount'], x[operation_date_column]), axis=1)

Проблема именно из-за одинаковых (по модулю) сумм. Если суммы разные (например -0.04 и 0.03), то ничего не ломается.

esemi commented 2 years ago

Посмотрел на мастер ветке, не подтвердилось =(

@mladshij Нужен пример отчёта и версия библиотеки, которой пытаетесь распарсить его

В моём отчёте с идентичными строками всё отрабатывает на раз image

mladshij commented 2 years ago

@esemi Версия: investments==0.1.26 Пример отчёта (всё личное и лишнее удалил) прилагаю. На этом наборе данных у меня повторяется. test_2022.csv AutoCalcReport2022.csv

esemi commented 2 years ago

@mladshij спасибо! Взял отчёты, запустил таксу из нужной версии - всё отработало :( Может просто переставить либу? Или запускать самую свежую из репозитория?

image

mladshij commented 2 years ago

@esemi С verbose и у меня, оказывается, работает.

На всякий случай переставил. Ничего не изменилось. Есть нехорошее подозрение, что у нас какие-то библиотеки разных версий и это влияет. Или влияет ключ verbose. У меня:

aiohttp==3.8.3 aiomoex==2.0.0 aiosignal==1.2.0 async-timeout==4.0.2 attrs==22.1.0 certifi==2022.9.24 charset-normalizer==2.1.1 frozenlist==1.3.1 idna==3.4 investments==0.1.26 multidict==6.0.2 numpy==1.23.3 pandas==1.5.0 python-dateutil==2.8.2 pytz==2022.2.1 requests==2.28.1 six==1.16.0 tabulate==0.8.10 urllib3==1.26.12 yarl==1.8.1

И приаттачил stderr (запуск без verbose).

stderr.log

esemi commented 2 years ago

@mladshij скорее влияют различия с виндой, наверное( да, либы чутка разные

давай попробуем по взрослому поставить либу, как в ридми прописано для разрабов заодно проверим либу с доп правками, которая всё никак в мастер не влезет)

$ git clone https://github.com/esemi/investments.git
$ cd investments
$ git checkout devel
$ pip install poetry
$ poetry install
$ poetry run ibtax ...
mladshij commented 2 years ago

@esemi Короче, похоже дело в версиях библиотек. 1) если ставить как "pip install investment" и запускать установленный пакет, то будет описанная мной ошибка 2) если вытащить как "git clone https://github.com/cdump/investments.git", и запускать вытащенный файл, а не как установленный пакет, то всё работает отлично 3) вариант из https://github.com/esemi/investments (ветка devel) запустить не смог ввиду каких-то проблем с зависимостями. Разбираться не стал. Если интересно, то лог приаттачил. Наверное на этом тему можно считать закрытой. Но вообще, скорее всего, где-то в зависимостях явно какая-то из библиотек работает корректно не на любой версии.

err.log

esemi commented 2 years ago

Судя по логу - проблема с неустановленной либой https://www.cairographics.org/ и ещё частями для Win Возможно стоит собрать пакет в виде exe для распространённых платформ - надёжнее будет)

cdump commented 1 year ago

Пока чинить windows-specific проблемы ресурсов нет, закрываю как won't fix