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 AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ NUMBA_CACHE_DIR=/tmp/numba_cache MPLCONFIGDIR=/tmp/matplotlib python -m pytest t

PRs must pass `pytest --cov` on the CI matrix (Python 3.12 **and** 3.13). There
is no black/ruff/flake8 gate — formatting is advisory. (`requires-python` in
`pyproject.toml` is `>=3.9`.)
`pyproject.toml` is `>=3.12`.)

## Configuration & defaults

Expand Down
3 changes: 1 addition & 2 deletions autofit/graphical/factor_graphs/abstract.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
Optional,
Collection,
Any,
Protocol,
TYPE_CHECKING,
)

Expand Down Expand Up @@ -36,8 +37,6 @@
from autofit.graphical.mean_field import MeanField
from autofit.graphical.expectation_propagation import EPMeanField

Protocol = ABC # for python 3.7 compat

Value = Dict[Variable, np.ndarray]

GradientValue = VariableData
Expand Down
4 changes: 1 addition & 3 deletions autofit/graphical/factor_graphs/jacobians.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,14 @@
from autofit.mapper.variable_operator import (
RectVariableOperator,
)
from abc import ABC
from typing import (
Tuple,
Dict,
Union,
Callable,
Protocol,
)

Protocol = ABC # for python 3.7 compat

Value = Dict[Variable, np.ndarray]
GradientValue = VariableData

Expand Down
15 changes: 3 additions & 12 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ dynamic = ["version"]
description = "Classy Probabilistic Programming"
readme = { file = "README.md", content-type = "text/markdown" }
license = { text = "MIT" }
requires-python = ">=3.9"
requires-python = ">=3.12"
authors = [
{ name = "James Nightingale", email = "James.Nightingale@newcastle.ac.uk" },
{ name = "Richard Hayes", email = "richard@rghsoftware.co.uk" },
Expand All @@ -18,9 +18,6 @@ classifiers = [
"Topic :: Scientific/Engineering :: Physics",
"Natural Language :: English",
"Operating System :: OS Independent",
"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"
]
Expand Down Expand Up @@ -66,13 +63,7 @@ local_scheme = "no-local-version"


[project.optional-dependencies]
# optax carries the same `python_version >= '3.11'` marker every entry in
# autonerves[jax] does. Without it, resolving this extra on 3.9/3.10 sends pip
# backtracking through the whole optax/jax release history looking for a version
# with wheels for that interpreter — which ends in `resolution-too-deep`, taking
# every 3.9 leg of python_matrix red. optax is only useful where jax is
# installed, and jax is gated to 3.11+, so gating optax to match loses nothing.
jax = ["autonerves[jax]", "optax>=0.2.5; python_version >= '3.11'"]
jax = ["autonerves[jax]", "optax>=0.2.5"]
mcp = ["mcp"]
optional = [
"autofit[jax]",
Expand Down Expand Up @@ -104,4 +95,4 @@ filterwarnings = [
"ignore:cuda_plugin_extension:UserWarning",
"ignore::DeprecationWarning:jax",
"ignore:relationship .* will copy column:sqlalchemy.exc.SAWarning",
]
]
Loading