Skip to content

Commit b86dcaf

Browse files
committed
Merge remote-tracking branch 'upstream/master' into J1
2 parents 355749e + ab0497d commit b86dcaf

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+3312
-860
lines changed

.github/workflows/build_and_test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
strategy:
2727
matrix:
2828
os: [ubuntu-latest, macos-latest, windows-latest]
29-
python-version: ["3.11", "3.12"]
29+
python-version: ["3.12", "3.13"]
3030

3131
steps:
3232
- name: Checkout
@@ -50,7 +50,7 @@ jobs:
5050
shell: bash -l {0}
5151
working-directory: ./
5252
run: |
53-
python -m pytest -m "not local" --cov=./ --cov-report=xml
53+
python -m pytest -m "not local and not benchmark" --cov=./ --cov-report=xml
5454
- name: Upload coverage to Codecov
5555
if: matrix.os == 'ubuntu-latest' && contains(github.repository, 'PSLmodels/OG-Core')
5656
uses: codecov/codecov-action@v4

.github/workflows/deploy_docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
miniconda-version: "latest"
2828
activate-environment: ogcore-dev
2929
environment-file: environment.yml
30-
python-version: "3.12"
30+
python-version: "3.13"
3131
auto-activate-base: false
3232

3333
- name: Build # Build Jupyter Book

.github/workflows/docs_check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
miniconda-version: "latest"
2626
activate-environment: ogcore-dev
2727
environment-file: environment.yml
28-
python-version: "3.12"
28+
python-version: "3.13"
2929
auto-activate-base: false
3030

3131
- name: Build # Build Jupyter Book

.github/workflows/publish_to_pypi.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
- name: Setup Python
1717
uses: actions/setup-python@v5
1818
with:
19-
python-version: "3.12"
19+
python-version: "3.13"
2020
- name: Build package
2121
run: make pip-package
2222
- name: Publish a Python distribution to PyPI

