fmdtools 2.1.1__tar.gz → 2.1.2__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.
Files changed (104) hide show
  1. {fmdtools-2.1.1 → fmdtools-2.1.2}/LICENSE +1 -1
  2. {fmdtools-2.1.1 → fmdtools-2.1.2}/PKG-INFO +7 -6
  3. {fmdtools-2.1.1 → fmdtools-2.1.2}/README.md +5 -4
  4. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/drone_mdl_rural.py +1 -2
  5. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/__init__.py +1 -1
  6. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/graph/style.py +26 -26
  7. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools.egg-info/PKG-INFO +7 -6
  8. {fmdtools-2.1.1 → fmdtools-2.1.2}/pyproject.toml +1 -1
  9. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/__init__.py +0 -0
  10. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/asg_demo/__init__.py +0 -0
  11. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/asg_demo/demo_model.py +0 -0
  12. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/eps/__init__.py +0 -0
  13. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/eps/eps.py +0 -0
  14. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/eps/test_eps.py +0 -0
  15. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multiflow_demo/__init__.py +0 -0
  16. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multiflow_demo/multiflow_demo.py +0 -0
  17. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multiflow_demo/test_multiflow.py +0 -0
  18. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/__init__.py +0 -0
  19. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/drone_mdl_dynamic.py +0 -0
  20. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/drone_mdl_hierarchical.py +0 -0
  21. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/drone_mdl_static.py +0 -0
  22. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/drone_mdl_urban.py +0 -0
  23. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/opt_drone_rural.py +0 -0
  24. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/multirotor/test_multirotor.py +0 -0
  25. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/__init__.py +0 -0
  26. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/ex_pump.py +0 -0
  27. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/jointfaults_ex.py +0 -0
  28. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/parallelism_methods.py +0 -0
  29. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/pump_indiv.py +0 -0
  30. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/pump_stochastic.py +0 -0
  31. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/test_pump.py +0 -0
  32. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/test_pump_example.py +0 -0
  33. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/pump/test_pump_stochastic.py +0 -0
  34. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/__init__.py +0 -0
  35. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/optimization/ea_analysis.py +0 -0
  36. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/optimization/search_rover.py +0 -0
  37. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/rover_degradation.py +0 -0
  38. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/rover_mode_space.py +0 -0
  39. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/rover_model.py +0 -0
  40. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/rover_model_human.py +0 -0
  41. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/rover/test_rover.py +0 -0
  42. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/tank/__init__.py +0 -0
  43. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/tank/tank_model.py +0 -0
  44. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/tank/tank_optimization_model.py +0 -0
  45. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/tank/test_tank.py +0 -0
  46. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/taxiway/ATC.py +0 -0
  47. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/taxiway/asset.py +0 -0
  48. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/taxiway/common.py +0 -0
  49. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/taxiway/model.py +0 -0
  50. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/taxiway/test_asset.py +0 -0
  51. {fmdtools-2.1.1 → fmdtools-2.1.2}/examples/taxiway/test_model.py +0 -0
  52. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/__init__.py +0 -0
  53. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/common.py +0 -0
  54. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/graph/__init__.py +0 -0
  55. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/graph/base.py +0 -0
  56. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/graph/label.py +0 -0
  57. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/graph/model.py +0 -0
  58. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/history.py +0 -0
  59. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/phases.py +0 -0
  60. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/result.py +0 -0
  61. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/analyze/tabulate.py +0 -0
  62. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/__init__.py +0 -0
  63. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/architecture/__init__.py +0 -0
  64. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/architecture/action.py +0 -0
  65. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/architecture/base.py +0 -0
  66. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/architecture/component.py +0 -0
  67. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/architecture/function.py +0 -0
  68. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/architecture/geom.py +0 -0
  69. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/base.py +0 -0
  70. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/block/__init__.py +0 -0
  71. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/block/action.py +0 -0
  72. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/block/base.py +0 -0
  73. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/block/component.py +0 -0
  74. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/block/function.py +0 -0
  75. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/container/__init__.py +0 -0
  76. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/container/base.py +0 -0
  77. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/container/mode.py +0 -0
  78. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/container/parameter.py +0 -0
  79. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/container/rand.py +0 -0
  80. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/container/state.py +0 -0
  81. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/container/time.py +0 -0
  82. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/environment.py +0 -0
  83. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/flow/__init__.py +0 -0
  84. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/flow/base.py +0 -0
  85. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/flow/commsflow.py +0 -0
  86. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/flow/multiflow.py +0 -0
  87. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/object/__init__.py +0 -0
  88. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/object/base.py +0 -0
  89. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/object/coords.py +0 -0
  90. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/object/geom.py +0 -0
  91. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/define/object/timer.py +0 -0
  92. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/sim/__init__.py +0 -0
  93. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/sim/propagate.py +0 -0
  94. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/sim/sample.py +0 -0
  95. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/sim/scenario.py +0 -0
  96. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools/sim/search.py +0 -0
  97. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools.egg-info/SOURCES.txt +0 -0
  98. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools.egg-info/dependency_links.txt +0 -0
  99. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools.egg-info/requires.txt +0 -0
  100. {fmdtools-2.1.1 → fmdtools-2.1.2}/fmdtools.egg-info/top_level.txt +0 -0
  101. {fmdtools-2.1.1 → fmdtools-2.1.2}/setup.cfg +0 -0
  102. {fmdtools-2.1.1 → fmdtools-2.1.2}/tests/test_graph.py +0 -0
  103. {fmdtools-2.1.1 → fmdtools-2.1.2}/tests/test_hierarchical.py +0 -0
  104. {fmdtools-2.1.1 → fmdtools-2.1.2}/tests/test_packages.py +0 -0
