Metadata-Version: 2.4
Name: pyquity
Version: 1.8.0
Summary: Python toolkit for building and analyzing multimodal street and transit networks with a focus on accessibility and distributive equity
Author: pannawatr
License: MIT
Project-URL: Repository, https://github.com/pannawatr/pyquity
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: osmnx>=2.0.0
Requires-Dist: geopandas>=1.0.0
Requires-Dist: shapely>=2.0.0
Requires-Dist: networkx>=3.2
Requires-Dist: numpy>=1.23
Requires-Dist: pandas>=2.0
Requires-Dist: scipy>=1.10
Requires-Dist: matplotlib>=3.7
Requires-Dist: pyproj>=3.5
Requires-Dist: partridge>=1.1
Requires-Dist: geopy>=2.4
Requires-Dist: scikit-learn>=1.6
Dynamic: license-file

## PyQuity
PyQuity is a compact Python toolkit for building and analyzing multimodal street and transit networks with a focus on accessibility and distributive equity. Quickly generate graphs and grids, attach POIs/GTFS, compute route-based accessibility, and evaluate equity (sufficientarianism, egalitarianism, utilitarianism) with seamless GeoPandas/NetworkX/OSMnx integration.

## Installation
PyQuity can be installed via PyPI:
```bash
pip install pyquity
```

## Examples
Graph Construction
```python
import pyquity

# Create base graphs
G_walk = pyquity.graph_from_place('Barrie, Canada', network_type='walk')
G_bike = pyquity.graph_from_place('Barrie, Canada', network_type='bike')

# Create GTFS graph (GTFS zip file)
G_gtfs = pyquity.graph_from_gtfs('gtfs.zip')

# Combine base graphs with GTFS graph
MG_walk = pyquity.multimodal_graph(G_walk, G_gtfs)
MG_bike = pyquity.multimodal_graph(G_bike, G_gtfs)
```

Grid Construction
```python
# Create amenity
amenity = pyquity.amenity_from_place('Barrie, Canada', amenity_type='education')

# Create grid
grid = pyquity.grid_from_place('Barrie, Canada', grid_size=1000)

# Add amenity and micromobility into grid
grid = pyquity.amenity_in_grid(grid, amenity)
grid = pyquity.micromobility_in_grid(grid, micromobility_size=100)
```

Equity Construction
```python
# Create equity properties
equity = pyquity.Equity(MG_walk, MG_bike, grid, amenity)

# Measuring equity
grid = equity.sufficientarianism(served_time=15, weight='travel_time')
grid = equity.utilitarianism(served_time=15, weight='travel_time')
gini, lorenz = equity.egalitarianism(grid)
```
