Skip to content

Phase 10A Populationsim Updates #192

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 60 commits into
base: master
Choose a base branch
from

Conversation

nick-fournier-rsg
Copy link

@nick-fournier-rsg nick-fournier-rsg commented Jun 4, 2025

This is a substantial revision to the PopulationSim code. Major changes include:

  • Refactored PopulationSim to not depend on legacy ActivitySim
  • Removal of unused dependencies via legacy ActivitySim import
  • Updated critical dependencies of Numpy and Pandas. Now shares versions with current ActivitySim.
  • Updated Python and tested with multiple python versions 3.9, 3.10, 3.11, 3.12
  • Stabilized existing tests and incorporated into GHA CI testing
  • Extended tests to validate results, not just run without error
  • Re-wrote list balancer functions into numba JIT compiled functions (5x-10x speed improvement)
  • Reimplemented optional CVXPY integerization backend
  • Added tests for numba functions and integerization options
  • Resolved repop bug for CALM example
  • Added integerization solver timeout override parameter optional config.
  • Modernized Python packaging to use pyproject.toml

Issues Addressed:

@nick-fournier-rsg nick-fournier-rsg changed the title Develop Phase 10A Populationsim Updates Jun 12, 2025
@nick-fournier-rsg nick-fournier-rsg marked this pull request as ready for review June 12, 2025 21:27
@jpn-- jpn-- requested a review from Copilot June 17, 2025 18:22
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR removes legacy example scripts and seed data, modernizes documentation and packaging, and adds IDE and CI configurations.

  • Removed outdated example run scripts and seed data CSVs
  • Updated documentation formatting, renamed config keys, and added CLI usage to README
  • Added VSCode settings, pre-commit hooks, Python version pinning, and GitHub Actions CI

Reviewed Changes

Copilot reviewed 192 out of 192 changed files in this pull request and generated no comments.

Show a summary per file
File Description
example_test/run_populationsim.py Removed old example runner script
example_test/data2/seed_persons.csv Deleted legacy seed persons data
example_test/data2/seed_households.csv Deleted legacy seed households data
example_test/configs2/controls.csv Deleted legacy controls configuration
example_survey_weighting/run_populationsim.py Removed survey-weighting example runner
example_calm_repop/run_populationsim.py Removed CALM repop example runner
example_calm/run_populationsim.py Removed CALM example runner
docs/validation.rst Trimmed trailing blank lines
docs/software.rst Removed trailing whitespace
docs/conf.py Reformatted quotes and list syntax
docs/application_configuration.rst Renamed column_map to rename_columns
README.md Added CLI usage section
MANIFEST.in Removed graft directives for example and data files
.vscode/settings.json Added VSCode testing and linter settings
.vscode/launch.json Added VSCode debug configuration
.python-version Pinned Python version to 3.12
.pre-commit-config.yaml Introduced pre-commit hooks for formatting and linting
.github/workflows/python-package.yml Added CI workflow for multi-version testing
Comments suppressed due to low confidence (4)

README.md:21

  • The README references an examples/ directory, but the legacy example scripts and data have been removed. Either update the path to the new examples location or remove this reference to avoid confusion.
See the [examples directory](examples/) for more information on using the command-line interface.

.github/workflows/python-package.yml:25

  • [nitpick] Using actions/setup-python@v4 is more standard and widely supported than astral-sh/setup-uv. Consider switching to the official action to simplify setup and improve community familiarity.
      uses: astral-sh/setup-uv@v5

.vscode/settings.json:1

  • [nitpick] Committing IDE-specific configuration can clutter the repository and affect other contributors. Consider adding .vscode/ to .gitignore or isolating personal settings.
{

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.

1 participant