mxlpy 0.19.0__py3-none-any.whl → 0.20.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
mxlpy/sbml/_data.py CHANGED
@@ -1,5 +1,12 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from dataclasses import dataclass
4
+ from typing import TYPE_CHECKING
5
+
6
+ if TYPE_CHECKING:
7
+ from collections.abc import Mapping
8
+
9
+
3
10
  __all__ = [
4
11
  "AtomicUnit",
5
12
  "Compartment",
@@ -11,12 +18,6 @@ __all__ = [
11
18
  "Reaction",
12
19
  ]
13
20
 
14
- from dataclasses import dataclass
15
- from typing import TYPE_CHECKING
16
-
17
- if TYPE_CHECKING:
18
- from collections.abc import Mapping
19
-
20
21
 
21
22
  @dataclass
22
23
  class AtomicUnit:
mxlpy/sbml/_mathml.py CHANGED
@@ -1,5 +1,13 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from typing import TYPE_CHECKING, Any
4
+
5
+ from ._name_conversion import _name_to_py
6
+ from ._unit_conversion import get_ast_types
7
+
8
+ if TYPE_CHECKING:
9
+ from libsbml import ASTNode
10
+
3
11
  __all__ = [
4
12
  "AST_TYPES",
5
13
  "handle_ast_constant_e",
@@ -73,13 +81,6 @@ __all__ = [
73
81
  "parse_sbml_math",
74
82
  ]
75
83
 
76
- from typing import TYPE_CHECKING, Any
77
-
78
- from ._name_conversion import _name_to_py
79
- from ._unit_conversion import get_ast_types
80
-
81
- if TYPE_CHECKING:
82
- from libsbml import ASTNode
83
84
 
84
85
  AST_TYPES = get_ast_types()
85
86
 
@@ -3,7 +3,11 @@ from __future__ import annotations
3
3
  import keyword
4
4
  import re
5
5
 
6
- __all__ = ["RE_FROM_SBML", "RE_KWDS", "SBML_DOT"]
6
+ __all__ = [
7
+ "RE_FROM_SBML",
8
+ "RE_KWDS",
9
+ "SBML_DOT",
10
+ ]
7
11
 
8
12
  RE_KWDS = re.compile("|".join(f"^{i}$" for i in keyword.kwlist))
9
13
  SBML_DOT = "__SBML_DOT__"
mxlpy/scan.py CHANGED
@@ -15,19 +15,6 @@ Functions:
15
15
 
16
16
  from __future__ import annotations
17
17
 
18
- from mxlpy.integrators import DefaultIntegrator
19
-
20
- __all__ = [
21
- "ProtocolWorker",
22
- "SteadyStateWorker",
23
- "TimeCourse",
24
- "TimeCourseWorker",
25
- "TimePoint",
26
- "steady_state",
27
- "time_course",
28
- "time_course_over_protocol",
29
- ]
30
-
31
18
  from dataclasses import dataclass
32
19
  from functools import partial
33
20
  from typing import TYPE_CHECKING, Protocol, Self, cast
@@ -35,14 +22,10 @@ from typing import TYPE_CHECKING, Protocol, Self, cast
35
22
  import numpy as np
36
23
  import pandas as pd
37
24
 
25
+ from mxlpy.integrators import DefaultIntegrator
38
26
  from mxlpy.parallel import Cache, parallelise
39
27
  from mxlpy.simulator import Result, Simulator
40
- from mxlpy.types import (
41
- IntegratorType,
42
- ProtocolByPars,
43
- SteadyStates,
44
- TimeCourseByPars,
45
- )
28
+ from mxlpy.types import IntegratorType, ProtocolByPars, SteadyStates, TimeCourseByPars
46
29
 
47
30
  if TYPE_CHECKING:
48
31
  from collections.abc import Callable
@@ -51,6 +34,18 @@ if TYPE_CHECKING:
51
34
  from mxlpy.types import Array
52
35
 
53
36
 
37
+ __all__ = [
38
+ "ProtocolWorker",
39
+ "SteadyStateWorker",
40
+ "TimeCourse",
41
+ "TimeCourseWorker",
42
+ "TimePoint",
43
+ "steady_state",
44
+ "time_course",
45
+ "time_course_over_protocol",
46
+ ]
47
+
48
+
54
49
  def _update_parameters_and_initial_conditions[T](
55
50
  pars: pd.Series,
56
51
  fn: Callable[[Model], T],
mxlpy/simulator.py CHANGED
@@ -21,14 +21,17 @@ from sympy import lambdify
21
21
  from mxlpy.integrators import DefaultIntegrator
22
22
  from mxlpy.symbolic import to_symbolic_model
23
23
 
24
- __all__ = ["Result", "Simulator"]
25
-
26
24
  if TYPE_CHECKING:
27
25
  from collections.abc import Iterator
28
26
 
29
27
  from mxlpy.model import Model
30
28
  from mxlpy.types import Array, ArrayLike, IntegratorProtocol, IntegratorType
31
29
 
30
+ __all__ = [
31
+ "Result",
32
+ "Simulator",
33
+ ]
34
+
32
35
 
33
36
  def _normalise_split_results(
34
37
  results: list[pd.DataFrame],
@@ -500,6 +503,35 @@ class Simulator:
500
503
  self._handle_simulation_results(time, results, skipfirst=True)
501
504
  return self
502
505
 
506
+ def simulate_over_protocol(
507
+ self,
508
+ protocol: pd.DataFrame,
509
+ time_points_per_step: int = 10,
510
+ ) -> Self:
511
+ """Simulate the model over a given protocol.
512
+
513
+ Examples:
514
+ >>> Simulator(model).simulate_over_protocol(
515
+ ... protocol,
516
+ ... time_points_per_step=10
517
+ ... )
518
+
519
+ Args:
520
+ protocol: DataFrame containing the protocol.
521
+ time_points_per_step: Number of time points per step.
522
+
523
+ Returns:
524
+ The Simulator instance with updated results.
525
+
526
+ """
527
+ for t_end, pars in protocol.iterrows():
528
+ t_end = cast(pd.Timedelta, t_end)
529
+ self.model.update_parameters(pars.to_dict())
530
+ self.simulate(t_end.total_seconds(), steps=time_points_per_step)
531
+ if self.variables is None:
532
+ break
533
+ return self
534
+
503
535
  def simulate_to_steady_state(
504
536
  self,
505
537
  tolerance: float = 1e-6,
@@ -535,35 +567,6 @@ class Simulator:
535
567
  )
536
568
  return self
537
569
 
538
- def simulate_over_protocol(
539
- self,
540
- protocol: pd.DataFrame,
541
- time_points_per_step: int = 10,
542
- ) -> Self:
543
- """Simulate the model over a given protocol.
544
-
545
- Examples:
546
- >>> Simulator(model).simulate_over_protocol(
547
- ... protocol,
548
- ... time_points_per_step=10
549
- ... )
550
-
551
- Args:
552
- protocol: DataFrame containing the protocol.
553
- time_points_per_step: Number of time points per step.
554
-
555
- Returns:
556
- The Simulator instance with updated results.
557
-
558
- """
559
- for t_end, pars in protocol.iterrows():
560
- t_end = cast(pd.Timedelta, t_end)
561
- self.model.update_parameters(pars.to_dict())
562
- self.simulate(t_end.total_seconds(), steps=time_points_per_step)
563
- if self.variables is None:
564
- break
565
- return self
566
-
567
570
  def get_result(self) -> Result | None:
568
571
  """Get result of the simulation.
569
572
 
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  from dataclasses import dataclass
2
4
  from typing import Self, cast
3
5
 
mxlpy/surrogates/_poly.py CHANGED
@@ -1,6 +1,7 @@
1
- from collections.abc import Iterable
1
+ from __future__ import annotations
2
+
2
3
  from dataclasses import dataclass
3
- from typing import Literal
4
+ from typing import TYPE_CHECKING, Literal
4
5
 
5
6
  import numpy as np
6
7
  import pandas as pd
@@ -8,6 +9,9 @@ from numpy import polynomial
8
9
 
9
10
  from mxlpy.types import AbstractSurrogate, ArrayLike, Derived
10
11
 
12
+ if TYPE_CHECKING:
13
+ from collections.abc import Iterable
14
+
11
15
  __all__ = [
12
16
  "PolynomialExpansion",
13
17
  "Surrogate",
mxlpy/surrogates/_qss.py CHANGED
@@ -9,7 +9,10 @@ from mxlpy.types import AbstractSurrogate, Array
9
9
  if TYPE_CHECKING:
10
10
  import pandas as pd
11
11
 
12
- __all__ = ["QSSFn", "Surrogate"]
12
+ __all__ = [
13
+ "QSSFn",
14
+ "Surrogate",
15
+ ]
13
16
 
14
17
  type QSSFn = Callable[..., Iterable[float] | Array]
15
18
 
@@ -1,18 +1,22 @@
1
+ from __future__ import annotations
2
+
1
3
  from collections.abc import Callable
2
4
  from dataclasses import dataclass
3
- from typing import Self
5
+ from typing import TYPE_CHECKING, Self
4
6
 
5
7
  import numpy as np
6
8
  import pandas as pd
7
9
  import torch
8
10
  from torch import nn
9
11
  from torch.optim.adam import Adam
10
- from torch.optim.optimizer import ParamsT
11
12
 
12
13
  from mxlpy.nn._torch import MLP, DefaultDevice
13
14
  from mxlpy.nn._torch import train as _train
14
15
  from mxlpy.types import AbstractSurrogate, Derived
15
16
 
17
+ if TYPE_CHECKING:
18
+ from torch.optim.optimizer import ParamsT
19
+
16
20
  type LossFn = Callable[[torch.Tensor, torch.Tensor], torch.Tensor]
17
21
 
18
22
  __all__ = [
@@ -1,10 +1,12 @@
1
1
  """Symbolic utilities."""
2
2
 
3
+ from __future__ import annotations
4
+
5
+ from .strikepy import check_identifiability
6
+ from .symbolic_model import SymbolicModel, to_symbolic_model
7
+
3
8
  __all__ = [
4
9
  "SymbolicModel",
5
10
  "check_identifiability",
6
11
  "to_symbolic_model",
7
12
  ]
8
-
9
- from .strikepy import check_identifiability
10
- from .symbolic_model import SymbolicModel, to_symbolic_model
@@ -10,13 +10,15 @@ FIXME:
10
10
  - performance issues of generic_rank
11
11
  """
12
12
 
13
+ from __future__ import annotations
14
+
13
15
  import textwrap
14
16
  from concurrent.futures import ProcessPoolExecutor
15
17
  from dataclasses import dataclass, field
16
18
  from functools import partial
17
19
  from math import ceil, inf
18
20
  from time import time
19
- from typing import cast
21
+ from typing import TYPE_CHECKING, cast
20
22
 
21
23
  import numpy as np
22
24
  import numpy.typing as npt
@@ -27,7 +29,8 @@ import tqdm
27
29
  from sympy import Matrix
28
30
  from sympy.matrices import zeros
29
31
 
30
- from .symbolic_model import SymbolicModel
32
+ if TYPE_CHECKING:
33
+ from .symbolic_model import SymbolicModel
31
34
 
32
35
  __all__ = [
33
36
  "Options",
@@ -1,15 +1,24 @@
1
1
  # ruff: noqa: D100, D101, D102, D103, D104, D105, D106, D107, D200, D203, D400, D401
2
2
 
3
3
 
4
- from collections.abc import Iterable
4
+ from __future__ import annotations
5
+
5
6
  from dataclasses import dataclass
7
+ from typing import TYPE_CHECKING
6
8
 
7
9
  import sympy
8
10
 
9
11
  from mxlpy.meta.source_tools import fn_to_sympy
10
- from mxlpy.model import Model
11
12
 
12
- __all__ = ["SymbolicModel", "to_symbolic_model"]
13
+ if TYPE_CHECKING:
14
+ from collections.abc import Iterable
15
+
16
+ from mxlpy.model import Model
17
+
18
+ __all__ = [
19
+ "SymbolicModel",
20
+ "to_symbolic_model",
21
+ ]
13
22
 
14
23
 
15
24
  @dataclass
mxlpy/types.py CHANGED
@@ -17,9 +17,13 @@ Classes:
17
17
  from __future__ import annotations
18
18
 
19
19
  from abc import abstractmethod
20
+ from collections.abc import Callable, Iterable, Iterator, Mapping
20
21
  from dataclasses import dataclass, field
22
+ from typing import TYPE_CHECKING, Any, ParamSpec, Protocol, TypeVar, cast
21
23
 
24
+ import numpy as np
22
25
  import pandas as pd
26
+ from numpy.typing import NDArray
23
27
 
24
28
  __all__ = [
25
29
  "AbstractEstimator",
@@ -27,7 +31,6 @@ __all__ = [
27
31
  "Array",
28
32
  "ArrayLike",
29
33
  "Derived",
30
- "Float",
31
34
  "IntegratorProtocol",
32
35
  "IntegratorType",
33
36
  "McSteadyStates",
@@ -46,15 +49,7 @@ __all__ = [
46
49
  "unwrap2",
47
50
  ]
48
51
 
49
- from collections.abc import Callable, Iterable, Iterator, Mapping
50
- from typing import TYPE_CHECKING, Any, ParamSpec, Protocol, TypeVar, cast
51
-
52
- import numpy as np
53
- import numpy.typing as npt
54
- from numpy.typing import NDArray
55
-
56
- type Float = npt.NDArray[np.floating[Any]] | float
57
- type RateFn = Callable[..., Float]
52
+ type RateFn = Callable[..., float]
58
53
  type Array = NDArray[np.floating[Any]]
59
54
  type ArrayLike = NDArray[np.floating[Any]] | list[float]
60
55
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mxlpy
3
- Version: 0.19.0
3
+ Version: 0.20.0
4
4
  Summary: A package to build metabolic models
5
5
  Author-email: Marvin van Aalst <marvin.vanaalst@gmail.com>
6
6
  Maintainer-email: Marvin van Aalst <marvin.vanaalst@gmail.com>
@@ -51,10 +51,12 @@ Requires-Dist: torch>=2.5.1; extra == 'torch'
51
51
  Description-Content-Type: text/markdown
52
52
 
53
53
  <p align="center">
54
- <img src="docs/assets/logo-diagram.png" width="600px" alt='mxlpy-logo'>
54
+ <img src="https://raw.githubusercontent.com/Computational-Biology-Aachen/MxlPy/refs/heads/main/docs/assets/logo-diagram.png" width="600px" alt='mxlpy-logo'>
55
55
  </p>
56
56
 
57
- # mxlpy
57
+
58
+
59
+ # MxlPy
58
60
 
59
61
  [![pypi](https://img.shields.io/pypi/v/mxlpy.svg)](https://pypi.python.org/pypi/mxlpy)
60
62
  [![docs][docs-badge]][docs]
@@ -71,7 +73,7 @@ Description-Content-Type: text/markdown
71
73
 
72
74
  You can install mxlpy using pip: `pip install mxlpy`.
73
75
 
74
- Due to their sizes, the machine learning are optional dependencies. You cann install them using
76
+ Due to their sizes, the machine learning packages are optional dependencies. You can install them using
75
77
 
76
78
  ```shell
77
79
  # One of them respectively
@@ -0,0 +1,55 @@
1
+ mxlpy/__init__.py,sha256=4pbDeyLhQjfL76h2oXdodARzKkrkX5wESV7kEjwC3K8,4399
2
+ mxlpy/compare.py,sha256=6iIl6yKXP9guSVLgqqnaqILP_BF_oqyx7DTGbdpwAjM,7800
3
+ mxlpy/distributions.py,sha256=ce6RTqn19YzMMec-u09fSIUA8A92M6rehCuHuXWcX7A,8734
4
+ mxlpy/fit.py,sha256=i1R_2WErNJdHNf6JWPFPBDfbI7-MkY9fTaO6jgL4Pqk,12433
5
+ mxlpy/fns.py,sha256=NLxYwa3ylS7SkISBjw_TgQSKEm7WnkZF9wPigX_ZCAM,13915
6
+ mxlpy/identify.py,sha256=I136kpczw_WriN-CtTMP3cBN-K4ZKaHW6lWZCWsIQUE,2233
7
+ mxlpy/label_map.py,sha256=Zla9tey-7_POTE57XNEuCSeTqdAbMWZdj_j_OwokngY,17823
8
+ mxlpy/linear_label_map.py,sha256=5FyD0MMdSGsC3eKeBnpd1LBHyVBqIDWCDjgR8_q6XZo,10289
9
+ mxlpy/mc.py,sha256=6uN2fw4W627FoK_yVNIWbphoPa-pBA7-51nIX81CilU,17200
10
+ mxlpy/mca.py,sha256=PloMdBtyoPsiyJT-vnB0RUc1aTFkoMYwvYa7WmKA7tY,9359
11
+ mxlpy/model.py,sha256=14gncyYft39rwoiJPb5AynL3whXnZrJY3N7SLExH0Qk,62056
12
+ mxlpy/parallel.py,sha256=a69Ci7NrCplo4pq7qFQUMtOPD56SfaZ6Vz3JNplJpZ0,5013
13
+ mxlpy/parameterise.py,sha256=IgbvfEnkmaqVq_5GgFjHqApGUN9CJrsVD3Fr7pg9iFA,758
14
+ mxlpy/paths.py,sha256=TK2wO4N9lG-UV1JGfeB64q48JVDbwqIUj63rl55MKuQ,1022
15
+ mxlpy/plot.py,sha256=PA7tAmy2XXACxBLtdnfpxKUFRzi-lnCQjr7gw_nzxKU,32544
16
+ mxlpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ mxlpy/report.py,sha256=6V_kH5usFtar2lUGLjG5k7WIJjUi1TD5qIO7V_6V3Gc,8773
18
+ mxlpy/scan.py,sha256=AnDSR-ttOjFGBrvOdhMdM04URZSHVoiS049tK0oUwV8,18948
19
+ mxlpy/simulator.py,sha256=fXFRJHXvDzhZHIccxH6l5QJEZUcpYrNCeA9DUkvnN-8,21052
20
+ mxlpy/types.py,sha256=FXBkwHgQ3v_k4ER49hDqyFMIA6i1BQf8isPma97LJdg,12605
21
+ mxlpy/experimental/__init__.py,sha256=kZTE-92OErpHzNRqmgSQYH4CGXrogGJ5EL35XGZQ81M,206
22
+ mxlpy/experimental/diff.py,sha256=MoM15rbMAHa7p9Zva8NxIc7K585kHJYKFaD1LnN5e10,9088
23
+ mxlpy/integrators/__init__.py,sha256=OLdcNCDIOiD1Z2LO143YtD47cMadNJt0app41nLAx5o,456
24
+ mxlpy/integrators/int_assimulo.py,sha256=8gLR1D4zJ-TnJ9DTkfkqA2uVE0H2w_npZhZ8RoWZOX8,5013
25
+ mxlpy/integrators/int_scipy.py,sha256=MEwhTNhMMVQE2UFWxv5fifN6TKVjRsyDmyibuuNNiHI,4649
26
+ mxlpy/meta/__init__.py,sha256=Z3LnN3a9qDAJTukHZs_nF_G6DrjKXOqBvOb47rSsAsM,314
27
+ mxlpy/meta/codegen_latex.py,sha256=ocdn_mrjPXllYBwImOBQcFzjFR6LONnBs3fhRIA0yzs,22875
28
+ mxlpy/meta/codegen_modebase.py,sha256=ziUuwod1F10ak7WTj5gcuVL7MLtK65kUhqKGCxgn3mY,3131
29
+ mxlpy/meta/codegen_py.py,sha256=bpwXrGUaf8lO81VVcIh0cbtf4cd84CYDZrL3ngf1FHo,3587
30
+ mxlpy/meta/source_tools.py,sha256=8kZD0_FnO2t8MTG9FvEFOhhU52uXKNpQJW6xDOGWGck,13540
31
+ mxlpy/nn/__init__.py,sha256=Qjr-ERsY2lbD75sFBOhCUwEasQDSJKcpBn_kReLZ6oA,633
32
+ mxlpy/nn/_keras.py,sha256=-5zjHRu8OjSiZeuBSIZFyB63uBsNNH5o9y4kBcPnhx8,2263
33
+ mxlpy/nn/_torch.py,sha256=GUJmLU282VU4O-fs3Sz90SEaAnfuXN2MPlBr_tHmvn4,5775
34
+ mxlpy/npe/__init__.py,sha256=hBHCUD2JYDBBGS2kTY8mTCfWB3u1R7m5l--wUupZt6o,1270
35
+ mxlpy/npe/_keras.py,sha256=ytvXMPK9KUCGOzTQm08_SgafiMb-MOIUdZQV7JjAO40,9721
36
+ mxlpy/npe/_torch.py,sha256=v3joh6lFJJxvYJj--wzmKXL9UMTaIN3h6hPNq0uX9NU,11250
37
+ mxlpy/sbml/__init__.py,sha256=Mt97CddpLi3wIrA1b_5cagLmDdNxAVF_S7QV57Pzw8s,226
38
+ mxlpy/sbml/_data.py,sha256=yYli7ZQ1_pnH9kt5EmcuHM0moQoa43rrFVdrseXlG0o,1136
39
+ mxlpy/sbml/_export.py,sha256=4tU3SVxfEvl0E1urZWHyphkiAeH5HeRO1cODvvrczAQ,20342
40
+ mxlpy/sbml/_import.py,sha256=5odQBdpD93mQJp2bVIabmPo6NK60nxqrdSVB8fEsF_A,22099
41
+ mxlpy/sbml/_mathml.py,sha256=oaU9q5yb9jvDGxDJrqOkbOiurCB1Vv_P99oUwJ7v1VE,24437
42
+ mxlpy/sbml/_name_conversion.py,sha256=93muW47M7qJoE227HKHmThWpPeWsXDN9eM8cRH2pqPs,1340
43
+ mxlpy/sbml/_unit_conversion.py,sha256=dW_I6_Ou09ccwnp6LIdrPriIQnQUK5lJcjzM2Fawm6U,1927
44
+ mxlpy/surrogates/__init__.py,sha256=cz9qr0ToYSutIK45IvKrMe1mPP7Lj0I_V0HYGixfpZU,916
45
+ mxlpy/surrogates/_keras.py,sha256=r2pR3iTJOaMqtATbsCm5CF94TYG9b-9cKljc8kMOplQ,3852
46
+ mxlpy/surrogates/_poly.py,sha256=z2g3JTdVyQJ8dIiXP4BOun_yMZOrlYpPNvQ0wmFYDTk,3672
47
+ mxlpy/surrogates/_qss.py,sha256=9w-hPPhdcwybkyaSX0sIfYfvcKu1U5j4HHj4SlgZcYQ,723
48
+ mxlpy/surrogates/_torch.py,sha256=gU0secuRBYgewhNqZmSo6_Xf804dSzwWwIYmdKA7y60,6389
49
+ mxlpy/symbolic/__init__.py,sha256=_vM5YM5I6OH0QDbFt9uGYKO8Z5Vly0wbGuvUScVrPRU,258
50
+ mxlpy/symbolic/strikepy.py,sha256=tzo3uvPpXLDex09hWTuitVzuTNwbgl7jWGjD8g6a8iI,20033
51
+ mxlpy/symbolic/symbolic_model.py,sha256=JFzcIdyfJihvKjef748DMXU6WI8nHjgjIk5BwUuB4HQ,2543
52
+ mxlpy-0.20.0.dist-info/METADATA,sha256=oZ5kyCjoeUm28YKPxNSf0kTZx977NA3-3BfEd6riQSI,4402
53
+ mxlpy-0.20.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
54
+ mxlpy-0.20.0.dist-info/licenses/LICENSE,sha256=lHX9Eu70g3Iv1aOxXTWNHa3vq9vaVYSPQx4jOLYmDpw,1096
55
+ mxlpy-0.20.0.dist-info/RECORD,,
@@ -1,54 +0,0 @@
1
- mxlpy/__init__.py,sha256=ODndmfAX0zFTSqK1kVQN2s4W3FDqxuu5Mvf1pnv0IdE,4421
2
- mxlpy/distributions.py,sha256=ce6RTqn19YzMMec-u09fSIUA8A92M6rehCuHuXWcX7A,8734
3
- mxlpy/fit.py,sha256=WNg98wW47xkd4gNEgj3t8eNNTqfVpHEJTbXMRQBe22o,12457
4
- mxlpy/fns.py,sha256=VxDDyEdtGD7fEoT5LiiEaRqFk-0fIunRXHr1dCMpCdE,14002
5
- mxlpy/identify.py,sha256=veYYCjTDAlzibrWtciX2egfEWWgosOpqgLBgbfVj42g,2130
6
- mxlpy/label_map.py,sha256=_bStQJtQ4RlmTQyrW34W62pyXFF_XFVbTXv-ybdly0s,17816
7
- mxlpy/linear_label_map.py,sha256=DqzN_akacPccZwzYAR3ANIdzAU_GU6Xe6gWV9DHAAWU,10282
8
- mxlpy/mc.py,sha256=oYd8a3ycyZLyh-ZxTYUjDRNfsCcwSQaLWssxv0yC5Cc,17399
9
- mxlpy/mca.py,sha256=1_qBX9lHI6svXSebtwvMldAMwPlLqMylAPmxMbMQdWw,9359
10
- mxlpy/model.py,sha256=ykdFmh7AejqN8qJUXddc9tFVhDWED4CZ8QgRyyCrmK0,60784
11
- mxlpy/parallel.py,sha256=kX4Td5YoovDwZp6kX_3cfO6QtHSS9ieJ0bMZiKs3Xv8,5002
12
- mxlpy/parameterise.py,sha256=2jMhhO-bHTFP_0kXercJekeATAZYBg5FrK1MQ_mWGpk,654
13
- mxlpy/paths.py,sha256=TK2wO4N9lG-UV1JGfeB64q48JVDbwqIUj63rl55MKuQ,1022
14
- mxlpy/plot.py,sha256=MiV2Oi5kvI04VjjWiiVbAzRCGaZWue58_hQIRGzS4ik,28879
15
- mxlpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- mxlpy/report.py,sha256=ZwnjquPAvo4A8UqK-BT19SZFSEUOy1FALqoh7uTmbAI,7793
17
- mxlpy/scan.py,sha256=FBPpjv66v4IWZ5OwG_EWUdrucLWR9gq_XEsLFC-otaw,18969
18
- mxlpy/simulator.py,sha256=9Ne4P5Jrwgx4oAlljPvCqSCCy98_5Lv1B87y1AkbI4c,21041
19
- mxlpy/types.py,sha256=swhRTCRNbmI8-2Z3Y0YA9QkxrTxwzYJlMz2qFcfpRsA,12698
20
- mxlpy/experimental/__init__.py,sha256=kZTE-92OErpHzNRqmgSQYH4CGXrogGJ5EL35XGZQ81M,206
21
- mxlpy/experimental/diff.py,sha256=cxr3GkZOkhUaWDj1eXHbjKSVKciGIp_IUf7Jkh0FdEE,8968
22
- mxlpy/integrators/__init__.py,sha256=kqmV6a0TRyLGR_XqbyAI652AfptYnXAUpqbSFg0CpP8,450
23
- mxlpy/integrators/int_assimulo.py,sha256=H092idSPeFkPKAOVbr8M8iGdDpfc-MlPeDvh3-tP4rY,5013
24
- mxlpy/integrators/int_scipy.py,sha256=87nAVMY0DLQ_RAIDNa7pN6Xw8NFv5ifyZd8EmPT9rgY,4649
25
- mxlpy/meta/__init__.py,sha256=Jyy4063fZy6iT4LSwjPyEAVr4N_3xxcLc8wDBoDPyKc,278
26
- mxlpy/meta/codegen_latex.py,sha256=OjDgfRRvibs9Bg75J_FSl9fh_MTs8Vqu4Wm9L2JTOCk,19982
27
- mxlpy/meta/codegen_modebase.py,sha256=_ZAW4NvXhKwJQLGz5hkwwZpL2JMAJlfG-GUWkYIiNvw,3124
28
- mxlpy/meta/codegen_py.py,sha256=xSdeuEGPGc-QKRMgJO4VSPGMlxCPEV5prkKjNQ2D2hg,3483
29
- mxlpy/meta/source_tools.py,sha256=GSSFgH2lZ24e6eQxJ-lx4WSwawoPYdIwj_klt5Kr0h8,13464
30
- mxlpy/nn/__init__.py,sha256=Qjr-ERsY2lbD75sFBOhCUwEasQDSJKcpBn_kReLZ6oA,633
31
- mxlpy/nn/_keras.py,sha256=wffBYvQDNGp5me6x2yW4EwpKsnMojCJbXHfKE156a-w,2175
32
- mxlpy/nn/_torch.py,sha256=Omq7iMx2kbUXht2It-egiIYT2DzLGPbkpTCX-h17teI,5752
33
- mxlpy/npe/__init__.py,sha256=hBHCUD2JYDBBGS2kTY8mTCfWB3u1R7m5l--wUupZt6o,1270
34
- mxlpy/npe/_keras.py,sha256=ytvXMPK9KUCGOzTQm08_SgafiMb-MOIUdZQV7JjAO40,9721
35
- mxlpy/npe/_torch.py,sha256=v3joh6lFJJxvYJj--wzmKXL9UMTaIN3h6hPNq0uX9NU,11250
36
- mxlpy/sbml/__init__.py,sha256=AS7IwrBzBgN8coUZkyBEtiYa9ICWyY1wzp1ujVm5ItA,226
37
- mxlpy/sbml/_data.py,sha256=XwT1sSxn6KLTXYMbk4ORbEAEgZhQDBfoyrjMBDAoY_s,1135
38
- mxlpy/sbml/_export.py,sha256=4tU3SVxfEvl0E1urZWHyphkiAeH5HeRO1cODvvrczAQ,20342
39
- mxlpy/sbml/_import.py,sha256=5odQBdpD93mQJp2bVIabmPo6NK60nxqrdSVB8fEsF_A,22099
40
- mxlpy/sbml/_mathml.py,sha256=bNk9RQ_NQFDhY1R354p-gwqqHaIiyAwZ1xLPHHhiguQ,24436
41
- mxlpy/sbml/_name_conversion.py,sha256=XK9DEyzhrD0GBBwwjK9RA0yORrDX5c-Uvx0VtKMR5rA,1325
42
- mxlpy/sbml/_unit_conversion.py,sha256=dW_I6_Ou09ccwnp6LIdrPriIQnQUK5lJcjzM2Fawm6U,1927
43
- mxlpy/surrogates/__init__.py,sha256=cz9qr0ToYSutIK45IvKrMe1mPP7Lj0I_V0HYGixfpZU,916
44
- mxlpy/surrogates/_keras.py,sha256=y4nW626Nr4OQrTdZneDf-Ox2sKmqKmGmEbjpuQMEl10,3816
45
- mxlpy/surrogates/_poly.py,sha256=qhwiWMQsQGq6qBEzagR-riM7Yp33FilsudMkGZ7mkEU,3598
46
- mxlpy/surrogates/_qss.py,sha256=q-CoULIntdXclArm7eHGHlZpgBKQmJrZ0ZaG2Q3B_Pg,712
47
- mxlpy/surrogates/_torch.py,sha256=lGKjLgHmUsD0iAbKzQUeKfN8C88ChQPg1pqidiYucWg,6315
48
- mxlpy/symbolic/__init__.py,sha256=3hQjCMw8-6iOxeUdfnCg8449fF_BRF2u6lCM1GPpkRY,222
49
- mxlpy/symbolic/strikepy.py,sha256=UMx2LMRwCkASKjdCYEvh9tKlW9dk3nDoWM9NNJXWL_8,19960
50
- mxlpy/symbolic/symbolic_model.py,sha256=lxkDW7L00Og_8Rwf7j0Gek0nQxRu7kyboioY4ZUqfx0,2435
51
- mxlpy-0.19.0.dist-info/METADATA,sha256=YValpHti39pA32FnMfkI0zLgmD7yVG8M_WGWNytSrm8,4307
52
- mxlpy-0.19.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
53
- mxlpy-0.19.0.dist-info/licenses/LICENSE,sha256=lHX9Eu70g3Iv1aOxXTWNHa3vq9vaVYSPQx4jOLYmDpw,1096
54
- mxlpy-0.19.0.dist-info/RECORD,,
File without changes