Skip to content

Commit

Permalink
Merge pull request #448 from NREL/development
Browse files Browse the repository at this point in the history
3.0 Release
  • Loading branch information
mdeceglie authored Jan 23, 2025
2 parents f64428f + 416778c commit 569177f
Show file tree
Hide file tree
Showing 65 changed files with 163,027 additions and 159,041 deletions.
6 changes: 6 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Ignoring Paths
# --------------
# which folders/files to ignore
ignore:
- setup.py
- versioneer.py
7 changes: 7 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,17 @@
# see https://flake8.pycqa.org/en/latest/user/options.html

[flake8]
# E203 is not PEP8 compliant https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html#slices
# Is excluded from flake8's own config https://flake8.pycqa.org/en/latest/user/configuration.html
extend-ignore = E203
max-line-length = 99
max-doc-length = 99
per-file-ignores =
# rdtools.x.y imported but unused
__init__.py:F401
# invalid escape sequence '\s'
versioneer.py:W605
exclude =
docs
.eggs
build
33 changes: 0 additions & 33 deletions .github/workflows/deploy.yaml

This file was deleted.

6 changes: 3 additions & 3 deletions .github/workflows/flake8.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8]
python-version: [3.12]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
fetch-depth: 0 # fetch all branches, needed so we can diff against the target branch
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install flake8
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/nbval.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,33 +10,33 @@ jobs:
fail-fast: false # don't cancel other matrix jobs when one fails
matrix:
notebook-file: [
'TrendAnalysis_example_pvdaq4.ipynb',
'degradation_and_soiling_example_pvdaq_4.ipynb',
'TrendAnalysis_example.ipynb',
'TrendAnalysis_example_NSRDB.ipynb',
'degradation_and_soiling_example.ipynb',
'system_availability_example.ipynb'
# can't run the DKASC notebook here because it requires pre-downloaded data
]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.12"
- name: Install notebook environment
run: |
python -m pip install --upgrade pip wheel
pip install --timeout=300 -r requirements.txt -r docs/notebook_requirements.txt .[test]
- name: Run notebook and check output
run: |
# --sanitize-with: pre-process text to remove irrelevant differences (e.g. warning filepaths)
pytest --nbval --sanitize-with docs/nbval_sanitization_rules.cfg docs/${{ matrix.notebook-file }}
pytest --nbval docs/${{ matrix.notebook-file }} --sanitize-with docs/nbval_sanitization_rules.cfg
- name: Run notebooks again, save files
run: |
pip install nbconvert[webpdf]
mkdir docs/artifacts
jupyter nbconvert --to html --execute --ExecutePreprocessor.timeout=600 --allow-errors --output artifacts/${{ matrix.notebook-file }}.html docs/${{ matrix.notebook-file }}
- name: Upload artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: executed_notebooks
name: executed_notebook_${{ matrix.notebook-file }}
path: docs/artifacts
50 changes: 50 additions & 0 deletions .github/workflows/publish-to-pypi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Publish Python distribution to PyPI and TestPyPI

on: push

jobs:
build:
name: Build distribution
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install pypa/build
run: >-
python3 -m
pip install
build
--user
- name: Build a binary wheel and a source tarball
run: python3 -m build
- name: Store the distribution packages
uses: actions/upload-artifact@v4
with:
name: python-package-distributions
path: dist/

publish-to-pypi:
name: >-
Publish Python distribution to PyPI
if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
needs:
- build
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/rdtools
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing

steps:
- name: Download all the dists
uses: actions/download-artifact@v4
with:
name: python-package-distributions
path: dist/
- name: Publish distribution to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
18 changes: 9 additions & 9 deletions .github/workflows/pytest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,27 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.7", "3.8", "3.9", "3.10"]
python-version: ["3.9", "3.10", "3.11", "3.12"]
env: [
'-r requirements.txt .[test]',
'-r requirements-min.txt .[test]',
'--upgrade --upgrade-strategy=eager .[test]'
]
exclude:
- python-version: 3.8
- python-version: "3.9"
env: "-r requirements.txt .[test]"
- python-version: "3.10"
env: '-r requirements-min.txt .[test]'
- python-version: 3.9
- python-version: "3.11"
env: '-r requirements-min.txt .[test]'
- python-version: "3.10"
- python-version: "3.12"
env: '-r requirements-min.txt .[test]'
# required numpy is not available on python 3.7, so exclude:
- python-version: 3.7
env: '-r requirements.txt .[test]'
fail-fast: false

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install ${{ matrix.env }}
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/requirements.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ jobs:
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: "3.10"
python-version: "3.12"
- name: Install notebook environment
run: |
python -m pip install --upgrade pip wheel
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ docs/sphinx/source/generated
.eggs/
build/
dist/
tmp/
rdtools.egg-info*