.gitignore

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,7 @@ envs/
4141
docs/book/_build/*
4242
docs/build/*
4343
*micro_data_*.pkl
44-
run_examples/run_example_plots/*
45-
run_examples/OUTPUT_BASELINE/*
46-
run_examples/OUTPUT_REFORM/*
47-
run_examples/ogcore_example_output.csv
44+
examples/OG-Core-Example/*
4845
ogcore/tests/test_io_data/tax_func_loop_inputs_large.pkl
4946
ogcore/tests/baseline/*
5047
ogcore/tests/reform/*

CHANGELOG.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,76 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

88

9+
## [0.14.10] - 2025-09-11 12:00:00
10+
11+
### Added
12+
13+
- Fixes nonconformable matrices in `TPI.py` introduced in version 0.14.9 ((PR #1054)[https://github.com/PSLmodels/OG-Core/pull/1054])
14+
15+
## [0.14.9] - 2025-09-10 20:00:00
16+
17+
### Added
18+
19+
- Fixes `replacement_rate_adjustment` parameter in the steady state ((PR #1053)[https://github.com/PSLmodels/OG-Core/pull/1053])
20+
- Adds some saved output to `tpi_vars.pkl` object ((PR #1054)[https://github.com/PSLmodels/OG-Core/pull/1054])
21+
22+
## [0.14.8] - 2025-08-26 12:00:00
23+
24+
### Added
25+
26+
- Adds a complete benchmark suite for measuring and optimizing Dask performance in OG-Core, with particular focus on Windows performance issues.
27+
- New and updated files:
28+
- tests/test_dask_benchmarks.py: Mock benchmark tests with synthetic workloads
29+
- tests/test_real_txfunc_benchmarks.py: Real-world tax function benchmarks
30+
- tests/run_benchmarks.py: Automated benchmark runner with reporting
31+
- tests/BENCHMARK_README.md: Comprehensive documentation and usage guide
32+
- pytest.ini: Updated with benchmark test markers
33+
- Key features:
34+
- Platform-specific optimization tests (Windows, macOS, Linux)
35+
- Memory usage and compute time benchmarking
36+
- Baseline establishment and performance regression detection
37+
- Comparison of different Dask schedulers and client configurations
38+
- Real tax function estimation performance measurement
39+
- Automated identification of optimal Dask settings per platform
40+
- Benefits:
41+
- Establishes performance baselines before optimization work
42+
- Identifies Windows-specific Dask performance bottlenecks
43+
- Provides automated regression detection for future changes
44+
- Enables data-driven optimization decisions
45+
- Supports continuous performance monitoring
46+
- Usage:
47+
- `python tests/run_benchmarks.py # Run all benchmarks`
48+
- `python tests/run_benchmarks.py --quick # Quick benchmarks only`
49+
- `python tests/run_benchmarks.py --save-baseline # Save performance baseline`
50+
- `python tests/run_benchmarks.py --compare-baseline # Compare against baseline`
51+
- 🤖 Generated with help from Claude Code
52+
53+
## [0.14.7] - 2025-08-21 17:00:00
54+
55+
### Added
56+
57+
- Refactor calls to dask in `SS.py` and `TPI.py`. See PR [#1048](https://github.com/PSLmodels/OG-Core/pull/1048)
58+
59+
## [0.14.6] - 2025-08-15 14:00:00
60+
61+
### Added
62+
63+
- Removes `initial_guess_w_SS` in `default_parameters.json`
64+
- Updates environment and testing to cover Python 3.13
65+
66+
## [0.14.5] - 2025-07-08 22:00:00
67+
68+
### Added
69+
70+
- Increases the maximum value of `initial_guess_TR_SS` in `default_parameters.json`
71+
72+
## [0.14.4] - 2025-06-23 18:00:00
73+
74+
### Added
75+
76+
- Fixes the sign error on the remittances `RM` term in `aggregates.py`, `resource_constraint()` function.
77+
- Added a test with positive remittances to `test_aggregates.py`, `test_resource_constraint()` function.
78+
979
## [0.14.3] - 2025-04-25 10:00:00
1080

1181
### Added
@@ -383,6 +453,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
383453
- Any earlier versions of OG-USA can be found in the [`OG-Core`](https://github.com/PSLmodels/OG-Core) repository [release history](https://github.com/PSLmodels/OG-Core/releases) from [v.0.6.4](https://github.com/PSLmodels/OG-Core/releases/tag/v0.6.4) (Jul. 20, 2021) or earlier.
384454

385455

456+
[0.14.10]: https://github.com/PSLmodels/OG-Core/compare/v0.14.9...v0.14.10
457+
[0.14.9]: https://github.com/PSLmodels/OG-Core/compare/v0.14.8...v0.14.9
458+
[0.14.8]: https://github.com/PSLmodels/OG-Core/compare/v0.14.7...v0.14.8
459+
[0.14.7]: https://github.com/PSLmodels/OG-Core/compare/v0.14.6...v0.14.7
460+
[0.14.6]: https://github.com/PSLmodels/OG-Core/compare/v0.14.5...v0.14.6
461+
[0.14.5]: https://github.com/PSLmodels/OG-Core/compare/v0.14.4...v0.14.5
462+
[0.14.4]: https://github.com/PSLmodels/OG-Core/compare/v0.14.3...v0.14.4
386463
[0.14.3]: https://github.com/PSLmodels/OG-Core/compare/v0.14.2...v0.14.3
387464
[0.14.2]: https://github.com/PSLmodels/OG-Core/compare/v0.14.1...v0.14.2
388465
[0.14.1]: https://github.com/PSLmodels/OG-Core/compare/v0.14.0...v0.14.1

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
| | |
44
| --- | --- |
55
| Org | [![PSL cataloged](https://img.shields.io/badge/PSL-cataloged-a0a0a0.svg)](https://www.PSLmodels.org) [![OS License: CCO-1.0](https://img.shields.io/badge/OS%20License-CCO%201.0-yellow)](https://github.com/PSLmodels/OG-Core/blob/master/LICENSE) [![Jupyter Book Badge](https://jupyterbook.org/badge.svg)](https://pslmodels.github.io/OG-Core/) |
6-
| Package | [![Python 3.11](https://img.shields.io/badge/python-3.11-blue.svg)](https://www.python.org/downloads/release/python-31111/) [![Python 3.12](https://img.shields.io/badge/python-3.12-blue.svg)](https://www.python.org/downloads/release/python-3129/) [![PyPI Latest Release](https://img.shields.io/pypi/v/ogcore.svg)](https://pypi.org/project/ogcore/) [![PyPI Downloads](https://img.shields.io/pypi/dm/ogcore.svg?label=PyPI%20downloads)](https://pypi.org/project/ogcore/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) |
6+
| Package | [![Python 3.12](https://img.shields.io/badge/python-3.12-blue.svg)](https://www.python.org/downloads/release/python-3129/) [![Python 3.13](https://img.shields.io/badge/python-3.13-blue.svg)](https://www.python.org/downloads/release/python-3137/) [![PyPI Latest Release](https://img.shields.io/pypi/v/ogcore.svg)](https://pypi.org/project/ogcore/) [![PyPI Downloads](https://img.shields.io/pypi/dm/ogcore.svg?label=PyPI%20downloads)](https://pypi.org/project/ogcore/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) |
77
| Testing | ![example event parameter](https://github.com/PSLmodels/OG-Core/actions/workflows/build_and_test.yml/badge.svg?branch=master) ![example event parameter](https://github.com/PSLmodels/OG-Core/actions/workflows/deploy_docs.yml/badge.svg?branch=master) ![example event parameter](https://github.com/PSLmodels/OG-Core/actions/workflows/check_black.yml/badge.svg?branch=master) [![Codecov](https://codecov.io/gh/PSLmodels/OG-Core/branch/master/graph/badge.svg)](https://codecov.io/gh/PSLmodels/OG-Core) |
88

99

docs/book/citations.bib

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,17 @@ @TECHREPORT{DEP:2015
9696
month = {December},
9797
}
9898

99+
@ARTICLE{DeBackerEtAl:2019,
100+
AUTHOR = {Jason DeBacker and Richard W. Evans and Kerk L. Phillips},
101+
TITLE = {Integrating Microsimulation Models of Tax Policy into a {DGE} Macroeconomic Model},
102+
JOURNAL = {Public Finance Review},
103+
YEAR = {2019},
104+
volume = {47},
105+
number = {2},
106+
month = {March},
107+
pages = {207-275},
108+
}
109+
99110
@Article{Ferenstein:2018,
100111
author={Gregory Ferenstein},
101112
title={Can The {U.S.} Afford A Massive Wage Subsidy? A Macroeconomic Simulation},

docs/book/content/intro/intro.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
| | |
55
| --- | --- |
66
| Org | [![PSL cataloged](https://img.shields.io/badge/PSL-cataloged-a0a0a0.svg)](https://www.PSLmodels.org) [![OS License: CCO-1.0](https://img.shields.io/badge/OS%20License-CCO%201.0-yellow)](https://github.com/PSLmodels/OG-Core/blob/master/LICENSE) [![Jupyter Book Badge](https://jupyterbook.org/badge.svg)](https://pslmodels.github.io/OG-Core/) |
7-
| Package | [![Python 3.11](https://img.shields.io/badge/python-3.11-blue.svg)](https://www.python.org/downloads/release/python-31111/) [![Python 3.12](https://img.shields.io/badge/python-3.12-blue.svg)](https://www.python.org/downloads/release/python-3129/) [![PyPI Latest Release](https://img.shields.io/pypi/v/ogcore.svg)](https://pypi.org/project/ogcore/) [![PyPI Downloads](https://img.shields.io/pypi/dm/ogcore.svg?label=PyPI%20downloads)](https://pypi.org/project/ogcore/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) |
7+
| Package | [![Python 3.12](https://img.shields.io/badge/python-3.12-blue.svg)](https://www.python.org/downloads/release/python-3129/) [![Python 3.13](https://img.shields.io/badge/python-3.13-blue.svg)](https://www.python.org/downloads/release/python-3137/) [![PyPI Latest Release](https://img.shields.io/pypi/v/ogcore.svg)](https://pypi.org/project/ogcore/) [![PyPI Downloads](https://img.shields.io/pypi/dm/ogcore.svg?label=PyPI%20downloads)](https://pypi.org/project/ogcore/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) |
88
| Testing | ![example event parameter](https://github.com/PSLmodels/OG-Core/actions/workflows/build_and_test.yml/badge.svg?branch=master) ![example event parameter](https://github.com/PSLmodels/OG-Core/actions/workflows/deploy_docs.yml/badge.svg?branch=master) ![example event parameter](https://github.com/PSLmodels/OG-Core/actions/workflows/check_black.yml/badge.svg?branch=master) [![Codecov](https://codecov.io/gh/PSLmodels/OG-Core/branch/master/graph/badge.svg)](https://codecov.io/gh/PSLmodels/OG-Core) |
99

1010
`OG-Core` is the core logic for a country-agnostic overlapping-generations (OG) model of an economy that allows for dynamic general equilibrium analysis of fiscal policy. The source code is openly available for download or collaboration at the GitHub repository [www.github.com/PSLmodels/OG-Core](https://github.com/PSLmodels/OG-Core), or you can click on the GitHub icon at the top right of this page.

0 commit comments

Comments
 (0)