-
Notifications
You must be signed in to change notification settings - Fork 22
Open
Labels
good first issueGood for newcomersGood for newcomers
Description
Refactor: Standardize Site class naming across platforms
Summary
Rename all platform Site classes to use descriptive names (e.g., CivicPlusSite) at the source, eliminating the need for aliasing in __init__.py files.
Problem
Some platforms define descriptive class names at the source, others use a generic Site and alias in __init__.py:
| Platform | Class Name in site.py |
Alias in __init__.py |
|---|---|---|
| Civic Plus | Site ❌ |
CivicPlusSite |
| Legistar | Site ❌ |
LegistarSite |
| Digital Tow Path | DigitalTowPathSite ✅ |
— |
| Granicus | GranicusSite ✅ |
— |
| Civic Clerk | CivicClerkSite ✅ |
— |
| PrimeGov | PrimeGovSite ✅ |
— |
Issues
- Inconsistent patterns — Hard to grep for class definitions
- Indirect imports — Aliasing in
__init__.pyadds indirection
Proposed Changes
- Rename
Site→CivicPlusSiteincivic_scraper/platforms/civic_plus/site.py - Rename
Site→LegistarSiteincivic_scraper/platforms/legistar/site.py - Update
__init__.pyfiles to use direct imports (remove aliasing) - Update any imports in
runner.pyand tests
Files to Modify
civic_scraper/platforms/civic_plus/site.pycivic_scraper/platforms/civic_plus/__init__.pycivic_scraper/platforms/legistar/site.pycivic_scraper/platforms/legistar/__init__.pycivic_scraper/platforms/digital_tow_path/site.pycivic_scraper/platforms/digital_tow_path/__init__.pycivic_scraper/runner.py- Related tests
Acceptance Criteria
- All platform Site classes have descriptive names at the source
- No
__init__.pyaliasing needed for Site classes - All imports updated throughout codebase
- All existing tests pass
- No breaking changes to public API (external imports still work via
__init__.pyre-exports)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
good first issueGood for newcomersGood for newcomers