diff --git a/petab_select/__init__.py b/petab_select/__init__.py index bd2994f5..b2455da3 100644 --- a/petab_select/__init__.py +++ b/petab_select/__init__.py @@ -1,5 +1,7 @@ """Model selection extension for PEtab.""" +import sys + from .candidate_space import * from .constants import * from .criteria import * @@ -9,3 +11,9 @@ from .model_subspace import * from .problem import * from .ui import * + +__all__ = [ + x + for x in dir(sys.modules[__name__]) + if not x.startswith('_') and x != 'sys' +] diff --git a/petab_select/candidate_space.py b/petab_select/candidate_space.py index 8aaa9e04..1154ffa4 100644 --- a/petab_select/candidate_space.py +++ b/petab_select/candidate_space.py @@ -28,6 +28,17 @@ from .handlers import TYPE_LIMIT, LimitHandler from .model import Model, default_compare +__all__ = [ + 'BackwardCandidateSpace', + 'BidirectionalCandidateSpace', + 'BruteForceCandidateSpace', + 'CandidateSpace', + 'FamosCandidateSpace', + 'ForwardAndBackwardCandidateSpace', + 'ForwardCandidateSpace', + 'LateralCandidateSpace', +] + class CandidateSpace(abc.ABC): """A base class for collecting candidate models. diff --git a/petab_select/constants.py b/petab_select/constants.py index 0a7bee3e..d5e566a2 100644 --- a/petab_select/constants.py +++ b/petab_select/constants.py @@ -1,4 +1,5 @@ """Constants for the PEtab Select package.""" +import sys from enum import Enum from pathlib import Path from typing import Dict, List, Literal, Union @@ -164,3 +165,12 @@ class Criterion(str, Enum): Method.FORWARD, Method.FORWARD_AND_BACKWARD, ] + + +__all__ = [ + x + for x in dir(sys.modules[__name__]) + if not x.startswith('_') + and x not in ('sys', "Enum", "Path", "Dict", "List", "Literal", "Union") +] +print(__all__) diff --git a/petab_select/criteria.py b/petab_select/criteria.py index 6e6db4b0..8bb8c283 100644 --- a/petab_select/criteria.py +++ b/petab_select/criteria.py @@ -9,7 +9,12 @@ from .constants import PETAB_PROBLEM, Criterion # LH,; LLH,; NLLH, -# from .model import Model +__all__ = [ + 'calculate_aic', + 'calculate_aicc', + 'calculate_bic', + 'CriterionComputer', +] # use as attribute e.g. `Model.criterion_computer`? diff --git a/petab_select/misc.py b/petab_select/misc.py index d690fae3..48cbc864 100644 --- a/petab_select/misc.py +++ b/petab_select/misc.py @@ -9,6 +9,16 @@ TYPE_PARAMETER_OPTIONS, ) +__all__ = [ + 'hashify', + 'hash_parameter_dict', + 'hash_parameter_options', + 'hash_str', + 'hash_list', + 'snake_case_to_camel_case', + 'parameter_string_to_value', +] + def hashify(x: Any) -> str: """Generate a hash. diff --git a/petab_select/model.py b/petab_select/model.py index e3dd4792..64812e1a 100644 --- a/petab_select/model.py +++ b/petab_select/model.py @@ -36,6 +36,13 @@ ) from .petab import PetabMixin +__all__ = [ + 'Model', + 'default_compare', + 'models_from_yaml_list', + 'models_to_yaml_list', +] + class Model(PetabMixin): """A (possibly uncalibrated) model. diff --git a/petab_select/model_space.py b/petab_select/model_space.py index b545a653..6ce146fd 100644 --- a/petab_select/model_space.py +++ b/petab_select/model_space.py @@ -21,6 +21,13 @@ from .model import Model from .model_subspace import ModelSubspace +__all__ = [ + "ModelSpace", + "get_model_space_df", + "read_model_space_file", + "write_model_space_df", +] + def read_model_space_file(filename: str) -> TextIO: """Read a model space file. diff --git a/petab_select/model_subspace.py b/petab_select/model_subspace.py index 9b40f696..f407d3a7 100644 --- a/petab_select/model_subspace.py +++ b/petab_select/model_subspace.py @@ -26,6 +26,10 @@ from .model import Model from .petab import PetabMixin +__all__ = [ + 'ModelSubspace', +] + class ModelSubspace(PetabMixin): """Efficient representation of exponentially large model subspaces. diff --git a/petab_select/petab.py b/petab_select/petab.py index e1aa697c..b676e56f 100644 --- a/petab_select/petab.py +++ b/petab_select/petab.py @@ -7,6 +7,10 @@ from .constants import PETAB_ESTIMATE_FALSE, TYPE_PARAMETER_DICT, TYPE_PATH +__all__ = [ + 'PetabMixin', +] + class PetabMixin: """Useful things for classes that contain a PEtab problem. diff --git a/petab_select/problem.py b/petab_select/problem.py index 0e5cbebe..a8f068c0 100644 --- a/petab_select/problem.py +++ b/petab_select/problem.py @@ -20,6 +20,10 @@ from .model import Model, default_compare from .model_space import ModelSpace +__all__ = [ + 'Problem', +] + class Problem(abc.ABC): """Handle everything related to the model selection problem. diff --git a/petab_select/ui.py b/petab_select/ui.py index bdb34b82..89a0e10b 100644 --- a/petab_select/ui.py +++ b/petab_select/ui.py @@ -9,6 +9,14 @@ from .model import Model, default_compare from .problem import Problem +__all__ = [ + 'candidates', + 'model_to_petab', + 'models_to_petab', + 'best', + 'write_summary_tsv', +] + def candidates( problem: Problem,