school-choice
This Python implementation tries to model school choice and resulting school segregation based on the work of Schelling (1971) and Stoica & Flache (2014).
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.8%) to scientific vocabulary
Repository
This Python implementation tries to model school choice and resulting school segregation based on the work of Schelling (1971) and Stoica & Flache (2014).
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
- Releases: 3
Metadata Files
README.md
Computational Modelling of Primary School Segregation (COMPASS)
This Python implementation tries to model school choice and resulting school segregation based on the work of Schelling (1971) and Stoica & Flache (2014).
Usage
Install and Run
It's required to firstly install GDAL on your computer.
To install the package, run pip install compass-school.
To run a demo with web-based GUI, run python run.py from the root directory of the project. This will start a local server to automatically open your web browser and show the program as a webpage. If not seeing the webpage open, manually input http://localhost:5004/ in the link bar.
Update Documentation
Install pdoc3 if you haven't already done so. Browse to the compassproject folder in your terminal and run pdoc3 --html --force --output-dir docs compass. The documentation should be updated now.
Overview
The repository consists of: * run.py: a script that runs the model interactively with a visualisation (browser) * testrun.py: a test script (work in progress) * household.py: the household class * student.py: the student class * neighbourhood.py: the neighbourhood class * school.py the school class * allocator.py: allocates the students to their school of choice * agents_base.py: overarching agent used for inheritance * model.py: initialises the entire system and all of its components * parameters.py: contains all the parameter values for the simulation * scheduler.py: takes care of the activation, sequence and placement of all agents * visualisation.py: browser based visualisation * utils.py: containing all measurements * functions.py: containing some math functions to be used by the classes
Simulations
Information on how to run the code here.
Testing and development
Setup a virtualenv with the required dependencies.
bash
$ python -m venv env
$ . env/bin/activate
$ pip install -r requirements.txt
Install the package locally (in developement, or editing mode):
bash
$ pip install -e .
Then run the tests with:
bash
$ pytest
Profiling
Some profiling result can be found in this notebook. Also, some scaling graphs can be found in this notebook.
GitHub Events
Total
Last Year
Committers
Last synced: over 3 years ago
All Time
- Total Commits: 95
- Total Committers: 3
- Avg Commits per committer: 31.667
- Development Distribution Score (DDS): 0.411
Top Committers
| Name | Commits | |
|---|---|---|
| Jisk Attema | j****a@e****l | 56 |
| jiqicn | q****n@g****m | 33 |
| Ji Qi | 9****n@u****m | 6 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 17
- Total pull requests: 1
- Average time to close issues: 21 days
- Average time to close pull requests: 6 minutes
- Total issue authors: 2
- Total pull request authors: 1
- Average comments per issue: 2.35
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- jiqicn (16)
- ericdignum (1)
Pull Request Authors
- jiqicn (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- pypi 3 last-month
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 3
- Total maintainers: 2
pypi.org: school-choice
This Python implementation tries to model school choice and resulting school segregation based on the work of Schelling (1971) and Stoica & Flache (2014).
- Homepage: https://github.com/ODISSEI-School-Choice/school-choice
- Documentation: https://school-choice.readthedocs.io/
- License: apache-2.0
- Status: removed
-
Latest release: 1.0.1
published almost 4 years ago
Rankings
pypi.org: compass-school
This Python implementation tries to model school choice and resulting school segregation based on the work of Schelling (1971) and Stoica & Flache (2014).
- Homepage: https://github.com/ODISSEI-School-Choice/school-choice
- Documentation: https://compass-school.readthedocs.io/
- License: apache-2.0
-
Latest release: 1.1.0
published over 3 years ago
Rankings
Dependencies
- hypothesis ^6.75.6 develop
- pdoc ^13.1.1 develop
- pytest ^7.3.1 develop
- dask ^2023.5.1
- distributed ^2023.5.1
- geopandas ^0.13.0
- ijson ^3.2.0.post0
- mesa ^1.2.1
- python >=3.10, <3.12
- scikit-learn ^1.2.2
- scipy ^1.10.1
- shapely ^2.0.1
- bokeh ^3.1.1 viz
- seaborn ^0.12.2 viz
- Mesa ==1.1.0
- Shapely ==1.8.4
- bokeh ==2.4.3
- dask ==2022.9.2
- distributed ==2022.9.2
- geopandas ==0.11.1
- hypothesis ==6.56.2
- ijson ==3.1.4
- pytest ==7.1.3
- scikit_learn ==1.1.2
- scipy ==1.9.2
- seaborn ==0.12.0
- Mesa *
- bokeh *
- dask *
- distributed *
- geopandas *
- hypothesis *
- ijson *
- pytest *
- scikit_learn *
- scipy *
- seaborn *
- shapely *