Metadata-Version: 2.4
Name: rechnomat
Version: 1.0.1
Summary: Create invoices compliant with German E-Rechnung laws
Author-email: Sebastian Haberey <sebastian@haberey.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/sebastianhaberey/rechnomat
Project-URL: Repository, https://github.com/sebastianhaberey/rechnomat
Project-URL: Bug Tracker, https://github.com/sebastianhaberey/rechnomat/issues
Project-URL: Changelog, https://github.com/sebastianhaberey/rechnomat/blob/main/CHANGELOG.md
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Environment :: Console
Requires-Python: >=3.14
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click==8.4.2
Requires-Dist: cloup==3.1.0
Requires-Dist: drafthorse==2025.2.0
Requires-Dist: factur-x==6.8
Requires-Dist: jinja2==3.1.6
Requires-Dist: pydantic==2.13.4
Requires-Dist: pypdf==6.16.1
Requires-Dist: pyyaml==6.0.3
Requires-Dist: rich==15.0.0
Requires-Dist: weasyprint==69.0
Provides-Extra: dev
Requires-Dist: pikepdf==10.12.0; extra == "dev"
Requires-Dist: pypdfium2==5.13.0; extra == "dev"
Requires-Dist: pytest==9.1.1; extra == "dev"
Requires-Dist: ruff==0.16.3; extra == "dev"
Dynamic: license-file

# Rechnomat

Creates invoices compliant with German E-Rechnung laws.

[Example PDF](documentation/example.pdf)

## Installation

### Prerequisites

Make sure you have the following dependencies installed:

- [Python >= 3.14](https://www.python.org/downloads/)
- [Pipx](https://pipx.pypa.io/latest/how-to/install-pipx.html)

### WeasyPrint

[WeasyPrint](https://doc.courtbouillon.org/weasyprint/stable/index.html) will be installed with Rechnomat, but you may
need to install some libraries it requires, depending on your OS.

#### macOS

```
brew install pango
```

Homebrew's libraries aren't on macOS's default library search path, so also add this to your shell profile (e.g.
`~/.zshrc`):

```
export DYLD_LIBRARY_PATH="$(brew --prefix)/lib"
```

#### Linux

##### Ubuntu / Debian

```
sudo apt install libpango-1.0-0 libpangoft2-1.0-0
```

##### Fedora

```
sudo dnf install pango
```

#### Windows

Install the [GTK3 runtime](https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases), then
make sure its `bin` folder is on your `PATH`.

### Rechnomat

Install Rechnomat itself with [pipx](https://pipx.pypa.io/stable/installation/):

```
pipx install rechnomat
```

## Getting started

Go to a working directory of your choice and initialize it:

```
rechnomat init
```

This will create subfolders with working example files. Render the example invoice with:

```
rechnomat render
```

The rendered invoice will appear in the output folder. Update the seller, customer and invoice files with your own data
and render again. You may add new invoices using:

```
rechnomat add [customer]
```

The command will generate an invoice by duplicating the most recent one. Use:

```
rechnomat --help
```

to show all available commands and options.

## Disclaimer

Even though I'm doing my best, there's **no guarantee at all** that this application will generate correct invoices. To
make sure that the generated invoice contains all the information you want, upload it at
the [Elster E-Rechnung Page](https://www.elster.de/eportal/e-rechnung) and check the information for correctness.

## License

MIT - see [LICENSE](LICENSE).
