Skip to content

Commit

Permalink
Add stacklevel to warnings (#2421)
Browse files Browse the repository at this point in the history
Make it easier to find out where warnings originate from.
  • Loading branch information
dweindl authored May 3, 2024
1 parent 6b05ddd commit 8c3b59a
Show file tree
Hide file tree
Showing 11 changed files with 26 additions and 9 deletions.
3 changes: 2 additions & 1 deletion python/sdist/amici/logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,8 @@ def get_logger(
elif kwargs:
warnings.warn(
"AMICI logger already exists, ignoring keyword "
"arguments to setup_logger"
"arguments to setup_logger",
stacklevel=2,
)

logger = logging.getLogger(logger_name)
Expand Down
1 change: 1 addition & 0 deletions python/sdist/amici/parameter_mapping.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
warnings.warn(
"Importing amici.parameter_mapping is deprecated. Use `amici.petab.parameter_mapping` instead.",
DeprecationWarning,
stacklevel=2,
)

__all__ = [
Expand Down
1 change: 1 addition & 0 deletions python/sdist/amici/petab/conditions.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ def fill_in_parameters(
"The following problem parameters were not used: "
+ str(unused_parameters),
RuntimeWarning,
stacklevel=2,
)

for edata, mapping_for_condition in zip(
Expand Down
1 change: 1 addition & 0 deletions python/sdist/amici/petab_import.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
warnings.warn(
"Importing amici.petab_import is deprecated. Use `amici.petab` instead.",
DeprecationWarning,
stacklevel=2,
)

from .petab.import_helpers import ( # noqa # pylint: disable=unused-import
Expand Down
1 change: 1 addition & 0 deletions python/sdist/amici/petab_import_pysb.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
warnings.warn(
"Importing amici.petab_import_pysb is deprecated. Use `amici.petab.pysb_import` instead.",
DeprecationWarning,
stacklevel=2,
)

__all__ = [
Expand Down
1 change: 1 addition & 0 deletions python/sdist/amici/petab_objective.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
warnings.warn(
f"Importing {__name__} is deprecated. Use `amici.petab.simulations` instead.",
DeprecationWarning,
stacklevel=2,
)

from .petab.conditions import fill_in_parameters # noqa: F401
Expand Down
1 change: 1 addition & 0 deletions python/sdist/amici/petab_simulate.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
warnings.warn(
f"Importing {__name__} is deprecated. Use `amici.petab.simulator` instead.",
DeprecationWarning,
stacklevel=2,
)

from .petab.simulator import PetabSimulator # noqa: F401
Expand Down
1 change: 1 addition & 0 deletions python/sdist/amici/petab_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
warnings.warn(
f"Importing {__name__} is deprecated. Use `amici.petab.util` instead.",
DeprecationWarning,
stacklevel=2,
)

__all__ = [
Expand Down
18 changes: 12 additions & 6 deletions python/sdist/amici/sbml_import.py
Original file line number Diff line number Diff line change
Expand Up @@ -442,7 +442,8 @@ def sbml2amici(
if not has_clibs:
warnings.warn(
"AMICI C++ extensions have not been built. "
"Generated model code, but unable to compile."
"Generated model code, but unable to compile.",
stacklevel=2,
)
exporter.compile_model()

Expand Down Expand Up @@ -1838,7 +1839,8 @@ def _process_event_observables(
f'Event observable {eo["name"]} uses `t` in '
"it's formula which is not the time variable. "
"For the time variable, please use `time` "
"instead!"
"instead!",
stacklevel=1,
)

# check for nesting of observables (unsupported)
Expand Down Expand Up @@ -2157,7 +2159,8 @@ def _get_conservation_laws_demartino(
"Conservation laws for non-constant species in "
"combination with parameterized stoichiometric "
"coefficients are not currently supported "
"and will be turned off."
"and will be turned off.",
stacklevel=1,
)
return []

Expand Down Expand Up @@ -2234,7 +2237,8 @@ def _get_conservation_laws_rref(
"Conservation laws for non-constant species in "
"combination with parameterized stoichiometric "
"coefficients are not currently supported "
"and will be turned off."
"and will be turned off.",
stacklevel=1,
)
return []

Expand Down Expand Up @@ -3048,7 +3052,8 @@ def _non_const_conservation_laws_supported(sbml_model: sbml.Model) -> bool:
warnings.warn(
"Conservation laws for non-constant species in "
"models with RateRules are currently not supported "
"and will be turned off."
"and will be turned off.",
stacklevel=1,
)
return False

Expand All @@ -3060,7 +3065,8 @@ def _non_const_conservation_laws_supported(sbml_model: sbml.Model) -> bool:
warnings.warn(
"Conservation laws for non-constant species in "
"models with Species-AssignmentRules are currently not "
"supported and will be turned off."
"supported and will be turned off.",
stacklevel=1,
)
return False

Expand Down
6 changes: 4 additions & 2 deletions python/sdist/amici/swig_wrappers.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@ def runAmiciSimulation(
warnings.warn(
"Adjoint sensitivity analysis for models with discontinuous right hand sides (events/piecewise functions) has not been thoroughly tested."
"Sensitivities might be wrong. Tracked at https://github.com/AMICI-dev/AMICI/issues/18. "
"Adjoint sensitivity analysis may work if the location of the discontinuity is not parameter-dependent, but we still recommend testing accuracy of gradients."
"Adjoint sensitivity analysis may work if the location of the discontinuity is not parameter-dependent, but we still recommend testing accuracy of gradients.",
stacklevel=1,
)

with _capture_cstdout():
Expand Down Expand Up @@ -119,7 +120,8 @@ def runAmiciSimulations(
warnings.warn(
"Adjoint sensitivity analysis for models with discontinuous right hand sides (events/piecewise functions) has not been thoroughly tested. "
"Sensitivities might be wrong. Tracked at https://github.com/AMICI-dev/AMICI/issues/18. "
"Adjoint sensitivity analysis may work if the location of the discontinuity is not parameter-dependent, but we still recommend testing accuracy of gradients."
"Adjoint sensitivity analysis may work if the location of the discontinuity is not parameter-dependent, but we still recommend testing accuracy of gradients.",
stacklevel=1,
)

with _capture_cstdout():
Expand Down
1 change: 1 addition & 0 deletions python/sdist/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -130,4 +130,5 @@ line-length = 79
extend-include = ["*.ipynb"]

[tool.ruff.lint]
extend-select = ["B028"]
ignore = ["E402", "F403", "F405", "E741"]

0 comments on commit 8c3b59a

Please sign in to comment.