Skip to content

Conversation

@rozyczko
Copy link
Member

Implements architecture decision from Discussion #160:

  • Add CalculatorBase: Abstract base class for physics calculators
  • Add CalculatorFactoryBase: Abstract factory for creating calculator instances
  • Add SimpleCalculatorFactory: Concrete factory using dictionary registry
  • Add deprecation warning to InterfaceFactoryTemplate
  • Make Map._store private (__store) to enforce encapsulation
  • Update parameter.py to use public API instead of private _store access
  • Add comprehensive unit tests for all new classes

andped10 and others added 18 commits September 18, 2024 15:18
Fix for setup-python@v5 expecting string now
Implements architecture decision from Discussion #160:

- Add CalculatorBase: Abstract base class for physics calculators
- Add CalculatorFactoryBase: Abstract factory for creating calculator instances
- Add SimpleCalculatorFactory: Concrete factory using dictionary registry
- Add deprecation warning to InterfaceFactoryTemplate
- Make Map._store private (__store) to enforce encapsulation
- Update parameter.py to use public API instead of private _store access
- Add comprehensive unit tests for all new classes
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This pull request does not contain a valid label. Please add one of the following labels: ['[scope] bug', '[scope] enhancement', '[scope] documentation', '[scope] significant', '[scope] maintenance']

@rozyczko rozyczko added [scope] enhancement Adds/improves features (major.MINOR.patch) [priority] medium Normal/default priority [area] base classes Changes to or creation of new base classes labels Dec 19, 2025
@codecov
Copy link

codecov bot commented Dec 19, 2025

Codecov Report

❌ Patch coverage is 98.43750% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.60%. Comparing base (bd10653) to head (b7da00f).

Files with missing lines Patch % Lines
...yscience/fitting/calculators/calculator_factory.py 96.77% 2 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #181      +/-   ##
===========================================
+ Coverage    81.15%   81.60%   +0.44%     
===========================================
  Files           52       54       +2     
  Lines         4267     4381     +114     
  Branches       740      751      +11     
===========================================
+ Hits          3463     3575     +112     
- Misses         624      626       +2     
  Partials       180      180              
Flag Coverage Δ
unittests 81.60% <98.43%> (+0.44%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/easyscience/fitting/calculators/__init__.py 100.00% <100.00%> (ø)
...easyscience/fitting/calculators/calculator_base.py 100.00% <100.00%> (ø)
...syscience/fitting/calculators/interface_factory.py 94.59% <100.00%> (+0.09%) ⬆️
src/easyscience/global_object/map.py 96.92% <100.00%> (ø)
src/easyscience/variable/parameter.py 90.50% <100.00%> (+0.01%) ⬆️
...yscience/fitting/calculators/calculator_factory.py 96.77% <96.77%> (ø)

@rozyczko
Copy link
Member Author

Issues brought up in #172 addressed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[area] base classes Changes to or creation of new base classes [priority] medium Normal/default priority [scope] enhancement Adds/improves features (major.MINOR.patch)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants