Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
ccc07b8
feat(ci): test with GitHub Actions
chaimleib Mar 11, 2025
2dc2de2
fix(test): disable standalone test/intervals.py, optimality_test impo…
chaimleib Mar 11, 2025
e8cf497
feat(ci): test in Python 2.7, 3.6+
chaimleib Mar 11, 2025
30a1b41
fix(ci): where python is too old for ubuntu-latest, use earlier ubuntu
chaimleib Mar 11, 2025
d3fb6be
feat(ci): split flake8 from pytest
chaimleib Mar 12, 2025
6f347e9
refactor(ci): combine flake8 and pytest as 2 jobs of single workflow
chaimleib Mar 12, 2025
55b067a
build: use requirements.txt files
chaimleib Mar 12, 2025
e5aa403
build: MANIFEST.in includes requirements dir
chaimleib Mar 12, 2025
0b3bcca
build: pyproject.toml allows Python 3.6; remove deps from toml, use r…
chaimleib Mar 12, 2025
dbb3f13
feat(ci): show test coverage
chaimleib Mar 12, 2025
22c0034
feat(ci): test on python 2.7
chaimleib Mar 12, 2025
353b192
feat(ci): test on Python 3.14
chaimleib Mar 12, 2025
e360dfd
feat(ci): test on Python 3.5
chaimleib Mar 12, 2025
dacb875
doc(readme): copyright 2025
chaimleib Mar 12, 2025
1dec7a9
doc(ci): update build badge URL
chaimleib Mar 12, 2025
9cc6b19
build: pyproject.toml requires-python ~=2.7 or ~= 3.5; restore author…
chaimleib Mar 12, 2025
3906915
doc: pyproject.toml license and keywords
chaimleib Mar 12, 2025
e643780
chore(build): use hatchling instead of setuptools, spec deps in toml …
chaimleib Dec 19, 2025
9696575
chore(gha): version bumps, python 3.5 and 3.6 need manual setup
chaimleib Dec 19, 2025
bae14c8
chore(gha): bump actions/checkout@v5 -> v6, matrify legacy Python 3 v…
chaimleib Dec 19, 2025
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
47 changes: 0 additions & 47 deletions .github/workflows/manual.yml

This file was deleted.

115 changes: 115 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# This workflow will install Python dependencies, lint, and run tests in supported versions of Python.
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: tests

on:
push:
branches: [ "master", "gha" ]
pull_request:
branches: [ "master" ]

permissions:
contents: read

jobs:

pytest:
strategy:
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
include:
- python-version: "3.7"
os: ubuntu-22.04
- python-version: "3.8"
os: ubuntu-24.04
- python-version: "3.9"
os: ubuntu-24.04
- python-version: "3.10"
os: ubuntu-24.04
- python-version: "3.11"
os: ubuntu-24.04
- python-version: "3.12"
os: ubuntu-24.04
- python-version: "3.13"
os: ubuntu-24.04
- python-version: "3.14"
os: ubuntu-24.04
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
env:
PIP_TRUSTED_HOST: "pypi.python.org pypi.org files.pythonhosted.org"
- name: Display Python ${{ matrix.python-version }} version
run: python -c "import sys; print(sys.version)"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements/pytest.txt
- name: Test with pytest
run: |
coverage run -m pytest
coverage report -m

pytest-python3-legacy:
strategy:
matrix:
python-version:
- "3.5"
- "3.6"
runs-on: ubuntu-latest
container: python:${{ matrix.python-version }}
steps:
- uses: actions/checkout@v6
- name: Display Python ${{ matrix.python-version }} version
run: python -c "import sys; print(sys.version)"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements/pytest.txt
- name: Test with pytest
run: |
coverage run -m pytest
coverage report -m

pytest-python27:
runs-on: ubuntu-latest
container: coatldev/six:latest
steps:
- uses: actions/checkout@v6
- name: Display Python 2.7 version
run: python2 -c "import sys; print(sys.version)"
- name: Install dependencies
run: |
python2 -m pip install --upgrade pip
pip2 install -r requirements/pytest.txt
- name: Test with pytest
run: |
coverage2 run -m pytest
coverage2 report -m

flake8:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Python 3.14
uses: actions/setup-python@v6
with:
python-version: 3.14
- name: Display Python verison
run: python -c "import sys; print(sys.version)"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements/flake8.txt
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics

137 changes: 0 additions & 137 deletions Dockerfile

This file was deleted.

2 changes: 0 additions & 2 deletions MANIFEST.in

This file was deleted.

6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ pip install intervaltree
Features
--------

* Supports Python 2.7 and Python 3.6+ (Tested under 2.7, and 3.6 thru 3.11)
* Supports Python 2.7 and Python 3.5+ (Tested under 2.7, and 3.5 thru 3.14)
* Initializing
* blank `tree = IntervalTree()`
* from an iterable of `Interval` objects (`tree = IntervalTree(intervals)`)
Expand Down Expand Up @@ -356,15 +356,15 @@ Based on
Copyright
---------

* [Chaim Leib Halbert][GH], 2013-2023
* [Chaim Leib Halbert][GH], 2013-2025
* Modifications, [Konstantin Tretyakov][Konstantin intervaltree], 2014

Licensed under the [Apache License, version 2.0][Apache].

The source code for this project is at https://github.com/chaimleib/intervaltree


[build status badge]: https://github.com/chaimleib/intervaltree/workflows/ci/badge.svg
[build status badge]: https://github.com/chaimleib/intervaltree/workflows/tests/badge.svg
[build status]: https://github.com/chaimleib/intervaltree/actions
[GH]: https://github.com/chaimleib/intervaltree
[issue tracker]: https://github.com/chaimleib/intervaltree/issues
Expand Down
Loading