diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e10a328de..955040155 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -48,7 +48,7 @@ repos: - --exclude=binder/ - --exclude=versioneer.py - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.7.4 + rev: v0.8.0 hooks: - id: ruff args: [--fix, --show-fixes] diff --git a/pymc/backends/__init__.py b/pymc/backends/__init__.py index 986a34f4b..c8c77b068 100644 --- a/pymc/backends/__init__.py +++ b/pymc/backends/__init__.py @@ -89,7 +89,7 @@ RunType = type(None) # type: ignore[assignment, misc] -__all__ = ["to_inference_data", "predictions_to_inference_data"] +__all__ = ["predictions_to_inference_data", "to_inference_data"] def _init_trace( diff --git a/pymc/data.py b/pymc/data.py index 22fc8717c..997f0ccb3 100644 --- a/pymc/data.py +++ b/pymc/data.py @@ -42,12 +42,12 @@ from pymc.vartypes import isgenerator __all__ = [ - "get_data", + "ConstantData", + "Data", "GeneratorAdapter", "Minibatch", - "Data", - "ConstantData", "MutableData", + "get_data", ] BASE_URL = "https://raw.githubusercontent.com/pymc-devs/pymc-examples/main/examples/data/{filename}" diff --git a/pymc/distributions/__init__.py b/pymc/distributions/__init__.py index 4d2088356..442ebddc7 100644 --- a/pymc/distributions/__init__.py +++ b/pymc/distributions/__init__.py @@ -116,93 +116,93 @@ from pymc.distributions.truncated import Truncated __all__ = [ - "Uniform", - "Flat", - "HalfFlat", - "Normal", - "TruncatedNormal", + "AR", + "CAR", + "GARCH11", + "ICAR", + "AsymmetricLaplace", + "Bernoulli", "Beta", - "Kumaraswamy", - "Exponential", - "Laplace", - "StudentT", + "BetaBinomial", + "Binomial", + "Categorical", "Cauchy", - "HalfCauchy", - "Gamma", - "Weibull", - "LogNormal", - "Lognormal", - "HalfStudentT", + "Censored", "ChiSquared", - "HalfNormal", - "Wald", - "Pareto", - "InverseGamma", - "ExGaussian", - "VonMises", - "Binomial", - "BetaBinomial", - "Bernoulli", - "Poisson", - "NegativeBinomial", + "Continuous", + "CustomDist", + "DensityDist", "DiracDelta", - "ZeroInflatedPoisson", - "ZeroInflatedNegativeBinomial", - "ZeroInflatedBinomial", + "Dirichlet", + "DirichletMultinomial", + "Discrete", "DiscreteUniform", + "DiscreteWeibull", + "Distribution", + "EulerMaruyama", + "ExGaussian", + "Exponential", + "Flat", + "Gamma", + "GaussianRandomWalk", "Geometric", + "Gumbel", + "HalfCauchy", + "HalfFlat", + "HalfNormal", + "HalfStudentT", + "HurdleGamma", + "HurdleLogNormal", + "HurdleNegativeBinomial", + "HurdlePoisson", "HyperGeometric", - "Categorical", - "OrderedLogistic", - "OrderedProbit", - "DensityDist", - "CustomDist", - "Distribution", - "SymbolicRandomVariable", - "Continuous", - "Discrete", - "MvNormal", - "ZeroSumNormal", - "MatrixNormal", + "Interpolated", + "InverseGamma", "KroneckerNormal", - "MvStudentT", - "Dirichlet", - "StickBreakingWeights", - "Multinomial", - "DirichletMultinomial", - "OrderedMultinomial", - "Wishart", - "WishartBartlett", + "Kumaraswamy", "LKJCholeskyCov", "LKJCorr", - "AsymmetricLaplace", - "RandomWalk", - "GaussianRandomWalk", + "Laplace", + "LogNormal", + "Logistic", + "LogitNormal", + "Lognormal", + "MatrixNormal", + "Mixture", + "Moyal", + "Multinomial", "MvGaussianRandomWalk", + "MvNormal", + "MvStudentT", "MvStudentTRandomWalk", - "AR", - "EulerMaruyama", - "GARCH11", - "SkewNormal", - "Mixture", + "NegativeBinomial", + "Normal", "NormalMixture", - "Triangular", - "DiscreteWeibull", - "Gumbel", - "Logistic", - "LogitNormal", - "Interpolated", + "OrderedLogistic", + "OrderedMultinomial", + "OrderedProbit", + "Pareto", + "Poisson", + "PolyaGamma", + "RandomWalk", "Rice", - "Moyal", "Simulator", - "Truncated", - "Censored", - "CAR", - "ICAR", - "PolyaGamma", - "HurdleGamma", - "HurdleLogNormal", - "HurdleNegativeBinomial", - "HurdlePoisson", + "SkewNormal", "SkewStudentT", + "StickBreakingWeights", + "StudentT", + "SymbolicRandomVariable", + "Triangular", + "Truncated", + "TruncatedNormal", + "Uniform", + "VonMises", + "Wald", + "Weibull", + "Wishart", + "WishartBartlett", + "ZeroInflatedBinomial", + "ZeroInflatedNegativeBinomial", + "ZeroInflatedPoisson", + "ZeroSumNormal", ] diff --git a/pymc/distributions/continuous.py b/pymc/distributions/continuous.py index 803418528..7a0d044cc 100644 --- a/pymc/distributions/continuous.py +++ b/pymc/distributions/continuous.py @@ -95,40 +95,40 @@ def polyagamma_cdf(*args, **kwargs): from pymc.math import invlogit, logdiffexp, logit __all__ = [ - "Uniform", - "Flat", - "HalfFlat", - "Normal", - "TruncatedNormal", + "AsymmetricLaplace", "Beta", - "Kumaraswamy", - "Exponential", - "Laplace", - "StudentT", "Cauchy", - "HalfCauchy", - "Gamma", - "Weibull", - "HalfStudentT", - "LogNormal", "ChiSquared", - "HalfNormal", - "Wald", - "Pareto", - "InverseGamma", "ExGaussian", - "VonMises", - "SkewNormal", - "Triangular", + "Exponential", + "Flat", + "Gamma", "Gumbel", + "HalfCauchy", + "HalfFlat", + "HalfNormal", + "HalfStudentT", + "Interpolated", + "InverseGamma", + "Kumaraswamy", + "Laplace", + "LogNormal", "Logistic", "LogitNormal", - "Interpolated", - "Rice", "Moyal", - "AsymmetricLaplace", + "Normal", + "Pareto", "PolyaGamma", + "Rice", + "SkewNormal", "SkewStudentT", + "StudentT", + "Triangular", + "TruncatedNormal", + "Uniform", + "VonMises", + "Wald", + "Weibull", ] diff --git a/pymc/distributions/discrete.py b/pymc/distributions/discrete.py index 179bae25f..979f81dba 100644 --- a/pymc/distributions/discrete.py +++ b/pymc/distributions/discrete.py @@ -52,18 +52,18 @@ from pymc.math import sigmoid __all__ = [ - "Binomial", - "BetaBinomial", "Bernoulli", - "DiscreteWeibull", - "Poisson", - "NegativeBinomial", + "BetaBinomial", + "Binomial", + "Categorical", "DiscreteUniform", + "DiscreteWeibull", "Geometric", "HyperGeometric", - "Categorical", + "NegativeBinomial", "OrderedLogistic", "OrderedProbit", + "Poisson", ] from pymc.pytensorf import normalize_rng_param diff --git a/pymc/distributions/distribution.py b/pymc/distributions/distribution.py index 8e55f649d..0d1c58cf1 100644 --- a/pymc/distributions/distribution.py +++ b/pymc/distributions/distribution.py @@ -64,10 +64,10 @@ from pymc.vartypes import continuous_types, string_types __all__ = [ - "DiracDelta", - "Distribution", "Continuous", + "DiracDelta", "Discrete", + "Distribution", "SymbolicRandomVariable", ] diff --git a/pymc/distributions/multivariate.py b/pymc/distributions/multivariate.py index da10b12fa..bcc5b4fce 100644 --- a/pymc/distributions/multivariate.py +++ b/pymc/distributions/multivariate.py @@ -83,22 +83,22 @@ from pymc.util import check_dist_not_registered __all__ = [ - "MvNormal", - "ZeroSumNormal", - "MvStudentT", + "CAR", + "ICAR", "Dirichlet", - "Multinomial", "DirichletMultinomial", - "OrderedMultinomial", - "Wishart", - "WishartBartlett", - "LKJCorr", + "KroneckerNormal", "LKJCholeskyCov", + "LKJCorr", "MatrixNormal", - "KroneckerNormal", - "CAR", - "ICAR", + "Multinomial", + "MvNormal", + "MvStudentT", + "OrderedMultinomial", "StickBreakingWeights", + "Wishart", + "WishartBartlett", + "ZeroSumNormal", ] solve_lower = partial(solve_triangular, lower=True) diff --git a/pymc/distributions/shape_utils.py b/pymc/distributions/shape_utils.py index dcfb2e3d5..f2b21763c 100644 --- a/pymc/distributions/shape_utils.py +++ b/pymc/distributions/shape_utils.py @@ -36,9 +36,9 @@ from pymc.pytensorf import convert_observed_data __all__ = [ - "to_tuple", - "rv_size_is_none", "change_dist_size", + "rv_size_is_none", + "to_tuple", ] from pymc.exceptions import ShapeError diff --git a/pymc/distributions/timeseries.py b/pymc/distributions/timeseries.py index 6469cd101..89a24d929 100644 --- a/pymc/distributions/timeseries.py +++ b/pymc/distributions/timeseries.py @@ -49,13 +49,13 @@ from pymc.util import check_dist_not_registered __all__ = [ - "RandomWalk", - "GaussianRandomWalk", - "MvGaussianRandomWalk", - "MvStudentTRandomWalk", "AR", "GARCH11", "EulerMaruyama", + "GaussianRandomWalk", + "MvGaussianRandomWalk", + "MvStudentTRandomWalk", + "RandomWalk", ] diff --git a/pymc/distributions/transforms.py b/pymc/distributions/transforms.py index 486fa42b5..fe036c2bc 100644 --- a/pymc/distributions/transforms.py +++ b/pymc/distributions/transforms.py @@ -36,18 +36,18 @@ ) __all__ = [ - "Transform", - "simplex", - "logodds", + "Chain", + "CholeskyCovPacked", "Interval", + "Transform", + "ZeroSumTransform", + "circular", + "log", "log_exp_m1", + "logodds", "ordered", - "log", + "simplex", "sum_to_1", - "circular", - "CholeskyCovPacked", - "Chain", - "ZeroSumTransform", ] diff --git a/pymc/exceptions.py b/pymc/exceptions.py index 913c3ca3c..652c2ae5a 100644 --- a/pymc/exceptions.py +++ b/pymc/exceptions.py @@ -13,12 +13,12 @@ # limitations under the License. __all__ = [ - "SamplingError", - "IncorrectArgumentsError", - "TraceDirectoryError", "ImputationWarning", - "ShapeWarning", + "IncorrectArgumentsError", + "SamplingError", "ShapeError", + "ShapeWarning", + "TraceDirectoryError", ] diff --git a/pymc/gp/cov.py b/pymc/gp/cov.py index f330308b7..d9f357728 100644 --- a/pymc/gp/cov.py +++ b/pymc/gp/cov.py @@ -30,23 +30,23 @@ __all__ = [ "Constant", - "WhiteNoise", + "Coregion", + "Cosine", "ExpQuad", - "RatQuad", "Exponential", - "Matern52", - "Matern32", - "Matern12", + "Gibbs", + "Kron", "Linear", - "Polynomial", - "Cosine", + "Matern12", + "Matern32", + "Matern52", "Periodic", + "Polynomial", + "RatQuad", + "ScaledCov", "WarpedInput", + "WhiteNoise", "WrappedPeriodic", - "Gibbs", - "Coregion", - "ScaledCov", - "Kron", ] from pymc.pytensorf import constant_fold diff --git a/pymc/gp/gp.py b/pymc/gp/gp.py index e08ebffbe..3a4b45383 100644 --- a/pymc/gp/gp.py +++ b/pymc/gp/gp.py @@ -36,7 +36,7 @@ solve_lower = partial(solve_triangular, lower=True) solve_upper = partial(solve_triangular, lower=False) -__all__ = ["Latent", "Marginal", "TP", "MarginalApprox", "LatentKron", "MarginalKron"] +__all__ = ["TP", "Latent", "LatentKron", "Marginal", "MarginalApprox", "MarginalKron"] _noise_deprecation_warning = ( diff --git a/pymc/gp/mean.py b/pymc/gp/mean.py index 800cbf556..827b5db6e 100644 --- a/pymc/gp/mean.py +++ b/pymc/gp/mean.py @@ -14,7 +14,7 @@ import pytensor.tensor as pt -__all__ = ["Zero", "Constant", "Linear"] +__all__ = ["Constant", "Linear", "Zero"] class Mean: diff --git a/pymc/logprob/__init__.py b/pymc/logprob/__init__.py index 6b4911ae6..4dea34312 100644 --- a/pymc/logprob/__init__.py +++ b/pymc/logprob/__init__.py @@ -58,7 +58,7 @@ __all__ = ( - "logp", - "logcdf", "icdf", + "logcdf", + "logp", ) diff --git a/pymc/math.py b/pymc/math.py index 48ec0d7d2..2f7527e11 100644 --- a/pymc/math.py +++ b/pymc/math.py @@ -103,7 +103,10 @@ "arcsinh", "arctan", "arctanh", + "batched_diag", + "block_diagonal", "broadcast_to", + "cartesian", "ceil", "clip", "concatenate", @@ -119,16 +122,32 @@ "erfcinv", "erfinv", "exp", - "full", - "full_like", + "expand_packed_triangular", + "flat_outer", "flatten", + "flatten_list", "floor", + "full", + "full_like", "ge", "gt", + "invlogit", + "invprobit", + "kron_diag", + "kron_dot", + "kron_solve_lower", + "kron_solve_upper", + "kronecker", "le", "log", + "log1mexp", "log1pexp", + "log_softmax", "logaddexp", + "logbern", + "logdet", + "logdiffexp", + "logit", "logsumexp", "lt", "matmul", @@ -141,12 +160,15 @@ "ones", "ones_like", "or_", + "probit", "prod", "round", + "round", "sgn", "sigmoid", "sin", "sinh", + "softmax", "sqr", "sqrt", "stack", @@ -157,28 +179,6 @@ "where", "zeros", "zeros_like", - "kronecker", - "cartesian", - "kron_dot", - "kron_solve_lower", - "kron_solve_upper", - "kron_diag", - "flat_outer", - "logdiffexp", - "invlogit", - "softmax", - "log_softmax", - "logbern", - "logit", - "log1mexp", - "flatten_list", - "logdet", - "probit", - "invprobit", - "expand_packed_triangular", - "batched_diag", - "block_diagonal", - "round", ] diff --git a/pymc/model/core.py b/pymc/model/core.py index ad60a84df..500e7ad56 100644 --- a/pymc/model/core.py +++ b/pymc/model/core.py @@ -78,13 +78,13 @@ from pymc.vartypes import continuous_types, discrete_types, typefilter __all__ = [ - "Model", - "modelcontext", "Deterministic", - "Potential", - "set_data", + "Model", "Point", + "Potential", "compile_fn", + "modelcontext", + "set_data", ] diff --git a/pymc/model/fgraph.py b/pymc/model/fgraph.py index 78ad61306..fa5e34a7d 100644 --- a/pymc/model/fgraph.py +++ b/pymc/model/fgraph.py @@ -413,7 +413,7 @@ def extract_dims(var) -> tuple: __all__ = ( + "clone_model", "fgraph_from_model", "model_from_fgraph", - "clone_model", ) diff --git a/pymc/pytensorf.py b/pymc/pytensorf.py index e3b6562f8..fb08a00c8 100644 --- a/pymc/pytensorf.py +++ b/pymc/pytensorf.py @@ -59,22 +59,22 @@ __all__ = [ + "CallableTensor", + "compile_pymc", + "cont_inputs", + "convert_data", + "convert_generator_data", + "convert_observed_data", + "floatX", + "generator", "gradient", "hessian", "hessian_diag", "inputvars", - "cont_inputs", - "floatX", "intX", "jacobian", - "CallableTensor", "join_nonshared_inputs", "make_shared_replacements", - "generator", - "convert_data", - "convert_generator_data", - "convert_observed_data", - "compile_pymc", ] diff --git a/pymc/sampling/forward.py b/pymc/sampling/forward.py index db706f210..b3015e269 100644 --- a/pymc/sampling/forward.py +++ b/pymc/sampling/forward.py @@ -64,8 +64,8 @@ __all__ = ( "compile_forward_sampling_function", "draw", - "sample_prior_predictive", "sample_posterior_predictive", + "sample_prior_predictive", ) ArrayLike: TypeAlias = np.ndarray | list[float] diff --git a/pymc/sampling/mcmc.py b/pymc/sampling/mcmc.py index 4ee79607b..172d9f50c 100644 --- a/pymc/sampling/mcmc.py +++ b/pymc/sampling/mcmc.py @@ -80,8 +80,8 @@ sys.setrecursionlimit(10000) __all__ = [ - "sample", "init_nuts", + "sample", ] Step: TypeAlias = BlockedStep | CompoundStep diff --git a/pymc/step_methods/hmc/quadpotential.py b/pymc/step_methods/hmc/quadpotential.py index 53185bbb8..a6345fa15 100644 --- a/pymc/step_methods/hmc/quadpotential.py +++ b/pymc/step_methods/hmc/quadpotential.py @@ -30,13 +30,13 @@ from pymc.util import RandomGenerator, get_random_generator __all__ = [ - "quad_potential", "QuadPotentialDiag", - "QuadPotentialFull", - "QuadPotentialFullInv", "QuadPotentialDiagAdapt", + "QuadPotentialFull", "QuadPotentialFullAdapt", + "QuadPotentialFullInv", "isquadpotential", + "quad_potential", ] diff --git a/pymc/step_methods/metropolis.py b/pymc/step_methods/metropolis.py index d825c8857..850e4bb2c 100644 --- a/pymc/step_methods/metropolis.py +++ b/pymc/step_methods/metropolis.py @@ -46,17 +46,17 @@ from pymc.step_methods.state import dataclass_state __all__ = [ - "Metropolis", - "DEMetropolis", - "DEMetropolisZ", - "BinaryMetropolis", "BinaryGibbsMetropolis", + "BinaryMetropolis", "CategoricalGibbsMetropolis", - "NormalProposal", "CauchyProposal", + "DEMetropolis", + "DEMetropolisZ", "LaplaceProposal", - "PoissonProposal", + "Metropolis", "MultivariateNormalProposal", + "NormalProposal", + "PoissonProposal", ] from pymc.util import get_value_vars_from_user_vars diff --git a/pymc/tuning/scaling.py b/pymc/tuning/scaling.py index a1d151025..d07f8c864 100644 --- a/pymc/tuning/scaling.py +++ b/pymc/tuning/scaling.py @@ -21,7 +21,7 @@ from pymc.pytensorf import hessian_diag from pymc.util import get_var_name -__all__ = ["find_hessian", "trace_cov", "guess_scaling"] +__all__ = ["find_hessian", "guess_scaling", "trace_cov"] def fixed_hessian(point, model=None): diff --git a/pymc/variational/approximations.py b/pymc/variational/approximations.py index 61940418b..6fad3c10b 100644 --- a/pymc/variational/approximations.py +++ b/pymc/variational/approximations.py @@ -35,7 +35,7 @@ node_property, ) -__all__ = ["MeanField", "FullRank", "Empirical", "sample_approx"] +__all__ = ["Empirical", "FullRank", "MeanField", "sample_approx"] @Group.register diff --git a/pymc/variational/inference.py b/pymc/variational/inference.py index 3dcb59b59..3e2c07788 100644 --- a/pymc/variational/inference.py +++ b/pymc/variational/inference.py @@ -32,11 +32,11 @@ __all__ = [ "ADVI", - "FullRankADVI", - "SVGD", "ASVGD", - "Inference", + "SVGD", + "FullRankADVI", "ImplicitGradient", + "Inference", "KLqp", "fit", ] diff --git a/pymc/variational/opvi.py b/pymc/variational/opvi.py index b07b9ded8..cb54ee036 100644 --- a/pymc/variational/opvi.py +++ b/pymc/variational/opvi.py @@ -88,7 +88,7 @@ from pymc.variational.updates import adagrad_window from pymc.vartypes import discrete_types -__all__ = ["ObjectiveFunction", "Operator", "TestFunction", "Group", "Approximation"] +__all__ = ["Approximation", "Group", "ObjectiveFunction", "Operator", "TestFunction"] class VariationalInferenceError(Exception): @@ -1450,7 +1450,7 @@ def get_optimization_replacements(self, s, d): """ repl = collections.OrderedDict() # avoid scan if size is constant and equal to one - if isinstance(s, int) and (s == 1) or s is None: + if (isinstance(s, int) and (s == 1)) or s is None: repl[self.varlogp] = self.single_symbolic_varlogp repl[self.datalogp] = self.single_symbolic_datalogp return repl diff --git a/pymc/variational/updates.py b/pymc/variational/updates.py index 656dbd042..ae045f2b9 100644 --- a/pymc/variational/updates.py +++ b/pymc/variational/updates.py @@ -119,18 +119,18 @@ import pymc as pm __all__ = [ - "sgd", - "apply_momentum", - "momentum", - "apply_nesterov_momentum", - "nesterov_momentum", + "adadelta", "adagrad", "adagrad_window", - "rmsprop", - "adadelta", "adam", "adamax", + "apply_momentum", + "apply_nesterov_momentum", + "momentum", + "nesterov_momentum", "norm_constraint", + "rmsprop", + "sgd", "total_norm_constraint", ] diff --git a/pymc/vartypes.py b/pymc/vartypes.py index 018467458..2f145aa9b 100644 --- a/pymc/vartypes.py +++ b/pymc/vartypes.py @@ -14,13 +14,13 @@ __all__ = [ "bool_types", - "int_types", - "float_types", "complex_types", "continuous_types", "discrete_types", - "typefilter", + "float_types", + "int_types", "isgenerator", + "typefilter", ] bool_types = {"int8"}