fmdtools 2.0.4__tar.gz → 2.0.5__tar.gz
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.
- {fmdtools-2.0.4 → fmdtools-2.0.5}/LICENSE +1 -1
- {fmdtools-2.0.4 → fmdtools-2.0.5}/PKG-INFO +8 -6
- {fmdtools-2.0.4 → fmdtools-2.0.5}/README.md +4 -4
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/__init__.py +1 -1
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/architecture/base.py +3 -2
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/block/function.py +1 -1
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/environment.py +8 -10
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/object/coords.py +10 -2
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/sim/propagate.py +5 -2
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools.egg-info/PKG-INFO +8 -6
- {fmdtools-2.0.4 → fmdtools-2.0.5}/pyproject.toml +3 -1
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/asg_demo/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/asg_demo/demo_model.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/eps/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/eps/eps.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/eps/test_eps.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/multiflow_demo/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/multiflow_demo/multiflow_demo.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/multiflow_demo/test_multiflow.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/multirotor/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/multirotor/drone_mdl_dynamic.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/multirotor/drone_mdl_hierarchical.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/multirotor/drone_mdl_rural.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/multirotor/drone_mdl_static.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/multirotor/drone_mdl_urban.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/multirotor/opt_drone_rural.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/multirotor/test_multirotor.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/pump/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/pump/ex_pump.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/pump/jointfaults_ex.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/pump/parallelism_methods.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/pump/pump_indiv.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/pump/pump_stochastic.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/pump/test_pump.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/pump/test_pump_example.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/pump/test_pump_stochastic.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/rover/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/rover/opt_rover.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/rover/optimization/ea_analysis.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/rover/optimization/search_rover.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/rover/optimization/untitled2.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/rover/rover_degradation.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/rover/rover_mode_space.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/rover/rover_model.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/rover/rover_model_human.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/rover/test_rover.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/tank/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/tank/tank_model.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/tank/tank_optimization_model.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/tank/test_tank.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/taxiway/ATC.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/taxiway/asset.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/taxiway/common.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/taxiway/model.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/taxiway/test_asset.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/examples/taxiway/test_model.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/analyze/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/analyze/common.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/analyze/graph/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/analyze/graph/base.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/analyze/graph/label.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/analyze/graph/model.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/analyze/graph/style.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/analyze/history.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/analyze/phases.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/analyze/result.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/analyze/tabulate.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/architecture/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/architecture/action.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/architecture/component.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/architecture/function.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/architecture/geom.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/base.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/block/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/block/action.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/block/base.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/block/component.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/container/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/container/base.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/container/mode.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/container/parameter.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/container/rand.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/container/state.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/container/time.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/flow/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/flow/base.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/flow/commsflow.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/flow/multiflow.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/object/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/object/base.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/object/geom.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/define/object/timer.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/sim/__init__.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/sim/sample.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/sim/scenario.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools/sim/search.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools.egg-info/SOURCES.txt +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools.egg-info/dependency_links.txt +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools.egg-info/requires.txt +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/fmdtools.egg-info/top_level.txt +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/setup.cfg +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/tests/test_graph.py +0 -0
- {fmdtools-2.0.4 → fmdtools-2.0.5}/tests/test_packages.py +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: fmdtools
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.5
|
|
4
4
|
Summary: System resilience modelling, simulation, and assessment in Python
|
|
5
5
|
Author: fmdtools Developers
|
|
6
6
|
Maintainer-email: Daniel Hulse <daniel.e.hulse@nasa.gov>
|
|
7
|
-
License: fmdtools version 2.0.
|
|
7
|
+
License: fmdtools version 2.0.5
|
|
8
8
|
---------------------------
|
|
9
9
|
Apache License
|
|
10
10
|
Version 2.0, January 2004
|
|
@@ -236,7 +236,9 @@ Project-URL: Documentation, https://nasa.github.io/fmdtools/
|
|
|
236
236
|
Project-URL: source-code, https://github.com/nasa/fmdtools
|
|
237
237
|
Classifier: Development Status :: 5 - Production/Stable
|
|
238
238
|
Classifier: Intended Audience :: Science/Research
|
|
239
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
239
240
|
Classifier: Programming Language :: Python :: 3.11
|
|
241
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
240
242
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
241
243
|
Classifier: Operating System :: OS Independent
|
|
242
244
|
Classifier: Topic :: Scientific/Engineering
|
|
@@ -268,7 +270,7 @@ Requires-Dist: shapely>=2.0
|
|
|
268
270
|
[](https://github.com/nasa/fmdtools/tags)
|
|
269
271
|
[](https://www.codefactor.io/repository/github/nasa/fmdtools)
|
|
270
272
|
[](https://htmlpreview.github.io/?https://github.com/nasa/fmdtools/blob/main/reports/full-py311/junit/report.html)
|
|
271
|
-
[](https://htmlpreview.github.io/?https://github.com/nasa/fmdtools/blob/main/reports/full-py311/
|
|
273
|
+
[](https://htmlpreview.github.io/?https://github.com/nasa/fmdtools/blob/main/reports/full-py311/coverage_html/index.html)
|
|
272
274
|
[](https://github.com/nasa/fmdtools/blob/main/LICENSE)
|
|
273
275
|
[](https://nodis3.gsfc.nasa.gov/displayDir.cfm?Internal_ID=N_PR_7150_002D_&page_name=AppendixD)
|
|
274
276
|
|
|
@@ -355,7 +357,7 @@ This may then be installed using:
|
|
|
355
357
|
Note that this version reflects the latest version on the ``main`` git branch along with any local changes. To use a particular version of ``fmdtools`` you can checkout the tag corresponding to the version you want, e.g.:
|
|
356
358
|
|
|
357
359
|
```
|
|
358
|
-
git checkout v2.0.
|
|
360
|
+
git checkout v2.0.5
|
|
359
361
|
```
|
|
360
362
|
|
|
361
363
|
|
|
@@ -493,8 +495,8 @@ To cite a particular version of the fmdtools, you may use:
|
|
|
493
495
|
author = {{NASA}},
|
|
494
496
|
title = {fmdtools},
|
|
495
497
|
url = {https://github.com/nasa/fmdtools},
|
|
496
|
-
version = {2.0.
|
|
497
|
-
date = {2024-
|
|
498
|
+
version = {2.0.5}, # <- replace with your version number
|
|
499
|
+
date = {2024-11-13},
|
|
498
500
|
}
|
|
499
501
|
```
|
|
500
502
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
[](https://github.com/nasa/fmdtools/tags)
|
|
11
11
|
[](https://www.codefactor.io/repository/github/nasa/fmdtools)
|
|
12
12
|
[](https://htmlpreview.github.io/?https://github.com/nasa/fmdtools/blob/main/reports/full-py311/junit/report.html)
|
|
13
|
-
[](https://htmlpreview.github.io/?https://github.com/nasa/fmdtools/blob/main/reports/full-py311/
|
|
13
|
+
[](https://htmlpreview.github.io/?https://github.com/nasa/fmdtools/blob/main/reports/full-py311/coverage_html/index.html)
|
|
14
14
|
[](https://github.com/nasa/fmdtools/blob/main/LICENSE)
|
|
15
15
|
[](https://nodis3.gsfc.nasa.gov/displayDir.cfm?Internal_ID=N_PR_7150_002D_&page_name=AppendixD)
|
|
16
16
|
|
|
@@ -97,7 +97,7 @@ This may then be installed using:
|
|
|
97
97
|
Note that this version reflects the latest version on the ``main`` git branch along with any local changes. To use a particular version of ``fmdtools`` you can checkout the tag corresponding to the version you want, e.g.:
|
|
98
98
|
|
|
99
99
|
```
|
|
100
|
-
git checkout v2.0.
|
|
100
|
+
git checkout v2.0.5
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
|
|
@@ -235,8 +235,8 @@ To cite a particular version of the fmdtools, you may use:
|
|
|
235
235
|
author = {{NASA}},
|
|
236
236
|
title = {fmdtools},
|
|
237
237
|
url = {https://github.com/nasa/fmdtools},
|
|
238
|
-
version = {2.0.
|
|
239
|
-
date = {2024-
|
|
238
|
+
version = {2.0.5}, # <- replace with your version number
|
|
239
|
+
date = {2024-11-13},
|
|
240
240
|
}
|
|
241
241
|
```
|
|
242
242
|
|
|
@@ -156,6 +156,9 @@ class Architecture(Simulable):
|
|
|
156
156
|
as_copy = self.as_copy
|
|
157
157
|
|
|
158
158
|
track = get_sub_include(name, get_sub_include(flex_role, self.track))
|
|
159
|
+
# sync rands, if present
|
|
160
|
+
if hasattr(self, 'r') and hasattr(objclass, "container_r"):
|
|
161
|
+
kwargs = {**{'r': {"seed": self.r.seed}}, **kwargs}
|
|
159
162
|
obj = init_obj(name=name, objclass=objclass, track=track,
|
|
160
163
|
as_copy=as_copy, root=self.get_full_name()+"."+flex_role,
|
|
161
164
|
**kwargs)
|
|
@@ -231,8 +234,6 @@ class Architecture(Simulable):
|
|
|
231
234
|
"""
|
|
232
235
|
flows = self.get_flows(*flownames, all_if_empty=False)
|
|
233
236
|
fkwargs = {**{'sp': self.sp.asdict()}, **kwargs}
|
|
234
|
-
if hasattr(self, 'r'):
|
|
235
|
-
fkwargs = {**{'r': {"seed": self.r.seed}}, **fkwargs}
|
|
236
237
|
if not self.sp.use_local:
|
|
237
238
|
fkwargs = {**{'t': {'dt': self.sp.dt}}, **fkwargs}
|
|
238
239
|
|
|
@@ -66,15 +66,18 @@ class Environment(CommsFlow):
|
|
|
66
66
|
|
|
67
67
|
def __init__(self, name='', root='', glob=[], p={}, s={}, r={}, c={}, ga={},
|
|
68
68
|
track='default'):
|
|
69
|
+
super().__init__(name=name, root=root, glob=glob, p=p, s=s, track=track)
|
|
70
|
+
# NOTE: p and s also init here because if not, they are overritten
|
|
71
|
+
# may need to change in the future
|
|
72
|
+
self.init_roletypes('container', "coords", "arch", r=r, p=p, s=s)
|
|
69
73
|
if 'p' not in c and getattr(self.coords_c, 'container_p', None) == getattr(self, 'container_p', None):
|
|
70
74
|
c = {**c, 'p': p}
|
|
71
75
|
if 'p' not in ga and getattr(self.arch_ga, 'container_p', None) == getattr(self, 'container_p', None):
|
|
72
76
|
ga = {**ga, 'p': p}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
self.init_roletypes('
|
|
77
|
-
self.update_seed()
|
|
77
|
+
r_kwargs = {'run_stochastic': self.r.run_stochastic, 'seed': self.r.seed}
|
|
78
|
+
c = {**{'r': r_kwargs}, **c}
|
|
79
|
+
ga = {**{'r': r_kwargs}, **ga}
|
|
80
|
+
self.init_roletypes('coords', 'arch', c=c, ga=ga)
|
|
78
81
|
|
|
79
82
|
def base_type(self):
|
|
80
83
|
"""Return fmdtools type of the model class."""
|
|
@@ -123,11 +126,6 @@ class Environment(CommsFlow):
|
|
|
123
126
|
self.c = self.coords_c(**self._args_c)
|
|
124
127
|
self.ga.reset()
|
|
125
128
|
|
|
126
|
-
def update_seed(self, seed=[]):
|
|
127
|
-
if not seed:
|
|
128
|
-
seed = self.r.seed
|
|
129
|
-
self.c.r.update_seed(seed)
|
|
130
|
-
|
|
131
129
|
def return_probdens(self):
|
|
132
130
|
return self.r.return_probdens() * self.c.r.return_probdens()
|
|
133
131
|
|
|
@@ -787,7 +787,7 @@ class Coords(BaseObject):
|
|
|
787
787
|
|
|
788
788
|
def set_rand_pts(self, prop, value, number, pts=None, replace=False):
|
|
789
789
|
"""
|
|
790
|
-
|
|
790
|
+
Set a given number of points for a property to random value.
|
|
791
791
|
|
|
792
792
|
Parameters
|
|
793
793
|
----------
|
|
@@ -840,7 +840,7 @@ class Coords(BaseObject):
|
|
|
840
840
|
|
|
841
841
|
def return_mutables(self):
|
|
842
842
|
"""Check if grid properties have changed (used in propagation)."""
|
|
843
|
-
return tuple([*(tuple(map(tuple, getattr(self, state)))
|
|
843
|
+
return tuple([*(tuple(map(tuple, replace_array_nan(getattr(self, state))))
|
|
844
844
|
for state in self.states)])
|
|
845
845
|
|
|
846
846
|
def copy(self):
|
|
@@ -1321,6 +1321,14 @@ class Coords(BaseObject):
|
|
|
1321
1321
|
return fig, ax
|
|
1322
1322
|
|
|
1323
1323
|
|
|
1324
|
+
def replace_array_nan(array):
|
|
1325
|
+
"""Turn arrays with nans into arrays with infs."""
|
|
1326
|
+
if np.isnan(array).any():
|
|
1327
|
+
return np.nan_to_num(array, nan=np.inf)
|
|
1328
|
+
else:
|
|
1329
|
+
return array
|
|
1330
|
+
|
|
1331
|
+
|
|
1324
1332
|
class ExampleCoordsParam(CoordsParam):
|
|
1325
1333
|
"""Example of a Coords param for use in documentation/testing."""
|
|
1326
1334
|
|
|
@@ -359,9 +359,12 @@ def exec_nom_par(arg):
|
|
|
359
359
|
return endclass, mdlhist
|
|
360
360
|
|
|
361
361
|
|
|
362
|
-
def exec_nom_helper(mdl, scen, name, **kwargs):
|
|
362
|
+
def exec_nom_helper(mdl, scen, name, mdl_kwargs={}, **kwargs):
|
|
363
363
|
"""Execute a nominal scenario (helper function)."""
|
|
364
|
-
|
|
364
|
+
mdl_kwargs = {'p': {**mdl_kwargs.get('p', {}), **scen.p},
|
|
365
|
+
'sp': {**mdl_kwargs.get('sp', {}), **scen.sp},
|
|
366
|
+
'r': {**mdl_kwargs.get('r', {}), **scen.r}}
|
|
367
|
+
mdl_run = mdl.new(**mdl_kwargs)
|
|
365
368
|
result, mdlhist, _, t_end = prop_one_scen(mdl_run, scen, **kwargs)
|
|
366
369
|
check_hist_memory(mdlhist, kwargs['num_scens'], max_mem=kwargs['max_mem'])
|
|
367
370
|
save_helper(kwargs['save_args'], result, mdlhist, name, name)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: fmdtools
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.5
|
|
4
4
|
Summary: System resilience modelling, simulation, and assessment in Python
|
|
5
5
|
Author: fmdtools Developers
|
|
6
6
|
Maintainer-email: Daniel Hulse <daniel.e.hulse@nasa.gov>
|
|
7
|
-
License: fmdtools version 2.0.
|
|
7
|
+
License: fmdtools version 2.0.5
|
|
8
8
|
---------------------------
|
|
9
9
|
Apache License
|
|
10
10
|
Version 2.0, January 2004
|
|
@@ -236,7 +236,9 @@ Project-URL: Documentation, https://nasa.github.io/fmdtools/
|
|
|
236
236
|
Project-URL: source-code, https://github.com/nasa/fmdtools
|
|
237
237
|
Classifier: Development Status :: 5 - Production/Stable
|
|
238
238
|
Classifier: Intended Audience :: Science/Research
|
|
239
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
239
240
|
Classifier: Programming Language :: Python :: 3.11
|
|
241
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
240
242
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
241
243
|
Classifier: Operating System :: OS Independent
|
|
242
244
|
Classifier: Topic :: Scientific/Engineering
|
|
@@ -268,7 +270,7 @@ Requires-Dist: shapely>=2.0
|
|
|
268
270
|
[](https://github.com/nasa/fmdtools/tags)
|
|
269
271
|
[](https://www.codefactor.io/repository/github/nasa/fmdtools)
|
|
270
272
|
[](https://htmlpreview.github.io/?https://github.com/nasa/fmdtools/blob/main/reports/full-py311/junit/report.html)
|
|
271
|
-
[](https://htmlpreview.github.io/?https://github.com/nasa/fmdtools/blob/main/reports/full-py311/
|
|
273
|
+
[](https://htmlpreview.github.io/?https://github.com/nasa/fmdtools/blob/main/reports/full-py311/coverage_html/index.html)
|
|
272
274
|
[](https://github.com/nasa/fmdtools/blob/main/LICENSE)
|
|
273
275
|
[](https://nodis3.gsfc.nasa.gov/displayDir.cfm?Internal_ID=N_PR_7150_002D_&page_name=AppendixD)
|
|
274
276
|
|
|
@@ -355,7 +357,7 @@ This may then be installed using:
|
|
|
355
357
|
Note that this version reflects the latest version on the ``main`` git branch along with any local changes. To use a particular version of ``fmdtools`` you can checkout the tag corresponding to the version you want, e.g.:
|
|
356
358
|
|
|
357
359
|
```
|
|
358
|
-
git checkout v2.0.
|
|
360
|
+
git checkout v2.0.5
|
|
359
361
|
```
|
|
360
362
|
|
|
361
363
|
|
|
@@ -493,8 +495,8 @@ To cite a particular version of the fmdtools, you may use:
|
|
|
493
495
|
author = {{NASA}},
|
|
494
496
|
title = {fmdtools},
|
|
495
497
|
url = {https://github.com/nasa/fmdtools},
|
|
496
|
-
version = {2.0.
|
|
497
|
-
date = {2024-
|
|
498
|
+
version = {2.0.5}, # <- replace with your version number
|
|
499
|
+
date = {2024-11-13},
|
|
498
500
|
}
|
|
499
501
|
```
|
|
500
502
|
|
|
@@ -8,7 +8,9 @@ maintainers = [
|
|
|
8
8
|
classifiers = [
|
|
9
9
|
"Development Status :: 5 - Production/Stable",
|
|
10
10
|
"Intended Audience :: Science/Research",
|
|
11
|
+
"Programming Language :: Python :: 3.10",
|
|
11
12
|
"Programming Language :: Python :: 3.11",
|
|
13
|
+
"Programming Language :: Python :: 3.12",
|
|
12
14
|
"License :: OSI Approved :: Apache Software License",
|
|
13
15
|
"Operating System :: OS Independent",
|
|
14
16
|
"Topic :: Scientific/Engineering",
|
|
@@ -16,7 +18,7 @@ classifiers = [
|
|
|
16
18
|
description = "System resilience modelling, simulation, and assessment in Python"
|
|
17
19
|
license = {file="LICENSE"}
|
|
18
20
|
name = "fmdtools"
|
|
19
|
-
version="2.0.
|
|
21
|
+
version="2.0.5"
|
|
20
22
|
readme = "README.md"
|
|
21
23
|
requires-python = ">=3.10"
|
|
22
24
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|