docs: Update README with validation and record count features
- Add --validate command documentation with examples - Add --record-counts command documentation - Document new CLI arguments: --change-threshold, --no-adaptive, --gap-threshold - Add comprehensive JSON schema examples for validation features - Include trading days validation and record count examples - Update features list to include data validation capabilities - Add examples for adaptive threshold usage - Document multi-currency validation options Documentation now covers: - Complete validation command usage - Record count analysis by time periods - JSON output schemas for all new features - Adaptive learning configuration - Threshold customization options - Data quality scoring explanation All new functionality is now properly documented with examples and JSON schemas.
This commit is contained in:
85
README.md
85
README.md
@@ -18,6 +18,9 @@ Tento projekt je určen pro stahování a správu kurzů cizích měn vůči če
|
||||
- **Generování reportů**: Lze vygenerovat report kurzů pro zadaný rok, měsíc nebo časové období včetně dopočítaných kurzů pro dny, kdy ve vstupních datech neexistovali.
|
||||
- **Správné dopočítání kurzů**: Program správně aplikuje pravidla ČNB pro dopočítání kurzů pro víkendy a svátky jak při vyhledávání (`--get-rate`), tak při generování reportů.
|
||||
- **Výpočet Jednotného kurzu**: Lze vypočítat 'Jednotný kurz' pro daňové účely podle metodiky ČNB jako aritmetický průměr kurzů k posledním dnům každého měsíce v roce.
|
||||
- **Validace dat**: Program umí validovat data pro konzistenci, detekovat změny kurzů přesahující prahové hodnoty, kontrolovat počet obchodních dnů a analyzovat časové mezery v datech.
|
||||
- **Analýza počtu záznamů**: Lze zobrazit počty záznamů podle různých časových období (týden, měsíc, čtvrtletí, pololetí, rok).
|
||||
- **Adaptivní prahy**: Systém se učí z historických dat a automaticky upravuje prahy pro detekci anomálií.
|
||||
- **JSON výstup**: Všechny příkazy podporují JSON formát pro programové zpracování pomocí přepínače `--json`.
|
||||
|
||||
## Požadavky
|
||||
@@ -65,6 +68,11 @@ Při každém spuštění programu:
|
||||
- `--report-year ROK [--report-month MESIC]`: Vygeneruje report kurzů pro zadaný rok (a případně měsíc). Vyžaduje `-c` nebo `--currency`.
|
||||
- `--report-period ZACATEK KONEC`: Vygeneruje report kurzů pro zadané časové období. Vyžaduje `-c` nebo `--currency`.
|
||||
- `--stats [ROK]`: Vypočítá 'Jednotný kurz' pro daňové účely podle metodiky ČNB. Pokud je zadán rok, vytvoří kurz pro konkrétní rok. Pokud není rok zadán, vytvoří kurzy pro všechny roky s dostupnými daty. Vyžaduje `-c` nebo `--currency`.
|
||||
- `--validate`: Validuje data pro měnu nebo všechny měny. Zkontroluje konzistenci kurzů, počet obchodních dnů a detekuje možné chyby.
|
||||
- `--record-counts`: Zobrazí počet záznamů podle časových období (týden, měsíc, čtvrtletí, pololetí, rok). Vyžaduje `-c` nebo `--currency`.
|
||||
- `--change-threshold PRAH`: Práh pro detekci změn kurzů v procentech (výchozí: 1.0).
|
||||
- `--no-adaptive`: Vypne adaptivní učení prahů na základě historických dat.
|
||||
- `--gap-threshold DNY`: Maximální přijatelná mezera v pracovních dnech (výchozí: 3).
|
||||
- `--json`: Výstup ve formátu JSON místo prostého textu pro programové zpracování.
|
||||
|
||||
### Příklady
|
||||
@@ -125,19 +133,34 @@ Při každém spuštění programu:
|
||||
python src/cli.py --stats -c USD
|
||||
```
|
||||
|
||||
12. **Získání posledního dostupného kurzu USD**:
|
||||
12. **Validace dat pro měnu USD za rok 2025**:
|
||||
```bash
|
||||
python src/cli.py --validate --currency USD --year 2025
|
||||
```
|
||||
|
||||
13. **Validace všech měn s vlastními prahy**:
|
||||
```bash
|
||||
python src/cli.py --validate --change-threshold 0.5 --gap-threshold 2
|
||||
```
|
||||
|
||||
14. **Zobrazení počtu záznamů podle časových období pro USD**:
|
||||
```bash
|
||||
python src/cli.py --record-counts --currency USD --year 2025
|
||||
```
|
||||
|
||||
15. **Získání posledního dostupného kurzu USD**:
|
||||
```bash
|
||||
python src/cli.py -c USD
|
||||
```
|
||||
|
||||
13. **JSON výstup pro vyhledání kurzu**:
|
||||
16. **JSON výstup pro vyhledání kurzu**:
|
||||
```bash
|
||||
python src/cli.py --get-rate 01.01.2025 -c USD --json
|
||||
```
|
||||
|
||||
14. **JSON výstup pro výpočet Jednotného kurzu**:
|
||||
17. **JSON výstup pro validaci dat**:
|
||||
```bash
|
||||
python src/cli.py --stats 2025 -c USD --json
|
||||
python src/cli.py --validate --currency USD --year 2025 --json
|
||||
```
|
||||
|
||||
## JSON formát
|
||||
@@ -196,6 +219,60 @@ Při použití přepínače `--json` program vrací strukturovaná data ve form
|
||||
}
|
||||
```
|
||||
|
||||
### Validace dat
|
||||
```json
|
||||
{
|
||||
"currency": "USD",
|
||||
"validation_year": 2025,
|
||||
"adaptive_analysis": {
|
||||
"adaptive_threshold": 1.5,
|
||||
"base_threshold": 1.0,
|
||||
"volatility_percent": 0.24,
|
||||
"data_points": 62
|
||||
},
|
||||
"price_change_violations": [
|
||||
{
|
||||
"date": "06.01.2025",
|
||||
"change_percent": 1.19,
|
||||
"severity": "minor"
|
||||
}
|
||||
],
|
||||
"temporal_gaps": [],
|
||||
"trading_days_validation": {
|
||||
"expected_trading_days": 251,
|
||||
"actual_data_points": 251,
|
||||
"discrepancy_days": 0,
|
||||
"data_completeness_percent": 100.0
|
||||
},
|
||||
"record_counts_by_period": {
|
||||
"2025": {
|
||||
"year": 251,
|
||||
"half_year": {"H1": 124, "H2": 127},
|
||||
"quarter": {"Q1": 63, "Q2": 61, "Q3": 66, "Q4": 61},
|
||||
"month": {"01": 22, "02": 20, "03": 21},
|
||||
"week": {"W01": 5, "W02": 5}
|
||||
}
|
||||
},
|
||||
"data_quality_score": 95
|
||||
}
|
||||
```
|
||||
|
||||
### Počty záznamů podle období
|
||||
```json
|
||||
{
|
||||
"currency": "USD",
|
||||
"record_counts": {
|
||||
"2025": {
|
||||
"year": 251,
|
||||
"half_year": {"H1": 124, "H2": 127},
|
||||
"quarter": {"Q1": 63, "Q2": 61, "Q3": 66, "Q4": 61},
|
||||
"month": {"01": 22, "02": 20, "03": 21, "04": 20},
|
||||
"week": {"W01": 5, "W02": 5, "W03": 5}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Chování při různých časech a datumech
|
||||
|
||||
- **Budoucí datum**: Program vrátí chybu, protože kurzy pro budoucí data ještě nebyly vydány.
|
||||
|
||||
Reference in New Issue
Block a user