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
34 changes: 17 additions & 17 deletions noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,12 @@ def dev(session: nox.Session) -> None:
session.run("python", "-m", "venv", VENV_PATH, "--upgrade-deps")

python = partial(session.run, f"{venv_path}/python", "-m")
contraint = ("--constraint", f"{REQUIREMENTS_PATH}/constraints.txt")

requirement_files = get_requirement_files()
for requirement_file in requirement_files:
python("pip", "install", "-r", requirement_file, external=True)
python("pip", "install", "--editable", ".", external=True)
for requirement_file in get_requirement_files():
python("pip", "install", "-r", requirement_file, *contraint, external=True)

python("pip", "install", "--editable", ".", *contraint, external=True)

python("pip", "install", "pre-commit", external=True)
session.run(f"{venv_path}/pre-commit", "install", external=True)
Expand All @@ -71,9 +72,9 @@ def run_tests_with_coverage(session: nox.Session) -> None:
"""Run pytest with coverage, outputs console report and json."""
print_standard_logs(session)

session.install(".")
session.install("-r", f"{REQUIREMENTS_PATH}/requirements.txt")
session.install("-r", f"{REQUIREMENTS_PATH}/requirements-test.txt")
contraint = ("--constraint", f"{REQUIREMENTS_PATH}/constraints.txt")

session.install(".[test]", *contraint)

coverage = partial(session.run, "python", "-m", "coverage")

Expand All @@ -92,7 +93,9 @@ def coverage_combine(session: nox.Session) -> None:
"""CI: Combine parallel-mode coverage files and produce reports."""
print_standard_logs(session)

session.install("-r", f"{REQUIREMENTS_PATH}/requirements-test.txt")
contraint = ("--constraint", f"{REQUIREMENTS_PATH}/constraints.txt")

session.install("-r", f"{REQUIREMENTS_PATH}/requirements-test.txt", *contraint)

coverage = partial(session.run, "python", "-m", "coverage")
coverage("combine")
Expand All @@ -105,9 +108,8 @@ def run_linters_and_formatters(session: nox.Session) -> None:
"""Run code formatters, linters, and type checking against all files."""
print_standard_logs(session)

session.install(".")
session.install("-r", f"{REQUIREMENTS_PATH}/requirements.txt")
session.install("-r", f"{REQUIREMENTS_PATH}/requirements-dev.txt")
contraint = ("--constraint", f"{REQUIREMENTS_PATH}/constraints.txt")
session.install(".[dev]", *contraint)

python = partial(session.run, "python", "-m")

Expand Down Expand Up @@ -143,16 +145,15 @@ def update_deps(session: nox.Session) -> None:
"""Process requirement*.txt files, updating only additions/removals."""
print_standard_logs(session)

requirement_files = get_requirement_files()

session.install("pip-tools")
session.run(
"pip-compile",
"--strip-extras",
"--no-annotate",
"--no-emit-index-url",
"--output-file",
f"{REQUIREMENTS_PATH}/constraints.txt",
*requirement_files,
*get_requirement_files(),
)


Expand All @@ -161,17 +162,16 @@ def upgrade_deps(session: nox.Session) -> None:
"""Process requirement*.txt files and upgrade all libraries as possible."""
print_standard_logs(session)

requirement_files = get_requirement_files()

session.install("pip-tools")
session.run(
"pip-compile",
"--strip-extras",
"--no-annotate",
"--no-emit-index-url",
"--upgrade",
"--output-file",
f"{REQUIREMENTS_PATH}/constraints.txt",
*requirement_files,
*get_requirement_files(),
)


Expand Down
10 changes: 9 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[build-system]
requires = ["setuptools>=64"]
requires = [ "setuptools>=64" ]
build-backend = "setuptools.build_meta"

[project]
Expand All @@ -20,6 +20,14 @@ classifiers = [
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: Implementation :: CPython",
]
dynamic = [ "dependencies", "optional-dependencies" ]

[tool.setuptools.dynamic.dependencies]
file = [ "requirements/requirements.txt" ]

[tool.setuptools.dynamic.optional-dependencies]
dev = { file = [ "requirements/requirements-dev.txt" ] }
test = { file = [ "requirements/requirements-test.txt" ] }

[project.urls]
homepage = "https://github.com/[ORG NAME]/[REPO NAME]"
Expand Down
5 changes: 3 additions & 2 deletions requirements/constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# This file is autogenerated by pip-compile with Python 3.12
# by the following command:
#
# pip-compile --no-annotate --no-emit-index-url --output-file=./requirements/constraints.txt requirements/requirements-dev.txt requirements/requirements-test.txt requirements/requirements.txt
# pip-compile --no-annotate --no-emit-index-url --output-file=./requirements/constraints.txt --strip-extras requirements/requirements-dev.txt requirements/requirements-test.txt requirements/requirements.txt
#
black==25.1.0
certifi==2025.4.26
Expand All @@ -16,7 +16,7 @@ idna==3.10
iniconfig==2.1.0
isort==6.0.1
mccabe==0.7.0
mypy==1.15.0
mypy==1.16.0
mypy-extensions==1.1.0
packaging==25.0
pathspec==0.12.1
Expand All @@ -27,5 +27,6 @@ pyflakes==3.3.2
pytest==8.3.5
pytest-randomly==3.16.0
requests==2.32.3
types-requests==2.32.0.20250515
typing-extensions==4.13.2
urllib3==2.4.0
1 change: 0 additions & 1 deletion requirements/requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# Development Requirements - linting, formatting, etc.
--constraint ./constraints.txt

# Linting
flake8
Expand Down
1 change: 0 additions & 1 deletion requirements/requirements-test.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# Testing Requirements
--constraint ./constraints.txt

pytest
pytest-randomly
Expand Down
1 change: 0 additions & 1 deletion requirements/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# Core Dependencies
--constraint ./constraints.txt

requests