@@ -1,4 +1,4 @@
1
- fmdtools version 2.1.1
1
+ fmdtools version 2.1.2
2
2
  ---------------------------
3
3
  Apache License
4
4
  Version 2.0, January 2004
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmdtools
3
- Version: 2.1.1
3
+ Version: 2.1.2
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.1.1
7
+ License: fmdtools version 2.1.2
8
8
  ---------------------------
9
9
  Apache License
10
10
  Version 2.0, January 2004
@@ -300,6 +300,7 @@ Simulation techniques in fmdtools represent the state-of-the-art in dynamical sy
300
300
  Readily-deployable analysis methods are built in to fmdtools to enable the rapid and iterative statistical analysis of simulation results. With fmdtools, you can easily leverage our existing methods to understand simulation results instead of spending hours implementing your own.
301
301
 
302
302
 
303
+ The fmdtools documentation repository is also home to the Functional Reasoning Design Language specification, a graphical language that may be used to represent the structure of behavioral interactions in a system to inform hazard analysis.
303
304
 
304
305
  ## Getting Started
305
306
 
@@ -366,7 +367,7 @@ This may then be installed using:
366
367
  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.:
367
368
 
368
369
  ```
369
- git checkout v2.1.1
370
+ git checkout v2.1.2
370
371
  ```
371
372
 
372
373
 
@@ -500,12 +501,12 @@ To cite fmdtools in general, you may cite our explanatory publication:
500
501
  To cite a particular version of the fmdtools, you may use:
501
502
 
502
503
  ```
503
- @software{nasa2024fmdtools,
504
+ @software{nasa2025fmdtools,
504
505
  author = {{NASA}},
505
506
  title = {fmdtools},
506
507
  url = {https://github.com/nasa/fmdtools},
507
- version = {2.1.1},
508
- date = {2024-11-13},
508
+ version = {2.1.2},
509
+ date = {2025-5-19},
509
510
  }
510
511
  ```
511
512
 
@@ -39,6 +39,7 @@ Simulation techniques in fmdtools represent the state-of-the-art in dynamical sy
39
39
  Readily-deployable analysis methods are built in to fmdtools to enable the rapid and iterative statistical analysis of simulation results. With fmdtools, you can easily leverage our existing methods to understand simulation results instead of spending hours implementing your own.
40
40
 
41
41
 
42
+ The fmdtools documentation repository is also home to the Functional Reasoning Design Language specification, a graphical language that may be used to represent the structure of behavioral interactions in a system to inform hazard analysis.
42
43
 
43
44
  ## Getting Started
44
45
 
@@ -105,7 +106,7 @@ This may then be installed using:
105
106
  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.:
106
107
 
107
108
  ```
108
- git checkout v2.1.1
109
+ git checkout v2.1.2
109
110
  ```
110
111
 
111
112
 
@@ -239,12 +240,12 @@ To cite fmdtools in general, you may cite our explanatory publication:
239
240
  To cite a particular version of the fmdtools, you may use:
240
241
 
241
242
  ```
242
- @software{nasa2024fmdtools,
243
+ @software{nasa2025fmdtools,
243
244
  author = {{NASA}},
244
245
  title = {fmdtools},
245
246
  url = {https://github.com/nasa/fmdtools},
246
- version = {2.1.1},
247
- date = {2024-11-13},
247
+ version = {2.1.2},
248
+ date = {2025-5-19},
248
249
  }
249
250
  ```
250
251
 
@@ -956,7 +956,6 @@ if __name__ == "__main__":
956
956
 
957
957
  # check single lowcharge fault from approach
958
958
  h = History(nominal=mdlhists.nominal,
959
- faulty=mdlhists.store_ee_lowcharge_t5p0)
959
+ faulty=mdlhists.drone_fxns_store_ee_lowcharge_t5p0)
960
960
  fig, ax = plot_env_with_traj_z(h, mdl)
