Skip to content

Conversation

@jccamel
Copy link

@jccamel jccamel commented Dec 22, 2025

No description provided.

Extract geofinder3 component from OpenICGC/QgisPlugin as standalone library.

Removed:
- QGIS plugin infrastructure (UI, resources, dependencies)
- 9 directories with 200+ QGIS-specific files
- Cadastral search functionality
- Map visualization and download tools

Added:
- Modern Python package structure (pyproject.toml)
- MCP server for AI integration (Claude Desktop)
- Comprehensive test suite with pytest
- Extensive documentation (README-*.md, COOKBOOK.md, FORK.md)
- Environment-based configuration (.env support)
- GPL-2.0 copyright headers with fork attribution

Modernized:
- HTTP client: urllib → requests with retry logic
- Error handling: generic → specific exception classes
- Dependencies: QGIS stack → minimal (stdlib + optional pyproj)
- Structure: QGIS plugin → standard Python package

Based on geofinder3 component from OpenICGC/QgisPlugin
Original authors: ICGC (Institut Cartogràfic i Geològic de Catalunya)
Maintained by: Goalnefesh

See FORK.md for complete attribution and changes.
…ons, Pydantic v2

Major Features:
- Full async migration with httpx (replaced requests)
- Dependency injection for shared HTTP clients
- Custom exception hierarchy (GeoFinderError base class)
- Pydantic v2 models with strict validation
- Enhanced address parsing (s/n support, natural format)
- Response metadata (time_ms tracking)
- Batch processing utilities with concurrency control
- Exponential backoff retry strategy
- Complete test suite (89 tests, 93.7% passing)

New Components:
- geofinder/exceptions.py: Custom exception hierarchy
- geofinder/models/: Pydantic v2 models (GeoResult, GeoResponse)
- geofinder/utils/: Async-safe LRU cache with TTL
- CHANGELOG.md: Version history and migration guide
- 11 new test files covering all features

Breaking Changes from v1.4.0:
- All core methods now async by default
- Use _sync wrappers for backward compatibility
- Results are Pydantic models (dict-compatible via __getitem__)
- Removed geofinder3/ legacy directory

Documentation:
- Updated all README files with v2.2.0 features
- Added COOKBOOK.md examples for new features
- Enhanced MCP server documentation
- Complete API reference in README-ARQ.md

See CHANGELOG.md for detailed migration guide.
- Cambiar self.model_fields a self.__class__.model_fields en GeoResult
- Elimina advertencia PydanticDeprecatedSince211
- Mantiene funcionalidad completa de acceso tipo diccionario
- Permite capturar errores específicos por query en operaciones batch
- Mejora la resiliencia del procesamiento por lotes con ignore_errors=True
- Evitar re-lanzamiento de excepciones cuando ignore_errors=True
- Garantizar que query_to_response siempre se popula con error info
- Mejorar robustez del procesamiento batch ante fallos parciales
- Implementar pattern matching en params y URL para mocks independientes del orden
- Soportar verificación de parámetros HTTP separados (kwargs params)
- Simplificar configuración de mocks para tests de batch concurrentes
- Crear test_batch_failures.py para verificar manejo de errores mixtos
- Refactorizar test_retry.py para usar pelias_mock fixture
- Validar que find_batch captura errores individuales correctamente
- Añadir GUIA_PYPI.md a .gitignore
- El archivo permanece localmente pero no se rastrea en Git
@jccamel
Copy link
Author

jccamel commented Dec 25, 2025

Perdó, vaig marcar 'Request Changes' per error

@icgcaadell
Copy link
Contributor

Hola, pel teu comentari entenc que vas fer el pull request per error, cap problema, tanco la petició. Si tens qualsevol dubte pots posar-te en contacte amb nosaltres. Salutacions

@icgcaadell icgcaadell closed this Jan 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants