Changelog#
Changelog#
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.6.5 - 2026-02-03#
Added#
Comprehensive ReadTheDocs documentation structure with roadmap.rst and tests.rst
Tutorial.rst for complete dimensional analysis workflow
Changed#
Enhanced README and pyproject.toml descriptions
Improved code structure and readability
Updated notebook outputs for better readability
Fixed#
Property validation in MonteCarlo simulation class
Fixed
summaryproperty to access_countdirectly without validationFixed
dataproperty getter to handle pre-allocated data with NaN arrays
Calculate coefficients method in AnalysisEngine to filter setpoints per coefficient using
var_dims.keys()
Removed#
Obsolete testing.rst and empty documentation files
Dictionary comprehensions replaced with explicit loops for clarity
0.6.4 - 2026-01-26#
Fixed#
Codecov action configuration
Notebook test outputs
Changed#
Refactored test structure for improved maintainability
0.6.3 - 2026-01-26#
Fixed#
Enhanced MonteCarlo variable handling and serialization
Updated Codecov action to v5 with improved coverage report upload
Removed#
Removed unused Jupyter notebook PyDASA-Yoly.ipynb from examples directory
Changed#
Re-enabled notebook testing in CI workflow
0.6.2 - 2026-01-26#
Fixed#
Improved MonteCarlo initialization and handling of non-init fields
Changed#
Temporarily commented out notebook testing step in CI workflow
0.6.1 - 2026-01-26#
Added#
Quickstart guide and Reynolds number analysis example documentation
Fixed#
Enhanced testing workflow with coverage reporting
Updated README badges
0.6.0 - 2026-01-25#
Changed#
Refactored
MonteCarloSimulationto inherit fromWorkflowBase(same pattern asAnalysisEngine)Updated utility methods:
reset()preserves coefficients,clear()resets everything,to_dict()/from_dict()use parent serialization
Removed#
~100 lines of duplicate code: attributes (
_variables,_coefficients,_results), properties, and_validate_dict()method
Improved#
Consistent inheritance pattern across all workflow classes (14/14 tests passing)
0.5.3 - 2026-01-19#
Added#
allow_nanparameter tovalidate_typedecorator fornp.nanvalidationdataproperty (getter/setter) forMonteCarloinput data matrix with automatic list-to-array conversionmedianproperty toBoundsSpecsandStandardizedSpecsclassescalculate_setpoint()method toCoefficientclass with comprehensive validation
Changed#
MonteCarlonow inherits from bothFoundationandBoundsSpecs(multiple inheritance)BoundsSpecssetters acceptnp.nanvalues viaallow_nan=TrueparameterMonteCarlotype annotations changed toOptional[float]to matchBoundsSpecsstatisticsandsummaryproperties returnDict[str, Union[float, int, None]]_reset_statistics()andclear()callBoundsSpecs.clear(self)for inherited attributesAnalysisEnginesymbol formatting and serialization improved into_dict()andfrom_dict()
Removed#
_varianceattribute fromMonteCarlo(standard deviation is sufficient)Redundant property getters:
mean,median,dev,min_value,max_value(now inherited fromBoundsSpecs)~120 lines of duplicate code through inheritance refactoring
Fixed#
Type checker errors for property overrides in
MonteCarloTest assertion in
test_buckingham.pyto match error message: “std_setpoint is not defined”Type mismatch between
BoundsSpecs(float | None) andMonteCarlodeclarationsnp.isnan()type errors with properOptional[float]annotations
Improved#
Validation decorator system with
np.nansupport for statistical computationsArchitecture:
Nonefor user config,np.nanfor computed resultsTest coverage: 26 MonteCarlo tests, 53 Buckingham tests, 330+ numerical spec tests passing
0.5.2 - 2026-01-15#
Fixed#
Fixed type annotations in
Sensitivityclass for better type safetyChanged
_sym_funcfromCallabletosp.Exprto properly represent SymPy expressionsUpdated
_exe_functoUnion[Callable, Dict[str, Callable]]to handle both analysis modesFixed
_symbolstype fromDict[str, Symbol]toDict[sp.Symbol, sp.Symbol]Split
_variablesintoDict[str, Variable]for objects and_var_names: List[str]for namesFixed property return types to match attribute types
Resolved type checking errors: “subs is not a known attribute”, “Dict is not callable”
Fixed “var is possibly unbound” error in exception handlers with proper initialization
Removed trailing whitespace in docstrings
Added#
New
var_namesproperty getter inSensitivityclassAdded
_validate_sympy_expr()validation method for SymPy expression validationAdded
_validate_analysis_ready()method to check if analysis can be performedComprehensive test suite for
Sensitivityclass (56 tests total, up from 43)Tests for
exe_funcproperty setter with callable and dict typesTests for
schemaproperty setter and validationTests for
variablesproperty setter and validationTests for
_validate_sympy_expr()methodTests for
_validate_analysis_ready()method with various failure scenariosTests for
var_namesproperty getter
Changed#
Improved error messages in
Sensitivityclass for better debuggingUpdated
analyze_symbolically()with better type guards and current variable trackingUpdated
analyze_numerically()with proper type guards using local variablesEnhanced
_parse_expression()method with proper type narrowingRefactored property decorators for consistency with validation patterns
Replaced lambda expressions with proper function definitions for PEP 8 compliance
Internal#
Added type guards to prevent runtime errors with Union types
Improved exception handling with proper context preservation (
raise ... from e)Enhanced type safety for SymPy integration throughout the module
Used local variables to satisfy type checker in complex assignment scenarios
0.5.1 - 2026-01-14#
Changed#
Updated terminology from ‘framework’ to ‘schema’ in Matrix and AnalysisEngine classes for consistency
Refined dimensional analysis workflow capabilities
Fixed#
Fixed error message for invalid schema assignment in TestAnalysisEngine
0.5.0 - 2026-01-13#
Added#
Enhanced dimensional expression parsing and validation in
parser.pyFunctions to extract coefficients, powered coefficients, and numeric constants from expressions
New method
derive_coefficientinAnalysisEnginefor deriving coefficients from existing onesComprehensive validation for AnalysisEngine schema input types
Changed#
Improved dimensional operation computations and validations
Updated regex patterns in
patterns.pyfor better matching of numeric constants and operationsRefactored
AnalysisEngineinphenomena.pyto support custom schemasRestructured analysis workflows for better modularity
Enhanced unit tests for the
Matrixclass andAnalysisEngineUpdated error messages for clarity and consistency across validation checks
Fixed#
Fixed test assertions to match updated property names
Corrected framework validation logic in multiple classes
0.4.10 - 2026-01-12#
Added#
New validation decorators
validate_list_typesandvalidate_dict_typesinpydasa.validations.decoratorsmoduleComprehensive test suite for new validation decorators (8 new test cases)
Tests for
Coefficient.get_data()method in test_buckingham.py
Changed#
Refactored
Coefficientclass to use new@validate_list_typesand@validate_dict_typesdecoratorsSimplified
Coefficient.clear()method to usesuper().clear()from parent classes (Foundation, BoundsSpecs)Updated test assertions to match new decorator error messages
Fixed#
Updated variable test data keys from metric to setpoint
Adjusted decorator validation range syntax
Improved#
Reduced code duplication by replacing custom validation methods with reusable decorators
Enhanced type validation for parameterized generics (Dict[str, Variable], List[int])
Cleaner and more maintainable validation architecture
0.4.9 - 2026-01-10#
Changed#
Updated author information and email in setup.py
Refactored
Dimensionclass to useFrameworksenum
Fixed#
Cleaned up redundant code in
VariableclassRevised comments in memory.py and functions.py
Removed deprecated workflows/init.py file
0.4.8 - 2026-01-08#
Added#
metricandstd_metricproperties toNumericalSpecsclassComprehensive tests for new metric properties
Fixed#
Enhanced numerical specifications with metric property support
Updated test data structure to support metric properties
0.4.7 - 2026-01-07#
Changed#
Update CHANGELOG for versions 0.4.4, 0.4.5, and 0.4.6 releases
0.4.6 - 2026-01-07#
Fixed#
Downgrade sphinx-autodoc-typehints to 2.5.0 for Sphinx 8 compatibility
0.4.5 - 2026-01-07#
Fixed#
Downgrade isort to 6.1.0 for pylint compatibility
0.4.4 - 2026-01-07#
Fixed#
Downgrade isort to 6.1.2 for pylint compatibility
Changed#
Update CHANGELOG for version 0.4.3 release
0.4.3 - 2026-01-07#
Fixed#
Downgrade astroid and pylint for sphinx-autoapi compatibility
0.4.2 - 2026-01-07#
Changed#
Minor release updates
0.4.1 - 2026-01-07#
Fixed#
Update PyPI token secret name in release workflow
0.4.0 - 2026-01-07#
Added#
Read the Docs configuration file (.readthedocs.yaml)
Automated documentation building and hosting on Read the Docs
Changed#
Update CHANGELOG for version 0.3.4 release
0.3.4 - 2026-01-07#
Fixed#
Downgrade Sphinx to 8.1.3 for myst-parser compatibility
Changed#
Update Python version to 3.11 in Read the Docs configuration
Configure Read the Docs for automated documentation builds
Add PyPI publishing workflow with GitHub Actions
0.3.3 - 2026-01-07#
Added#
First public release published to PyPI
Configure automated PyPI publishing via GitHub Actions
Add Read the Docs integration with .readthedocs.yaml
Include CHANGELOG.md in documentation via myst-parser
Changed#
Update documentation structure with public folder integration
Configure linkify-it-py for markdown link rendering in docs
0.3.2 - 2026-01-06#
Fixed#
Package now includes
core/cfg/*.jsonconfiguration files in distribution__version__attribute is now properly exposed in the mainpydasamoduleResolved
FileNotFoundErrorwhen importing pydasa after installation
Added#
Added
[tool.setuptools.package-data]configuration to include non-Python filesComprehensive test suite in
tests/test_package.pyto verify package initializationTests for version accessibility, configuration file inclusion, and main exports
Changed#
Configured semantic release with
major_on_zero = falseto keep versions in 0.x rangeUpdated
__all__list to include__version__for proper wildcard imports
0.3.1 - 2026-01-06#
Changed#
Version reset from 1.0.x to 0.3.1 to maintain pre-release versioning
Configured semantic release to prevent automatic major version bumps
0.3.0 - Unreleased (2026-01-06)#
Added#
Initial stable release with core functionality
[0.2.99] - Unreleased (2026-01-06)#
Added#
Distribution files:
pydasa-0.2.99-py3-none-any.whl,pydasa-0.2.99.tar.gz
[0.2.75] - Unreleased (2026-01-04)#
Added#
Distribution files:
pydasa-0.2.75-py3-none-any.whl,pydasa-0.2.75.tar.gz
[0.2.71] - Unreleased (2025-11-27)#
Added#
Distribution files:
pydasa-0.2.71-py3-none-any.whl,pydasa-0.2.71.tar.gz
[0.2.69] - Unreleased (2025-11-24)#
Added#
Distribution files:
pydasa-0.2.69-py3-none-any.whl,pydasa-0.2.69.tar.gz
[0.2.45] - Unreleased (2025-11-23)#
Added#
Distribution files:
pydasa-0.2.45-py3-none-any.whl,pydasa-0.2.45.tar.gz
[0.2.43] - Unreleased (2025-11-23)#
Added#
Distribution files:
pydasa-0.2.43-py3-none-any.whl,pydasa-0.2.43.tar.gz
[0.2.42] - Unreleased (2025-11-23)#
Added#
Distribution files:
pydasa-0.2.42-py3-none-any.whl,pydasa-0.2.42.tar.gz
[0.2.37] - Unreleased (2025-11-23)#
Added#
Distribution files:
pydasa-0.2.37-py3-none-any.whl,pydasa-0.2.37.tar.gz
[0.2.21] - Unreleased (2025-11-18)#
Added#
Distribution files:
pydasa-0.2.21-py3-none-any.whl,pydasa-0.2.21.tar.gz
[0.2.17] - Unreleased (2025-11-18)#
Added#
Distribution files:
pydasa-0.2.17-py3-none-any.whl,pydasa-0.2.17.tar.gz
[0.2.11] - Unreleased (2025-11-18)#
Added#
Distribution files:
pydasa-0.2.11-py3-none-any.whl,pydasa-0.2.11.tar.gz
[0.2.0] - Unreleased (2025-11-17)#
Added#
Distribution files:
pydasa-0.2.0-py3-none-any.whl,pydasa-0.2.0.tar.gz
[0.1.97] - Unreleased (2025-11-17)#
Added#
Distribution files:
pydasa-0.1.97-py3-none-any.whl,pydasa-0.1.97.tar.gz
[0.1.95] - Unreleased (2025-11-17)#
Added#
Distribution files:
pydasa-0.1.95-py3-none-any.whl,pydasa-0.1.95.tar.gz
[0.1.92] - Unreleased (2025-10-11)#
Added#
Distribution files:
pydasa-0.1.92-py3-none-any.whl,pydasa-0.1.92.tar.gz
[0.1.90] - Unreleased (2025-10-11)#
Added#
Distribution files:
pydasa-0.1.90-py3-none-any.whl,pydasa-0.1.90.tar.gz
[0.1.9] - Unreleased (2025-09-01)#
Added#
Distribution files:
pydasa-0.1.9-py3-none-any.whl,pydasa-0.1.9.tar.gz
[0.1.8] - Unreleased (2025-08-28)#
Added#
Distribution files:
pydasa-0.1.8-py3-none-any.whl,pydasa-0.1.8.tar.gz
[0.1.73] - Unreleased (2025-10-03)#
Added#
Distribution files:
pydasa-0.1.73-py3-none-any.whl,pydasa-0.1.73.tar.gz
[0.1.70] - Unreleased (2025-10-03)#
Added#
Distribution files:
pydasa-0.1.70-py3-none-any.whl,pydasa-0.1.70.tar.gz
[0.1.7] - Unreleased (2025-08-25)#
Added#
Distribution files:
pydasa-0.1.7-py3-none-any.whl,pydasa-0.1.7.tar.gz
[0.1.65] - Unreleased (2025-10-02)#
Added#
Distribution files:
pydasa-0.1.65-py3-none-any.whl,pydasa-0.1.65.tar.gz
[0.1.6] - Unreleased (2025-08-25)#
Added#
Distribution files:
pydasa-0.1.6-py3-none-any.whl,pydasa-0.1.6.tar.gz
[0.1.5] - Unreleased (2025-08-24)#
Added#
Distribution files:
pydasa-0.1.5-py3-none-any.whl,pydasa-0.1.5.tar.gz
[0.1.45] - Unreleased (2025-09-30)#
Added#
Distribution files:
pydasa-0.1.45-py3-none-any.whl,pydasa-0.1.45.tar.gz
[0.1.35] - Unreleased (2025-09-30)#
Added#
Distribution files:
pydasa-0.1.35-py3-none-any.whl,pydasa-0.1.35.tar.gz
[0.1.32] - Unreleased (2025-09-30)#
Added#
Distribution files:
pydasa-0.1.32-py3-none-any.whl,pydasa-0.1.32.tar.gz
[0.1.27] - Unreleased (2025-09-29)#
Added#
Distribution files:
pydasa-0.1.27-py3-none-any.whl,pydasa-0.1.27.tar.gz
[0.1.25] - Unreleased (2025-09-29)#
Added#
Distribution files:
pydasa-0.1.25-py3-none-any.whl,pydasa-0.1.25.tar.gz
[0.1.2] - Unreleased (2025-08-24)#
Added#
Distribution files:
pydasa-0.1.2-py3-none-any.whl,pydasa-0.1.2.tar.gz
[0.1.19] - Unreleased (2025-09-19)#
Added#
Distribution files:
pydasa-0.1.19-py3-none-any.whl,pydasa-0.1.19.tar.gz
[0.1.17] - Unreleased (2025-09-19)#
Added#
Distribution files:
pydasa-0.1.17-py3-none-any.whl,pydasa-0.1.17.tar.gz
[0.1.15] - Unreleased (2025-09-18)#
Added#
Distribution files:
pydasa-0.1.15-py3-none-any.whl,pydasa-0.1.15.tar.gz
[0.1.12] - Unreleased (2025-09-11)#
Added#
Distribution files:
pydasa-0.1.12-py3-none-any.whl,pydasa-0.1.12.tar.gz
[0.1.11] - Unreleased (2025-09-10)#
Added#
Distribution files:
pydasa-0.1.11-py3-none-any.whl,pydasa-0.1.11.tar.gz
[0.1.0] - Unreleased (2025-08-20)#
Added#
Distribution files:
pydasa-0.1.0-py3-none-any.whl,pydasa-0.1.0.tar.gz
[0.0.1] - Unreleased (2025-08-20)#
Added#
Distribution files:
pydasa-0.0.1-py3-none-any.whl,pydasa-0.0.1.tar.gz
[0.0.0] - Initial Development (2023-08-27 to 2025-08-20)#
Added#
Initial commit and repository setup.
Fundamental dimensional unit (FDU) class implementation.
Proof of concept for dimensional analysis framework.
Core data structures for PyDASA methodology.
Initial documentation structure (English and Spanish).
Base classes for dimensional parameters and fundamental data structures.
Early test structure and experimental implementations.
Note#
Experimentation phase before formal semantic versioning, establishing core dimensional analysis concepts and data structures.