chore: sync project files
This commit is contained in:
198
INDEX.md
Executable file
198
INDEX.md
Executable file
@@ -0,0 +1,198 @@
|
||||
# 📑 PriceWatch - Index des fichiers
|
||||
|
||||
**Version** : 0.1.0 | **Date** : 2026-01-13
|
||||
|
||||
Ce fichier liste tous les fichiers du projet avec leur description.
|
||||
|
||||
---
|
||||
|
||||
## 📚 Documentation (7 fichiers)
|
||||
|
||||
| Fichier | Description |
|
||||
|---------|-------------|
|
||||
| **README.md** | Documentation principale du projet (installation, usage, architecture) |
|
||||
| **QUICKSTART.md** | Guide de démarrage rapide (commandes essentielles) |
|
||||
| **CLAUDE.md** | Guide pour futures instances de Claude Code |
|
||||
| **TODO.md** | Roadmap du projet (Phases 1-5) |
|
||||
| **CHANGELOG.md** | Historique des modifications (v0.1.0) |
|
||||
| **DELIVERY_SUMMARY.md** | Récapitulatif complet de livraison Phase 1 |
|
||||
| **TEST_FILES_README.md** | Guide des fichiers de test et maintenance sélecteurs |
|
||||
| **INDEX.md** | Ce fichier - Index de tous les fichiers du projet |
|
||||
|
||||
## ⚙️ Configuration (4 fichiers)
|
||||
|
||||
| Fichier | Description |
|
||||
|---------|-------------|
|
||||
| **pyproject.toml** | Configuration package Python + dépendances |
|
||||
| **scrap_url.yaml** | Configuration de scraping (URLs + options) |
|
||||
| **.gitignore** | Fichiers à ignorer par Git |
|
||||
| **PROJECT_SPEC.md** | Spécifications détaillées originales (français) |
|
||||
|
||||
## 🧪 Tests (3 fichiers)
|
||||
|
||||
| Fichier | Description |
|
||||
|---------|-------------|
|
||||
| **test_amazon.json** | Config de test Amazon (URLs, sélecteurs, valeurs attendues) |
|
||||
| **test_cdiscount.json** | Config de test Cdiscount (URLs, sélecteurs, valeurs attendues) |
|
||||
| **test_selectors.py** | Script de validation des sélecteurs |
|
||||
|
||||
## 🐍 Code source (18 modules Python)
|
||||
|
||||
### Core (4 modules)
|
||||
```
|
||||
pricewatch/app/core/
|
||||
├── schema.py Modèle ProductSnapshot (Pydantic) + validation
|
||||
├── logging.py Système de logs colorés
|
||||
├── io.py Lecture YAML / Écriture JSON + debug files
|
||||
└── registry.py Détection automatique stores
|
||||
```
|
||||
|
||||
### Scraping (2 modules)
|
||||
```
|
||||
pricewatch/app/scraping/
|
||||
├── http_fetch.py Récupération HTTP avec User-Agent rotation
|
||||
└── pw_fetch.py Récupération Playwright (anti-bot)
|
||||
```
|
||||
|
||||
### Stores (8 modules)
|
||||
```
|
||||
pricewatch/app/stores/
|
||||
├── base.py Classe abstraite BaseStore
|
||||
├── amazon/
|
||||
│ ├── store.py AmazonStore (match, parse, etc.)
|
||||
│ ├── selectors.yml Sélecteurs CSS/XPath Amazon
|
||||
│ └── fixtures/ Fixtures HTML (vide)
|
||||
└── cdiscount/
|
||||
├── store.py CdiscountStore (match, parse, etc.)
|
||||
├── selectors.yml Sélecteurs CSS/XPath Cdiscount
|
||||
└── fixtures/ Fixtures HTML (vide)
|
||||
```
|
||||
|
||||
### CLI (1 module)
|
||||
```
|
||||
pricewatch/app/cli/
|
||||
└── main.py CLI Typer avec 5 commandes
|
||||
```
|
||||
|
||||
### Tests (structure)
|
||||
```
|
||||
tests/
|
||||
├── core/ Tests core (à implémenter)
|
||||
├── scraping/ Tests scraping (à implémenter)
|
||||
└── stores/
|
||||
├── amazon/ Tests Amazon (à implémenter)
|
||||
└── cdiscount/ Tests Cdiscount (à implémenter)
|
||||
```
|
||||
|
||||
## 📦 Dossiers générés
|
||||
|
||||
| Dossier | Description |
|
||||
|---------|-------------|
|
||||
| **venv/** | Environnement virtuel Python |
|
||||
| **scraped/** | HTML et screenshots de debug |
|
||||
| **pricewatch.egg-info/** | Métadonnées du package installé |
|
||||
|
||||
## 📄 Fichiers générés
|
||||
|
||||
| Fichier | Description |
|
||||
|---------|-------------|
|
||||
| **scraped_store.json** | Résultats du scraping (généré par `pricewatch run`) |
|
||||
|
||||
---
|
||||
|
||||
## 🗺️ Guide de navigation
|
||||
|
||||
### Pour démarrer rapidement
|
||||
→ **QUICKSTART.md**
|
||||
|
||||
### Pour comprendre l'architecture
|
||||
→ **README.md** (section "Structure du projet")
|
||||
→ **CLAUDE.md** (section "Architecture")
|
||||
|
||||
### Pour les tests
|
||||
→ **TEST_FILES_README.md**
|
||||
→ **test_amazon.json** et **test_cdiscount.json**
|
||||
|
||||
### Pour les prochaines étapes
|
||||
→ **TODO.md** (Phases 2-5)
|
||||
|
||||
### Pour l'historique
|
||||
→ **CHANGELOG.md**
|
||||
|
||||
---
|
||||
|
||||
## 📊 Statistiques
|
||||
|
||||
```
|
||||
Code Python : 2328 lignes
|
||||
Modules Python : 18 fichiers
|
||||
Documentation : 8 fichiers Markdown
|
||||
Fichiers de test : 3 fichiers
|
||||
Fichiers config : 4 fichiers
|
||||
Stores supportés : 2 (Amazon, Cdiscount)
|
||||
Commandes CLI : 5 commandes
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Rechercher par fonctionnalité
|
||||
|
||||
### Scraping
|
||||
- HTTP → `pricewatch/app/scraping/http_fetch.py`
|
||||
- Playwright → `pricewatch/app/scraping/pw_fetch.py`
|
||||
- Fallback automatique → `pw_fetch.py` (fonction `fetch_with_fallback`)
|
||||
|
||||
### Parsing
|
||||
- Amazon → `pricewatch/app/stores/amazon/store.py`
|
||||
- Cdiscount → `pricewatch/app/stores/cdiscount/store.py`
|
||||
- Sélecteurs → `*/selectors.yml`
|
||||
|
||||
### Validation données
|
||||
- Modèle → `pricewatch/app/core/schema.py`
|
||||
- Enums → `schema.py` (StockStatus, FetchMethod, DebugStatus)
|
||||
|
||||
### Configuration
|
||||
- YAML → `scrap_url.yaml` (exemple)
|
||||
- Lecture → `pricewatch/app/core/io.py` (fonction `read_yaml_config`)
|
||||
|
||||
### Logging
|
||||
- Configuration → `pricewatch/app/core/logging.py`
|
||||
- Utilisation → `get_logger("module.name")` dans chaque module
|
||||
|
||||
### CLI
|
||||
- Point d'entrée → `pricewatch/app/cli/main.py`
|
||||
- Script entry point → `pyproject.toml` (section `[project.scripts]`)
|
||||
|
||||
### Tests
|
||||
- Structure → `tests/` (dossiers créés)
|
||||
- Fixtures → `stores/*/fixtures/` (vides)
|
||||
- Validation sélecteurs → `test_selectors.py`
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Commandes essentielles
|
||||
|
||||
```bash
|
||||
# Installation
|
||||
source venv/bin/activate
|
||||
pip install -e .
|
||||
playwright install chromium
|
||||
|
||||
# Vérification
|
||||
pricewatch doctor
|
||||
|
||||
# Tests
|
||||
python test_selectors.py test_amazon.json
|
||||
|
||||
# Scraping
|
||||
pricewatch run --yaml scrap_url.yaml --debug
|
||||
|
||||
# Voir les résultats
|
||||
cat scraped_store.json | python -m json.tool
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Dernière mise à jour** : 2026-01-13
|
||||
**Phase actuelle** : Phase 1 - CLI (✅ Complétée)
|
||||
**Prochaine phase** : Phase 2 - Base de données
|
||||
Reference in New Issue
Block a user