flixopt 2.1.2__tar.gz → 2.1.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.

Potentially problematic release.


This version of flixopt might be problematic. Click here for more details.

Files changed (97) hide show
  1. flixopt-2.1.3/.github/CONTRIBUTING.md +85 -0
  2. flixopt-2.1.3/.github/ISSUE_TEMPLATE/bug_report.yml +81 -0
  3. flixopt-2.1.3/.github/ISSUE_TEMPLATE/config.yml +8 -0
  4. flixopt-2.1.3/.github/ISSUE_TEMPLATE/feature_request.yml +88 -0
  5. flixopt-2.1.3/.github/pull_request_template.md +20 -0
  6. {flixopt-2.1.2 → flixopt-2.1.3}/.github/workflows/python-app.yaml +35 -1
  7. {flixopt-2.1.2 → flixopt-2.1.3}/CHANGELOG.md +5 -0
  8. {flixopt-2.1.2 → flixopt-2.1.3}/PKG-INFO +1 -1
  9. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/core.py +6 -2
  10. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/effects.py +1 -1
  11. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt.egg-info/PKG-INFO +1 -1
  12. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt.egg-info/SOURCES.txt +5 -1
  13. flixopt-2.1.2/.github/workflows/deploy-docs.yaml +0 -37
  14. {flixopt-2.1.2 → flixopt-2.1.3}/.gitignore +0 -0
  15. {flixopt-2.1.2 → flixopt-2.1.3}/LICENSE +0 -0
  16. {flixopt-2.1.2 → flixopt-2.1.3}/README.md +0 -0
  17. {flixopt-2.1.2 → flixopt-2.1.3}/docs/SUMMARY.md +0 -0
  18. {flixopt-2.1.2 → flixopt-2.1.3}/docs/contribute.md +0 -0
  19. {flixopt-2.1.2 → flixopt-2.1.3}/docs/examples/00-Minimal Example.md +0 -0
  20. {flixopt-2.1.2 → flixopt-2.1.3}/docs/examples/01-Basic Example.md +0 -0
  21. {flixopt-2.1.2 → flixopt-2.1.3}/docs/examples/02-Complex Example.md +0 -0
  22. {flixopt-2.1.2 → flixopt-2.1.3}/docs/examples/03-Calculation Modes.md +0 -0
  23. {flixopt-2.1.2 → flixopt-2.1.3}/docs/examples/index.md +0 -0
  24. {flixopt-2.1.2 → flixopt-2.1.3}/docs/faq/contribute.md +0 -0
  25. {flixopt-2.1.2 → flixopt-2.1.3}/docs/faq/index.md +0 -0
  26. {flixopt-2.1.2 → flixopt-2.1.3}/docs/getting-started.md +0 -0
  27. {flixopt-2.1.2 → flixopt-2.1.3}/docs/images/architecture_flixOpt-pre2.0.0.png +0 -0
  28. {flixopt-2.1.2 → flixopt-2.1.3}/docs/images/architecture_flixOpt.png +0 -0
  29. {flixopt-2.1.2 → flixopt-2.1.3}/docs/images/flixopt-icon.svg +0 -0
  30. {flixopt-2.1.2 → flixopt-2.1.3}/docs/index.md +0 -0
  31. {flixopt-2.1.2 → flixopt-2.1.3}/docs/javascripts/mathjax.js +0 -0
  32. {flixopt-2.1.2 → flixopt-2.1.3}/docs/user-guide/Mathematical Notation/Bus.md +0 -0
  33. {flixopt-2.1.2 → flixopt-2.1.3}/docs/user-guide/Mathematical Notation/Effects, Penalty & Objective.md +0 -0
  34. {flixopt-2.1.2 → flixopt-2.1.3}/docs/user-guide/Mathematical Notation/Flow.md +0 -0
  35. {flixopt-2.1.2 → flixopt-2.1.3}/docs/user-guide/Mathematical Notation/LinearConverter.md +0 -0
  36. {flixopt-2.1.2 → flixopt-2.1.3}/docs/user-guide/Mathematical Notation/Piecewise.md +0 -0
  37. {flixopt-2.1.2 → flixopt-2.1.3}/docs/user-guide/Mathematical Notation/Storage.md +0 -0
  38. {flixopt-2.1.2 → flixopt-2.1.3}/docs/user-guide/Mathematical Notation/index.md +0 -0
  39. {flixopt-2.1.2 → flixopt-2.1.3}/docs/user-guide/Mathematical Notation/others.md +0 -0
  40. {flixopt-2.1.2 → flixopt-2.1.3}/docs/user-guide/index.md +0 -0
  41. {flixopt-2.1.2 → flixopt-2.1.3}/examples/00_Minmal/minimal_example.py +0 -0
  42. {flixopt-2.1.2 → flixopt-2.1.3}/examples/01_Simple/simple_example.py +0 -0
  43. {flixopt-2.1.2 → flixopt-2.1.3}/examples/02_Complex/complex_example.py +0 -0
  44. {flixopt-2.1.2 → flixopt-2.1.3}/examples/02_Complex/complex_example_results.py +0 -0
  45. {flixopt-2.1.2 → flixopt-2.1.3}/examples/03_Calculation_types/Zeitreihen2020.csv +0 -0
  46. {flixopt-2.1.2 → flixopt-2.1.3}/examples/03_Calculation_types/example_calculation_types.py +0 -0
  47. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/__init__.py +0 -0
  48. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/aggregation.py +0 -0
  49. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/calculation.py +0 -0
  50. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/commons.py +0 -0
  51. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/components.py +0 -0
  52. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/config.py +0 -0
  53. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/config.yaml +0 -0
  54. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/elements.py +0 -0
  55. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/features.py +0 -0
  56. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/flow_system.py +0 -0
  57. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/interface.py +0 -0
  58. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/io.py +0 -0
  59. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/linear_converters.py +0 -0
  60. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/plotting.py +0 -0
  61. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/results.py +0 -0
  62. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/solvers.py +0 -0
  63. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/structure.py +0 -0
  64. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt/utils.py +0 -0
  65. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt.egg-info/dependency_links.txt +0 -0
  66. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt.egg-info/requires.txt +0 -0
  67. {flixopt-2.1.2 → flixopt-2.1.3}/flixopt.egg-info/top_level.txt +0 -0
  68. {flixopt-2.1.2 → flixopt-2.1.3}/mkdocs.yml +0 -0
  69. {flixopt-2.1.2 → flixopt-2.1.3}/pics/architecture_flixOpt-pre2.0.0.png +0 -0
  70. {flixopt-2.1.2 → flixopt-2.1.3}/pics/architecture_flixOpt.png +0 -0
  71. {flixopt-2.1.2 → flixopt-2.1.3}/pics/flixOpt_plotting.jpg +0 -0
  72. {flixopt-2.1.2 → flixopt-2.1.3}/pics/flixopt-icon.svg +0 -0
  73. {flixopt-2.1.2 → flixopt-2.1.3}/pics/pics.pptx +0 -0
  74. {flixopt-2.1.2 → flixopt-2.1.3}/pyproject.toml +0 -0
  75. {flixopt-2.1.2 → flixopt-2.1.3}/scripts/extract_release_notes.py +0 -0
  76. {flixopt-2.1.2 → flixopt-2.1.3}/scripts/gen_ref_pages.py +0 -0
  77. {flixopt-2.1.2 → flixopt-2.1.3}/setup.cfg +0 -0
  78. {flixopt-2.1.2 → flixopt-2.1.3}/tests/__init__.py +0 -0
  79. {flixopt-2.1.2 → flixopt-2.1.3}/tests/conftest.py +0 -0
  80. {flixopt-2.1.2 → flixopt-2.1.3}/tests/ressources/Zeitreihen2020.csv +0 -0
  81. {flixopt-2.1.2 → flixopt-2.1.3}/tests/run_all_tests.py +0 -0
  82. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_bus.py +0 -0
  83. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_component.py +0 -0
  84. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_dataconverter.py +0 -0
  85. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_effect.py +0 -0
  86. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_examples.py +0 -0
  87. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_flow.py +0 -0
  88. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_functional.py +0 -0
  89. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_integration.py +0 -0
  90. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_io.py +0 -0
  91. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_linear_converter.py +0 -0
  92. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_on_hours_computation.py +0 -0
  93. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_plots.py +0 -0
  94. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_results_plots.py +0 -0
  95. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_storage.py +0 -0
  96. {flixopt-2.1.2 → flixopt-2.1.3}/tests/test_timeseries.py +0 -0
  97. {flixopt-2.1.2 → flixopt-2.1.3}/tests/todos.txt +0 -0
