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
Removed python 3.6 test support due to https://github.com/actions/setup-python/issues/162.
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