tts-data-utils 0.7.3__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 (99) hide show
  1. tts_data_utils-0.7.3/.gitignore +180 -0
  2. tts_data_utils-0.7.3/PKG-INFO +81 -0
  3. tts_data_utils-0.7.3/README.md +52 -0
  4. tts_data_utils-0.7.3/ci/sphinx_ignore_tags.txt +23 -0
  5. tts_data_utils-0.7.3/docs/_static/bugfix.css +12 -0
  6. tts_data_utils-0.7.3/docs/conf.py +71 -0
  7. tts_data_utils-0.7.3/docs/core/container_history.rst +5 -0
  8. tts_data_utils-0.7.3/docs/core/data_container.rst +6 -0
  9. tts_data_utils-0.7.3/docs/core/data_item.rst +7 -0
  10. tts_data_utils-0.7.3/docs/core/diff.rst +5 -0
  11. tts_data_utils-0.7.3/docs/core/generic.rst +5 -0
  12. tts_data_utils-0.7.3/docs/index.rst +46 -0
  13. tts_data_utils-0.7.3/docs/invulnerable_data_manager/idm_utilities.rst +5 -0
  14. tts_data_utils-0.7.3/docs/invulnerable_data_manager/invulnerable_data_manager.rst +5 -0
  15. tts_data_utils-0.7.3/docs/lorem_ipsum_feature.md +69 -0
  16. tts_data_utils-0.7.3/docs/multimission/eha.rst +5 -0
  17. tts_data_utils-0.7.3/docs/multimission/evr.rst +5 -0
  18. tts_data_utils-0.7.3/docs/multimission/evr_gaps.rst +5 -0
  19. tts_data_utils-0.7.3/docs/multimission/expected_lad.rst +5 -0
  20. tts_data_utils-0.7.3/docs/multimission/planning_rule.rst +5 -0
  21. tts_data_utils-0.7.3/examples/data_utils_demo.ipynb +750 -0
  22. tts_data_utils-0.7.3/license.md +14 -0
  23. tts_data_utils-0.7.3/napkin +30 -0
  24. tts_data_utils-0.7.3/pyproject.toml +55 -0
  25. tts_data_utils-0.7.3/setup.cfg +4 -0
  26. tts_data_utils-0.7.3/setup.py +7 -0
  27. tts_data_utils-0.7.3/src/tts_data_utils/__init__.py +0 -0
  28. tts_data_utils-0.7.3/src/tts_data_utils/core/__init__.py +0 -0
  29. tts_data_utils-0.7.3/src/tts_data_utils/core/container_history.py +79 -0
  30. tts_data_utils-0.7.3/src/tts_data_utils/core/data_container.py +2102 -0
  31. tts_data_utils-0.7.3/src/tts_data_utils/core/data_item.py +487 -0
  32. tts_data_utils-0.7.3/src/tts_data_utils/core/diff.py +155 -0
  33. tts_data_utils-0.7.3/src/tts_data_utils/core/generic.py +78 -0
  34. tts_data_utils-0.7.3/src/tts_data_utils/core/lorem_utils.py +206 -0
  35. tts_data_utils-0.7.3/src/tts_data_utils/core/visual_diff.py +148 -0
  36. tts_data_utils-0.7.3/src/tts_data_utils/invulnerable_data_manager/__init__.py +0 -0
  37. tts_data_utils-0.7.3/src/tts_data_utils/invulnerable_data_manager/batch.py +176 -0
  38. tts_data_utils-0.7.3/src/tts_data_utils/invulnerable_data_manager/invulnerable_data_manager.py +171 -0
  39. tts_data_utils-0.7.3/src/tts_data_utils/invulnerable_data_manager/utilities.py +151 -0
  40. tts_data_utils-0.7.3/src/tts_data_utils/multimission/__init__.py +0 -0
  41. tts_data_utils-0.7.3/src/tts_data_utils/multimission/alarms.py +109 -0
  42. tts_data_utils-0.7.3/src/tts_data_utils/multimission/eha.py +253 -0
  43. tts_data_utils-0.7.3/src/tts_data_utils/multimission/evr.py +340 -0
  44. tts_data_utils-0.7.3/src/tts_data_utils/multimission/evr_gaps.py +148 -0
  45. tts_data_utils-0.7.3/src/tts_data_utils/multimission/expected_lad.py +161 -0
  46. tts_data_utils-0.7.3/src/tts_data_utils/multimission/planning_rule.py +106 -0
  47. tts_data_utils-0.7.3/src/tts_data_utils/multimission/taco.py +53 -0
  48. tts_data_utils-0.7.3/src/tts_data_utils/test/__init__.py +0 -0
  49. tts_data_utils-0.7.3/src/tts_data_utils/test/core/__init__.py +0 -0
  50. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_data_container.py +403 -0
  51. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_data_item.py +92 -0
  52. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_diff.py +173 -0
  53. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_dict/actual_diff.csv +5135 -0
  54. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_dict/expected_diff.csv +5135 -0
  55. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_dict/left.csv +637 -0
  56. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_dict/right.csv +637 -0
  57. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_list/actual_diff.csv +5135 -0
  58. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_list/expected_diff.csv +5135 -0
  59. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_list/left.csv +637 -0
  60. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_list/right.csv +637 -0
  61. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_list_size/actual_diff.csv +33 -0
  62. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_list_size/expected_diff.csv +33 -0
  63. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_list_size/left.csv +637 -0
  64. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_list_size/right.csv +637 -0
  65. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_simple_types/actual_diff.csv +17894 -0
  66. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_simple_types/expected_diff.csv +17894 -0
  67. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_simple_types/left.csv +637 -0
  68. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_simple_types/right.csv +637 -0
  69. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_type/actual_diff.csv +5135 -0
  70. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_type/expected_diff.csv +5135 -0
  71. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_type/left.csv +637 -0
  72. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/diff_type/right.csv +637 -0
  73. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/diff/same_not_same/actual_diff.csv +5135 -0
  74. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/visdiff/adjacent_insert_delete.html +1581 -0
  75. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/visdiff/insert_and_delete.html +1581 -0
  76. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/visdiff/no_diff.html +1581 -0
  77. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/visdiff/overlapping_insert_delete.html +1541 -0
  78. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/visdiff/replace.html +1581 -0
  79. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/visdiff/replace_with_delete.html +1581 -0
  80. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/visdiff/simple_delete.html +1581 -0
  81. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/visdiff/simple_insert.html +1581 -0
  82. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_files/visdiff/stressing_case.html +2061 -0
  83. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_filters.py +319 -0
  84. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_generic_container.py +22 -0
  85. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_history.py +44 -0
  86. tts_data_utils-0.7.3/src/tts_data_utils/test/core/test_visdiff.py +193 -0
  87. tts_data_utils-0.7.3/src/tts_data_utils/test/invulnerable_data_manager/test_invulnerable_data_manager.py +150 -0
  88. tts_data_utils-0.7.3/src/tts_data_utils/test/multimission/__init__.py +0 -0
  89. tts_data_utils-0.7.3/src/tts_data_utils/test/multimission/evr/__init__.py +0 -0
  90. tts_data_utils-0.7.3/src/tts_data_utils/test/multimission/evr/test_evr.py +29 -0
  91. tts_data_utils-0.7.3/src/tts_data_utils/test/multimission/evr/test_files/actual_evr_gaps.csv +12 -0
  92. tts_data_utils-0.7.3/src/tts_data_utils/test/multimission/evr/test_files/evrs_with_gaps.csv +30 -0
  93. tts_data_utils-0.7.3/src/tts_data_utils/test/multimission/evr/test_files/expected_evr_gaps.csv +12 -0
  94. tts_data_utils-0.7.3/src/tts_data_utils/util.py +104 -0
  95. tts_data_utils-0.7.3/src/tts_data_utils.egg-info/PKG-INFO +81 -0
  96. tts_data_utils-0.7.3/src/tts_data_utils.egg-info/SOURCES.txt +97 -0
  97. tts_data_utils-0.7.3/src/tts_data_utils.egg-info/dependency_links.txt +1 -0
  98. tts_data_utils-0.7.3/src/tts_data_utils.egg-info/requires.txt +14 -0
  99. tts_data_utils-0.7.3/src/tts_data_utils.egg-info/top_level.txt +1 -0
