pydasa 0.4.7__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.
- pydasa/__init__.py +103 -0
- pydasa/_version.py +6 -0
- pydasa/analysis/__init__.py +0 -0
- pydasa/analysis/scenario.py +584 -0
- pydasa/analysis/simulation.py +1158 -0
- pydasa/context/__init__.py +0 -0
- pydasa/context/conversion.py +11 -0
- pydasa/context/system.py +17 -0
- pydasa/context/units.py +15 -0
- pydasa/core/__init__.py +15 -0
- pydasa/core/basic.py +287 -0
- pydasa/core/cfg/default.json +136 -0
- pydasa/core/constants.py +27 -0
- pydasa/core/io.py +102 -0
- pydasa/core/setup.py +269 -0
- pydasa/dimensional/__init__.py +0 -0
- pydasa/dimensional/buckingham.py +728 -0
- pydasa/dimensional/fundamental.py +146 -0
- pydasa/dimensional/model.py +1077 -0
- pydasa/dimensional/vaschy.py +633 -0
- pydasa/elements/__init__.py +19 -0
- pydasa/elements/parameter.py +218 -0
- pydasa/elements/specs/__init__.py +22 -0
- pydasa/elements/specs/conceptual.py +161 -0
- pydasa/elements/specs/numerical.py +469 -0
- pydasa/elements/specs/statistical.py +229 -0
- pydasa/elements/specs/symbolic.py +394 -0
- pydasa/serialization/__init__.py +27 -0
- pydasa/serialization/parser.py +133 -0
- pydasa/structs/__init__.py +0 -0
- pydasa/structs/lists/__init__.py +0 -0
- pydasa/structs/lists/arlt.py +578 -0
- pydasa/structs/lists/dllt.py +18 -0
- pydasa/structs/lists/ndlt.py +262 -0
- pydasa/structs/lists/sllt.py +746 -0
- pydasa/structs/tables/__init__.py +0 -0
- pydasa/structs/tables/htme.py +182 -0
- pydasa/structs/tables/scht.py +774 -0
- pydasa/structs/tools/__init__.py +0 -0
- pydasa/structs/tools/hashing.py +53 -0
- pydasa/structs/tools/math.py +149 -0
- pydasa/structs/tools/memory.py +54 -0
- pydasa/structs/types/__init__.py +0 -0
- pydasa/structs/types/functions.py +131 -0
- pydasa/structs/types/generics.py +54 -0
- pydasa/validations/__init__.py +0 -0
- pydasa/validations/decorators.py +510 -0
- pydasa/validations/error.py +100 -0
- pydasa/validations/patterns.py +32 -0
- pydasa/workflows/__init__.py +1 -0
- pydasa/workflows/influence.py +497 -0
- pydasa/workflows/phenomena.py +529 -0
- pydasa/workflows/practical.py +765 -0
- pydasa-0.4.7.dist-info/METADATA +320 -0
- pydasa-0.4.7.dist-info/RECORD +58 -0
- pydasa-0.4.7.dist-info/WHEEL +5 -0
- pydasa-0.4.7.dist-info/licenses/LICENSE +674 -0
- pydasa-0.4.7.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pydasa
|
|
3
|
+
Version: 0.4.7
|
|
4
|
+
Summary: Python package for Dimensional Analysis for Scientific Applications and Software Architecture (PyDASA).
|
|
5
|
+
Home-page: https://github.com/DASA-Design/PyDASA
|
|
6
|
+
Author: @SFAM
|
|
7
|
+
Author-email: "@SFAM" <sa-artea@uniandes.edu.co>
|
|
8
|
+
License-Expression: GPL-3.0-or-later
|
|
9
|
+
Project-URL: Homepage, https://github.com/DASA-Design/PyDASA
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Topic :: Scientific/Engineering
|
|
16
|
+
Requires-Python: >=3.10
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
Requires-Dist: antlr4-python3-runtime==4.11
|
|
20
|
+
Requires-Dist: numpy>=1.26.4
|
|
21
|
+
Requires-Dist: scipy>=1.13.0
|
|
22
|
+
Requires-Dist: sympy>=1.12
|
|
23
|
+
Requires-Dist: matplotlib>=3.8.0
|
|
24
|
+
Requires-Dist: pandas>=2.1.0
|
|
25
|
+
Requires-Dist: SALib>=1.4.5
|
|
26
|
+
Provides-Extra: dev
|
|
27
|
+
Requires-Dist: pytest>=8.1.1; extra == "dev"
|
|
28
|
+
Requires-Dist: twine>=6.1.0; extra == "dev"
|
|
29
|
+
Provides-Extra: docs
|
|
30
|
+
Requires-Dist: sphinx>=7.3.7; extra == "docs"
|
|
31
|
+
Requires-Dist: pydata-sphinx-theme>=0.14.0; extra == "docs"
|
|
32
|
+
Requires-Dist: sphinx-autodoc-typehints>=1.24.0; extra == "docs"
|
|
33
|
+
Requires-Dist: sphinx-autoapi>=3.0.0; extra == "docs"
|
|
34
|
+
Requires-Dist: myst-parser>=2.0.0; extra == "docs"
|
|
35
|
+
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "docs"
|
|
36
|
+
Requires-Dist: sphinx-favicon>=1.0.1; extra == "docs"
|
|
37
|
+
Requires-Dist: sphinx-gitstamp>=0.3.3; extra == "docs"
|
|
38
|
+
Requires-Dist: sphinx-prompt>=1.8.0; extra == "docs"
|
|
39
|
+
Requires-Dist: sphinx-markdown-builder>=0.6.5; extra == "docs"
|
|
40
|
+
Requires-Dist: myst-parser>=2.0.0; extra == "docs"
|
|
41
|
+
Requires-Dist: nbsphinx>=0.9.0; extra == "docs"
|
|
42
|
+
Dynamic: author
|
|
43
|
+
Dynamic: home-page
|
|
44
|
+
Dynamic: license-file
|
|
45
|
+
Dynamic: requires-python
|
|
46
|
+
|
|
47
|
+
# PyDASA
|
|
48
|
+
|
|
49
|
+
Library to solve software architecture and physical problems with dimensionless analysis and the Pi-Theorem
|
|
50
|
+
|
|
51
|
+
## Epic User Story
|
|
52
|
+
|
|
53
|
+
**As a** researcher, engineer, or software architect analyzing complex systems,
|
|
54
|
+
|
|
55
|
+
**I want** a comprehensive dimensional analysis library implementing the Buckingham Pi theorem,
|
|
56
|
+
|
|
57
|
+
**So that** I can systematically discover dimensionless relationships, validate models, and understand system behavior across physical, computational, and software architecture domains.
|
|
58
|
+
|
|
59
|
+
### Core Capabilities
|
|
60
|
+
|
|
61
|
+
#### Dimensional Framework Management
|
|
62
|
+
- **Manage fundamental dimensions** beyond traditional physical units (L, M, T) .to include computational (T, S, N) and software architecture domains (T, D, E, C, A).
|
|
63
|
+
- **Switch between frameworks** for different problem domains.
|
|
64
|
+
|
|
65
|
+
#### Parameter and Variable Management
|
|
66
|
+
- **Define dimensional parameters** with complete specifications:
|
|
67
|
+
- Symbolic representation (name, LaTeX symbol).
|
|
68
|
+
- Dimensional formula (e.g., "L*T^-1" for velocity).
|
|
69
|
+
- Numerical ranges (min, max, mean, step)
|
|
70
|
+
- Classification (input, output, control).
|
|
71
|
+
- Statistical distributions and dependencies.
|
|
72
|
+
|
|
73
|
+
#### Unit System Integration
|
|
74
|
+
- **Handle measurements** across unit systems (imperial, metric, custom).
|
|
75
|
+
- **Convert between units** while maintaining dimensional consistency.
|
|
76
|
+
- **Relate measurements** to dimensional parameters.
|
|
77
|
+
|
|
78
|
+
#### Dimensionless Coefficient Discovery
|
|
79
|
+
- **Generate dimensionless numbers** using the Buckingham Pi theorem:
|
|
80
|
+
1. **Build relevance list:** Identify mutually independent parameters influencing the phenomenon.
|
|
81
|
+
2. **Construct dimensional matrix:** Arrange FDUs (rows) and variables (columns) into core and residual matrices.
|
|
82
|
+
3. **Transform to identity matrix:** Apply linear transformations to the core matrix.
|
|
83
|
+
4. **Generate Pi coefficients:** Combine residual and unity matrices to produce dimensionless groups.
|
|
84
|
+
- **Classify coefficients** by repeating vs. non-repeating parameters.
|
|
85
|
+
- **Manage metadata:** names, symbols, formulas, and parameter relationships.
|
|
86
|
+
|
|
87
|
+
#### Analysis and Simulation
|
|
88
|
+
- **Verify similitude principles** for model scaling and validation.
|
|
89
|
+
- **Calculate coefficient ranges** and parameter influence.
|
|
90
|
+
- **Run Monte Carlo simulations** to quantify uncertainty propagation.
|
|
91
|
+
- **Perform sensitivity analysis** to identify dominant parameters.
|
|
92
|
+
- **Generate behavioral data** for dimensionless relationships.
|
|
93
|
+
|
|
94
|
+
#### Data Export and Visualization Integration
|
|
95
|
+
- **Export data formats** compatible with pandas, matplotlib, seaborn.
|
|
96
|
+
- **Structure results** for integration with visualization libraries.
|
|
97
|
+
- **Provide standardized outputs** for dimensionless charts and parameter influence plots.
|
|
98
|
+
|
|
99
|
+
## Emoji
|
|
100
|
+
|
|
101
|
+
1. TODO 📋
|
|
102
|
+
2. WORKING 🔶👨💻
|
|
103
|
+
3. DONE ✅
|
|
104
|
+
4. WARNING ⚠️
|
|
105
|
+
|
|
106
|
+
## Development Status
|
|
107
|
+
|
|
108
|
+
### ✅ Completed
|
|
109
|
+
|
|
110
|
+
- **Src:** Merged buckingham→dimensional, split config, moved parameter to elements, renamed datastruct→structs and handlers→workflows
|
|
111
|
+
- **Imports:** Fixed 7 files (analysis, workflows, dimensional modules) to use new paths
|
|
112
|
+
- **Code Quality:** Fixed syntax errors, enhanced Enum validation, fixed frozen dataclass issues
|
|
113
|
+
- **Tests:** Updated test_basic.py and test_setup.py, all 16 core tests passing, structure aligned with src
|
|
114
|
+
- **Decorator Migration:** 100\% complete - all core classes migrated to decorator-based validation (463+ tests passing)
|
|
115
|
+
- Elements: Variable, Coefficient, Basic, Fundamental, Measurement, Parameter
|
|
116
|
+
- Workflows: SensitivityAnalysis (21/21 tests ✓), MonteCarloSimulation (14/14 tests ✓), AnalysisEngine (27/27 tests ✓)
|
|
117
|
+
- **Validation System:** Enhanced @validate_emptiness to handle dictionaries, lists, and all collections (not just strings)
|
|
118
|
+
- **Package Configuration (v0.3.2):**
|
|
119
|
+
- Added package-data to include JSON config files in distribution
|
|
120
|
+
- Exposed `__version__` attribute in main module (7/7 package tests passing)
|
|
121
|
+
- Configured semantic versioning for 0.x releases (major_on_zero=false)
|
|
122
|
+
- Updated CHANGELOG.md with recent changes
|
|
123
|
+
- **Dimensional Analysis Fix:**
|
|
124
|
+
- Fixed empty dimensional columns bug in CUSTOM framework variables
|
|
125
|
+
- Added validation in Matrix.create_matrix() to detect missing dimensions
|
|
126
|
+
- Fixed 5 test files (test_phenomena.py, test_scenario.py, test_simulation.py, test_practical.py, test_influence.py)
|
|
127
|
+
- All variables now properly initialize with schema and parse dimensions (130/130 tests passing)
|
|
128
|
+
- **Documentation Structure:**
|
|
129
|
+
- Integrated public folder subpages into main index.rst
|
|
130
|
+
- Reorganized navigation: Getting Started, User Guide, Design & Architecture, API Reference, Examples, Development, Project
|
|
131
|
+
- Documentation builds successfully with Sphinx
|
|
132
|
+
|
|
133
|
+
### 🔶 In Progress
|
|
134
|
+
|
|
135
|
+
- Implementing Solver() class in workflows/phenomena.py
|
|
136
|
+
- Incremental testing and validation
|
|
137
|
+
|
|
138
|
+
### 📋 Pending
|
|
139
|
+
|
|
140
|
+
- **context/**: Unit conversion system (conversion.py, system.py, units.py)
|
|
141
|
+
- **structs/**: Complete test coverage for lists, tables, tools modules
|
|
142
|
+
- **Tests**: Coverage for context, structs modules
|
|
143
|
+
- **Docs**: Fill in stub content for documentation pages (basics.rst, architecture.rst, requirements.rst, etc.)
|
|
144
|
+
|
|
145
|
+
## Src Path Structure
|
|
146
|
+
|
|
147
|
+
1. **pydasa**
|
|
148
|
+
1. **analysis:** analysis and simulation modules, pending recheck📋!!!.
|
|
149
|
+
|
|
150
|
+
1. scenario.py: contains the DimSensitivity class for understanding variance in the coefficients. ✅
|
|
151
|
+
2. simulation.py: monte carlo simulator for one coefficient (MonteCarloSim class). ✅
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
2. **context:** unit conversion and measurement context (future scope)
|
|
155
|
+
|
|
156
|
+
1. conversion.py: unit conversion handler for the solver. 📋
|
|
157
|
+
2. system.py: system of units management. 📋
|
|
158
|
+
3. units.py: unit definitions and operations. 📋
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
3. **core:** shared and core capabilities.
|
|
162
|
+
|
|
163
|
+
1. basic.py: contains Foundation, SymBasis, IdxBasis classes, shared capabilities for entities with validation. ✅
|
|
164
|
+
2. constants.py: contains predefined dimensional frameworks (PHYSICAL, COMPUTATION, SOFTWARE) and FDU definitions. ✅
|
|
165
|
+
3. io.py: contains all the input/output functions for saving/loading data of the analysis. ✅
|
|
166
|
+
4. setup.py: contains global configuration (Framework, VarCardinality, CoefCardinality, AnaliticMode enums) and PyDASAConfig singleton. ✅
|
|
167
|
+
5. **cfg/**: configuration files folder
|
|
168
|
+
1. default.json: default framework configurations. ✅
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
4. **dimensional:** dimensional analysis core, pending recheck📋!!!.
|
|
172
|
+
|
|
173
|
+
1. buckingham.py: contains the Coefficient class to represent dimensionless numbers (formerly vashchy.py). ✅
|
|
174
|
+
2. framework.py: contains the DimSchema class to manage and control FDUs in the solving process. UPDATING CODE NOW🔶👨💻!!!.
|
|
175
|
+
3. fundamental.py: contains Dimension class for Buckingham Pi-theorem specific operations. ✅
|
|
176
|
+
4. model.py: contains the DimMatrix class to solve the dimensional matrix. ✅
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
5. **elements:** parameter and variable management with specification classes. ✅
|
|
180
|
+
|
|
181
|
+
1. parameter.py: contains Parameter class for dimensional parameter analysis with decorator-based validation. ✅
|
|
182
|
+
2. **specs/**: specification classes for different aspects of parameters
|
|
183
|
+
1. conceptual.py: contains conceptual specifications (category, schema). ✅
|
|
184
|
+
2. numerical.py: contains numerical specifications (min, max, mean, dev, ranges). ✅
|
|
185
|
+
3. statistical.py: contains statistical specifications (distributions, dependencies). ✅
|
|
186
|
+
4. symbolic.py: contains symbolic specifications (dimensions, units, expressions). ✅
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
6. **structs:** data structures and utilities, pending extensive tests📋!!!.
|
|
190
|
+
|
|
191
|
+
1. **lists**
|
|
192
|
+
|
|
193
|
+
1. arlt.py: arraylist implementation. ✅
|
|
194
|
+
2. dllt.py: double linked list implementation. 📋
|
|
195
|
+
3. ndlt.py: node list for double and single linked lists. ✅
|
|
196
|
+
4. sllt.py: single linked list implementation. ✅
|
|
197
|
+
2. **tables**
|
|
198
|
+
|
|
199
|
+
1. htme.py: entry used in the separate chaining hashtable. ✅
|
|
200
|
+
2. scht.py: separate chaining hashtable implementation. ✅
|
|
201
|
+
3. **tools**
|
|
202
|
+
|
|
203
|
+
1. hashing.py: hashing utilities for data structures. ✅
|
|
204
|
+
2. math.py: mathematical utilities for dimensional analysis. ✅
|
|
205
|
+
3. memory.py: memory management utilities. ✅
|
|
206
|
+
4. **types**
|
|
207
|
+
|
|
208
|
+
1. functions.py: function type definitions and utilities. ✅
|
|
209
|
+
2. generics.py: generic type definitions and type aliases. ✅
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
7. **workflows:** analysis workflow handlers (formerly tasks). ✅
|
|
213
|
+
|
|
214
|
+
1. influence.py: contains the SensitivityAnalysis class (formerly SensitivityHandler) for understanding variance in the coefficients. ✅
|
|
215
|
+
2. phenomena.py: has the main Solver() class of the project. IMPORTANT📋!!!
|
|
216
|
+
3. practical.py: contains the MonteCarloSimulation class (formerly MonteCarloHandler) to control all the Monte Carlo simulations. ✅
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
8. **serialization:** parsing and serialization utilities. ✅
|
|
220
|
+
|
|
221
|
+
1. parser.py: contains LaTeX and formula parsing functions for better representation (formerly utils/latex.py). ✅
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
9. **validations:** validation decorators, patterns, and error handling. ✅
|
|
225
|
+
|
|
226
|
+
1. decorators.py: contains all validation decorators (@validate_type, @validate_emptiness, @validate_choices, @validate_range, @validate_index, @validate_pattern, @validate_custom). Fully implemented with enhanced @validate_emptiness supporting strings, dicts, lists, and all collections. ✅
|
|
227
|
+
2. error.py: contains the generic error_handler() function and inspect_var() for all components. ✅
|
|
228
|
+
3. patterns.py: contains regex patterns for validation and parsing (formerly utils/patterns.py). ✅
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Tests Path Structure
|
|
233
|
+
|
|
234
|
+
1. **pydasa**
|
|
235
|
+
1. **analysis:** shared analytic capabilities, pending updates📋!!!.
|
|
236
|
+
|
|
237
|
+
1. test_scenario.py: tests for sensitivity analysis of the Coefficients (DimSensitivity class). ✅
|
|
238
|
+
2. test_simulation.py: tests for the Monte Carlo simulator for one coefficient (MonteCarloSim class). ✅
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
2. **context:** shared unit of measure and system capabilities.
|
|
242
|
+
|
|
243
|
+
1. test_conversion.py: tests for unit conversion handler. 📋
|
|
244
|
+
2. test_system.py: tests for system of units management. 📋
|
|
245
|
+
3. test_units.py: tests for unit definitions and operations. 📋
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
3. **core:** shared and core capabilities
|
|
249
|
+
|
|
250
|
+
1. test_basic.py: tests for the Foundation, SymBasis, IdxBasis classes. ✅
|
|
251
|
+
2. test_constants.py: tests for predefined dimensional frameworks and FDU definitions. ✅
|
|
252
|
+
3. test_io.py: tests for all the input/output functions for saving/loading data. ✅
|
|
253
|
+
4. test_setup.py: tests for global configuration and PyDASAConfig singleton. ✅
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
4. **data:** test fixtures and sample data
|
|
257
|
+
|
|
258
|
+
1. test_data.py: contains test data for all PyDASA tests (fixtures and samples). ✅
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
5. **dimensional:** main dimensiona analysis capabilities, pending updates📋!!!.
|
|
262
|
+
|
|
263
|
+
1. test_buckingham.py: tests for the Coefficient class. ✅
|
|
264
|
+
2. test_framework.py: tests for the DimSchema class to manage and control FDUs. 🔶👨💻
|
|
265
|
+
3. test_fundamental.py: tests for the Dimension class. ✅
|
|
266
|
+
4. test_model.py: tests for the DimMatrix class to solve the dimensional matrix. ✅
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
6. **elements:** parameter and variable tests with specification tests. ✅
|
|
270
|
+
|
|
271
|
+
1. test_parameter.py: tests for the Parameter class. ✅
|
|
272
|
+
2. **specs/**: specification class tests
|
|
273
|
+
1. test_conceptual.py: tests for conceptual specifications. ✅
|
|
274
|
+
2. test_numerical.py: tests for numerical specifications. ✅
|
|
275
|
+
3. test_statistical.py: tests for statistical specifications. ✅
|
|
276
|
+
4. test_symbolic.py: tests for symbolic specifications. ✅
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
7. **structs:** data structures tests, fundamental for unit of measure and conversions. 📋
|
|
280
|
+
|
|
281
|
+
1. **lists**
|
|
282
|
+
|
|
283
|
+
1. test_arlt.py: tests for the arraylist. 📋
|
|
284
|
+
2. test_dllt.py: tests for the double linked list. 📋
|
|
285
|
+
3. test_ndlt.py: tests for the node list for double and single linked. 📋
|
|
286
|
+
4. test_sllt.py: tests for the single linked list. 📋
|
|
287
|
+
2. **tables**
|
|
288
|
+
|
|
289
|
+
1. test_htme.py: tests for the entry useful for the separate chaining hashtable. 📋
|
|
290
|
+
2. test_scht.py: tests for the separate chaining hashtable. 📋
|
|
291
|
+
3. **tools**
|
|
292
|
+
|
|
293
|
+
1. test_hashing.py: tests for hashing utilities. 📋
|
|
294
|
+
2. test_math.py: tests for mathematical utilities. 📋
|
|
295
|
+
3. test_memory.py: tests for memory management utilities. 📋
|
|
296
|
+
4. **types**
|
|
297
|
+
|
|
298
|
+
1. test_functions.py: tests for function type definitions. 📋
|
|
299
|
+
2. test_generics.py: tests for generic type definitions and type aliases. 📋
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
8. **workflows** (formerly tasks)
|
|
303
|
+
|
|
304
|
+
1. test_influence.py: tests for the SensitivityAnalysis class (formerly SensitivityHandler) for understanding variance in the coefficients. All 21 tests passing. ✅
|
|
305
|
+
2. test_phenomena.py: tests for the main Solver() class of the project. 📋
|
|
306
|
+
3. test_practical.py: tests for the MonteCarloSimulation class (formerly MonteCarloHandler) to control all the Monte Carlo simulations. All 14 tests passing. ✅
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
9. **serialization:** parsing and serialization tests. ✅
|
|
310
|
+
|
|
311
|
+
1. test_parser.py: tests for LaTeX and formula parsing functions (formerly test_latex.py). ✅
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
10. **validations:** validation decorators, patterns, and error handling tests. ✅
|
|
315
|
+
|
|
316
|
+
1. test_decorators.py: tests for all validation decorators (@validate_type, @validate_pattern, @validate_choices, etc.). ✅
|
|
317
|
+
2. test_error.py: tests for the generic error_handler() function and inspect_var() for all components. ✅
|
|
318
|
+
3. test_patterns.py: tests for regex patterns for validation and parsing. ✅
|
|
319
|
+
|
|
320
|
+
---
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
pydasa/__init__.py,sha256=kjjS1LSWuI_UctwiBwHJbhCPVX236V4e_mGO8DblLXk,2758
|
|
2
|
+
pydasa/_version.py,sha256=9E0-W2Kcvq4q2VP2brgCRy1YTjsvVnYeDGJoMb6DBBU,277
|
|
3
|
+
pydasa/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
pydasa/analysis/scenario.py,sha256=BKq20XXm8VoxgxYsEZksEGN-oIGDM069b5WAj6Xm-o0,20212
|
|
5
|
+
pydasa/analysis/simulation.py,sha256=-l-Tv8I-i7yEvZ5eWy5jbPSJa95eoEHuHosaSsONwRc,41704
|
|
6
|
+
pydasa/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
pydasa/context/conversion.py,sha256=9GDJ7WAMMOrVa6eAMUgwEJcHwU_jGbOTZBOlzWe_uhw,293
|
|
8
|
+
pydasa/context/system.py,sha256=qiKmZIdN8-iZBvOCOEVUvx0eLj148M3uisnbK2nHITc,441
|
|
9
|
+
pydasa/context/units.py,sha256=OFbXuaL_M39MczACZqAAToIyXCPbEuU7vAJ4cCkTyhU,507
|
|
10
|
+
pydasa/core/__init__.py,sha256=qrRQMT90s2yHd7sU0fhEbJXUhr4lMkHN97sf-Amy5cg,426
|
|
11
|
+
pydasa/core/basic.py,sha256=rtAEio3H_h80q7cZdHwGyYIyjUtCJYai-2hEgQbfPeo,7987
|
|
12
|
+
pydasa/core/constants.py,sha256=3XZnG4xj8m-5xBxLE3rBNdlin0C0hLPn4NIc-vJwwKk,934
|
|
13
|
+
pydasa/core/io.py,sha256=zIhDDFfHO9tNA5Pb7GCrPGvjAUuMqtrCCq_08vsD_G0,3071
|
|
14
|
+
pydasa/core/setup.py,sha256=SfgN0vNashm9qjISTVRtJUfF-BA0JnzP69lnchR6F2s,9340
|
|
15
|
+
pydasa/core/cfg/default.json,sha256=lQVJKhR54hM9vqsjm0yop9LfY49ROuvZYQPxs2vLXfg,4210
|
|
16
|
+
pydasa/dimensional/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
+
pydasa/dimensional/buckingham.py,sha256=LKaCy3VsMu2ssaR4VVgH24g7UvQZ-WMIQzxIC3-yoaw,24145
|
|
18
|
+
pydasa/dimensional/fundamental.py,sha256=cHink8G3nLnRxjTpXKjBTXg_-IGO0Ao5E_Xk6qmTNHw,4830
|
|
19
|
+
pydasa/dimensional/model.py,sha256=gtXPjqs4sr1DkS5AWnKrcB-pAWZ8xMgqpHTwyHEDASg,38595
|
|
20
|
+
pydasa/dimensional/vaschy.py,sha256=x3LNZZDE65JylQcJnR1rNWxY9Cg1c7D4IEXdNDBI13g,23008
|
|
21
|
+
pydasa/elements/__init__.py,sha256=Q6vHD5_zh-YhIz_WlsHTdFiw30ktOGIj-iNTH8mJRAc,589
|
|
22
|
+
pydasa/elements/parameter.py,sha256=ZxqJHt34Dphv0ALt3RpRpPnXDgxLTm29kvZU3ukEb-U,9100
|
|
23
|
+
pydasa/elements/specs/__init__.py,sha256=RWn495FIQYvU83OEN8gsBJ8kmAzMfqp1Ga6wPrQKvdw,587
|
|
24
|
+
pydasa/elements/specs/conceptual.py,sha256=Syw1W0DtvmF-1VQ1cq6Sar3BaM5QyazExlWtKg-jWMc,5292
|
|
25
|
+
pydasa/elements/specs/numerical.py,sha256=kwqP7qf2tIHGBk7aifA7estg9JcjV7FQmkx3-9YgkMQ,15590
|
|
26
|
+
pydasa/elements/specs/statistical.py,sha256=5K0DNoIbfX4n5KLRBmOCP5-OV1aXqW2nnJPmApK0xQI,7850
|
|
27
|
+
pydasa/elements/specs/symbolic.py,sha256=Pj5IFmxR7DNnW1V45FqZJiIHZcDfA48ln9ecGC2OHv8,13243
|
|
28
|
+
pydasa/serialization/__init__.py,sha256=rcalKZVgiu3gpO36qwQ9Ci8u2PG_B5bO2aVwTV8bwiY,571
|
|
29
|
+
pydasa/serialization/parser.py,sha256=u9bD9dLGynPwvQd6KgVl3TrgE90QVX3E3IiOhE-WepU,4464
|
|
30
|
+
pydasa/structs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
|
+
pydasa/structs/lists/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
+
pydasa/structs/lists/arlt.py,sha256=sbb21xG9X0_T9vFbV1_G_Xau-nIpfOcK_uN-bbGzUKg,21535
|
|
33
|
+
pydasa/structs/lists/dllt.py,sha256=40-DJl6Py9MWgmSRHuNt-r_ehymHgTMMl4CfcSDuCm0,728
|
|
34
|
+
pydasa/structs/lists/ndlt.py,sha256=MxgD_SkV56xVtXkh9BjrAmKH_0X5TtvSkLazMFkbPew,9765
|
|
35
|
+
pydasa/structs/lists/sllt.py,sha256=6V2Te_tXsUZ_gstYTAM5RDzDK_X8zMO_f34TiPfWz0E,26796
|
|
36
|
+
pydasa/structs/tables/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
+
pydasa/structs/tables/htme.py,sha256=aY6QDET-VBh5q_KWCHbeHjU66VQ0I3yLVViHqgQGUFI,6298
|
|
38
|
+
pydasa/structs/tables/scht.py,sha256=L5ZKC_7GoCyowiB4jl06Cv-cGG_SezcuQ6FTJ1eluUg,29965
|
|
39
|
+
pydasa/structs/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
|
+
pydasa/structs/tools/hashing.py,sha256=2YD71k-j3zaNETVjasfZyMI6kKcF3-n8TfvA7vS8MHQ,2103
|
|
41
|
+
pydasa/structs/tools/math.py,sha256=nDw0o9QuV1B4TU3xLEbb8z0sZA9pHgVxcJ-EzpJiOI8,4267
|
|
42
|
+
pydasa/structs/tools/memory.py,sha256=j1Haq7mpo6LNQPi_UYJpnfd1ryHVZhE3289BWT-SQTQ,1862
|
|
43
|
+
pydasa/structs/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
44
|
+
pydasa/structs/types/functions.py,sha256=0kWDTTo6TZnP-ZJ5WnIEyTE313KOPnvEyVCcedRCj0c,4463
|
|
45
|
+
pydasa/structs/types/generics.py,sha256=4vEvWRT6EPcoz2CEH5yUq4pyGAoflWRotVuD69ktOGg,1376
|
|
46
|
+
pydasa/validations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
|
+
pydasa/validations/decorators.py,sha256=psYf1gIpcIyIRtU8uyZDnwQ4Cq2OB0xFV58MFQjJNbo,20690
|
|
48
|
+
pydasa/validations/error.py,sha256=OUzYfv5MnLliVIOhELXxWkY9VmwcxCRj1NV4ucv65j0,3121
|
|
49
|
+
pydasa/validations/patterns.py,sha256=Z51yODQV3dfUER1_A7131M2_Ucyza-SOW7i6Luu27gw,852
|
|
50
|
+
pydasa/workflows/__init__.py,sha256=Ot0b9AHgQGTE4FfmjhPjXrJuNjnox8brtQeDqHpp6io,32
|
|
51
|
+
pydasa/workflows/influence.py,sha256=97UBfX5dpQjZ99-rs6EbCEzL3sXb8VTZGEVgEcTur_s,17497
|
|
52
|
+
pydasa/workflows/phenomena.py,sha256=erjP9zMhiLCZhqXv07GFqfkxJoCpFmVJQdceloQlCdw,19160
|
|
53
|
+
pydasa/workflows/practical.py,sha256=1EE6Oz1AkIOhe1-rc_ekj9u_JkGTH5mshRUGZAxJSBU,27307
|
|
54
|
+
pydasa-0.4.7.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
55
|
+
pydasa-0.4.7.dist-info/METADATA,sha256=Fi--QvhROSaJEaXfG2haRjCfcYpiOciDvkAI_AzN1VQ,15751
|
|
56
|
+
pydasa-0.4.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
57
|
+
pydasa-0.4.7.dist-info/top_level.txt,sha256=aacBQxmD01Y7j_sY9TPeLv4d6tr6kZLhPWMV9AhE2Uc,7
|
|
58
|
+
pydasa-0.4.7.dist-info/RECORD,,
|