Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added support for py313, numpy 2 #61

Merged
merged 2 commits into from
Jan 2, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
strategy:
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.8', '3.10', '3.11', '3.12']
python-version: ['3.10', '3.11', '3.12', '3.13']
defaults:
run:
shell: bash
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/publish-pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: '3.8'
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install poetry
Expand Down
39 changes: 32 additions & 7 deletions docs/_static/custom.css
Original file line number Diff line number Diff line change
@@ -1,16 +1,41 @@
:root {
html {
--pst-color-primary: 92, 92, 92;
--pst-color-active-navigation: 231, 4, 136;
--pst-color-navbar-link: 231, 4, 136;
--pst-color-navbar-link-hover: 240, 40, 180;
--pst-color-navbar-link-active: 231, 4, 136;
--pst-color-active-navigation: #e70488;
--pst-color-navbar-link: #e70488;
--pst-color-navbar-link-active:#e70488;
--pst-color-inline-code-links: #e70488;
}

.navbar-light .navbar-nav>.active>.nav-link {
h1 {
--pst-color-heading: #150458;
}

h2 {
--pst-color-heading: #150458;
}

h3 {
--pst-color-heading: #150458;
}

.bd-header ul.navbar-nav > li.nav-item > .nav-link {
color: #e70488;
--pst-color-primary: #e70488;
}

.bd-header ul.navbar-nav > li.nav-item.current > .nav-link {
color: #e70488;
--pst-color-primary: #e70488;
font-weight: 800;
color: rgba(var(--pst-color-navbar-link-active),1);
}

.bd-header ul.navbar-nav > li.nav-item > .nav-link:hover {
color: #e70488;
--pst-color-primary: #e70488;
--pst-color-secondary: #ffffff;
text-decoration: none;
}

dt:target, span.highlighted {
background-color: rgba(255,255,255,1);
}
Expand Down
22 changes: 17 additions & 5 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
# for sphinx
import os
import sys
from datetime import datetime

currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(currentdir)
Expand All @@ -31,7 +32,7 @@
# -- Project information -----------------------------------------------------

project = "piso"
copyright = "2021, Riley Clement"
copyright = f"2021-{datetime.now().year}, Riley Clement"
author = "Riley Clement"
version = piso.__version__
if "untagged" in version:
Expand Down Expand Up @@ -64,10 +65,10 @@
# "sphinx.ext.linkcode",
"numpydoc", # handle NumPy documentation formatted docstrings]
"nbsphinx",
"sphinx_panels",
"sphinx_design",
]

source_suffix = [".rst", ".ipynb"]
source_suffix = [".rst"]

# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]
Expand All @@ -90,7 +91,7 @@

# sphinx-panels shouldn't add bootstrap css since the pydata-sphinx-theme
# already loads it
panels_add_bootstrap_css = False
# panels_add_bootstrap_css = False

# The name of the Pygments (syntax highlighting) style to use.
pygments_style = "sphinx"
Expand Down Expand Up @@ -121,10 +122,16 @@
html_theme = "pydata_sphinx_theme"

html_theme_options = {
"google_analytics_id": "UA-65430466-3",
"github_url": "https://github.com/staircase-dev/piso",
"navbar_end": ["navbar-icon-links"],
}

html_theme_options["analytics"] = {
"google_analytics_id": "UA-65430466-3",
}

html_show_sourcelink = False


html_logo = "img/piso_white.svg"
html_favicon = "img/favicon.ico"
Expand All @@ -134,6 +141,11 @@
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ["_static"]

html_context = {
# ...
"default_mode": "light"
}


def setup(app):
app.add_css_file("custom.css")
7 changes: 4 additions & 3 deletions docs/general_requirements.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
ipykernel
sphinx >= 5
sphinx
nbsphinx
sphinx-panels
sphinx-design
staircase >= 2.1
pandas
numpy
Pygments
pydata-sphinx-theme
toml
numpydoc
matplotlib >= 3.7
matplotlib
pickleshare
2 changes: 1 addition & 1 deletion docs/getting_started/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ License

This project is licensed under the MIT License::

Copyright © 2021 <Riley Clement>
Copyright © 2021-2025 <Riley Clement>

Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the “Software”), to deal in the Software
Expand Down
4 changes: 4 additions & 0 deletions docs/release_notes/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
Release notes
========================

