euer 0.8.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- euer-0.8.1.dist-info/METADATA +194 -0
- euer-0.8.1.dist-info/RECORD +46 -0
- euer-0.8.1.dist-info/WHEEL +5 -0
- euer-0.8.1.dist-info/entry_points.txt +2 -0
- euer-0.8.1.dist-info/licenses/LICENSE +661 -0
- euer-0.8.1.dist-info/top_level.txt +1 -0
- euercli/__init__.py +1 -0
- euercli/__main__.py +4 -0
- euercli/cli.py +597 -0
- euercli/commands/__init__.py +64 -0
- euercli/commands/add.py +255 -0
- euercli/commands/audit.py +37 -0
- euercli/commands/config.py +65 -0
- euercli/commands/delete.py +130 -0
- euercli/commands/export.py +456 -0
- euercli/commands/helpers.py +13 -0
- euercli/commands/import_data.py +269 -0
- euercli/commands/incomplete.py +214 -0
- euercli/commands/init.py +321 -0
- euercli/commands/list.py +767 -0
- euercli/commands/private_summary.py +43 -0
- euercli/commands/query.py +88 -0
- euercli/commands/receipt.py +209 -0
- euercli/commands/reconcile.py +129 -0
- euercli/commands/setup.py +290 -0
- euercli/commands/summary.py +190 -0
- euercli/commands/update.py +184 -0
- euercli/commands/vat_report.py +249 -0
- euercli/config.py +390 -0
- euercli/constants.py +22 -0
- euercli/db.py +70 -0
- euercli/importers.py +219 -0
- euercli/schema.py +135 -0
- euercli/services/__init__.py +40 -0
- euercli/services/categories.py +103 -0
- euercli/services/duplicates.py +10 -0
- euercli/services/errors.py +19 -0
- euercli/services/expenses.py +801 -0
- euercli/services/income.py +626 -0
- euercli/services/models.py +95 -0
- euercli/services/private_classification.py +24 -0
- euercli/services/private_transfers.py +394 -0
- euercli/services/utils.py +31 -0
- euercli/services/vat.py +105 -0
- euercli/services/vat_report.py +630 -0
- euercli/utils.py +86 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: euer
|
|
3
|
+
Version: 0.8.1
|
|
4
|
+
Summary: EÜR (Einnahmenüberschussrechnung) CLI
|
|
5
|
+
Author: Markus
|
|
6
|
+
License-Expression: AGPL-3.0-or-later
|
|
7
|
+
Project-URL: Issues, https://github.com/curiousmarkus/euer/issues
|
|
8
|
+
Project-URL: Repository, https://github.com/curiousmarkus/euer
|
|
9
|
+
Project-URL: Documentation, https://github.com/curiousmarkus/euer/blob/main/docs/USER_GUIDE.md
|
|
10
|
+
Project-URL: Changelog, https://github.com/curiousmarkus/euer/blob/main/docs/RELEASE_NOTES.md
|
|
11
|
+
Keywords: buchhaltung,euer,finanzen,freelancer,sqlite
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
18
|
+
Classifier: Topic :: Office/Business :: Financial :: Accounting
|
|
19
|
+
Requires-Python: >=3.11
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
Provides-Extra: xlsx
|
|
23
|
+
Requires-Dist: openpyxl>=3.1.0; extra == "xlsx"
|
|
24
|
+
Provides-Extra: dev
|
|
25
|
+
Requires-Dist: build>=1.2; extra == "dev"
|
|
26
|
+
Requires-Dist: coverage>=7.10; extra == "dev"
|
|
27
|
+
Requires-Dist: ruff>=0.8; extra == "dev"
|
|
28
|
+
Requires-Dist: twine>=6.1; extra == "dev"
|
|
29
|
+
Dynamic: license-file
|
|
30
|
+
|
|
31
|
+

