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.
|
- **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ů.
|
- **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.
|
- **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`.
|
- **JSON výstup**: Všechny příkazy podporují JSON formát pro programové zpracování pomocí přepínače `--json`.
|
||||||
|
|
||||||
## Požadavky
|
## 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-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`.
|
- `--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`.
|
- `--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í.
|
- `--json`: Výstup ve formátu JSON místo prostého textu pro programové zpracování.
|
||||||
|
|
||||||
### Příklady
|
### Příklady
|
||||||
@@ -125,19 +133,34 @@ Při každém spuštění programu:
|
|||||||
python src/cli.py --stats -c USD
|
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
|
```bash
|
||||||
python src/cli.py -c USD
|
python src/cli.py -c USD
|
||||||
```
|
```
|
||||||
|
|
||||||
13. **JSON výstup pro vyhledání kurzu**:
|
16. **JSON výstup pro vyhledání kurzu**:
|
||||||
```bash
|
```bash
|
||||||
python src/cli.py --get-rate 01.01.2025 -c USD --json
|
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
|
```bash
|
||||||
python src/cli.py --stats 2025 -c USD --json
|
python src/cli.py --validate --currency USD --year 2025 --json
|
||||||
```
|
```
|
||||||
|
|
||||||
## JSON formát
|
## 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
|
## 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.
|
- **Budoucí datum**: Program vrátí chybu, protože kurzy pro budoucí data ještě nebyly vydány.
|
||||||
|
|||||||
Reference in New Issue
Block a user