- support for Numpy 2 added
- support for Python 3.13 added
- support for Python 3.8 removed

ADD UNRELEASED CHANGES ABOVE THIS LINE

**v1.1.0 2024-06-25**
Expand Down
109 changes: 55 additions & 54 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,86 +1,87 @@
accessible-pygments==0.0.5
alabaster==0.7.16
alabaster==1.0.0
appnope==0.1.4
asttokens==2.4.1
attrs==23.2.0
Babel==2.15.0
asttokens==3.0.0
attrs==24.3.0
babel==2.16.0
beautifulsoup4==4.12.3
bleach==6.1.0
certifi==2024.6.2
charset-normalizer==3.3.2
bleach==6.2.0
certifi==2024.12.14
charset-normalizer==3.4.1
comm==0.2.2
contourpy==1.2.1
contourpy==1.3.1
cycler==0.12.1
debugpy==1.8.1
debugpy==1.8.11
decorator==5.1.1
defusedxml==0.7.1
docutils==0.21.2
executing==2.0.1
fastjsonschema==2.20.0
fonttools==4.53.0
idna==3.7
executing==2.1.0
fastjsonschema==2.21.1
fonttools==4.55.3
idna==3.10
imagesize==1.4.1
ipykernel==6.29.4
ipython==8.25.0
jedi==0.19.1
Jinja2==3.1.4
jsonschema==4.22.0
jsonschema-specifications==2023.12.1
jupyter_client==8.6.2
ipykernel==6.29.5
ipython==8.31.0
jedi==0.19.2
Jinja2==3.1.5
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
jupyter_client==8.6.3
jupyter_core==5.7.2
jupyterlab_pygments==0.3.0
kiwisolver==1.4.5
MarkupSafe==2.1.5
matplotlib==3.9.0
kiwisolver==1.4.8
MarkupSafe==3.0.2
matplotlib==3.10.0
matplotlib-inline==0.1.7
mistune==3.0.2
nbclient==0.10.0
mistune==3.1.0
nbclient==0.10.2
nbconvert==7.16.4
nbformat==5.10.4
nbsphinx==0.9.4
nbsphinx==0.9.6
nest-asyncio==1.6.0
numpy==1.26.4
numpydoc==1.7.0
packaging==24.1
pandas==2.2.2
numpy==2.2.1
numpydoc==1.8.0
packaging==24.2
pandas==2.2.3
pandocfilters==1.5.1
parso==0.8.4
pexpect==4.9.0
pillow==10.3.0
platformdirs==4.2.2
prompt_toolkit==3.0.47
psutil==6.0.0
pickleshare==0.7.5
pillow==11.0.0
platformdirs==4.3.6
prompt_toolkit==3.0.48
psutil==6.1.1
ptyprocess==0.7.0
pure-eval==0.2.2
pydata-sphinx-theme==0.15.3
pure_eval==0.2.3
pydata-sphinx-theme==0.16.1
Pygments==2.18.0
pyparsing==3.1.2
pyparsing==3.2.1
python-dateutil==2.9.0.post0
pytz==2024.1
pyzmq==26.0.3
pytz==2024.2
pyzmq==26.2.0
referencing==0.35.1
requests==2.32.3
rpds-py==0.18.1
six==1.16.0
rpds-py==0.22.3
six==1.17.0
snowballstemmer==2.2.0
soupsieve==2.5
Sphinx==7.3.7
sphinx-panels==0.4.1
sphinxcontrib-applehelp==1.0.8
sphinxcontrib-devhelp==1.0.6
sphinxcontrib-htmlhelp==2.0.5
soupsieve==2.6
Sphinx==8.1.3
sphinx_design==0.6.1
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.7
sphinxcontrib-serializinghtml==1.1.10
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
stack-data==0.6.3
staircase==2.6.0
staircase==2.7.0
tabulate==0.9.0
tinycss2==1.3.0
tinycss2==1.4.0
toml==0.10.2
tornado==6.4.1
tornado==6.4.2
traitlets==5.14.3
typing_extensions==4.12.2
tzdata==2024.1
urllib3==2.2.2
tzdata==2024.2
urllib3==2.3.0
wcwidth==0.2.13
webencodings==0.5.1
54 changes: 24 additions & 30 deletions docs/user_guide/case_studies/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,53 +5,47 @@
Case studies
***************