961
961
  fig, ax = plot_env_with_traj(mdlhists, mdl)
962
-
@@ -22,6 +22,6 @@ import fmdtools.sim as sim
22
22
  import fmdtools.analyze as analyze
23
23
 
24
24
  __all__ = ['analyze', 'sim', 'define']
25
- __version__ = '2.1.1'
25
+ __version__ = '2.1.2'
26
26
  __copyright__ = "Copyright 2024 United States Government"
27
27
  __license__ = "Apache-2.0"
@@ -87,9 +87,9 @@ def mod_prefix():
87
87
  import os
88
88
  wd = os.getcwd()
89
89
  if 'graph' in wd:
90
- return '../../../docs-source/figures/frdl/'
90
+ return '../../../docs-source/figures/frdl/primitives/'
91
91
  else:
92
- return 'docs-source/figures/frdl/'
92
+ return 'docs-source/figures/frdl/primitives/'
93
93
 
94
94
 
95
95
  class BaseStyle(dataobject, copy_default=True):
@@ -297,20 +297,20 @@ def edge_style_factory(style_tag, styles={}, **kwargs):
297
297
  --------
298
298
  >>> loc = mod_prefix()
299
299
  >>> fs = edge_style_factory('flow')
300
- >>> fig, ax = fs.show_nx(saveas=loc+'nx_flowconnection.svg')
301
- >>> sv = fs.show_gv(disp=False, saveas=loc+'gv_flowconnection.svg')
300
+ >>> fig, ax = fs.show_nx(saveas=loc+'nx/flowconnection.svg')
301
+ >>> sv = fs.show_gv(disp=False, saveas=loc+'gv/flowconnection.svg')
302
302
 
303
303
  >>> a_s = edge_style_factory('activation')
304
- >>> fig, ax = a_s.show_nx(saveas=loc+'nx_activation.svg')
305
- >>> sv = a_s.show_gv(disp=False, saveas=loc+'gv_activation.svg')
304
+ >>> fig, ax = a_s.show_nx(saveas=loc+'nx/activation.svg')
305
+ >>> sv = a_s.show_gv(disp=False, saveas=loc+'gv/activation.svg')
306
306
 
307
307
  >>> c_s = edge_style_factory('containment')
308
- >>> fig, ax = c_s.show_nx(saveas=loc+'nx_containment.svg')
309
- >>> sv = c_s.show_gv(disp=False, saveas=loc+'gv_containment.svg')
308
+ >>> fig, ax = c_s.show_nx(saveas=loc+'nx/containment.svg')
309
+ >>> sv = c_s.show_gv(disp=False, saveas=loc+'gv/containment.svg')
310
310
 
311
311
  >>> cs = edge_style_factory('connection')