|
|
32
|
+
|
|
33
|
+
# EÜR-Buchhaltung für KI-Agenten
|
|
34
|
+
|
|
35
|
+
> `euer` ist die Lösung für Freelancer und Kleinunternehmer in Deutschland, die ihre Einnahmenüberschussrechnung (EÜR) an ihre KI-Agenten auslagern möchten.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Warum euer?
|
|
40
|
+
|
|
41
|
+
Die meisten Tools zwingen dich zu einer Entscheidung: Entweder du nutzt unflexible SaaS-Abos (Lexoffice, SevDesk) oder du bastelst manuell in Excel. `euer` geht einen dritten Weg: **Ein Tool, damit dein Agent die Arbeit übernehmen kann.**
|
|
42
|
+
|
|
43
|
+
### 🤖 Built for AI Agents, not humans
|
|
44
|
+
* **CLI first:** Perfekt für LLMs – Text Input, strukturierter Text Output. Kein Halluzinieren von GUI-Klicks.
|
|
45
|
+
* **Do one thing well:** Kein Feature-Bloat. Nur EÜR. Agenten lieben Tools mit klarem Scope.
|
|
46
|
+
* **SQL Superpowers:** Für komplexe Abfragen kann der Agent direkt SQL nutzen. Volle Flexibilität für intelligente Automatisierung.
|
|
47
|
+
|
|
48
|
+
### 🔒 Revisionssicher & Lokal
|
|
49
|
+
* **Local First:** Eine SQLite-Datei. Deine Daten. Dein Backup. Deine Kontrolle.
|
|
50
|
+
* **Audit-Log:** Jede Änderung wird unveränderbar protokolliert. Sicherheit für dich und das Finanzamt.
|
|
51
|
+
* **Leichtgewichtig:** Nur Python 3.11+. Keine schweren Abhängigkeiten. Läuft überall.
|
|
52
|
+
* **Kein Lock-in:** Daten einfach in CSV oder Excel exportieren.
|
|
53
|
+
|
|
54
|
+
### ✅ Alles, was du steuerlich brauchst
|
|
55
|
+
- **EÜR-konforme Kategorien:** Direkt einsatzbereit mit den offiziellen Zeilennummern für die Anlage EÜR.
|
|
56
|
+
- **Optionaler Kontenrahmen:** Frei konfigurierbare Buchungskonten (`[[ledger_accounts]]`) mit automatischer Kategoriezuordnung.
|
|
57
|
+
- **Umsatzsteuer-Logik:** Voller Support für Regelbesteuerung (USt/Vorsteuer) sowie Kleinunternehmerregelung (§19 UStG).
|
|
58
|
+
- **Reverse-Charge Support:** Umsatzsteuerliche Behandlung von Dienstleistern aus
|
|
59
|
+
dem EU-/Drittland-Ausland (§13b UStG) inklusive persistiertem RC-Typ.
|
|
60
|
+
- **UStVA-Report:** `euer vat-report` erzeugt einen ELSTER-nahen
|
|
61
|
+
USt-Voranmeldungs-Arbeitsbericht mit KZ-Mapping, Warnungen und CSV/XLSX-Export.
|
|
62
|
+
- **Beleg-Management:** Verknüpfe digitale Belege (PDF/Bilder) direkt mit deinen Buchungen.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Quickstart: In 2 Minuten startklar
|
|
67
|
+
|
|
68
|
+
### 1. Installation
|
|
69
|
+
|
|
70
|
+
`pipx` installiert `euer` global, ohne dass du je eine virtuelle Umgebung aktivieren musst.
|
|
71
|
+
|
|
72
|
+
**macOS und Linux (Homebrew):**
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
brew install curiousmarkus/tap/euer
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Alle Plattformen (PyPI):**
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# pipx einmalig installieren (falls noch nicht vorhanden)
|
|
82
|
+
python3 -m pip install --user pipx
|
|
83
|
+
pipx ensurepath
|
|
84
|
+
|
|
85
|
+
pipx install euer
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Für den optionalen Excel-Export installierst du direkt das XLSX-Extra:
|
|
89
|
+
|
|
90
|
+
```powershell
|
|
91
|
+
pipx install "euer[xlsx]"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Unter Windows kannst du stattdessen `py -m pip install --user pipx` und danach
|
|
95
|
+
`pipx ensurepath` verwenden. Die Paketinstallation bleibt identisch.
|
|
96
|
+
|
|
97
|
+
**GitHub-Fallback:**
|
|
98
|
+
|
|
99
|
+
Für Entwicklungsversionen oder einen Checkout ohne PyPI kannst du weiterhin direkt aus
|
|
100
|
+
dem Repository installieren:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
pipx install git+https://github.com/curiousmarkus/euer.git
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Danach ist `euer` sofort und dauerhaft in jedem Terminal verfügbar.
|
|
107
|
+
|
|
108
|
+
**Update auf die neueste Version:**
|
|
109
|
+
```bash
|
|
110
|
+
pipx upgrade euer
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Bei einer Homebrew-Installation aktualisierst du mit:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
brew upgrade euer
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Entwicklungsinstallation unter Windows (PowerShell):**
|
|
120
|
+
|
|
121
|
+
```powershell
|
|
122
|
+
py -3 -m venv .venv
|
|
123
|
+
.\.venv\Scripts\Activate.ps1
|
|
124
|
+
python -m pip install -e ".[dev,xlsx]"
|
|
125
|
+
python -m unittest discover -s tests
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
(Details siehe [User Guide](https://github.com/curiousmarkus/euer/blob/main/docs/USER_GUIDE.md#installation))
|
|
129
|
+
|
|
130
|
+
### 2. Personalisierung
|
|
131
|
+
|
|
132
|
+
Kopiere den [Onboarding Prompt](https://github.com/curiousmarkus/euer/blob/main/docs/templates/onboarding-prompt.md) in einen LLM-Chat und beantworte die Fragen.
|
|
133
|
+
Du erhältst eine personalisierte `AGENTS.md` mit dem nötigen Kontext für deine KI-Agenten sowie die konkreten nächsten Schritte, um loszulegen.
|
|
134
|
+
|
|
135
|
+
### 3. Initialisierung
|
|
136
|
+
Wechsle (wie beim Onboarding erklärt) in deinen Buchhaltungs-Ordner und erstelle deine Datenbank:
|
|
137
|
+
```bash
|
|
138
|
+
euer init
|
|
139
|
+
euer setup
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### 4. Erste Buchung (lass es deinen AI-Agent machen!)
|
|
143
|
+
```bash
|
|
144
|
+
euer add expense --payment-date 2026-02-02 --vendor "Hetzner" --category "Laufende EDV-Kosten" --amount -10.00
|
|
145
|
+
|
|
146
|
+
# Optional mit Kontenrahmen:
|
|
147
|
+
euer add expense --payment-date 2026-02-02 --vendor "Hetzner" --ledger-account hosting --amount -10.00
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## So arbeitet dein AI-Agent mit euer
|
|
153
|
+
|
|
154
|
+
Du hast einen Stapel PDF Belege?
|
|
155
|
+
Gib es an deinen KI-Agenten:
|
|
156
|
+
> "Buche diese Belege in euer ein."
|
|
157
|
+
|
|
158
|
+
1. Der Agent holt sich die korrekten Steuerkategorien mit `euer list categories`
|
|
159
|
+
2. Prüft optional den Kontenrahmen mit `euer list ledger-accounts`
|
|
160
|
+
3. Fügt die Belege in die EÜR mit `euer add expense --payment-date ... --vendor ...`
|
|
161
|
+
4. kontrolliert die Vollständigkeit mit `euer incomplete list`
|
|
162
|
+
5. gibt dir eine Übersicht über deine EÜR mit `euer summary --year 2026`
|
|
163
|
+
6. erstellt bei Bedarf einen UStVA-Arbeitsbericht mit `euer vat-report --year 2026`
|
|
164
|
+
|
|
165
|
+
**Ergebnis:** Du kannst dich zurücklehnen — dein Agent übernimmt für dich die Buchhaltung!
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Dokumentation & Support
|
|
170
|
+
|
|
171
|
+
Detaillierte Anleitungen findest du in unseren Guides:
|
|
172
|
+
|
|
173
|
+
- 📖 **[User Guide](https://github.com/curiousmarkus/euer/blob/main/docs/USER_GUIDE.md)** – Installation, Workflows und alle Befehle.
|
|
174
|
+
- ❓ **[FAQ](https://github.com/curiousmarkus/euer/blob/main/docs/FAQ.md)** – Häufige Fragen, Sonderfälle (z. B. Prepaid-Guthaben) und Best Practices.
|
|
175
|
+
- 🧾 **[Release Notes](https://github.com/curiousmarkus/euer/blob/main/docs/RELEASE_NOTES.md)** – Upgrade-Hinweise für bestehende lokale Instanzen.
|
|
176
|
+
- 🤖 **[SKILL "euer-buchhaltung"](https://github.com/curiousmarkus/euer/blob/main/docs/skills/euer-buchhaltung/SKILL.md)** – Die Anleitung für deinen Agenten
|
|
177
|
+
- 🤖 **[Agent Templates](https://github.com/curiousmarkus/euer/tree/main/docs/templates)** – Konfigurationsvorlagen für KI-Buchhalter
|
|
178
|
+
- 🤝 **[Mitwirken](https://github.com/curiousmarkus/euer/blob/main/CONTRIBUTING.md)** – Hinweise für Issues, Änderungen und Pull Requests.
|
|
179
|
+
- 🛠️ **[Development](https://github.com/curiousmarkus/euer/blob/main/DEVELOPMENT.md)** – Architektur und technische Entwicklungsregeln.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## 📄 Lizenz
|
|
184
|
+
|
|
185
|
+
GNU AGPLv3 License
|
|
186
|
+
Copyright (c) 2026 Markus
|
|
187
|
+
|
|
188
|
+
**Hinweis zur AGPL:**
|
|
189
|
+
Diese Software ist frei verfügbar. Wenn du sie jedoch modifizierst und über ein Netzwerk (z.B. als Web-Service oder SaaS) anbietest, bist du verpflichtet, den vollständigen Quellcode deiner Version ebenfalls unter der AGPL offenzulegen.
|
|
190
|
+
Dies stellt sicher, dass `euer` ein Gemeinschaftsprojekt bleibt und nicht proprietär vereinnahmt wird.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
*Entwickelt für AI-Agents, die sich täglich freuen deine Buchhaltung zu übernehmen – CLI basiert, lokal und einfach.*
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
euer-0.8.1.dist-info/licenses/LICENSE,sha256=MyLQDxA_WAKg7A0Vn33EbG1ejFGnuoC7tgpLDnqMxGQ,34516
|
|
2
|
+
euercli/__init__.py,sha256=yUP_Pll40EjgZheUGylmM8rtDDt9cGh3Hkz4an3x2Uo,18
|
|
3
|
+
euercli/__main__.py,sha256=MSmt_5Xg84uHqzTN38JwgseJK8rsJn_11A8WD99VtEo,61
|
|
4
|
+
euercli/cli.py,sha256=TbEOwPK1CRtf0lyMKWqVByjoEyaF8QBlZeVV4vvOM88,23760
|
|
5
|
+
euercli/config.py,sha256=hUrkOFkaIQoB7Eh1H2nKWXS5NJrwDQTQTpNcFCh-HJ4,12470
|
|
6
|
+
euercli/constants.py,sha256=US3kbWdYdyAavhN71_85Yh5aZXz7lDvMIu84-VYZSFc,654
|
|
7
|
+
euercli/db.py,sha256=e777yqp3WBWKra57oJdrdg21jx5TqOeFR8-z_G-VjTg,2096
|
|
8
|
+
euercli/importers.py,sha256=dG6MXAEM-PMGGDrBYopaUSXCVfkbtEAg2w4iojmOLQ8,6790
|
|
9
|
+
euercli/schema.py,sha256=lHho7x-DgIMwvaYpyFyrUTSizmuGukj2R5U9xRNhgDA,5395
|
|
10
|
+
euercli/utils.py,sha256=Kkqgb4_zuXEEF-wNsJj3TMDyHTcDhZc0o_bMYO3wXaQ,2460
|
|
11
|
+
euercli/commands/__init__.py,sha256=nYkIiyTk6A9AXqDvFwpeQ9_V052FaUhXWh6LzfGeCUw,1805
|
|
12
|
+
euercli/commands/add.py,sha256=05rLZSFXY8sbsVuaa9cHd2_PrC77J64regXoRVIWvtw,8668
|
|
13
|
+
euercli/commands/audit.py,sha256=0-JmC7pnKN-I7fuKXRVYkxzRYbG1nI-Bg3xXHpw2mHY,908
|
|
14
|
+
euercli/commands/config.py,sha256=L7mX3n2O6fKa0Y3ZzKsxTSbgN2B_WXP13H5j-YuKdOA,2173
|
|
15
|
+
euercli/commands/delete.py,sha256=pkpYWaqNI_-j0Lyxzrvl0rGCgQS2vpN58J_FEMjOm8Q,4100
|
|
16
|
+
euercli/commands/export.py,sha256=eLr01bd2rMcI5i7KO1KQrYisQgHA6nSnEIM8nV_UGhM,15755
|
|
17
|
+
euercli/commands/helpers.py,sha256=XUQd0Cxbp_AoZ5UV4cXJRFoPM0xjZf5lOsvELNKuNdw,387
|
|
18
|
+
euercli/commands/import_data.py,sha256=RleSQ5L9KnOBg5dcyR3fWSlca7Emh8c6zj4Yyy1DRec,11526
|
|
19
|
+
euercli/commands/incomplete.py,sha256=G8KNKCoqY_FKYwUOas9iDBAC6a0pkNcGYMh6ecKxGMs,7456
|
|
20
|
+
euercli/commands/init.py,sha256=yv8Y17JZzt3hrgP374sx0pYF1QBwoWvloILd_DXCR_k,12971
|
|
21
|
+
euercli/commands/list.py,sha256=WnKeHmfddKcXZgyV1ot-87v_cf8mjJ9zgUjPRFlBVlI,26079
|
|
22
|
+
euercli/commands/private_summary.py,sha256=ZD2J9lzt6GdqIOVeeBz-GRzMfsNYorHt-o41as2IgPs,1393
|
|
23
|
+
euercli/commands/query.py,sha256=WyXJ7E4VqnKlX49ZGIRR8goOHXckd7P2N4dIyGA8RuA,2389
|
|
24
|
+
euercli/commands/receipt.py,sha256=y5iPCOsli7cqH2knSVTFJkTGAU-U3LNgCS_O75EjmeU,6939
|
|
25
|
+
euercli/commands/reconcile.py,sha256=qcCt-lOMPQnqmboHBhFpdDW-mOKI8kKpMFmFFSTwEwM,4159
|
|
26
|
+
euercli/commands/setup.py,sha256=NVgMllcdz_MqJ-FI8AJRYtHo-gSQkllegGWFofuPBG0,10319
|
|
27
|
+
euercli/commands/summary.py,sha256=2AQvyBDlpY1w9XF65L30D4dSxk6ftNEczt-Tc72xaGI,6980
|
|
28
|
+
euercli/commands/update.py,sha256=_wnITGETkSbDwEP27vOj0T7E04h1BBjxW83IDHZzIdI,5720
|
|
29
|
+
euercli/commands/vat_report.py,sha256=twfpaljVjtgsz8FEYeSs9XnZTJPjuL4VjKi9tq9Ome0,7259
|
|
30
|
+
euercli/services/__init__.py,sha256=yOsQNaOQiEAQTHq6l_FPutFzgnBLGyooEDrOGjSMtg4,891
|
|
31
|
+
euercli/services/categories.py,sha256=WqJNBE87eslDVUzclks6Hj6sZx4IcWlBkeztT6iWNAQ,3410
|
|
32
|
+
euercli/services/duplicates.py,sha256=3xUwUF6iWDfAKI4opp1itNnVJMS7a6qqy6Vyn_ogdsg,189
|
|
33
|
+
euercli/services/errors.py,sha256=AfZGsh8002DkzrWeInch0Tl4QQMSR_M_9OCFbokbsi0,533
|
|
34
|
+
euercli/services/expenses.py,sha256=0qzXdp-nO06D-JuSeBijNhdhtKaR7DbEb2mCMRzqK5k,27028
|
|
35
|
+
euercli/services/income.py,sha256=pVzXTACridihv97uPE-NGl5gqGbKLCiqeKchx__sacU,21034
|
|
36
|
+
euercli/services/models.py,sha256=Z6CZRjVpDXiyWdh_HiH3DGSEECm3DsV62TtDUXEo5jQ,2257
|
|
37
|
+
euercli/services/private_classification.py,sha256=KkLfO5d08l9hR-4f3IfsURq_rF3V_2VO_KpNZn4xXSI,707
|
|
38
|
+
euercli/services/private_transfers.py,sha256=cCHbPp8A6SwWoJqbgO-KGCqMx8l4h3Hk5YvMDeHBr0c,11592
|
|
39
|
+
euercli/services/utils.py,sha256=fdPDarJcbsRdR6VHaiWhhQod3s7mFcHYoOV9HCTOLb0,1069
|
|
40
|
+
euercli/services/vat.py,sha256=v4iJV3e4-UqUuinbQimBpQKqmZ4uhkLKes4H8q-gHSo,3232
|
|
41
|
+
euercli/services/vat_report.py,sha256=GxKZAhqft2f5rJTgS_PK1xYWT05Zi-hnZXOQ3gjZglk,19219
|
|
42
|
+
euer-0.8.1.dist-info/METADATA,sha256=vZDW5M3zcomN2NDj4Gedm9ML2xt3Vy4NNyxIRKeMsVE,7985
|
|
43
|
+
euer-0.8.1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
44
|
+
euer-0.8.1.dist-info/entry_points.txt,sha256=u8sLTD-9_QoPdMXm-ne4JjO4jceWJ81FaJWxb5AcYuA,42
|
|
45
|
+
euer-0.8.1.dist-info/top_level.txt,sha256=vNvdDzDNp4On9Ovc5H7R3k35uVFaV726wuu9gWKUcHI,8
|
|
46
|
+
euer-0.8.1.dist-info/RECORD,,
|