Skip to content

Commit

Permalink
Merge pull request #969 from jdebacker/py312
Browse files Browse the repository at this point in the history
Merging
  • Loading branch information
rickecon authored Aug 20, 2024
2 parents 8bbaa26 + 118479e commit cdb21cb
Show file tree
Hide file tree
Showing 13 changed files with 87 additions and 34 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.10", "3.11"]
python-version: ["3.11", "3.12"]

steps:
- name: Checkout
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy_docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
miniforge-variant: Mambaforge
activate-environment: ogcore-dev
environment-file: environment.yml
python-version: "3.11"
python-version: "3.12"
auto-activate-base: false

- name: Build # Build Jupyter Book
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs_check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
miniforge-variant: Mambaforge
activate-environment: ogcore-dev
environment-file: environment.yml
python-version: "3.11"
python-version: "3.12"
auto-activate-base: false

- name: Build # Build Jupyter Book
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish_to_pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
python-version: "3.12"
- name: Build package
run: make pip-package
- name: Publish a Python distribution to PyPI
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.12.0] - 2024-08-20 12:00:00

### Added

- Support for Python 3.12

## [0.11.17] - 2024-08-18 12:00:00

### Added
Expand Down Expand Up @@ -302,6 +308,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Version [0.7.0] on August 30, 2021 was the first time that the OG-USA repository was detached from all of the core model logic, which was named OG-Core. Before this version, OG-USA was part of what is now the [`OG-Core`](https://github.com/PSLmodels/OG-Core) repository. In the next version of OG-USA, we adjusted the version numbering to begin with 0.1.0. This initial version of 0.7.0, was sequential from what OG-USA used to be when the OG-Core project was called OG-USA.
- 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.

[0.12.0]: https://github.com/PSLmodels/OG-Core/compare/v0.11.17...v0.12.0
[0.11.17]: https://github.com/PSLmodels/OG-Core/compare/v0.11.16...v0.11.17
[0.11.16]: https://github.com/PSLmodels/OG-Core/compare/v0.11.15...v0.11.16
[0.11.15]: https://github.com/PSLmodels/OG-Core/compare/v0.11.14...v0.11.15
Expand Down
2 changes: 1 addition & 1 deletion environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: ogcore-dev
channels:
- conda-forge
dependencies:
- python>=3.7.7, <3.12
- python>=3.7.7, <3.13
- numpy
- ipython
- setuptools
Expand Down
2 changes: 1 addition & 1 deletion ogcore/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@
from ogcore.txfunc import *
from ogcore.utils import *

__version__ = "0.11.17"
__version__ = "0.12.0"
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

setuptools.setup(
name="ogcore",
version="0.11.17",
version="0.12.0",
author="Jason DeBacker and Richard W. Evans",
license="CC0 1.0 Universal (CC0 1.0) Public Domain Dedication",
description="A general equilibrium overlapping generations model for fiscal policy analysis",
Expand All @@ -21,7 +21,7 @@
"ogcore": ["default_parameters.json", "OGcorePlots.mplstyle"]
},
include_packages=True,
python_requires=">=3.7.7, <3.12",
python_requires=">=3.7.7, <3.13",
install_requires=[
"numpy",
"scipy>=1.7.1",
Expand Down
Binary file added tests/test_io_data/model_params_baseline_v312.pkl
Binary file not shown.
47 changes: 33 additions & 14 deletions tests/test_output_plots.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,18 @@
base_params = utils.safe_read_pickle(
os.path.join(CUR_PATH, "test_io_data", "model_params_baseline.pkl")
)
else:
elif sys.version_info[1] == 11:
base_params = utils.safe_read_pickle(
os.path.join(
CUR_PATH, "test_io_data", "model_params_baseline_v311.pkl"
)
)
else:
base_params = utils.safe_read_pickle(
os.path.join(
CUR_PATH, "test_io_data", "model_params_baseline_v312.pkl"
)
)
reform_ss = utils.safe_read_pickle(
os.path.join(CUR_PATH, "test_io_data", "SS_vars_reform.pkl")
)
Expand All @@ -38,10 +44,16 @@
reform_params = utils.safe_read_pickle(
os.path.join(CUR_PATH, "test_io_data", "model_params_reform.pkl")
)
else:
elif sys.version_info[1] == 11:
reform_params = utils.safe_read_pickle(
os.path.join(CUR_PATH, "test_io_data", "model_params_reform_v311.pkl")
)
else:
reform_params = utils.safe_read_pickle(
os.path.join(
CUR_PATH, "test_io_data", "model_params_baseline_v312.pkl"
)
)
reform_taxfunctions = utils.safe_read_pickle(
os.path.join(CUR_PATH, "test_io_data", "TxFuncEst_reform.pkl")
)
Expand Down Expand Up @@ -147,7 +159,7 @@ def test_plot_aggregates(
plot_type=plot_type,
stationarized=stationarized,
num_years_to_plot=20,
start_year=2023,
start_year=int(base_params.start_year),
forecast_data=np.ones(20),
forecast_units="ones",
vertical_line_years=vertical_line_years,
Expand Down Expand Up @@ -198,7 +210,7 @@ def test_plot_industry_aggregates(
var_list=["Y_vec"],
plot_type=plot_type,
num_years_to_plot=20,
start_year=2023,
start_year=int(base_params.start_year),
forecast_data=np.ones(20),
forecast_units="ones",
vertical_line_years=vertical_line_years,
Expand All @@ -218,7 +230,11 @@ def test_plot_industry_aggregates(
def test_plot_aggregates_save_fig(tmpdir):
path = os.path.join(tmpdir, "test_plot.png")
output_plots.plot_aggregates(
base_tpi, base_params, start_year=2023, plot_type="levels", path=path
base_tpi,
base_params,
start_year=int(base_params.start_year),
plot_type="levels",
path=path,
)
img = mpimg.imread(path)

Expand All @@ -228,7 +244,10 @@ def test_plot_aggregates_save_fig(tmpdir):
def test_plot_aggregates_not_a_type(tmpdir):
with pytest.raises(AssertionError):
output_plots.plot_aggregates(
base_tpi, base_params, start_year=2023, plot_type="levels2"
base_tpi,
base_params,
start_year=int(base_params.start_year),
plot_type="levels2",
)


Expand Down Expand Up @@ -275,7 +294,7 @@ def test_plot_gdp_ratio(
base_params,
reform_tpi=reform_tpi,
reform_params=reform_params,
start_year=2023,
start_year=int(base_params.start_year),
plot_type=plot_type,
vertical_line_years=vertical_line_years,
plot_title=plot_title,
Expand All @@ -289,7 +308,7 @@ def test_plot_gdp_ratio_save_fig(tmpdir):
base_tpi,
base_params,
reform_tpi=reform_tpi,
start_year=2023,
start_year=int(base_params.start_year),
reform_params=reform_params,
path=path,
)
Expand All @@ -304,7 +323,7 @@ def test_ability_bar():
base_params,
reform_tpi,
reform_params,
start_year=2023,
start_year=int(base_params.start_year),
plot_title=" Test Plot Title",
)
assert fig
Expand All @@ -317,7 +336,7 @@ def test_ability_bar_save_fig(tmpdir):
base_params,
reform_tpi,
reform_params,
start_year=2023,
start_year=int(base_params.start_year),
path=path,
)
img = mpimg.imread(path)
Expand Down Expand Up @@ -374,7 +393,7 @@ def test_tpi_profiles(by_j):
base_params,
reform_tpi,
reform_params,
start_year=2023,
start_year=int(base_params.start_year),
by_j=by_j,
plot_title=" Test Plot Title",
)
Expand Down Expand Up @@ -404,7 +423,7 @@ def test_tpi_profiles_save_fig(tmpdir):
base_params,
reform_tpi,
reform_params,
start_year=2023,
start_year=int(base_params.start_year),
path=path,
)
img = mpimg.imread(path)
Expand Down Expand Up @@ -515,7 +534,7 @@ def test_inequality_plot(
base_params,
reform_tpi=reform_tpi,
reform_params=reform_params,
start_year=2023,
start_year=int(base_params.start_year),
ineq_measure=ineq_measure,
pctiles=pctiles,
plot_type=plot_type,
Expand All @@ -530,7 +549,7 @@ def test_inequality_plot_save_fig(tmpdir):
base_params,
reform_tpi=reform_tpi,
reform_params=reform_params,
start_year=2023,
start_year=int(base_params.start_year),
path=path,
)
img = mpimg.imread(path)
Expand Down
20 changes: 16 additions & 4 deletions tests/test_output_tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,18 @@
base_params = utils.safe_read_pickle(
os.path.join(CUR_PATH, "test_io_data", "model_params_baseline.pkl")
)
else:
elif sys.version_info[1] == 11:
base_params = utils.safe_read_pickle(
os.path.join(
CUR_PATH, "test_io_data", "model_params_baseline_v311.pkl"
)
)
else:
base_params = utils.safe_read_pickle(
os.path.join(
CUR_PATH, "test_io_data", "model_params_baseline_v312.pkl"
)
)
reform_ss = utils.safe_read_pickle(
os.path.join(CUR_PATH, "test_io_data", "SS_vars_reform.pkl")
)
Expand All @@ -38,10 +44,16 @@
reform_params = utils.safe_read_pickle(
os.path.join(CUR_PATH, "test_io_data", "model_params_reform.pkl")
)
else:
elif sys.version_info[1] == 11:
reform_params = utils.safe_read_pickle(
os.path.join(CUR_PATH, "test_io_data", "model_params_reform_v311.pkl")
)
else:
reform_params = utils.safe_read_pickle(
os.path.join(
CUR_PATH, "test_io_data", "model_params_baseline_v312.pkl"
)
)
# add investment tax credit parameter that not in cached parameters
base_params.inv_tax_credit = np.zeros(
(base_params.T + base_params.S, base_params.M)
Expand Down Expand Up @@ -76,7 +88,7 @@ def test_macro_table(
base_params,
reform_tpi=reform_tpi,
reform_params=reform_params,
start_year=2023,
start_year=int(base_params.start_year),
output_type=output_type,
stationarized=stationarized,
include_SS=True,
Expand Down Expand Up @@ -176,7 +188,7 @@ def test_dynamic_revenue_decomposition(include_business_tax, full_break_out):
reform_params,
reform_tpi,
reform_ss,
start_year=2023,
start_year=int(base_params.start_year),
include_business_tax=include_business_tax,
full_break_out=full_break_out,
)
Expand Down
23 changes: 16 additions & 7 deletions tests/test_parameter_plots.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,18 @@
base_params = utils.safe_read_pickle(
os.path.join(CUR_PATH, "test_io_data", "model_params_baseline.pkl")
)
else:
elif sys.version_info[1] == 11:
base_params = utils.safe_read_pickle(
os.path.join(
CUR_PATH, "test_io_data", "model_params_baseline_v311.pkl"
)
)
else:
base_params = utils.safe_read_pickle(
os.path.join(
CUR_PATH, "test_io_data", "model_params_baseline_v312.pkl"
)
)
base_taxfunctions = utils.safe_read_pickle(
os.path.join(CUR_PATH, "test_io_data", "TxFuncEst_baseline.pkl")
)
Expand All @@ -36,10 +42,11 @@
micro_data = utils.safe_read_pickle(
os.path.join(CUR_PATH, "test_io_data", "micro_data_dict_for_tests.pkl")
)
base_params.rho = np.tile(
base_params.rho.reshape(1, base_params.S),
(base_params.T + base_params.S, 1),
)
if base_params.rho.ndim == 1:
base_params.rho = np.tile(
base_params.rho.reshape(1, base_params.S),
(base_params.T + base_params.S, 1),
)


def test_plot_imm_rates():
Expand Down Expand Up @@ -94,13 +101,15 @@ def test_plot_surv_rates_save_fig(tmpdir):

def test_plot_pop_growth():
fig = parameter_plots.plot_pop_growth(
base_params, start_year=2023, include_title=True
base_params, start_year=int(base_params.start_year), include_title=True
)
assert fig


def test_plot_pop_growth_rates_save_fig(tmpdir):
parameter_plots.plot_pop_growth(base_params, start_year=2023, path=tmpdir)
parameter_plots.plot_pop_growth(
base_params, start_year=int(base_params.start_year), path=tmpdir
)
img = mpimg.imread(os.path.join(tmpdir, "pop_growth_rates.png"))

assert isinstance(img, np.ndarray)
Expand Down
8 changes: 7 additions & 1 deletion tests/test_parameter_tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,18 @@
base_params = utils.safe_read_pickle(
os.path.join(CUR_PATH, "test_io_data", "model_params_baseline.pkl")
)
else:
elif sys.version_info[1] == 11:
base_params = utils.safe_read_pickle(
os.path.join(
CUR_PATH, "test_io_data", "model_params_baseline_v311.pkl"
)
)
else:
base_params = utils.safe_read_pickle(
os.path.join(
CUR_PATH, "test_io_data", "model_params_baseline_v312.pkl"
)
)
base_taxfunctions = utils.safe_read_pickle(
os.path.join(CUR_PATH, "test_io_data", "TxFuncEst_baseline.pkl")
)
Expand Down

0 comments on commit cdb21cb

Please sign in to comment.