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:
    The filter_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 the uplantgro() 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 as matplotlib and pandas) and prevents installation errors on unsupported Python versions.

  • Development Dependencies Added
    The pytest testing 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 --dev or pdm install --group dev

  • Improved Installation Experience
    With these changes, installing and testing dpest using 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 * lsqr and * singular value decomposition sections in .pst files. 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 previous u prefix. 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 .pst files 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.unoptmax utility function:
    This new function allows users to update the NOPTMAX parameter 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:
    The output_filename argument has been replaced with a new suffix argument in the overview() and plantgro() 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 new suffix argument, demonstrating how to generate treatment-specific .INS files and combine observations into a single .PST control file.


Breaking Changes

  • Removed output_filename Argument:
    The output_filename argument has been deprecated and removed from the overview() and plantgro() functions. Users must now use the suffix argument 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 .INS files.
    • Combining observations into a single .PST control file.
    • Validating input files using INSCHEK and running PEST.

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 - v1.1.5

Full Changelog: https://github.com/DS4Ag/dpest/compare/v1.0...v1.1.5

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