312
- >>> fig, ax = cs.show_nx(saveas=loc+'nx_connection.svg')
313
- >>> sv = cs.show_gv(disp=False, saveas=loc+'gv_connection.svg')
312
+ >>> fig, ax = cs.show_nx(saveas=loc+'nx/connection.svg')
313
+ >>> sv = cs.show_gv(disp=False, saveas=loc+'gv/connection.svg')
314
314
  """
315
315
  if style_tag in ['flow', 'flows', 'Flow', 'functions', 'aggregation']:
316
316
  style_class = FlowEdgeStyle
@@ -519,36 +519,36 @@ def node_style_factory(style_tag, styles={}, **kwargs):
519
519
  --------
520
520
  >>> loc = mod_prefix()
521
521
  >>> fs = node_style_factory('flow')
522
- >>> fig, ax = fs.show_nx(saveas=loc+'nx_flow.svg')
523
- >>> sv = fs.show_gv(disp=False, saveas=loc+'gv_flow.svg')
522
+ >>> fig, ax = fs.show_nx(saveas=loc+'nx/flow.svg')
523
+ >>> sv = fs.show_gv(disp=False, saveas=loc+'gv/flow.svg')
524
524
 
525
525
  >>> ms = node_style_factory('multiflow')
526
- >>> fig, ax = ms.show_nx(saveas=loc+'nx_multiflow.svg')
527
- >>> sv = ms.show_gv(disp=False, saveas=loc+'gv_multiflow.svg')
526
+ >>> fig, ax = ms.show_nx(saveas=loc+'nx/multiflow.svg')
527
+ >>> sv = ms.show_gv(disp=False, saveas=loc+'gv/multiflow.svg')
528
528
 
529
529
  >>> cs = node_style_factory('commsflow')
530
- >>> fig, ax = cs.show_nx(saveas=loc+'nx_commsflow.svg')
531
- >>> sv = cs.show_gv(disp=False, saveas=loc+'gv_commsflow.svg')
530
+ >>> fig, ax = cs.show_nx(saveas=loc+'nx/commsflow.svg')
531
+ >>> sv = cs.show_gv(disp=False, saveas=loc+'gv/commsflow.svg')
532
532
 
533
533
  >>> fs = node_style_factory('function')
534
- >>> fig, ax = fs.show_nx(saveas=loc+'nx_function.svg')
535
- >>> sv = fs.show_gv(disp=False, saveas=loc+'gv_function.svg')
534
+ >>> fig, ax = fs.show_nx(saveas=loc+'nx/function.svg')
535
+ >>> sv = fs.show_gv(disp=False, saveas=loc+'gv/function.svg')
536
536
 
537
537
  >>> a_s = node_style_factory('action')
538
- >>> fig, ax = a_s.show_nx(saveas=loc+'nx_action.svg')
539
- >>> sv = a_s.show_gv(disp=False, saveas=loc+'gv_action.svg')
538
+ >>> fig, ax = a_s.show_nx(saveas=loc+'nx/action.svg')
539
+ >>> sv = a_s.show_gv(disp=False, saveas=loc+'gv/action.svg')
540
540
 
541
541
  >>> cs = node_style_factory('component')
542
- >>> fig, ax = cs.show_nx(saveas=loc+'nx_component.svg')
543
- >>> sv = cs.show_gv(disp=False, saveas=loc+'gv_component.svg')
542
+ >>> fig, ax = cs.show_nx(saveas=loc+'nx/component.svg')
543
+ >>> sv = cs.show_gv(disp=False, saveas=loc+'gv/component.svg')
544
544
 
545
545
  >>> cs = node_style_factory('container')
546
- >>> fig, ax = cs.show_nx(saveas=loc+'nx_container.svg')
547
- >>> sv = cs.show_gv(disp=False, saveas=loc+'gv_container.svg')
546
+ >>> fig, ax = cs.show_nx(saveas=loc+'nx/container.svg')
547
+ >>> sv = cs.show_gv(disp=False, saveas=loc+'gv/container.svg')
548
548
 
549
549
  >>> a_s = node_style_factory('architecture')
550
- >>> fig, ax = a_s.show_nx(saveas=loc+'nx_architecture.svg')
551
- >>> sv = a_s.show_gv(disp=False, saveas=loc+'gv_architecture.svg')
550
+ >>> fig, ax = a_s.show_nx(saveas=loc+'nx/architecture.svg')
551
+ >>> sv = a_s.show_gv(disp=False, saveas=loc+'gv/architecture.svg')
552
552
  """
553
553
  if style_tag in ['flow', 'Flow']:
554
554
  node_style = FlowNodeStyle
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmdtools
3
- Version: 2.1.1
3
+ Version: 2.1.2
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.1.1
7
+ License: fmdtools version 2.1.2
8
8
  ---------------------------
9
9
  Apache License
10
10
  Version 2.0, January 2004
@@ -300,6 +300,7 @@ Simulation techniques in fmdtools represent the state-of-the-art in dynamical sy
300
300
  Readily-deployable analysis methods are built in to fmdtools to enable the rapid and iterative statistical analysis of simulation results. With fmdtools, you can easily leverage our existing methods to understand simulation results instead of spending hours implementing your own.
301
301
 
302
302
 
303
+ The fmdtools documentation repository is also home to the Functional Reasoning Design Language specification, a graphical language that may be used to represent the structure of behavioral interactions in a system to inform hazard analysis.
303
304
 
304
305
  ## Getting Started
305
306
 
@@ -366,7 +367,7 @@ This may then be installed using:
366
367
  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.:
367
368
 
368
369
  ```
369
- git checkout v2.1.1
370
+ git checkout v2.1.2
370
371
  ```
371
372
 
372
373
 
@@ -500,12 +501,12 @@ To cite fmdtools in general, you may cite our explanatory publication:
500
501
  To cite a particular version of the fmdtools, you may use:
501
502
 
502
503
  ```
503
- @software{nasa2024fmdtools,
504
+ @software{nasa2025fmdtools,
504
505
  author = {{NASA}},
505
506
  title = {fmdtools},
506
507
  url = {https://github.com/nasa/fmdtools},
507
- version = {2.1.1},
508
- date = {2024-11-13},
508
+ version = {2.1.2},
509
+ date = {2025-5-19},
509
510
  }
510
511
  ```
511
512
 
@@ -18,7 +18,7 @@ classifiers = [
18
18
  description = "System resilience modelling, simulation, and assessment in Python"
19
19
  license = {file="LICENSE"}
20
20
  name = "fmdtools"
21
- version="2.1.1"
21
+ version="2.1.2"
22
22
  readme = "README.md"
23
23
  requires-python = ">=3.10"
24
24
 
File without changes
File without changes
File without changes
File without changes