.. panels::
.. grid:: 1 2 2 2
:gutter: 4

**Finding common gaps in daily calendars**
.. grid-item-card:: Finding common gaps in daily calendars

This case study introduces the use of :mod:`piso` for set operations such as :func:`piso.intersection` and :func:`piso.union` and applies it to an example where personal calendars are represented by interval arrays.
This case study introduces the use of :mod:`piso` for set operations such as :func:`piso.intersection` and :func:`piso.union` and applies it to an example where personal calendars are represented by interval arrays.

.. link-button:: calendar
:type: ref
:text:
:classes: stretched-link
.. button-ref:: user_guide.calendar_example
:ref-type: ref
:class: stretched-link

---
.. grid-item-card:: Verifying a maintenance schedule

**Verifying a maintenance schedule**
This case study introduces the use of :mod:`piso` for analysis with functions that return scalars, such as :func:`piso.issuperset` and :func:`piso.coverage`. In this example maintenance schedules and windows of opportunity are represented by interval arrays.

This case study introduces the use of :mod:`piso` for analysis with functions that return scalars, such as :func:`piso.issuperset` and :func:`piso.coverage`. In this example maintenance schedules and windows of opportunity are represented by interval arrays.
.. button-ref:: user_guide.maintenance_example
:ref-type: ref
:class: stretched-link

.. link-button:: maintenance
:type: ref
:text:
:classes: stretched-link

---
.. grid-item-card:: Estimating tax payable

**Estimating tax payable**
This case study demonstrates the use of :func:`piso.lookup` where tax brackets are represented by a :class:`pandas.DataFrame`, indexed by a :class:`pandas.IntervalIndex`. The tax payable for an array of income values is calculated by efficiently finding the corresponding tax brackets.

This case study demonstrates the use of :func:`piso.lookup` where tax brackets are represented by a :class:`pandas.DataFrame`, indexed by a :class:`pandas.IntervalIndex`. The tax payable for an array of income values is calculated by efficiently finding the corresponding tax brackets.
.. button-ref:: user_guide.tax_example
:ref-type: ref
:class: stretched-link

.. link-button:: tax
:type: ref
:text:
:classes: stretched-link


---
.. grid-item-card:: Analysis of scores in a football match

**Analysis of scores in a football match**
This case study introduces the idea of *joins* using :class:`pandas.IntervalIndex`. Using :func:`piso.join` a dataframe is constructed, indexed by intervals for unique score combinations in the 2009 Chelsea vs Liverpool Champions League quarter-final.

This case study introduces the idea of *joins* using :class:`pandas.IntervalIndex`. Using :func:`piso.join` a dataframe is constructed, indexed by intervals for unique score combinations in the 2009 Chelsea vs Liverpool Champions League quarter-final.
.. button-ref:: user_guide.football_example
:ref-type: ref
:class: stretched-link

.. link-button:: football
:type: ref
:text:
:classes: stretched-link


.. toctree::
.. toctree::
:hidden:
:maxdepth: 1

Expand Down
Loading
Loading