Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FLORIS v3.3 #586

Merged
merged 62 commits into from
Mar 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
090069d
Speed up angle wrap functions and improve API (#505)
paulf81 Sep 30, 2022
62bc016
Use executable book project for documentation
rafmudaf Oct 20, 2022
0630b20
Add a gh-pages deploy action
rafmudaf Oct 20, 2022
0a19c40
Add more content
rafmudaf Oct 21, 2022
892965e
Add a logo
rafmudaf Oct 21, 2022
ee9902f
Add a brief description of each example
rafmudaf Oct 25, 2022
7f63b65
Add initial API documentation
rafmudaf Nov 3, 2022
ac0a2fe
Add input file reference
rafmudaf Oct 27, 2022
c3b1158
Use autodoc and autosummary instead of autoapi
rafmudaf Oct 28, 2022
8989d2d
Locally install the current repo
rafmudaf Oct 28, 2022
b91aa47
Configure autodocs better
rafmudaf Oct 31, 2022
cac9952
Link to API docs in references to Python objects
rafmudaf Nov 1, 2022
03c0a70
Git-ignore docs build
rafmudaf Nov 2, 2022
0328013
Add instructions for building documentation
rafmudaf Nov 2, 2022
848d5a1
Add Google Analytics tracker
rafmudaf Nov 3, 2022
9658198
Update README with documentation links
rafmudaf Nov 3, 2022
393c265
List floris packages in API docs
rafmudaf Nov 3, 2022
abfcc84
Merge pull request #514 from rafmudaf/develop
rafmudaf Nov 3, 2022
8d54c0b
Enforce building docs from the develop branch
rafmudaf Nov 3, 2022
9418794
Add a method to show mpl plots
rafmudaf Sep 27, 2022
d6dd251
Update documentation references list (#519)
paulf81 Nov 8, 2022
4cb4d96
API improvements
rafmudaf Sep 27, 2022
d41226b
Add a subtract overload to CutPlane
rafmudaf Sep 27, 2022
96b2327
Fix incorrect yaw angles in fi.calculate_wake
rafmudaf Oct 18, 2022
cc1a91c
Remove requirement to use codecov token to upload reports (#532)
RHammond2 Nov 14, 2022
8e0f526
Update API in examples
rafmudaf Oct 18, 2022
bb6a132
Use standard conventions in argument case
rafmudaf Oct 18, 2022
a73eb46
Add function to label turbines on CutPlane plots
rafmudaf Nov 14, 2022
93cee31
Rotate turbine lines and ID annotations with wind
rafmudaf Nov 11, 2022
e0b3219
Merge branch 'main' into develop
rafmudaf Nov 14, 2022
5e71acc
Merge pull request #512 from rafmudaf/api
rafmudaf Nov 14, 2022
89be544
Configure isort and apply rules (#535)
rafmudaf Dec 23, 2022
9486161
Add weights to AEP wind rose function (#541)
paulf81 Feb 1, 2023
b14774a
Add parallel computing interface for farm simulation and yaw optimiza…
Bartdoekemeijer Feb 3, 2023
77a2612
Feature/update layout vis (#496)
paulf81 Feb 4, 2023
260edbe
Add ruff configuration
rafmudaf Feb 1, 2023
e7d5426
Fix all E and F codes
rafmudaf Feb 1, 2023
0320d7e
Line length corrections - floris.simulation
rafmudaf Feb 1, 2023
c1cf2e7
Line length corrections - floris.tools
rafmudaf Feb 4, 2023
95c2306
Line length corrections - floris/
rafmudaf Feb 3, 2023
072d0cf
Line length corrections - tests
rafmudaf Feb 3, 2023
855455a
Line length corrections - examples
rafmudaf Feb 4, 2023
b048020
Line length corrections - profiling
rafmudaf Feb 3, 2023
668f1ad
Fix W codes
rafmudaf Feb 6, 2023
2d0e84b
Fix C4-comprehensions codes
rafmudaf Feb 6, 2023
b399a27
Fix I codes
rafmudaf Feb 6, 2023
1c5a56b
Include Ruff in CI
rafmudaf Feb 6, 2023
33c99ea
Add Ruff usage documentation in developer guide
rafmudaf Feb 6, 2023
d315868
Merge pull request #562 from rafmudaf/ruff
rafmudaf Feb 6, 2023
f88b854
Enable and fix pre-commit formatting hooks (#567)
rafmudaf Feb 6, 2023
074d2a2
Support heterogeneous wind direction definition via FlorisInterface.r…
pjireland Feb 6, 2023
11cc234
Infrastructure improvements (#569)
rafmudaf Feb 7, 2023
b8437e9
Add virtual turbine plotting method (#418)
paulf81 Feb 7, 2023
c99f75a
Add linear wind condition upsampling method to WindRose (#544)
Bartdoekemeijer Feb 7, 2023
07a45b6
Merge branch 'main' into develop
rafmudaf Feb 8, 2023
4d528a3
Improve the documentation navigation menu and organization (#570)
RHammond2 Feb 23, 2023
8c637b3
Feature: External Turbine Library (#568)
RHammond2 Feb 27, 2023
4d23fa6
Specify coverage file in Codecov upload action
rafmudaf Feb 27, 2023
015f687
Add a link to Discussions from Issues
rafmudaf Mar 1, 2023
6b9d6bb
Add helpful info to GitHub Issue and PR templates (#597)
rafmudaf Mar 6, 2023
780aef7
Merge branch 'main' into develop
rafmudaf Mar 7, 2023
9f93ad9
Update version to v3.3
rafmudaf Mar 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 61 additions & 24 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,33 +5,70 @@ title: 'Bug report'
labels: "Type: Bug"
---

**Bug description**
<A clear and concise description of the bug.>
<!--
IMPORTANT NOTES

**To Reproduce**
<Update the following list with your specific information.>
Steps to reproduce the behavior:
1. Run '...' case with '...' settings
2. Open '...' output
3. See the error
Thank you for taking the time to report a bug. If you aren't certain whether an issue
is a bug, please first open a Discussion. Before submitting, please reread your
description to ensure that other readers can reasonably understand the issue
you're facing and the impact on your workflow or results.

**Expected behavior**
<A clear and concise description of what you expected to happen.>
This form is written in GitHub's Markdown format. For a reference on this type
of syntax, see GitHub's documentation:
https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

**Screenshots, if applicable**
<Add screenshots to help explain your problem.>
When including code snippets, please paste the text itself and wrap the code block with
ticks (see the other character on the tilde ~ key in a US keyboard) to format it as code.
For example, Python code should be wrapped in ticks like this:
```python
def a_func():
return 1

**Floris Version**
<Please provide as much detail as possible including git commit or version from pip.>
a = 1
b = a_func()
print(a + b)
```
This is preferred over screen shots since it is searchable and others can copy/paste
the text to run it.
-->

**System Information (please complete the following information):**
- OS: <e.g. Ubuntu 14.04 or macOS 10.12>
# Add meaningful title here
<!--
A clear and concise description of the bug including what happened
and what you expected to happen.
-->

## How to reproduce
<!--
Describe how another person with no context can recreate this issue.
It is typically very helpful to reduce the problem as much as possible
and share a minimum working example. See the note above on including
code as text rather than screenshots.
-->

## Relevant output
<!--
Include any output, plots, or other means of communication here to add context to the problem.
-->

## Floris version
<!--
Share your floris version and how you installed it. You can print the floris version from
a Python REPL or script with these commands:
```python
import floris
print(floris.__version__)
```
-->

## System Information
<!-- Add your information here. -->
- OS: <e.g. Ubuntu 20.04 or macOS 10.12>
- Python version: <Result of `python --version`>
- Library versions
* matplotlib
* numpy
* pytest
* scipy
* Sphinx

**Additional context**
<Add any other context about the problem here.>
- Results of `pip freeze`, for example
- matplotlib
- numpy
- numexpr
- scipy
- pandas
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Usage question
url: https://github.com/NREL/floris/discussions
about: Have any questions about using FLORIS? Post in Discussions to engage with the NREL team and FLORIS community.
51 changes: 43 additions & 8 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,49 @@ title: 'Feature request'
labels: 'Type: Enhancement'
---

**Is your feature request related to a problem? Please describe.**
<A clear and concise description of the problem.>
<!--
IMPORTANT NOTES

**Describe the solution you'd like**
<A clear and concise description of what you want to happen.>
Thank you for taking the time to suggest a feature. Before submitting,
please reread your description to ensure that other readers can reasonably
understand the motivation and proposed solution.

**Describe alternatives you've considered**
<A clear and concise description of any alternative solutions or features youve considered.>
This form is written in GitHub's Markdown format. For a reference on this type
of syntax, see GitHub's documentation:
https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

**Additional context**
<Add any other context or screenshots about the feature request here.>
When including code snippets, please paste the text itself and wrap the code block with
ticks (see the other character on the tilde ~ key in a US keyboard) to format it as code.
For example, Python code should be wrapped in ticks like this:
```python
def a_func():
return 1

a = 1
b = a_func()
print(a + b)
```
This is preferred over screen shots since it is searchable and others can copy/paste
the text to run it.
-->

# Add meaningful title here
<!--
High level description of the feature request including motivation and background.
-->

## Proposed solution
<!--
Here's an opportunity to prototype a feature. Please include pseudocode, images, or
any other visual aids to communicate the idea.
-->

## Alternatives considered
<!--
Describe workarounds or alternatives even if hacky or incomplete.
-->

## Additional context
<!--
Optional. Provide anything else that helps to communicate the idea here.
-->
73 changes: 58 additions & 15 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,71 @@

<!-- Is this pull request ready to be merged? -->
<!-- i.e. tests pass or are expected to fail; all development is finished; appropriate documentation is included. -->
<!-- If not but opening the pull request will facilitate development, make it a "draft" pull request -->
<!--
IMPORTANT NOTES

**Feature or improvement description**
<!-- A clear and concise description of the new code. -->
Is this pull request ready to be merged?
- Do the existing tests pass and new tests added for new code?
- Is all development in a state where you are proud to share it with others and
willing to ask other people to take the time to review it?
- Is it documented in such a way that a review can reasonably understand what you've
done and why you've done it? Can other users understand how to use your changes?
If not but opening the pull request will facilitate development, make it a "draft" pull request

**Related issue, if one exists**
<!-- Link to a related GitHub Issue. -->
This form is written in GitHub's Markdown format. For a reference on this type
of syntax, see GitHub's documentation:
https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax

**Impacted areas of the software**
<!-- List any modules or other areas which should be impacted by this pull request. This helps to determine the verification tests. -->
When including code snippets, please paste the text itself and wrap the code block with
ticks (see the other character on the tilde ~ key in a US keyboard) to format it as code.
For example, Python code should be wrapped in ticks like this:
```python
def a_func():
return 1

**Additional supporting information**
<!-- Add any other context about the problem here. -->
a = 1
b = a_func()
print(a + b)
```
This is preferred over screen shots since it is searchable and others can copy/paste
the text to run it.
-->

**Test results, if applicable**
<!-- Add the results from unit tests and regression tests here along with justification for any failing test cases. -->

<!-- Release checklist:
# Add meaningful title here
<!--
Be sure to title your pull request so that readers can scan through the list of PR's and understand
what this one involves. It should be a few well selected words to get the point across. If you have
a hard time choosing a brief title, consider splitting the pull request into multiple pull requests.
Keep in mind that the title will be automatically included in the release notes.
-->
Describe your feature here.

## Related issue
<!--
If one exists, link to a related GitHub Issue.
-->

## Impacted areas of the software
<!--
List any modules or other areas which should be impacted by this pull request. This helps to determine the verification tests.
-->

## Additional supporting information
<!--
Add any other context about the problem here.
-->

## Test results, if applicable
<!--
Add the results from unit tests and regression tests here along with justification for any failing test cases.
-->

<!--
__ For NREL use __
Release checklist:
- Update the version in
- [ ] README.md
- [ ] docs/index.md
- [ ] floris/VERSION
- [ ] Verify docs builds correctly
- [ ] Create a tag in the NREL/FLORIS repository
-->
-->
16 changes: 5 additions & 11 deletions .github/workflows/continuous-integration-workflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,11 @@ jobs:
- name: Install project
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e .
# - name: Lint with flake8
# run: |
# pip install flake8
# # stop the build if there are Python syntax errors or undefined names
# flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
# flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
pip install -e ".[develop]"
- uses: pre-commit/action@v3.0.0
- name: Run tests
if: success() || failure() # Run this step even if the linting step fails
run: |
# pytest tests/
# -rA displays the captured output for all tests after they're run
# See the docs: https://doc.pytest.org/en/latest/reference/reference.html#command-line-flags
pytest -rA tests/ --ignore tests/timing.py --ignore tests/profiling.py
Expand All @@ -45,7 +38,8 @@ jobs:
pip install pytest-cov
pytest --cov=./ --cov-report=xml tests/ --ignore tests/reg_tests --ignore tests/timing.py --ignore tests/profiling.py
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.xml
fail_ci_if_error: true
39 changes: 39 additions & 0 deletions .github/workflows/deploy-pages.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: deploy-pages

on:
push:
branches:
- develop
paths:
- docs/**

# This job installs dependencies, builds the book, and pushes it to `gh-pages`
jobs:
deploy-book:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

# Install dependencies
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8

- name: Install dependencies
run: |
pip install -r docs/requirements.txt
pip install -e .

# Build the book
- name: Build the book
working-directory: ${{runner.workspace}}/floris/docs/
run: |
jupyter-book build .

# Push the book's HTML to github-pages
- name: GitHub Pages action
uses: peaceiris/actions-gh-pages@v3.6.1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/_build/html
3 changes: 1 addition & 2 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@ on:

jobs:
deploy:

if: github.repository_owner == 'NREL'
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Set up Python
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/quality-metrics-workflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ jobs:
- name: Install project
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e .
pip install -e ".[develop]"
- name: Run the code quality script
run: |
cd profiling
Expand Down
17 changes: 10 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,28 @@ __pycache__/
*.egg-info
dist
build
_build
.pytest_cache

#pip meta data
# pip meta data
pip-wheel-metadata

# macOS files
.DS_Store

# ide settings and files
# IDE settings and files
.idea
.vscode

# Other
.pytest_cache
examples/cp_ct_cq_lut.p
# Documentation output
_site/
.jekyll-cache/
_build
_autosummary/

# Output from examples
examples/cp_ct_cq_lut.p
examples/hist.hist
examples/SLSQP.out

# Log files
*.log
*.log
Loading