@@ -0,0 +1,180 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # poetry
98
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102
+ #poetry.lock
103
+
104
+ # pdm
105
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106
+ #pdm.lock
107
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108
+ # in version control.
109
+ # https://pdm.fming.dev/#use-with-ide
110
+ .pdm.toml
111
+
112
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113
+ __pypackages__/
114
+
115
+ # Celery stuff
116
+ celerybeat-schedule
117
+ celerybeat.pid
118
+
119
+ # SageMath parsed files
120
+ *.sage.py
121
+
122
+ # Environments
123
+ .env
124
+ .venv
125
+ env/
126
+ venv/
127
+ ENV/
128
+ env.bak/
129
+ venv.bak/
130
+
131
+ # Spyder project settings
132
+ .spyderproject
133
+ .spyproject
134
+
135
+ # Rope project settings
136
+ .ropeproject
137
+
138
+ # mkdocs documentation
139
+ /site
140
+
141
+ # mypy
142
+ .mypy_cache/
143
+ .dmypy.json
144
+ dmypy.json
145
+
146
+ # Pyre type checker
147
+ .pyre/
148
+
149
+ # pytype static type analyzer
150
+ .pytype/
151
+
152
+ # Cython debug symbols
153
+ cython_debug/
154
+
155
+ # PyCharm
156
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
159
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
160
+ #.idea/
161
+
162
+ env
163
+ venv
164
+
165
+ # IDEs and editors
166
+ .idea/
167
+ .vscode/
168
+ *.sublime-project
169
+ *.sublime-workspace
170
+
171
+ # Jupyter notebooks
172
+ .ipynb_checkpoints/
173
+
174
+ # Jupyter lab workspace
175
+ .jupyter/
176
+
177
+ # Miscellaneous
178
+ .DS_Store
179
+ Thumbs.db
180
+ ._*
@@ -0,0 +1,81 @@
1
+ Metadata-Version: 2.4
2
+ Name: tts-data-utils
3
+ Version: 0.7.3
4
+ Summary: Utilities for working with 2D data.
5
+ Author: muszynsk
6
+ Author-email: muszynsk <matt.muszynski@jpl.nasa.gov>
7
+ License: Apache-2.0
8
+ Project-URL: Homepage, https://github.com/NASA-JPL-Teamtools-Studio/tts_data_utils
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: Apache Software License
11
+ Requires-Python: >=3.6
12
+ Description-Content-Type: text/markdown
13
+ Requires-Dist: docxtpl
14
+ Requires-Dist: pandas
15
+ Requires-Dist: pytest
16
+ Requires-Dist: tabulate
17
+ Requires-Dist: jinja2
18
+ Requires-Dist: plotly
19
+ Requires-Dist: jpl_time
20
+ Requires-Dist: openpyxl
21
+ Requires-Dist: datetime
22
+ Requires-Dist: jpl-time
23
+ Requires-Dist: tabulate
24
+ Requires-Dist: pandas
25
+ Requires-Dist: tts-utilities<1.0.0,>=0.2.1
26
+ Requires-Dist: tts-html-utils<1.0.0,>=0.4.2
27
+ Dynamic: author
28
+ Dynamic: requires-python
29
+
30
+ # Teamtools Data Utilities
31
+
32
+ ![Project logo](https://github.com/NASA-JPL-Teamtools-Studio/teamtools_documentation/blob/main/docs/images/tts_image_artifacts/data_utils.png)
33
+
34
+ ## About Teamtools Studio
35
+
36
+ Teamtools Studio Utilities is part of JPL's Teamtools Studio (TTS).
37
+
38
+ TTS is an effort originated in JPL's Planning and Execution section to centralize shared repositories across missions. This benefits JPL by reducing cost through reducing duplicated code, collaborating across missions, and unifying standards for development and design across JPL.
39
+
40
+ Although Planning and Execution is primarily concerned with flight operations, the TTS suite has been generalized and atomized to the point where many of these tools are applicable during other mission phases and even in non-spaceflight contexts. Through our work flying space missions, we hope to provide tools to the open source community that have utility in data analysis or planning for any complex system where failure is not an option.
41
+
42
+ For more infomation on how to contribute, and how these libraries form a complete ecosystem for high reliability data analysis, see the [Full TTS Documentation](https://nasa-jpl-teamtools-studio.github.io/teamtools_documentation/).
43
+
44
+ ## What is Data Utilities?
45
+
46
+ ### Overview
47
+
48
+ Data Utilties is one of the central building blocks of the Teamtools Studio. It is primarily a means of organizing
49
+ and tracking the changes in 2D data (think spreadsheets). It is used as the primary data structure in Tower and Dexter,
50
+ and is used liberally elsewhere throughout the TTS project.
51
+
52
+ It is a reality that much of Systems Engineering is executed via spreadsheets and tables. They are the media in which
53
+ the most SEs are the most comfortable, so data utils provides methods to read, write, manipulate, convert, and mange tabular
54
+ data. It goes beyond a library like Pandas by providing a core DataContainer class and examples of extensions of it to
55
+ provide the custom behavior needed for each bespoke data source.
56
+
57
+ For cases where data is too complex for a single 2D table, Data Utilities also handles the nesting of tables where each
58
+ row in a table can be associated with a subtable.
59
+
60
+ Data Utilities also provides significant quality of life functionality for diffing containers (including visual diff) and
61
+ visualizing them in custom ways in with HTML, Excel, and DOCX output styles.
62
+
63
+ Additionally, Data Utilities provides a lorem ipsum data generation feature that allows you to quickly create containers with semi-realistic dummy data for prototyping and testing purposes.
64
+
65
+ ### Projects Currently Supported
66
+
67
+ * Europa Clipper
68
+ * Mars 2020/Perseverance
69
+ * Mars Sample Return/Sample Retrieval Lander
70
+ * Mars Science Laboratory/Curiosity
71
+ * Mars Reconnaisance Orbiter
72
+ * NISAR
73
+ * Orbiting Carbon Observatory 2 (OCO-2)
74
+
75
+ ## Architecture
76
+
77
+ ### TTS dependencies
78
+
79
+ * Teamtools Studio Utilities
80
+ * HTML Utilites
81
+
@@ -0,0 +1,52 @@
1
+ # Teamtools Data Utilities
2
+
3
+ ![Project logo](https://github.com/NASA-JPL-Teamtools-Studio/teamtools_documentation/blob/main/docs/images/tts_image_artifacts/data_utils.png)
4
+
5
+ ## About Teamtools Studio
6
+
7
+ Teamtools Studio Utilities is part of JPL's Teamtools Studio (TTS).
8
+
9
+ TTS is an effort originated in JPL's Planning and Execution section to centralize shared repositories across missions. This benefits JPL by reducing cost through reducing duplicated code, collaborating across missions, and unifying standards for development and design across JPL.
10
+
11
+ Although Planning and Execution is primarily concerned with flight operations, the TTS suite has been generalized and atomized to the point where many of these tools are applicable during other mission phases and even in non-spaceflight contexts. Through our work flying space missions, we hope to provide tools to the open source community that have utility in data analysis or planning for any complex system where failure is not an option.
12
+
13
+ For more infomation on how to contribute, and how these libraries form a complete ecosystem for high reliability data analysis, see the [Full TTS Documentation](https://nasa-jpl-teamtools-studio.github.io/teamtools_documentation/).
14
+
15
+ ## What is Data Utilities?
16
+
17
+ ### Overview
18
+
19
+ Data Utilties is one of the central building blocks of the Teamtools Studio. It is primarily a means of organizing
20
+ and tracking the changes in 2D data (think spreadsheets). It is used as the primary data structure in Tower and Dexter,
21
+ and is used liberally elsewhere throughout the TTS project.
22
+
23
+ It is a reality that much of Systems Engineering is executed via spreadsheets and tables. They are the media in which
24
+ the most SEs are the most comfortable, so data utils provides methods to read, write, manipulate, convert, and mange tabular
25
+ data. It goes beyond a library like Pandas by providing a core DataContainer class and examples of extensions of it to
26
+ provide the custom behavior needed for each bespoke data source.
27
+
28
+ For cases where data is too complex for a single 2D table, Data Utilities also handles the nesting of tables where each
29
+ row in a table can be associated with a subtable.
30
+
31
+ Data Utilities also provides significant quality of life functionality for diffing containers (including visual diff) and
32
+ visualizing them in custom ways in with HTML, Excel, and DOCX output styles.
33
+
34
+ Additionally, Data Utilities provides a lorem ipsum data generation feature that allows you to quickly create containers with semi-realistic dummy data for prototyping and testing purposes.
35
+
36
+ ### Projects Currently Supported
37
+
38
+ * Europa Clipper
39
+ * Mars 2020/Perseverance
40
+ * Mars Sample Return/Sample Retrieval Lander
41
+ * Mars Science Laboratory/Curiosity
42
+ * Mars Reconnaisance Orbiter
43
+ * NISAR
44
+ * Orbiting Carbon Observatory 2 (OCO-2)
45
+
46
+ ## Architecture
47
+
48
+ ### TTS dependencies
49
+
50
+ * Teamtools Studio Utilities
51
+ * HTML Utilites
52
+
@@ -0,0 +1,23 @@
1
+ #When tts-build-sphinx-docs runs, it will collect all tags and branches and attempt to build
2
+ #docs for each in the gh-pages branch. This is a config file that allows developers to
3
+ #specifically exclude any branches or tags they need. Each line is the name of a tag or
4
+ #branch.
5
+ #
6
+ #This file makes no attemtpt to tell whether a line is a tag or a branch as TTS assumes that
7
+ #the naming conventions will always be different, and that tags should be tied to releases,
8
+ #so they should always have semvar names, whereas branches should be more descriptive using
9
+ #typical agile branch naming conventions.
10
+ #
11
+ #The most typical use case is to exclude tags that were created before you added the docs
12
+ #prerequisites, or to exclude the gh-pages branch itself since no code is expected to live
13
+ #there. All TTS repos are expected to have a gh-pages branch, but it is expected that it
14
+ #will always be managed by tts-build-sphinx-docs. You do not need to manually create
15
+ #a gh-pages branch because tts-build-sphinx-docs will create one if it does not exist.
16
+ #
17
+ #tts-build-sphinx-docs will also always remove all files from gh-pages and rebuild all docs
18
+ #from scratch
19
+ 0.0.1
20
+ 0.0.2
21
+ 12.34.56v789
22
+ 98.76.54rc321
23
+ gh-pages
@@ -0,0 +1,12 @@
1
+ /*
2
+ Resolves a bug where the text in the header
3
+ "[package name] [package version] documentation"
4
+ was getting stacked up on top of itself when the variable portions were too long. Something with floats
5
+ and elements not taking up the whole width of their contents.
6
+
7
+ Needed to add it because setuptools-scm version names can be very long, especially for versions that
8
+ are build off of a commit with no tag
9
+ */
10
+ .navbar-header-items__start {
11
+ width: auto;
12
+ }
@@ -0,0 +1,71 @@
1
+ # TTS-specifc add ons
2
+ from pathlib import Path
3
+ from datetime import datetime
4
+ from setuptools_scm import get_version
5
+ import toml
6
+
7
+ # Configuration file for the Sphinx documentation builder.
8
+ #
9
+ # This file only contains a selection of the most common options. For a full
10
+ # list see the documentation:
11
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html
12
+
13
+ # -- Path setup --------------------------------------------------------------
14
+
15
+ # If extensions (or modules to document with autodoc) are in another directory,
16
+ # add these directories to sys.path here. If the directory is relative to the
17
+ # documentation root, use os.path.abspath to make it absolute, like shown here.
18
+ #
19
+
20
+ import os
21
+ import sys
22
+ import importlib.metadata
23
+ sys.path.insert(0, os.path.abspath('..'))
24
+
25
+ # -- Project information -----------------------------------------------------
26
+
27
+ pyproject = toml.load(Path(__file__).parent.parent.joinpath("pyproject.toml"))
28
+ project = pyproject["project"]["name"]
29
+ release = get_version(root='..', relative_to=__file__)
30
+ version = '.'.join(release.split('.')[:2])
31
+
32
+ copyright = f'{datetime.now().strftime('%Y')} JPL'
33
+ author = 'JPL Teamtools Studio'
34
+
35
+
36
+ # -- General configuration ---------------------------------------------------
37
+
38
+ # Add any Sphinx extension module names here, as strings. They can be
39
+ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
40
+ # ones.
41
+ extensions = ['sphinx.ext.autodoc']
42
+
43
+ # Add any paths that contain templates here, relative to this directory.
44
+ templates_path = ['_templates']
45
+
46
+ # List of patterns, relative to source directory, that match files and
47
+ # directories to ignore when looking for source files.
48
+ # This pattern also affects html_static_path and html_extra_path.
49
+ exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
50
+
51
+ # The master toctree document.
52
+ master_doc = 'index'
53
+
54
+ pygments_style = 'sphinx'
55
+ # html_theme = 'nature'
56
+ # html_theme = 'sphinx_material'
57
+ html_theme = 'pydata_sphinx_theme'
58
+
59
+ # -- Options for HTML output -------------------------------------------------
60
+
61
+ # The theme to use for HTML and HTML Help pages. See the documentation for
62
+ # a list of builtin themes.
63
+ #
64
+
65
+ # Add any paths that contain custom static files (such as style sheets) here,
66
+ # relative to this directory. They are copied after the builtin static files,
67
+ # so a file named "default.css" will overwrite the builtin "default.css".
68
+ html_static_path = ['_static']
69
+ html_css_files = ['bugfix.css']
70
+ html_copy_source = False
71
+ html_show_sourcelink = False
@@ -0,0 +1,5 @@
1
+ Container History
2
+ ===================
3
+
4
+ .. automodule:: data_utils.core.container_history
5
+ :members:
@@ -0,0 +1,6 @@
1
+ Data Container
2
+ =========================
3
+
4
+ .. automodule:: data_utils.core.data_container
5
+ :members:
6
+ :special-members: __str__, __repr__, __getitem__
@@ -0,0 +1,7 @@
1
+ Data Item
2
+ ===============
3
+
4
+ .. automodule:: data_utils.core.data_item
5
+ :members:
6
+ :private-members:
7
+ :special-members: __str__, __repr__, __getitem__, __setitem__
@@ -0,0 +1,5 @@
1
+ Diff Container
2
+ ===============
3
+
4
+ .. automodule:: data_utils.core.diff
5
+ :members:
@@ -0,0 +1,5 @@
1
+ Generic Container
2
+ ==================
3
+
4
+ .. automodule:: data_utils.core.generic
5
+ :members:
@@ -0,0 +1,46 @@
1
+ Welcome to the Teamtools Starter Template documentation!
2
+ =============================================================
3
+
4
+ Core Modules
5
+ ==================
6
+
7
+ .. toctree::
8
+ :maxdepth: 2
9
+ :caption: Contents:
10
+
11
+ core/data_container
12
+ core/data_item
13
+ core/generic
14
+ core/diff
15
+ core/container_history
16
+
17
+ Multimission Data Containers
18
+ ===============================
19
+
20
+ .. toctree::
21
+ :maxdepth: 2
22
+ :caption: Contents:
23
+
24
+ multimission/eha
25
+ multimission/evr
26
+ multimission/evr_gaps
27
+ multimission/expected_lad
28
+ multimission/planning_rule
29
+
30
+ Invulnerable Data Manager
31
+ ===============================
32
+
33
+
34
+ .. toctree::
35
+ :maxdepth: 2
36
+ :caption: Contents:
37
+
38
+ invulnerable_data_manager/invulnerable_data_manager
39
+ invulnerable_data_manager/idm_utilities
40
+
41
+ Indices and tables
42
+ ==================
43
+
44
+ * :ref:`genindex`
45
+ * :ref:`modindex`
46
+ * :ref:`search`
@@ -0,0 +1,5 @@
1
+ Invulnerable Data Manager Utilities
2
+ ====================================
3
+
4
+ .. automodule:: data_utils.invulnerable_data_manager.utilities
5
+ :members:
@@ -0,0 +1,5 @@
1
+ Invulnerable Data Manager
2
+ ==========================
3
+
4
+ .. automodule:: data_utils.invulnerable_data_manager.invulnerable_data_manager
5
+ :members:
@@ -0,0 +1,69 @@
1
+ # Lorem Ipsum Data Generation
2
+
3
+ Data Utilities now includes a powerful feature for generating realistic dummy data for any DataContainer type. This is useful for prototyping, testing, and documentation purposes.
4
+
5
+ ## Basic Usage
6
+
7
+ To generate lorem ipsum data for any DataContainer, simply pass an integer to the `lorem` parameter when creating the container:
8
+
9
+ ```python
10
+ from data_utils.multimission.evr import EvrContainer
11
+
12
+ # Create an EVR container with 10 dummy records
13
+ evr_container = EvrContainer(lorem=10)
14
+
15
+ # Print the container to see the generated data
16
+ print(evr_container)
17
+ ```
18
+
19
+ ## How It Works
20
+
21
+ The lorem ipsum generator analyzes the `DICT_VALID_KEYS` of the container's `DATA_ITEM_CLS` to understand the expected structure and data types. It then generates appropriate random values for each field, taking into account:
22
+
23
+ - Field names (e.g., fields containing "id", "name", "message", etc.)
24
+ - Data types (strings, integers, floats, datetimes, etc.)
25
+ - Allowed null values
26
+
27
+ ## Smart Value Generation
28
+
29
+ The generator tries to create meaningful data based on field names:
30
+
31
+ - ID fields get numeric or formatted ID values
32
+ - Name fields get short lorem ipsum phrases
33
+ - Message fields get longer lorem ipsum text
34
+ - Status fields get values like "pending", "completed", etc.
35
+ - Time fields get random datetimes within the last year
36
+ - Boolean fields get random True/False values
37
+
38
+ ## Example
39
+
40
+ ```python
41
+ from data_utils.multimission.evr import EvrContainer
42
+ from data_utils.multimission.eha import EhaContainer
43
+ from data_utils.core.generic import GenericContainer
44
+
45
+ # Create containers with different numbers of records
46
+ evr_container = EvrContainer(lorem=5)
47
+ eha_container = EhaContainer(lorem=3)
48
+ generic_container = GenericContainer(lorem=4, name="My Lorem Data")
49
+
50
+ # Use them like any other container
51
+ print(f"EVR Container has {len(evr_container)} records")
52
+ print(f"First EVR message: {evr_container[0].message}")
53
+
54
+ # You can also convert to other formats
55
+ html_table = evr_container.power_table()
56
+ ```
57
+
58
+ ## Use Cases
59
+
60
+ - **Prototyping**: Quickly create realistic data structures without writing boilerplate
61
+ - **Testing**: Generate test data with predictable structure but random values
62
+ - **Documentation**: Create examples with realistic data
63
+ - **UI Development**: Populate interfaces with dummy data during development
64
+
65
+ ## Customization
66
+
67
+ The lorem ipsum generator is designed to work with any DataContainer subclass, including custom ones you create. As long as your class follows the DataContainer pattern with a properly defined DATA_ITEM_CLS and DICT_VALID_KEYS, the generator will produce appropriate data.
68
+
69
+ For more examples, see the demo script at `data_utils/demo/lorem_demo.py`.
@@ -0,0 +1,5 @@
1
+ EHA Container
2
+ ===============
3
+
4
+ .. automodule:: data_utils.multimission.eha
5
+ :members:
@@ -0,0 +1,5 @@
1
+ EVR Container
2
+ ===============
3
+
4
+ .. automodule:: data_utils.multimission.evr
5
+ :members:
@@ -0,0 +1,5 @@
1
+ EVR Gaps Container
2
+ ===================
3
+
4
+ .. automodule:: data_utils.multimission.evr_gaps
5
+ :members:
@@ -0,0 +1,5 @@
1
+ Expected LAD Container
2
+ ======================
3
+
4
+ .. automodule:: data_utils.multimission.expected_lad
5
+ :members:
@@ -0,0 +1,5 @@
1
+ Planning Rule Container
2
+ =======================
3
+
4
+ .. automodule:: data_utils.multimission.planning_rule
5
+ :members: