Skip to content

Commit

Permalink
Merge pull request #68 from mkopec87/feature/switch-to-toml
Browse files Browse the repository at this point in the history
* Switch from setup.py to pyproject.toml
  • Loading branch information
mbaak authored Dec 16, 2024
2 parents f0b9f72 + fb20090 commit c11c45e
Show file tree
Hide file tree
Showing 7 changed files with 126 additions and 181 deletions.
52 changes: 31 additions & 21 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,37 @@ jobs:
test:
strategy:
matrix:
os: [ubuntu-latest]
python: ['3.9', '3.10', '3.11', '3.12']
os: [ ubuntu-latest ]
python: [ "3.9", "3.10", "3.11", "3.12" ]
numpy_version: [ "numpy-latest", "numpy<2" ]
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python }}
- uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}-${{ hashFiles('**/requirements-test.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .
pip install -r requirements-test.txt
- name: Test with pytest
run: |
pytest tests/
- name: Checkout code
uses: actions/checkout@v2

- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python }}

- name: Use cache for pip dependencies
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
run: |
python -m pip install --upgrade pip
if [ "${{ matrix.numpy_version }}" = "numpy<2" ]; then
pip install ".[test,pandas,spark,test_numpy_pre2]"
else
pip install ".[test,pandas,spark]"
fi
- name: Test with pytest
run: |
pytest tests
3 changes: 3 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ Version 1.0.34, Dec 2024
* Remove unused test_gpu.twosigfigs function.
* Refactor tests with Numpy() and Pandas() context managers to use single 'with' statement.

* Switch from setup.py to pyproject.toml
* Add numpy<2,pandas<2 test environment to build pipeline test matrix

Version 1.0.33, Dec 2022
------------------------
* fix of get_sub_hist() when Bin histogram is filled only with nans.
Expand Down
27 changes: 14 additions & 13 deletions histogrammar/version.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@
"""THIS FILE IS AUTO-GENERATED BY SETUP.PY."""

import re
from typing import Tuple

name = "histogrammar"
__version__ = "1.0.34"
version = "1.0.34"
full_version = "1.0.34"
release = True

version_info = tuple(re.split(r"[-\.]", __version__))
specification = ".".join(version_info[:2])

def split_version_string(version_string: str) -> Tuple[int, int]:
version_numbers = list(map(int, re.split(r"[-.]", version_string)))
return version_numbers[0], version_numbers[1]


specification = ".".join([str(i) for i in split_version_string(version)[:2]])


def compatible(serialized_version: str) -> bool:
self_major, self_minor = split_version_string(version)
other_major, other_minor = split_version_string(serialized_version)

def compatible(serializedVersion):
selfMajor, selfMinor = map(int, version_info[:2])
otherMajor, otherMinor = map(int, re.split(r"[-\.]", serializedVersion)[:2])
if selfMajor >= otherMajor:
if self_major >= other_major:
return True
elif selfMinor >= otherMinor:
elif self_minor >= other_minor:
return True
else:
return False
78 changes: 78 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "histogrammar"
description = "Composable histogram primitives for distributed data reduction"
keywords = [
"pandas",
"spark",
"data-science",
"data-analysis",
"statistics",
"python",
"jupyter",
"ipython"
]
readme = "README.rst"
requires-python = ">=3.9"
authors = [{ name = "Jim Pivarski (DIANA-HEP)", email = "pivarski@fnal.gov" }, { name = "Max Baak", email = "maxbaak@gmail.com" }]
maintainers = [{ name = "Max Baak", email = "maxbaak@gmail.com" }]
license = { type = "Apache Software License v2", file = "LICENSE" }
dependencies = [
"numpy",
"tqdm",
"joblib>=0.14.0"
]
classifiers = ["Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: Apache Software License",
"Topic :: Scientific/Engineering :: Information Analysis",
"Topic :: Scientific/Engineering :: Mathematics",
"Topic :: Scientific/Engineering :: Physics",
]
dynamic = ["version"]

[project.optional-dependencies]
pandas = [
"pandas"
]
spark = [
"pyspark>=3.1; python_version <= '3.11'",
]
test = [
"ipykernel>=5.1.3",
"jupyter_client>=5.2.3",
"matplotlib",
"pandas",
"pre-commit>=2.9.0",
"pytest-notebook>=0.6.1",
"pytest>=4.0.2",
]
test_numpy_pre2 = [
"numpy<2",
"pandas<2",
]

# files to be shipped with the installation, under: histogrammar/test_data and histogrammar/notebooks
# after installation, these can be found with the functions in resources.py
[tool.setuptools.package-data]
histogrammar = [
"test_data/*.csv.gz",
"test_data/*.json*",
"notebooks/*tutorial*.ipynb",
]

[project.urls]
repository = "https://github.com/histogrammar/histogrammar-python"

[tool.semantic_release]
version_variable = [
"histogrammar/version.py:version",
]
build_command = "pip install build && python -m build"

[tool.setuptools.dynamic]
version = { attr = "histogrammar.version.version" }
7 changes: 0 additions & 7 deletions requirements-test.txt

This file was deleted.

3 changes: 0 additions & 3 deletions requirements.txt

This file was deleted.

137 changes: 0 additions & 137 deletions setup.py

This file was deleted.

0 comments on commit c11c45e

Please sign in to comment.