Skip to content

PopulationSim Dependency Update #186

@dhensle

Description

@dhensle

The Problem
PopulationSim currently relies on ActivitySim’s pipeline framework for data I/O and multiprocessing. As a result, they share many of the same core dependencies (e.g., pandas and numpy). However, as ActivitySim development has progressed, it has become increasingly incompatible with the current version of PopulationSim. As an interim solution, PopulationSim’s dependencies can be frozen or locked to only use a specific version of ActivitySim and related dependencies. However, this limits PopulationSim to an older and increasingly more out of date version of Python and requires install multiple versions of python if they wish to use both PopulationSim and ActivitySim.

Proposed Solution -- Remove the ActivitySim dependency from PopulationSim
ActivitySim has recently overhauled their underlying pipeline management system. Instead of trying to update the code to the newest version of ActivitySim's pipeline, it would be likely easier and more stable long term to decouple ActivitySim's internal pipeline from PopulationSim. Replacing it would be just the necessary pipeline components PopulationSim requires (much less than ActivitySim's requirements). We could take the code we need from the ActivitySim repo if required. The expected functionality would center primarily around data I/O and multiprocessing.

Updating Other Dependencies
Once the ActivitySim dependency has been decoupled, it will be much easier to update the remaining important dependencies (e.g. python, pandas, numpy, etc.) that PopulationSim has by not having to worry about whether that dependency has conflicts with ActivitySim.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions