Skip to content

Standardize Site class naming #225

@jakekara

Description

@jakekara

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

  1. Inconsistent patterns — Hard to grep for class definitions
  2. Indirect imports — Aliasing in __init__.py adds indirection

Proposed Changes

  1. Rename SiteCivicPlusSite in civic_scraper/platforms/civic_plus/site.py
  2. Rename SiteLegistarSite in civic_scraper/platforms/legistar/site.py
  3. Update __init__.py files to use direct imports (remove aliasing)
  4. Update any imports in runner.py and tests

Files to Modify

  • civic_scraper/platforms/civic_plus/site.py
  • civic_scraper/platforms/civic_plus/__init__.py
  • civic_scraper/platforms/legistar/site.py
  • civic_scraper/platforms/legistar/__init__.py
  • civic_scraper/platforms/digital_tow_path/site.py
  • civic_scraper/platforms/digital_tow_path/__init__.py
  • civic_scraper/runner.py
  • Related tests

Acceptance Criteria

  • All platform Site classes have descriptive names at the source
  • No __init__.py aliasing 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__.py re-exports)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions