What’s New

These are new features and improvements of note in each release.

0.7.0 (September 9 2025)

This release makes updates to the text module tutorials and docstrings, as well as some miscellaneous non-breaking changes to associated text module functions.

Functionality

  • All functions in the submodule pvops.text.visualize now accept an optional ax keyword argument, allowing the user to pass a matplotlib Axes instance.

  • All functions in the submodule pvops.text.visualize now return a matplotlib Figure instance (previously, some incorrectly returned Axes instances).

Tutorials

  • Some tutorials have been renamed to better clarify their contents. All tutorial names now follow the format: tutorial_{MODULE}_{FUNCTIONALITY}.ipynb.

  • Previously, text module tutorials called functions from an additional Python script. All of these functions have been pulled into the tutorials proper.

  • Text tutorials have been numbered in a logical progression.

  • Text tutorials have had their contents fleshed out, in particular more descriptive markdown sections describing the functionality being demonstrated.

Documentation

  • Docstrings were fixed for some functions that were improperly formatted.

  • Docstrings were updated for pvops.text.visualize functions’ new ax argument.

Other

  • Minor changes to plotting functions in the submodule pvops.text.visualize related to text size and other miscellaneous aspects of figures.

  • Python versions for testing/linting changed from 3.8-3.11 to 3.9-3.13. 3.8 has reached end-of-life, and 3.13 is current (see: https://devguide.python.org/versions/).

  • Building docs changed to use Python 3.13 (previously 3.11).

0.6.1 (March 17 2025)

This release makes minor documentation updates.

Documentation

  • The “Overview” page now includes the new survival analysis functionality added to the timeseries module.

  • The release date is corrected for version 0.6.0 on the “What’s New” page.

0.6.0 (March 17 2025)

This release removes the nltk dependency and implements analogous functionality where needed in pvops.

Functionality

  • pvops.text.preprocess.regex_tokenize for tokenizing text documents (replaces instances of nltk.tokenize.word_tokenize)

Other

  • Includes a static version of the nltk English stopwords in stopwords.txt under pvops.text

  • pvops.text.nltk_utils.create_stopwords modified to pull from this new stopwords file (breaking change: removed language argument)

  • pvops.text.visualize.visualize_word_frequency_plot functionality implemented manually rather than through nltk; previous calls should still work

0.5.3 (March 5 2025)

This release takes the existing survival analysis tutorial and formalizes parts of it into functions within the timeseries module.

Functionality

  • Created a new function in pvops.timeseries.preprocess that identifies right-censored data.

  • Created a new model under pvops.timeseries.models to fit survival analysis functions, namely, Kaplan-Meier and Weibull.

Tutorials

  • Simplified the survival analysis tutorial now that the main functionality is incorporated into pvOps.

0.5.2 (February 21 2025)

This release updates the documentation to reflect changes starting at v0.4.0 and fixes dependency requirements.

Other

  • Updated release notes to include changes starting at v0.4.0.

  • Added new survival analysis notebook to the documentation.

  • In v0.5.0, scikit-survival was added to requirements.txt but not setup.py. That has been resolved.

  • Now requiring python<3.13 for tensorflow

0.5.1 (February 19 2025)

This release addresses a deprecation preventing the documentation from building.

Other

  • Updated artifact/upload-artifact in buildthedocs from v3 to v4

0.5.0 (February 19 2025)

This release adds a new tutorial demonstrating survival analysis on PV assets.

Tutorials

  • Added a new timeseries survival analysis tutorial demonstrating Kaplan-Meier estimators and Weibull distribution fits.

  • Added a new example dataset to go along with the new tutorial.

Other

  • Added scikit-survival as a new dependency. Used for Kaplan-Meier estimators in the new tutorial.

0.4.0 (October 25 2024)

This release primarily addresses deprecations and future warnings related to dependencies, including a significant security vulnerability.

Documentation

  • Updated README and documentation to point to the JOSS publication.

Tutorials

  • Miscellaneous fixes relevant to text2time, time, timeseries AIT module tutorials.

Other

  • Now requiring nltk>=3.9.1 and switching punkt to punkt_tab. This addresses a security vulnerability in nltk.

0.3.0 (November 9 2023)

This release incorporates new functions and addresses depreciated commands in some of the package dependencies.

Functionality

  • Updated visualize_attribute_connectivity to use bipartite graph layout (updated function).

  • IV related dependencies moved to an installation extra (install using pip install pvops[iv]).

  • Removed deprecated normalization parameters in ML pipeline (bug fix).

  • Updated code to fix deprecation/future warnings.

Testing

  • Added Python 3.11 to the test environment.

Documentation

  • Fix small typos in index.rst.

  • Renamed references to examples as tutorials for consistency.

  • Updated docs to refer to modules as modules, rather than packages.

  • Updated RTD config to install doc requirements using the package installation extra

  • Removed redundant boilerplate in development.rst

  • Update tested versions in documentation

  • Added links to tutorials where appropriate in the user guide.

  • Added a simplified version of the module overview table from the JOSS manuscript to the homepage of the documentation.

  • Added statement of need to homepage

  • Fixed image embed in tutorial

  • Added dates to what’s new sections

  • Expanded patch notes to include recent tags.

  • Deleted WIP docs pages to remove “not included in any toctree” errors.

  • Added nbsphinx gallery view to tutorials page.

  • Added more content to abbreviations page.

Tutorials

  • Rename pvOps examples to tutorials for consistency throughout repository.

  • Linked to tutorials in README.

  • Added a description of data in timeseries tutorial.

  • Removed redundant plots in timeseries tutorial.

Other

  • Added copyright and license attributes to pvops.

  • Removed manifest.in (not needed).

  • Removed docs/init.py (not a module).

  • Chose more appropriate author/copyright in setup.py and conf.py.

  • Added version to pvops (pvops.__version__ now exists).

  • Removed external licenses (determined to be unnecessary by legal).

  • Renamed citation file and updated version number.

  • Added noxfile for dev task running.

  • Removed unused docker files

  • Add standard python files to gitignore

  • Removed redundant requirements files

  • Pinned documentation related requirements

0.2.0 (August 9 2023)

This release incorporates new functions and addresses depreciated commands in some of the package dependencies.

Documentation

  • Doc pages “makeover” in preparation for JOSS publication

  • Added additional context and detail to example notebooks.

  • Added module guides

  • Added contributing pages

New Features

  • Added get_attributes_from_keywords to text.classify

  • Added get_keywords_of_interest to text.preprocess

  • Added remap_words_in_text to text.visualize

0.1.9 (November 21 2022)

Includes updated documentation and fixes for dependency issues

Documentation

  • Docstrings polished across the package.

  • Resolved documentation build errors and warnings

0.1.8 (Jan 14 2022)

Includes a data-derived expected energy model trained using machine learning methods. Associated example is also within the documentation.

Functionality

  • Added AIT model

Other

  • Add citation.cif

0.1.7 (September 20 2021)

Updated functions for data processing (text and timeseries) analysis. Also includes IV curve functions

Beta

New features and bug fixes are predominant in the beta versions.

New features

  • IV trace classification framework built according to literature (PR #25)

  • Timeseries IV simulation for highly customizable degradation of system parameters (PR #28)

  • Leverage pvlib solarposition package to populate content per site (PR #32)

  • Add coefficient-level evaluations linear models (PR #32)

  • Give user ability to input own test-train splits to linear modeller (PR #32)

  • Remap attributes function must retain the unaltered attributes (PR #32)

  • Interpolate O&M data onto production data where overlaps exist (PR #32)

Bug fixes

  • Basic package fixes to README (PR #27) and documentation configuration (PR #24)

  • Fix IV simulator bug for edge case where two IV curves added have equal I_{sc} (PR #30)

  • Neural network configuration referencing in 1D CNN (PR #32)

Docs

  • Update how to reference pvOps (PR #33)

Tests

Alpha

The original release of pvOps consists mostly of new features.

New features

  • text module added which conducts natural language processing on Operations & Maintenance (O&M) tickets, or other.

  • text2time module investigates the relationship between the production timeseries data and the O&M tickets.

  • timeseries module conducts timeseries preprocessing and modeling

  • iv incorporates the ability to simulate current-voltage (IV) curves under different environmental, load, and failure conditions.

Documentation

  • Built original website

  • Add whatsnew

  • Add jupyter notebook embeddings

Testing

  • Built comprehensive tests with pytest

  • Connected tests to automated testing pipeline