Skip to content
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/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
- name: "Set up Python"
uses: "actions/setup-python@v5"
with:
python-version: "3.9"
python-version: "3.10"
- name: "Build distribution packages"
run: make package-check
- name: "Save distribution directory"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ jobs:
fail-fast: false
matrix:
python-version: [
"3.9",
"3.10",
"3.11",
"3.12",
"3.13",
"3.14",
]
steps:
- name: "Check out repository"
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.12.0
rev: v0.14.5
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
Expand Down
2 changes: 1 addition & 1 deletion metsrw/validate.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def get_xmlschema(xmlschema, mets_doc):
)
for schema_location in schema_locations:
namespaces_locations = schema_location.strip().split()
for namespace, location in zip(*[iter(namespaces_locations)] * 2):
for namespace, location in zip(*[iter(namespaces_locations)] * 2, strict=False):
if namespace == NAMESPACES["mets"]:
continue
xs_import = etree.Element("{http://www.w3.org/2001/XMLSchema}import")
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ dynamic = [
"readme",
]
description = "Library for dealing with METS files."
requires-python = ">=3.9"
requires-python = ">=10"
license = {file = "LICENSE"}
dependencies = [
"lxml",
Expand All @@ -33,11 +33,11 @@ classifiers = [
"License :: OSI Approved :: GNU Affero General Public License v3",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]
authors = [
{name = "Artefactual Systems Inc.", email = "[email protected]"}
Expand Down
46 changes: 20 additions & 26 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
#
# This file is autogenerated by pip-compile with Python 3.9
# This file is autogenerated by pip-compile with Python 3.10
# by the following command:
#
# pip-compile --allow-unsafe --extra=dev --output-file=requirements-dev.txt pyproject.toml
#
alabaster==0.7.16
alabaster==1.0.0
# via sphinx
babel==2.17.0
# via sphinx
build==1.2.2.post1
build==1.3.0
# via pip-tools
certifi==2025.6.15
certifi==2025.11.12
# via requests
charset-normalizer==3.4.2
charset-normalizer==3.4.4
# via requests
click==8.1.8
click==8.3.1
# via pip-tools
coverage[toml]==7.9.1
coverage[toml]==7.12.0
# via
# metsrw (pyproject.toml)
# pytest-cov
Expand All @@ -26,28 +26,24 @@ docutils==0.21.2
# sphinx-rtd-theme
exceptiongroup==1.3.0
# via pytest
idna==3.10
idna==3.11
# via requests
imagesize==1.4.1
# via sphinx
importlib-metadata==8.7.0
# via
# build
# sphinx
iniconfig==2.1.0
iniconfig==2.3.0
# via pytest
jinja2==3.1.6
# via sphinx
lxml==5.4.0
lxml==6.0.2
# via metsrw (pyproject.toml)
markupsafe==3.0.2
markupsafe==3.0.3
# via jinja2
packaging==25.0
# via
# build
# pytest
# sphinx
pip-tools==7.4.1
pip-tools==7.5.2
# via metsrw (pyproject.toml)
pluggy==1.6.0
# via
Expand All @@ -61,19 +57,19 @@ pyproject-hooks==1.2.0
# via
# build
# pip-tools
pytest==8.4.1
pytest==9.0.1
# via
# metsrw (pyproject.toml)
# pytest-cov
pytest-cov==6.2.1
pytest-cov==7.0.0
# via metsrw (pyproject.toml)
requests==2.32.4
requests==2.32.5
# via sphinx
ruff==0.12.0
ruff==0.14.5
# via metsrw (pyproject.toml)
snowballstemmer==3.0.1
# via sphinx
sphinx==7.4.7
sphinx==8.1.3
# via
# metsrw (pyproject.toml)
# sphinx-rtd-theme
Expand All @@ -94,24 +90,22 @@ sphinxcontrib-qthelp==2.0.0
# via sphinx
sphinxcontrib-serializinghtml==2.0.0
# via sphinx
tomli==2.2.1
tomli==2.3.0
# via
# build
# coverage
# pip-tools
# pytest
# sphinx
typing-extensions==4.14.0
typing-extensions==4.15.0
# via exceptiongroup
urllib3==2.5.0
# via requests
wheel==0.45.1
# via pip-tools
zipp==3.23.0
# via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
pip==25.1.1
pip==25.3
# via pip-tools
setuptools==80.9.0
# via pip-tools
4 changes: 2 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#
# This file is autogenerated by pip-compile with Python 3.9
# This file is autogenerated by pip-compile with Python 3.10
# by the following command:
#
# pip-compile --allow-unsafe --output-file=requirements.txt pyproject.toml
#
lxml==5.4.0
lxml==6.0.2
# via metsrw (pyproject.toml)
2 changes: 1 addition & 1 deletion tests/test_mets.py
Original file line number Diff line number Diff line change
Expand Up @@ -983,7 +983,7 @@ def test_read_method_and_sequence_behaviour(self):
mets4 = metsrw.METSDocument.read(mets_bytes)

# iteration
for fse1, fse2, fse3, fse4 in zip(mets1, mets2, mets3, mets4):
for fse1, fse2, fse3, fse4 in zip(mets1, mets2, mets3, mets4, strict=False):
assert fse1.path == fse2.path == fse3.path == fse4.path

# len
Expand Down