Recent Releases of dpest
dpest - v2.1.2
Full Changelog: https://github.com/DS4Ag/dpest/compare/v2.1.1...v2.1.2
Release date: 2025-06-24
Note: This release is functionally identical to v2.1.1 and was created to enable Zenodo archiving for JOSS submission.
Highlights:
- No code or functionality changes since the last release.
Installation:
bash
pip install dpest --upgrade
or
bash
pdm update
Scientific Software - Peer-reviewed
- Python
Published by DS4Ag 8 months ago
dpest - v2.1.1
Full Changelog: https://github.com/DS4Ag/dpest/compare/v2.1.0...v2.1.1
Release date: 2025-06-19
Bug Fix: Improved Data Filtering in filter_dataframe() for uplantgro()
This patch release addresses a data filtering issue affecting the uplantgro() function. Previously, the filter_dataframe() utility did not correctly exclude all invalid values for observations, allowing some zero or missing values (such as the string '0') to pass through when filtering.
What’s Changed
- Stricter Filtering Logic:
Thefilter_dataframe()function now excludes all observations where the variable value is any of the following:-99,'-99',0, or'0'. This ensures that both string and integer representations of missing or zero values are consistently removed from filtered DataFrames.
Updated filter logic:
python
filtered_df = dataframe[
(dataframe['TRNO'] == trno_value) &
(dataframe[variable] != '-99') &
(dataframe[variable] != -99) &
(dataframe[variable] != 0) &
(dataframe[variable] != '0')
]
- Impact:
This change directly affects theuplantgro()function, ensuring that only valid, non-missing, and non-zero observations are included in downstream processing and PEST instruction file generation.
How to Upgrade
- Update as usual via pip or PDM:
bash pip install dpest --upgrade # or pdm update
Scientific Software - Peer-reviewed
- Python
Published by github-actions[bot] 8 months ago
dpest - v2.1.0
Full Changelog: https://github.com/DS4Ag/dpest/compare/v2.0.0...v2.1.0
Release date: 2025-06-05
Compatibility and Packaging Improvements
This release updates the package metadata and development workflow to ensure consistent installation and testing for all users and reviewers.
What’s Changed
Python Version Requirement Updated
The minimum supported Python version is now 3.10 (was 3.7).
This change matches the requirements of core dependencies (such asmatplotlibandpandas) and prevents installation errors on unsupported Python versions.Development Dependencies Added
Thepytesttesting framework is now included as an optional development dependency.
This makes it easier for contributors and reviewers to run the test suite with:pdm install --devorpdm install --group devImproved Installation Experience
With these changes, installing and testingdpestusing PDM is now fully supported and reproducible for Python 3.10 and above.
How to Upgrade
If you are using PDM:
bash
pdm install
pdm install --dev # to include test dependencies
If you are using pip:
bash
pip install dpest # for runtime use
pip install dpest[dev] # for development/testing
Note
- Users on Python 3.7–3.9 are no longer supported due to dependency requirements.
- Please see the README for updated installation and testing instructions.
Full Changelog: v2.0.0...v2.1.0
Scientific Software - Peer-reviewed
- Python
Published by github-actions[bot] 9 months ago
dpest - v2.0.0
Full Changelog: https://github.com/DS4Ag/dpest/compare/v1.1.9...v2.0.0
This release brings major improvements to the dpest.utils module, expanding its functionality and making the API more intuitive and consistent with PEST conventions.
New Features and Improvements
Insert, Update, and Delete Functions for LSQR and SVD Sections
You can now add, update, or completely remove the optional* lsqrand* singular value decompositionsections in.pstfiles. This supports flexible solver configuration and easier workflow changes.Consistent Naming Convention
All utility functions have been renamed to match PEST variable and section names, removing the previousuprefix. This makes it easier to find and use functions that correspond directly to PEST documentation and control file sections.
Documentation
Comprehensive usage examples and API reference:
https://dpest.readthedocs.io/en/latest/utils.html
New to PEST or its control file structure?
See the official PEST documentation for an overview of required and optional sections.
This update streamlines the workflow for advanced users who need precise, scriptable control over PEST .pst files, while keeping your files clean and easy to manage.
Scientific Software - Peer-reviewed
- Python
Published by github-actions[bot] 10 months ago
dpest - v1.1.9
Full Changelog: https://github.com/DS4Ag/dpest/compare/v1.1.8...v1.1.9
This release introduces the dpest.utils module, a collection of lightweight utilities for modifying .pst control files directly. Unlike libraries such as pyEMU, which reconstruct the full control file when saving, dpest.utils applies targeted, line-by-line edits to preserve the file's original structure, formatting, and comments.
Key Enhancements
- Direct modification of
.pstfiles without full-file reserialization - Functions to update weights, parameter bounds, initial values, and more
- Designed for advanced users who require precise control over calibration files
Documentation
Comprehensive usage examples and API reference available at:
https://dpest.readthedocs.io/en/latest/utils.html
Scientific Software - Peer-reviewed
- Python
Published by github-actions[bot] 10 months ago
dpest - v1.1.8
Full Changelog: https://github.com/DS4Ag/dpest/compare/v1.1.7...v1.1.8
How to Upgrade
To upgrade to version 1.1.7, run:
bash
pip install dpest --upgrade
New Features and Improvements
- Added
dpest.utils.unoptmaxutility function:
This new function allows users to update theNOPTMAXparameter in a PEST control (.pst) file, supporting any integer value.
It preserves all other sections and formatting in the control file, making it easy to automate PEST run configuration without manual editing.
Example usage: ```python from dpest.utils import unoptmax
pstfilepath = './pestcal1/ENTRY1/PESTCONTROL.pst' unoptmax(pstfilepath, newvalue=0) # Set NOPTMAX to 0 unoptmax(pstfilepath, newvalue=10000) # Set NOPTMAX to 10000 ```
Other modules and features remain unchanged in this release.
Scientific Software - Peer-reviewed
- Python
Published by github-actions[bot] 10 months ago
dpest - v1.1.7
Release Date: April 14, 2025
Full Changelog: https://github.com/DS4Ag/dpest/compare/v1.1.6...v1.1.7
How to Upgrade
To upgrade to version 1.1.7, run:
bash
pip install dpest --upgrade
New Features and Improvements
Simplified Instruction File Naming:
Theoutput_filenameargument has been replaced with a newsuffixargument in theoverview()andplantgro()functions. This change simplifies the process of generating multiple instruction files for calibrating multiple treatments by automatically appending the specified suffix to the filenames.
Example:
python overview_observations_trt1, overview_ins_path_trt1 = overview( treatment='82.0 KG N/HA IRRIG', overview_file_path='C:/DSSAT48/Wheat/OVERVIEW.OUT', suffix='TRT1' )This reduces the amount of code required and ensures consistency across instruction files.Enhanced Multi-Treatment Calibration Workflow:
Updated documentation now includes a comprehensive tutorial for calibrating multiple treatments using the newsuffixargument, demonstrating how to generate treatment-specific.INSfiles and combine observations into a single.PSTcontrol file.
Breaking Changes
- Removed
output_filenameArgument:
Theoutput_filenameargument has been deprecated and removed from theoverview()andplantgro()functions. Users must now use thesuffixargument to differentiate instruction files for multiple treatments.
Documentation Updates
- Added a new tutorial: Example: Calibrating a Cultivar Using Multiple Treatments.
This tutorial provides step-by-step instructions for calibrating multiple treatments, including:- Generating treatment-specific
.INSfiles. - Combining observations into a single
.PSTcontrol file. - Validating input files using INSCHEK and running PEST.
- Generating treatment-specific
Scientific Software - Peer-reviewed
- Python
Published by github-actions[bot] 11 months ago
dpest - v1.1.6
Full Changelog: https://github.com/DS4Ag/dpest/compare/v1.1.5...v1.1.6
New Features and Improvements:
- Added output_filename argument to both the plantgro and overview functions.
- Description: The output_filename argument allows users to specify a custom name for the PEST instruction file (.INS). If not provided, the default behavior uses the filename (excluding the extension) from the plantgro_file_path and appends .ins. This provides more flexibility when generating multiple instruction files or when you want to avoid overwriting existing files.
Scientific Software - Peer-reviewed
- Python
Published by github-actions[bot] 11 months ago
dpest - dpest v1.0
Full Changelog: https://github.com/DS4Ag/dpest/commits/v1.0
Scientific Software - Peer-reviewed
- Python
Published by DS4Ag 12 months ago