Metadata-Version: 2.3
Name: gaeb-cli
Version: 0.5.4
Summary: Command-line tool for reading, writing, converting and diffing GAEB files (AVA data exchange format)
Keywords: gaeb,ava,construction,cli
Author: Attackwave
Author-email: Attackwave <attackwave@gmail.com>
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Office/Business
Requires-Dist: gaeb>=0.5.4
Requires-Dist: typer>=0.12
Requires-Dist: rich>=13.0
Requires-Python: >=3.10
Project-URL: Homepage, https://github.com/Attackwave/gaeb-python
Project-URL: Repository, https://github.com/Attackwave/gaeb-python
Project-URL: Issues, https://github.com/Attackwave/gaeb-python/issues
Project-URL: Changelog, https://github.com/Attackwave/gaeb-python/blob/main/CHANGELOG.md
Project-URL: Library, https://pypi.org/project/gaeb/
Description-Content-Type: text/markdown

# gaeb-cli

Kommandozeilen-Tool zum Lesen, Anzeigen, Konvertieren und Vergleichen von **GAEB-Dateien** (AVA – Ausschreibung, Vergabe, Abrechnung im deutschen Bauwesen).

Basiert auf der [`gaeb`](https://pypi.org/project/gaeb/)-Bibliothek.

## Installation

```bash
pip install gaeb-cli

# Mit Excel-Export
pip install gaeb-cli "gaeb[excel]"
```

## Befehle

### `gaeb info` – Metadaten anzeigen

```bash
gaeb info ausschreibung.d83
gaeb info ausschreibung.x83         # zeigt xml_version
gaeb info ausschreibung.d83 --encoding cp1252
```

Gibt Dateiname, Format (inkl. DA XML-Version), Phase, LV-Titel, Projekt, Auftraggeber, Anzahl Positionen und Gesamtsumme aus.

### `gaeb show` – Positionen als Tabelle

```bash
gaeb show ausschreibung.d83
gaeb show ausschreibung.d83 --langtext      # mit Langtext
gaeb show ausschreibung.d83 --encoding cp850
```

### `gaeb struktur` – Titelhierarchie

```bash
gaeb struktur ausschreibung.d83
```

Gibt die Gliederung des LV als Baum aus (Titel und Untertitel).

### `gaeb convert` – Konvertieren

```bash
# GAEB 90 → GAEB DA XML
gaeb convert ausschreibung.d83 ausschreibung.x83

# GAEB DA XML → GAEB 2000
gaeb convert ausschreibung.x83 ausschreibung.p83

# → Excel
gaeb convert ausschreibung.x83 ausgabe.xlsx

# Phase wechseln
gaeb convert anfrage.d83 angebot.d84

# Phase explizit angeben
gaeb convert ausschreibung.d83 ausgabe.x84 --phase 84

# Encoding angeben (nur GAEB 90 / GAEB 2000)
gaeb convert quelle.d83 ziel.d83 --lese-encoding cp1252 --schreib-encoding cp850
```

Zielformat wird aus der Dateiendung abgeleitet:

| Endung | Format |
|--------|--------|
| `.d8x`, `.d87`–`.d89` | GAEB 90 |
| `.p8x` | GAEB 2000 |
| `.x31`, `.x50`–`.x52`, `.x8x`, `.x93`–`.x97` | GAEB DA XML |
| `.xlsx` | Excel |

### `gaeb export` – Excel-Export

```bash
gaeb export ausschreibung.x83 ausgabe.xlsx
gaeb export ausschreibung.d83 ausgabe.xlsx --langtext
gaeb export ausschreibung.d83 ausgabe.xlsx --encoding cp850
```

Exportiert ein LV als strukturierte Excel-Datei mit Deckblatt und Positionstabelle.
Erfordert `pip install gaeb[excel]`.

### `gaeb diff` – Zwei LVs vergleichen

```bash
gaeb diff ausschreibung.x83 angebot.x84
gaeb diff alt.d83 neu.d83 --encoding cp850
```

Zeigt gelöschte, neue und geänderte Positionen mit Feldvergleich und finanzieller Zusammenfassung.

### `gaeb validate` – XSD-Validierung

```bash
gaeb validate ausschreibung.x83
gaeb validate ausschreibung.x83 --phase 83
```

Validiert eine GAEB-DA-XML-Datei gegen das offizielle XSD-Schema.

> **Hinweis:** Die XSD-Schemas müssen separat heruntergeladen werden.
> Siehe [`gaeb/schemas/README.md`](https://github.com/Attackwave/gaeb-python/blob/main/gaeb/schemas/README.md).

## Unterstützte Phasen

| Bereich | Codes |
|---------|-------|
| Mengenermittlung | 31 |
| Kostenermittlung | 50, 51, 52 |
| Vergabe (Procurement) | 80–89, 83Z, 84Z, 86ZR, 86ZE |
| Handel / Handwerk | 93–97 |

## Lizenz

MIT – siehe [LICENSE](https://github.com/Attackwave/gaeb-python/blob/main/LICENSE)