# emacs temp files
Expand All @@ -35,3 +36,6 @@ rdtools.egg-info*
.\#*

*.pickle

# ignore vscode settings
.vscode/
8 changes: 6 additions & 2 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
version: 2

sphinx:
# Path to your Sphinx configuration file.
configuration: docs/sphinx/source/conf.py

build:
os: "ubuntu-22.04"
os: "ubuntu-24.04"
tools:
python: "3.7"
python: "3.12"

python:
install:
Expand Down
46 changes: 46 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Deceglie"
given-names: "Michael G."
orcid: "https://orcid.org/0000-0001-7063-9676"
- family-names: "Anderson"
given-names: "Kevin"
- family-names: "Shinn"
given-names: "Adam"
- family-names: "Ambarish"
given-names: "Nag"
- family-names: "Mikofski"
given-names: "Mark"
orcid: "https://orcid.org/0000-0001-8001-8582"
- family-names: "Springer"
given-names: "Martin"
orcid: "https://orcid.org/0000-0001-6803-108X"
- family-names: "Yan"
given-names: "Jiyang"
- family-names: "Perry"
given-names: "Kirsten"
- family-names: "Villamar"
given-names: "Sandra"
- family-names: "Vining"
given-names: "Will"
- family-names: "Kimball"
given-names: "Gregory M."
orcid: "https://orcid.org/0000-0003-1075-1417"
- family-names: "Ruth"
given-names: "Daniel"
- family-names: "Moyer"
given-names: "Noah"
- family-names: "Nguyen"
given-names: "Quyen"
- family-names: "Jordan"
given-names: "Dirk"
orcid: "https://orcid.org/0000-0002-2183-7489"
- family-names: "Muller"
given-names: "Matthew"
- family-names: "Deline"
given-names: "Chris"
orcid: "https://orcid.org/0000-0002-9867-8930"
title: "RdTools"
doi: 10.5281/zenodo.1210316
url: "https://github.com/NREL/rdtools"
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ Code coverage:
RdTools is an open-source library to support reproducible technical analysis of
time series data from photovoltaic energy systems. The library aims to provide
best practice analysis routines along with the building blocks for users to
tailor their own analyses.
Current applications include the evaluation of PV production over several years to obtain
rates of performance degradation and soiling loss. RdTools can handle
both high frequency (hourly or better) or low frequency (daily, weekly,
etc.) datasets. Best results are obtained with higher frequency data.
tailor their own analyses. Current applications include the evaluation of PV
production over several years to obtain rates of performance degradation and
soiling loss. RdTools can handle both high frequency (hourly or better) or low
frequency (daily, weekly, etc.) datasets. Best results are obtained with higher
frequency data.

RdTools can be installed automatically into Python from PyPI using the
command line:
Expand All @@ -27,17 +27,17 @@ pip install rdtools

For API documentation and full examples, please see the [documentation](https://rdtools.readthedocs.io).

RdTools currently is tested on Python 3.7+.
RdTools currently is tested on Python 3.9+.

## Citing RdTools

To cite RdTools, please use the following along with the version number
and the specific DOI coresponding to that version from [Zenodo](https://doi.org/10.5281/zenodo.1210316):

- Michael G. Deceglie, Ambarish Nag, Adam Shinn, Gregory Kimball,
Daniel Ruth, Dirk Jordan, Jiyang Yan, Kevin Anderson, Kirsten Perry,
Mark Mikofski, Matthew Muller, Will Vining, and Chris Deline
RdTools, version {insert version}, Compuer Software,
- Michael G. Deceglie, Kevin Anderson, Adam Shinn, Ambarish Nag, Mark Mikofski,
Martin Springer, Jiyang Yan, Kirsten Perry, Sandra Villamar, Will Vining,
Gregory Kimball, Daniel Ruth, Noah Moyer, Quyen Nguyen, Dirk Jordan,
Matthew Muller, and Chris Deline, RdTools, version {insert version}, Computer Software,
https://github.com/NREL/rdtools. DOI:{insert DOI}

The underlying workflow of RdTools has been published in several places.
Expand Down
Loading

0 comments on commit 569177f

Please sign in to comment.