@@ -0,0 +1,85 @@
1
+ # Contributing to FlixOpt
2
+
3
+ Thanks for your interest in contributing to FlixOpt! 🚀
4
+
5
+ ## Quick Start
6
+
7
+ 1. **Fork & Clone**
8
+ ```bash
9
+ git clone https://github.com/yourusername/flixopt.git
10
+ cd flixopt
11
+ ```
12
+
13
+ 2. **Install for Development**
14
+ ```bash
15
+ pip install -e ".[full]"
16
+ ```
17
+
18
+ 3. **Make Changes & Submit PR**
19
+ ```bash
20
+ git checkout -b feature/your-change
21
+ # Make your changes
22
+ git commit -m "Add: description of changes"
23
+ git push origin feature/your-change
24
+ # Create Pull Request on GitHub
25
+ ```
26
+
27
+ ## How to Contribute
28
+
29
+ ### 🐛 **Found a Bug?**
30
+ Use our [bug report template](https://github.com/flixOpt/flixopt/issues/new?template=bug_report.yml) with:
31
+ - Minimal code example
32
+ - FlixOpt version, Python version, solver used
33
+ - Expected vs actual behavior
34
+
35
+ ### ✨ **Have a Feature Idea?**
36
+ Use our [feature request template](https://github.com/flixOpt/flixopt/issues/new?template=feature_request.yml) with:
37
+ - Clear energy system use case
38
+ - Specific examples of what you want to model
39
+
40
+ ### ❓ **Need Help?**
41
+ - Check the [documentation](https://flixopt.github.io/flixopt/latest/) first
42
+ - Search [existing issues](https://github.com/flixOpt/flixopt/issues)
43
+ - Start a [discussion](https://github.com/flixOpt/flixopt/discussions)
44
+
45
+ ## Code Guidelines
46
+
47
+ - **Style**: Follow PEP 8, use descriptive names
48
+ - **Documentation**: Add docstrings with units (kW, kWh, etc.) if applicable
49
+ - **Energy Focus**: Use energy domain terminology consistently
50
+ - **Testing**: Test with different solvers when applicable
51
+
52
+ ### Example
53
+ ```python
54
+ def create_storage(
55
+ label: str,
56
+ capacity_kwh: float,
57
+ charging_power_kw: float
58
+ ) -> Storage:
59
+ """
60
+ Create a battery storage component.
61
+
62
+ Args:
63
+ label: Unique identifier
64
+ capacity_kwh: Storage capacity [kWh]
65
+ charging_power_kw: Maximum charging power [kW]
66
+ """
67
+ ```
68
+
69
+ ## What We Welcome
70
+
71
+ - 🔧 New energy components (batteries, heat pumps, etc.)
72
+ - 📚 Documentation improvements
73
+ - 🐛 Bug fixes
74
+ - 🧪 Test cases
75
+ - 💡 Energy system examples
76
+
77
+ ## Questions?
78
+
79
+ - 📖 [Documentation](https://flixopt.github.io/flixopt/latest/)
80
+ - 💬 [Discussions](https://github.com/flixOpt/flixopt/discussions)
81
+ - 📧 Contact maintainers (see README)
82
+
83
+ ---
84
+
85
+ **Every contribution helps advance sustainable energy solutions! 🌱⚡**
@@ -0,0 +1,81 @@
1
+ name: 🐛 Bug Report
2
+ description: Report a bug in flixopt
3
+ title: "[BUG] "
4
+ labels: ["type: bug"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for taking the time to fill out this bug report!
10
+ - type: checkboxes
11
+ id: checks
12
+ attributes:
13
+ label: Version Checks (indicate both or one)
14
+ options:
15
+ - label: >
16
+ I have confirmed this bug exists on the latest
17
+ [release](https://github.com/flixOpt/flixopt/releases) of FlixOpt.
18
+ - label: >
19
+ I have confirmed this bug exists on the current
20
+ [`main`](https://github.com/flixOpt/flixopt/tree/main) branch of FlixOpt.
21
+ - type: textarea
22
+ id: problem
23
+ attributes:
24
+ label: Issue Description
25
+ description: >
26
+ Please provide a description of the issue.
27
+ validations:
28
+ required: true
29
+ - type: textarea
30
+ id: example
31
+ validations:
32
+ required: true
33
+ attributes:
34
+ label: Reproducible Example
35
+ description: >
36
+ Please provide a minimal reproducible example. See how to [craft minimal bug reports](https://matthewrocklin.com/minimal-bug-reports).
37
+ placeholder: >
38
+ import flixopt as fx
39
+
40
+ # Create simple energy system that reproduces the bug
41
+ timesteps = pd.date_range('2024-01-01', periods=24, freq='h')
42
+ flow_system = fx.FlowSystem(timesteps)
43
+
44
+ # Add your components here...
45
+ render: python
46
+ - type: textarea
47
+ id: expected-behavior
48
+ validations:
49
+ required: true
50
+ attributes:
51
+ label: Expected Behavior
52
+ description: >
53
+ Please describe or show a code example of the expected behavior.
54
+ - type: dropdown
55
+ id: solver
56
+ attributes:
57
+ label: Solver Used
58
+ description: Which solver were you using when the bug occurred?
59
+ options:
60
+ - HiGHS (default)
61
+ - Gurobi
62
+ - CPLEX
63
+ - GLPK
64
+ - Other (please specify in description)
65
+ validations:
66
+ required: true
67
+ - type: textarea
68
+ id: version
69
+ attributes:
70
+ label: Installed Versions
71
+ description: >
72
+ Please share information on your environment. Paste the output below.
73
+ For conda: `conda env export` and for pip: `pip freeze`.
74
+ value: >
75
+ <details>
76
+
77
+ ```
78
+ Replace this with your environment info
79
+ ```
80
+
81
+ </details>
@@ -0,0 +1,8 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: ❓ Questions & Discussion
4
+ url: https://github.com/flixOpt/flixopt/discussions
5
+ about: Ask questions and discuss with the community
6
+ - name: 📖 Documentation
7
+ url: https://flixopt.github.io/flixopt/latest/
8
+ about: Check our documentation for guides and examples
@@ -0,0 +1,88 @@
1
+ name: Feature Request
2
+ description: Suggest a new feature or enhancement for FlixOpt.
3
+ title: "[FEATURE] "
4
+ labels: ["type: feature"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for suggesting a new feature! Please provide as much detail as possible.
10
+ - type: checkboxes
11
+ id: checks
12
+ attributes:
13
+ label: Prerequisite Checks
14
+ options:
15
+ - label: >
16
+ I have searched the [existing issues](https://github.com/flixOpt/flixopt/issues)
17
+ and confirmed this feature doesn't already exist.
18
+ - label: >
19
+ I have checked the [documentation](https://flixopt.github.io/flixopt/latest/)
20
+ to ensure this feature isn't already available.
21
+ - type: textarea
22
+ id: problem
23
+ attributes:
24
+ label: Is your feature request related to a problem?
25
+ description: >
26
+ A clear and concise description of what the problem is.
27
+ placeholder: >
28
+ I'm always frustrated when modeling [specific energy system scenario]...
29
+ - type: textarea
30
+ id: solution
31
+ validations:
32
+ required: true
33
+ attributes:
34
+ label: Describe the solution you'd like
35
+ description: >
36
+ A clear and concise description of what you want to happen.
37
+ placeholder: >
38
+ I would like to be able to model [specific component/feature]...
39
+ - type: textarea
40
+ id: use-case
41
+ validations:
42
+ required: true
43
+ attributes:
44
+ label: Energy System Use Case
45
+ description: >
46
+ Describe your specific energy system modeling scenario and how this feature would help.
47
+ placeholder: >
48
+ I'm modeling a district heating system with seasonal thermal storage and need to...
49
+ - type: textarea
50
+ id: example
51
+ attributes:
52
+ label: Desired Code Example (optional)
53
+ description: >
54
+ If possible, show how you would like to use this feature in code.
55
+ placeholder: >
56
+ # Example of how the new feature might work
57
+ thermal_storage = fx.SeasonalStorage(
58
+ label='seasonal_storage',
59
+ capacity_mwh=1000,
60
+ efficiency=0.95
61
+ )
62
+ render: python
63
+ - type: dropdown
64
+ id: component-type
65
+ attributes:
66
+ label: Component Category (if applicable)
67
+ description: What type of energy system component does this relate to?
68
+ options:
69
+ - Storage (batteries, thermal storage, etc.)
70
+ - Generation (PV, wind, CHP, etc.)
71
+ - Conversion (heat pumps, boilers, etc.)
72
+ - Network/Grid (transmission, distribution)
73
+ - Optimization/Calculation (algorithms, solvers)
74
+ - Data/Input handling
75
+ - Results/Output
76
+ - Other
77
+ - type: textarea
78
+ id: alternatives
79
+ attributes:
80
+ label: Alternatives considered
81
+ description: >
82
+ Describe any alternative solutions or workarounds you've considered.
83
+ - type: textarea
84
+ id: additional-context
85
+ attributes:
86
+ label: Additional context
87
+ description: >
88
+ Add any other context, research papers, or examples about the feature request here.
@@ -0,0 +1,20 @@
1
+ ## Description
2
+ Brief description of the changes in this PR.
3
+
4
+ ## Type of Change
5
+ - [ ] Bug fix
6
+ - [ ] New feature
7
+ - [ ] Documentation update
8
+ - [ ] Code refactoring
9
+
10
+ ## Related Issues
11
+ Closes #(issue number)
12
+
13
+ ## Testing
14
+ - [ ] I have tested my changes
15
+ - [ ] Existing tests still pass
16
+
17
+ ## Checklist
18
+ - [ ] My code follows the project style
19
+ - [ ] I have updated documentation if needed
20
+ - [ ] I have added tests for new functionality (if applicable)
@@ -181,4 +181,38 @@ jobs:
181
181
  # Install from PyPI
182
182
  pip install $PACKAGE_NAME
183
183
  # Basic import test
184
- python -c "import flixopt; print('PyPI installation successful!')"
184
+ python -c "import flixopt; print('PyPI installation successful!')"
185
+
186
+ deploy-docs:
187
+ name: Deploy Documentation
188
+ runs-on: ubuntu-22.04
189
+ needs: [publish-pypi] # Deploy docs after successful PyPI publishing
190
+ if: startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, 'alpha') && !contains(github.ref, 'beta') && !contains(github.ref, 'rc')
191
+
192
+ steps:
193
+ - name: Checkout repository
194
+ uses: actions/checkout@v4
195
+ with:
196
+ fetch-depth: 0 # Fetch all history for proper versioning
197
+
198
+ - name: Set up Python
199
+ uses: actions/setup-python@v4
200
+ with:
201
+ python-version: "3.11"
202
+
203
+ - name: Install documentation dependencies
204
+ run: |
205
+ python -m pip install --upgrade pip
206
+ pip install -e ".[docs]"
207
+
208
+ - name: Configure Git Credentials
209
+ run: |
210
+ git config user.name github-actions[bot]
211
+ git config user.email 41898282+github-actions[bot]@users.noreply.github.com
212
+
213
+ - name: Deploy docs
214
+ run: |
215
+ VERSION=${GITHUB_REF#refs/tags/v}
216
+ echo "Deploying docs after successful PyPI publish: $VERSION"
217
+ mike deploy --push --update-aliases $VERSION latest
218
+ mike set-default --push latest
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.1.3] - 2025-07-08
11
+
12
+ ### Fixed
13
+ - Using `Effect.maximum_operation_per_hour` raised an error, needing an extra timestep. This has been fixed.
14
+
10
15
  ## [2.1.2] - 2025-06-14
11
16
 
12
17
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flixopt
3
- Version: 2.1.2
3
+ Version: 2.1.3
4
4
  Summary: Vector based energy and material flow optimization framework in Python.
5
5
  Author-email: "Chair of Building Energy Systems and Heat Supply, TU Dresden" <peter.stange@tu-dresden.de>, Felix Bumann <felixbumann387@gmail.com>, Felix Panitz <baumbude@googlemail.com>, Peter Stange <peter.stange@tu-dresden.de>
6
6
  Maintainer-email: Felix Bumann <felixbumann387@gmail.com>, Peter Stange <peter.stange@tu-dresden.de>
@@ -62,13 +62,17 @@ class DataConverter:
62
62
  return xr.DataArray(data, coords=coords, dims=dims)
63
63
  elif isinstance(data, pd.DataFrame):
64
64
  if not data.index.equals(timesteps):
65
- raise ConversionError("DataFrame index doesn't match timesteps index")
65
+ raise ConversionError(f"DataFrame index doesn't match timesteps index. "
66
+ f"Its missing the following time steps: {timesteps.difference(data.index)}. "
67
+ f"Some parameters might need an extra timestep at the end.")
66
68
  if not len(data.columns) == 1:
67
69
  raise ConversionError('DataFrame must have exactly one column')
68
70
  return xr.DataArray(data.values.flatten(), coords=coords, dims=dims)
69
71
  elif isinstance(data, pd.Series):
70
72
  if not data.index.equals(timesteps):
71
- raise ConversionError("Series index doesn't match timesteps index")
73
+ raise ConversionError(f"Series index doesn't match timesteps index. "
74
+ f"Its missing the following time steps: {timesteps.difference(data.index)}. "
75
+ f"Some parameters might need an extra timestep at the end.")
72
76
  return xr.DataArray(data.values, coords=coords, dims=dims)
73
77
  elif isinstance(data, np.ndarray):
74
78
  if data.ndim != 1:
@@ -94,7 +94,7 @@ class Effect(Element):
94
94
  f'{self.label_full}|minimum_operation_per_hour', self.minimum_operation_per_hour
95
95
  )
96
96
  self.maximum_operation_per_hour = flow_system.create_time_series(
97
- f'{self.label_full}|maximum_operation_per_hour', self.maximum_operation_per_hour, flow_system
97
+ f'{self.label_full}|maximum_operation_per_hour', self.maximum_operation_per_hour,
98
98
  )
99
99
 
100
100
  self.specific_share_to_other_effects_operation = flow_system.create_effect_time_series(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flixopt
3
- Version: 2.1.2
3
+ Version: 2.1.3
4
4
  Summary: Vector based energy and material flow optimization framework in Python.
5
5
  Author-email: "Chair of Building Energy Systems and Heat Supply, TU Dresden" <peter.stange@tu-dresden.de>, Felix Bumann <felixbumann387@gmail.com>, Felix Panitz <baumbude@googlemail.com>, Peter Stange <peter.stange@tu-dresden.de>
6
6
  Maintainer-email: Felix Bumann <felixbumann387@gmail.com>, Peter Stange <peter.stange@tu-dresden.de>
@@ -4,7 +4,11 @@ LICENSE
4
4
  README.md
5
5
  mkdocs.yml
6
6
  pyproject.toml
7
- .github/workflows/deploy-docs.yaml
7
+ .github/CONTRIBUTING.md
8
+ .github/pull_request_template.md
9
+ .github/ISSUE_TEMPLATE/bug_report.yml
10
+ .github/ISSUE_TEMPLATE/config.yml
11
+ .github/ISSUE_TEMPLATE/feature_request.yml
8
12
  .github/workflows/python-app.yaml
9
13
  docs/SUMMARY.md
10
14
  docs/contribute.md
@@ -1,37 +0,0 @@
1
- name: Documentation
2
-
3
- on:
4
- release:
5
- types: [created] # Automatically deploy docs on release
6
- workflow_dispatch: # Allow manual triggering
7
-
8
- jobs:
9
- deploy-docs:
10
- runs-on: ubuntu-latest
11
- # Only deploy docs for stable releases (not pre-releases)
12
- if: github.event.release.prerelease == false
13
- steps:
14
- - uses: actions/checkout@v4
15
- with:
16
- fetch-depth: 0 # Fetch all history for proper versioning
17
-
18
- - name: Configure Git Credentials
19
- run: |
20
- git config user.name github-actions[bot]
21
- git config user.email 41898282+github-actions[bot]@users.noreply.github.com
22
-
23
- - uses: actions/setup-python@v5
24
- with:
25
- python-version: 3.11
26
-
27
- - name: Install documentation dependencies
28
- run: |
29
- python -m pip install --upgrade pip
30
- pip install -e ".[docs]"
31
-
32
- - name: Deploy docs
33
- run: |
34
- VERSION=${GITHUB_REF#refs/tags/v}
35
- echo "Deploying docs for stable release: $VERSION"
36
- mike deploy --push --update-aliases $VERSION latest
37
- mike set-default --push latest
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes