eprbell / rp2

Privacy-focused, free, open-source cryptocurrency tax calculator for multiple countries: it handles multiple coins/exchanges and computes long/short-term capital gains, cost bases, in/out lot relationships/fractioning, and account balances. It supports FIFO, LIFO, HIFO and it outputs in form 8949 format. It has a programmable plugin architecture
https://pypi.org/project/rp2/
Apache License 2.0
270 stars 43 forks source link

Language Independent Executable #124

Closed rapus95 closed 3 months ago

rapus95 commented 3 months ago

Why isn't there a generic executable without a language code? I live in Germany and need FIFO, which seems to be a provided approach for the general report. So why can't I just run?

rp2 -m FIFO -g en config.ini
eprbell commented 3 months ago

Because the country affects the output: currency symbol, are there long vs short term cap gains, which accounting methods are supported, etc.

rapus95 commented 3 months ago

But aren't these all just groups of settings which can also be passed via arguments? If there's no dali_de I might not get certain forms specific to my country, but the generic gathered output is still of much value, meaning those "reports valid for any country" (Full Report+Open positions). Why can't we have an unspecialized label to execute to calrify that output will be unspecialized which simply requires currency/fiat symbol and method(FIFO/LIFO/etc) as cli arguments (and optionally the printing language)? Because it feels totally weird to execute rp2_us etc for Germany when I only want the reports which aren't restricted to US. What I'm asking for is a mode which produces only the output which is valid for all countries.

Or, worded differently, how can I get truly country-independent output? That means, using dali as gatherer and rp2 as the combining engine even though there's nothing specific for my country. Because the combined and sorted transaction list (which is country independent) helps a lot when handed to my tax consultant.

I hope that could clarify where I'm getting lost x)

eprbell commented 3 months ago

This discussion already happened a while back. My point back then was that I preferred having country parameters hard-coded into a country plugin to avoid user errors: I still prefer this option. However I'm coming around to seeing the usefulness of a "generic" country plugin that gets only three parameters (see https://github.com/eprbell/rp2/blob/main/README.dev.md#adding-support-for-a-new-country for details):

Such a plugin would immediately unlock a lot of countries for which we still don't have a country plugin.

eprbell commented 3 months ago

@rapus95, I added support for the generic country: see https://github.com/eprbell/rp2/blob/main/docs/supported_countries.md#generic. Can you try it out and let me know?

rapus95 commented 3 months ago

I'll do as soon as I managed to import the data via dali