flixopt 2.2.0b0__tar.gz → 2.2.0rc2__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.
- flixopt-2.2.0rc2/.github/CONTRIBUTING.md +85 -0
- flixopt-2.2.0rc2/.github/ISSUE_TEMPLATE/bug_report.yml +111 -0
- flixopt-2.2.0rc2/.github/ISSUE_TEMPLATE/config.yml +14 -0
- flixopt-2.2.0rc2/.github/ISSUE_TEMPLATE/feature_request.yml +127 -0
- flixopt-2.2.0rc2/.github/ISSUE_TEMPLATE/general_issue.yml +40 -0
- flixopt-2.2.0rc2/.github/pull_request_template.md +20 -0
- flixopt-2.2.0rc2/.github/workflows/python-app.yaml +404 -0
- flixopt-2.2.0rc2/.pre-commit-config.yaml +16 -0
- flixopt-2.2.0rc2/CHANGELOG.md +166 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/PKG-INFO +63 -42
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/README.md +15 -10
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/SUMMARY.md +2 -2
- flixopt-2.2.0rc2/docs/contribute.md +45 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/examples/00-Minimal Example.md +1 -1
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/examples/01-Basic Example.md +1 -1
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/examples/02-Complex Example.md +1 -1
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/examples/index.md +1 -1
- {flixopt-2.2.0b0/docs → flixopt-2.2.0rc2/docs/faq}/contribute.md +26 -14
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/faq/index.md +1 -1
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/javascripts/mathjax.js +1 -1
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/user-guide/Mathematical Notation/Bus.md +1 -1
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/user-guide/Mathematical Notation/Effects, Penalty & Objective.md +13 -13
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/user-guide/Mathematical Notation/Flow.md +1 -1
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/user-guide/Mathematical Notation/LinearConverter.md +2 -2
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/user-guide/Mathematical Notation/Piecewise.md +1 -1
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/user-guide/Mathematical Notation/Storage.md +1 -1
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/user-guide/Mathematical Notation/index.md +1 -1
- flixopt-2.2.0rc2/docs/user-guide/Mathematical Notation/others.md +3 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/user-guide/index.md +2 -2
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/examples/02_Complex/complex_example.py +1 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/examples/02_Complex/complex_example_results.py +4 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/examples/03_Calculation_types/example_calculation_types.py +5 -5
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/__init__.py +5 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/aggregation.py +0 -1
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/calculation.py +40 -72
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/commons.py +10 -1
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/components.py +326 -154
- flixopt-2.2.0rc2/flixopt/core.py +978 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/effects.py +67 -270
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/elements.py +76 -84
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/features.py +172 -154
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/flow_system.py +70 -99
- flixopt-2.2.0rc2/flixopt/interface.py +524 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/io.py +27 -56
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/linear_converters.py +3 -3
- flixopt-2.2.0rc2/flixopt/network_app.py +755 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/plotting.py +16 -34
- flixopt-2.2.0rc2/flixopt/results.py +898 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/structure.py +11 -67
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/utils.py +9 -6
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt.egg-info/PKG-INFO +63 -42
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt.egg-info/SOURCES.txt +12 -12
- flixopt-2.2.0rc2/flixopt.egg-info/requires.txt +56 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/mkdocs.yml +4 -3
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/pyproject.toml +64 -32
- flixopt-2.2.0rc2/renovate.json +16 -0
- flixopt-2.2.0rc2/scripts/extract_release_notes.py +45 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/conftest.py +32 -85
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/run_all_tests.py +1 -1
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/test_bus.py +26 -14
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/test_component.py +55 -35
- flixopt-2.2.0rc2/tests/test_dataconverter.py +113 -0
- flixopt-2.2.0rc2/tests/test_effect.py +168 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/test_flow.py +262 -76
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/test_integration.py +1 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/test_io.py +2 -4
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/test_linear_converter.py +62 -116
- flixopt-2.2.0rc2/tests/test_network_app.py +29 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/test_on_hours_computation.py +48 -45
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/test_plots.py +4 -4
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/test_results_plots.py +8 -1
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/test_storage.py +50 -56
- flixopt-2.2.0rc2/tests/test_timeseries.py +605 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/todos.txt +2 -2
- flixopt-2.2.0b0/.github/workflows/deploy-docs.yaml +0 -35
- flixopt-2.2.0b0/.github/workflows/python-app.yaml +0 -147
- flixopt-2.2.0b0/docs/faq/contribute.md +0 -49
- flixopt-2.2.0b0/docs/release-notes/_template.txt +0 -32
- flixopt-2.2.0b0/docs/release-notes/index.md +0 -7
- flixopt-2.2.0b0/docs/release-notes/v2.0.0.md +0 -93
- flixopt-2.2.0b0/docs/release-notes/v2.0.1.md +0 -12
- flixopt-2.2.0b0/docs/release-notes/v2.1.0.md +0 -31
- flixopt-2.2.0b0/docs/release-notes/v2.2.0.md +0 -55
- flixopt-2.2.0b0/docs/user-guide/Mathematical Notation/Investment.md +0 -115
- flixopt-2.2.0b0/docs/user-guide/Mathematical Notation/others.md +0 -3
- flixopt-2.2.0b0/examples/04_Scenarios/scenario_example.py +0 -125
- flixopt-2.2.0b0/flixopt/core.py +0 -1485
- flixopt-2.2.0b0/flixopt/interface.py +0 -356
- flixopt-2.2.0b0/flixopt/results.py +0 -1596
- flixopt-2.2.0b0/flixopt.egg-info/requires.txt +0 -37
- flixopt-2.2.0b0/tests/test_cycle_detection.py +0 -226
- flixopt-2.2.0b0/tests/test_dataconverter.py +0 -756
- flixopt-2.2.0b0/tests/test_effect.py +0 -224
- flixopt-2.2.0b0/tests/test_effects_shares_summation.py +0 -236
- flixopt-2.2.0b0/tests/test_scenarios.py +0 -332
- flixopt-2.2.0b0/tests/test_timeseries.py +0 -746
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/.gitignore +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/LICENSE +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/examples/03-Calculation Modes.md +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/getting-started.md +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/images/architecture_flixOpt-pre2.0.0.png +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/images/architecture_flixOpt.png +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/images/flixopt-icon.svg +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/docs/index.md +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/examples/00_Minmal/minimal_example.py +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/examples/01_Simple/simple_example.py +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/examples/03_Calculation_types/Zeitreihen2020.csv +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/config.py +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/config.yaml +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt/solvers.py +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt.egg-info/dependency_links.txt +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/flixopt.egg-info/top_level.txt +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/pics/architecture_flixOpt-pre2.0.0.png +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/pics/architecture_flixOpt.png +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/pics/flixOpt_plotting.jpg +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/pics/flixopt-icon.svg +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/pics/pics.pptx +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/scripts/gen_ref_pages.py +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/setup.cfg +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/__init__.py +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/ressources/Zeitreihen2020.csv +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/test_examples.py +0 -0
- {flixopt-2.2.0b0 → flixopt-2.2.0rc2}/tests/test_functional.py +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,111 @@
|
|
|
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
|
+
|
|
11
|
+
**Before submitting**: Please search [existing issues](https://github.com/flixOpt/flixopt/issues) to avoid duplicates.
|
|
12
|
+
|
|
13
|
+
- type: checkboxes
|
|
14
|
+
id: checks
|
|
15
|
+
attributes:
|
|
16
|
+
label: Version Confirmation
|
|
17
|
+
description: Please confirm you can reproduce this on a supported version
|
|
18
|
+
options:
|
|
19
|
+
- label: I have confirmed this bug exists on the latest [release](https://github.com/flixOpt/flixopt/releases) of FlixOpt
|
|
20
|
+
required: true
|
|
21
|
+
|
|
22
|
+
- type: textarea
|
|
23
|
+
id: problem
|
|
24
|
+
attributes:
|
|
25
|
+
label: Bug Description
|
|
26
|
+
description: Clearly describe what went wrong
|
|
27
|
+
placeholder: |
|
|
28
|
+
What happened? What did you expect to happen instead?
|
|
29
|
+
|
|
30
|
+
Include any error messages or unexpected outputs.
|
|
31
|
+
validations:
|
|
32
|
+
required: true
|
|
33
|
+
|
|
34
|
+
- type: textarea
|
|
35
|
+
id: example
|
|
36
|
+
attributes:
|
|
37
|
+
label: Minimal Reproducible Example
|
|
38
|
+
description: |
|
|
39
|
+
Provide the smallest possible code example that reproduces the bug.
|
|
40
|
+
See [how to create minimal bug reports](https://matthewrocklin.com/minimal-bug-reports).
|
|
41
|
+
placeholder: |
|
|
42
|
+
import flixopt as fx
|
|
43
|
+
import pandas as pd
|
|
44
|
+
|
|
45
|
+
# Minimal example that reproduces the bug
|
|
46
|
+
timesteps = pd.date_range('2024-01-01', periods=24, freq='h')
|
|
47
|
+
flow_system = fx.FlowSystem(timesteps)
|
|
48
|
+
|
|
49
|
+
# Add components that trigger the bug...
|
|
50
|
+
|
|
51
|
+
# Show the problematic operation
|
|
52
|
+
result = flow_system.solve() # This should fail/behave unexpectedly
|
|
53
|
+
render: python
|
|
54
|
+
validations:
|
|
55
|
+
required: true
|
|
56
|
+
|
|
57
|
+
- type: textarea
|
|
58
|
+
id: error-output
|
|
59
|
+
attributes:
|
|
60
|
+
label: Error Output
|
|
61
|
+
description: If there's an error message, paste the full traceback here
|
|
62
|
+
render: shell
|
|
63
|
+
|
|
64
|
+
- type: dropdown
|
|
65
|
+
id: solver
|
|
66
|
+
attributes:
|
|
67
|
+
label: Solver Used
|
|
68
|
+
description: Which solver were you using?
|
|
69
|
+
options:
|
|
70
|
+
- HiGHS (default)
|
|
71
|
+
- Gurobi
|
|
72
|
+
- CPLEX
|
|
73
|
+
- GLPK
|
|
74
|
+
- CBC
|
|
75
|
+
- Other (specify below)
|
|
76
|
+
validations:
|
|
77
|
+
required: true
|
|
78
|
+
|
|
79
|
+
- type: input
|
|
80
|
+
id: os
|
|
81
|
+
attributes:
|
|
82
|
+
label: Operating System
|
|
83
|
+
placeholder: "e.g., Windows 11, macOS 14.2, Ubuntu 22.04"
|
|
84
|
+
validations:
|
|
85
|
+
required: true
|
|
86
|
+
|
|
87
|
+
- type: input
|
|
88
|
+
id: python-version
|
|
89
|
+
attributes:
|
|
90
|
+
label: Python Version
|
|
91
|
+
placeholder: "e.g., 3.11.5"
|
|
92
|
+
validations:
|
|
93
|
+
required: true
|
|
94
|
+
|
|
95
|
+
- type: textarea
|
|
96
|
+
id: environment
|
|
97
|
+
attributes:
|
|
98
|
+
label: Environment Info
|
|
99
|
+
description: |
|
|
100
|
+
Run one of these commands and paste the output:
|
|
101
|
+
- `pip freeze`
|
|
102
|
+
- `conda env export`
|
|
103
|
+
render: shell
|
|
104
|
+
value: >
|
|
105
|
+
<details>
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
Replace this with your environment info
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
</details>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: 🤔 Modeling Questions
|
|
4
|
+
url: https://github.com/flixOpt/flixopt/discussions/categories/q-a
|
|
5
|
+
about: "How to model specific energy systems, components, and constraints"
|
|
6
|
+
- name: ⚡ Performance & Optimization
|
|
7
|
+
url: https://github.com/flixOpt/flixopt/discussions/categories/performance
|
|
8
|
+
about: "Solver performance, memory usage, and optimization speed issues"
|
|
9
|
+
- name: 💡 Ideas & Suggestions
|
|
10
|
+
url: https://github.com/flixOpt/flixopt/discussions/categories/ideas
|
|
11
|
+
about: "Share ideas and discuss potential improvements with the community"
|
|
12
|
+
- name: 📖 Documentation
|
|
13
|
+
url: https://flixopt.github.io/flixopt/latest/
|
|
14
|
+
about: "Browse guides, API reference, and examples"
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
name: ✨ Feature Request
|
|
2
|
+
description: Suggest a new feature or enhancement
|
|
3
|
+
title: "[FEATURE] "
|
|
4
|
+
labels: ["type: feature"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thanks for suggesting a new feature!
|
|
10
|
+
|
|
11
|
+
**Before submitting**: Please search [existing issues](https://github.com/flixOpt/flixopt/issues) and check our [roadmap](https://github.com/flixOpt/flixopt/discussions) to avoid duplicates.
|
|
12
|
+
|
|
13
|
+
- type: checkboxes
|
|
14
|
+
id: checks
|
|
15
|
+
attributes:
|
|
16
|
+
label: Prerequisites
|
|
17
|
+
options:
|
|
18
|
+
- label: I have searched existing issues and discussions
|
|
19
|
+
required: true
|
|
20
|
+
- label: I have checked the [documentation](https://flixopt.github.io/flixopt/latest/)
|
|
21
|
+
required: true
|
|
22
|
+
|
|
23
|
+
- type: dropdown
|
|
24
|
+
id: feature-type
|
|
25
|
+
attributes:
|
|
26
|
+
label: Feature Category
|
|
27
|
+
description: What type of feature is this?
|
|
28
|
+
options:
|
|
29
|
+
- New Component (storage, generation, conversion, etc.)
|
|
30
|
+
- Enhancement to Existing Component
|
|
31
|
+
- New Optimization Feature
|
|
32
|
+
- Data Input/Output Improvement
|
|
33
|
+
- Results/Visualization Enhancement
|
|
34
|
+
- Performance/Solver Improvement
|
|
35
|
+
- API/Usability Improvement
|
|
36
|
+
- Documentation/Examples
|
|
37
|
+
- Other
|
|
38
|
+
validations:
|
|
39
|
+
required: true
|
|
40
|
+
|
|
41
|
+
- type: textarea
|
|
42
|
+
id: problem
|
|
43
|
+
attributes:
|
|
44
|
+
label: Problem Statement
|
|
45
|
+
description: What problem would this feature solve?
|
|
46
|
+
placeholder: |
|
|
47
|
+
Current limitation: "FlixOpt doesn't support [specific energy system component/feature]..."
|
|
48
|
+
|
|
49
|
+
Impact: "This prevents users from modeling [specific scenarios]..."
|
|
50
|
+
|
|
51
|
+
- type: textarea
|
|
52
|
+
id: solution
|
|
53
|
+
attributes:
|
|
54
|
+
label: Proposed Solution
|
|
55
|
+
description: Describe your proposed solution in detail
|
|
56
|
+
placeholder: |
|
|
57
|
+
I propose adding a new component/feature that would...
|
|
58
|
+
|
|
59
|
+
Key capabilities:
|
|
60
|
+
- Feature 1
|
|
61
|
+
- Feature 2
|
|
62
|
+
- Feature 3
|
|
63
|
+
validations:
|
|
64
|
+
required: true
|
|
65
|
+
|
|
66
|
+
- type: textarea
|
|
67
|
+
id: use-case
|
|
68
|
+
attributes:
|
|
69
|
+
label: Use Case & Examples
|
|
70
|
+
description: Provide concrete examples of how this would be used
|
|
71
|
+
placeholder: |
|
|
72
|
+
Real-world scenario: "I'm modeling a microgrid with battery storage and need to..."
|
|
73
|
+
|
|
74
|
+
Specific requirements:
|
|
75
|
+
- Must handle [specific constraint]
|
|
76
|
+
- Should support [specific behavior]
|
|
77
|
+
- Would benefit [specific user group]
|
|
78
|
+
validations:
|
|
79
|
+
required: true
|
|
80
|
+
|
|
81
|
+
- type: textarea
|
|
82
|
+
id: code-example
|
|
83
|
+
attributes:
|
|
84
|
+
label: Desired API (Optional)
|
|
85
|
+
description: Show how you'd like to use this feature
|
|
86
|
+
placeholder: |
|
|
87
|
+
# Example of proposed API
|
|
88
|
+
component = fx.NewComponent(
|
|
89
|
+
label='example',
|
|
90
|
+
parameter1=value1,
|
|
91
|
+
parameter2=value2
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
flow_system.add_component(component)
|
|
95
|
+
render: python
|
|
96
|
+
|
|
97
|
+
- type: textarea
|
|
98
|
+
id: alternatives
|
|
99
|
+
attributes:
|
|
100
|
+
label: Alternatives Considered
|
|
101
|
+
description: What workarounds or alternatives have you tried?
|
|
102
|
+
placeholder: |
|
|
103
|
+
Current workaround: "I'm currently using [existing component] but it doesn't support..."
|
|
104
|
+
|
|
105
|
+
Other approaches considered: "I looked into [alternative] but..."
|
|
106
|
+
|
|
107
|
+
- type: dropdown
|
|
108
|
+
id: priority
|
|
109
|
+
attributes:
|
|
110
|
+
label: Priority/Impact
|
|
111
|
+
description: How important is this feature for your work?
|
|
112
|
+
options:
|
|
113
|
+
- Critical - Blocking important work
|
|
114
|
+
- High - Would significantly improve workflow
|
|
115
|
+
- Medium - Nice to have enhancement
|
|
116
|
+
- Low - Minor improvement
|
|
117
|
+
|
|
118
|
+
- type: textarea
|
|
119
|
+
id: additional-context
|
|
120
|
+
attributes:
|
|
121
|
+
label: Additional Context
|
|
122
|
+
description: References, papers, examples from other tools, etc.
|
|
123
|
+
placeholder: |
|
|
124
|
+
References:
|
|
125
|
+
- Research paper: [Title and link]
|
|
126
|
+
- Similar feature in [other tool]: [description]
|
|
127
|
+
- Industry standard: [description]
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: 📝 General Issue
|
|
2
|
+
description: For issues that don't fit the specific templates below
|
|
3
|
+
title: ""
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
**For specific issue types, please use the dedicated templates:**
|
|
9
|
+
- 🐛 **Bug Report** - Something is broken or not working as expected
|
|
10
|
+
- ✨ **Feature Request** - Suggest new functionality
|
|
11
|
+
|
|
12
|
+
**For other topics, consider using Discussions instead:**
|
|
13
|
+
- 🤔 [Modeling Questions](https://github.com/flixOpt/flixopt/discussions/categories/q-a) - How to model specific energy systems
|
|
14
|
+
- ⚡ [Performance Help](https://github.com/flixOpt/flixopt/discussions/categories/performance) - Optimization speed and memory issues
|
|
15
|
+
|
|
16
|
+
- type: textarea
|
|
17
|
+
id: issue-description
|
|
18
|
+
attributes:
|
|
19
|
+
label: Issue Description
|
|
20
|
+
description: Describe your issue, question, or concern
|
|
21
|
+
placeholder: |
|
|
22
|
+
Please describe:
|
|
23
|
+
- What you're trying to accomplish
|
|
24
|
+
- What's not working as expected
|
|
25
|
+
- Any relevant context or background
|
|
26
|
+
validations:
|
|
27
|
+
required: true
|
|
28
|
+
|
|
29
|
+
- type: textarea
|
|
30
|
+
id: context
|
|
31
|
+
attributes:
|
|
32
|
+
label: Additional Context
|
|
33
|
+
description: Code examples, environment details, error messages, etc.
|
|
34
|
+
placeholder: |
|
|
35
|
+
Optional: Add any relevant details like:
|
|
36
|
+
- Code snippets
|
|
37
|
+
- Error messages
|
|
38
|
+
- Environment info
|
|
39
|
+
- Screenshots
|
|
40
|
+
render: markdown
|
|
@@ -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
|
+
- [x] My code follows the project style
|
|
19
|
+
- [x] I have updated documentation if needed
|
|
20
|
+
- [x] I have added tests for new functionality (if applicable)
|