Release notes#
Changelog#
All notable changes to this project will be documented in this file (v0.4.2~).
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
This is the list of changes to pyufunc between each release. For full details, see the Commit Logs.
[Unreleased]#
Types of changes: Added, Changed, Deprecated, Removed, Fixed, Security
[0.5.1] - 2026-05-28#
This release summarizes changes since v0.4.5.
Added#
Add selected
util_pkgswrappers forpsutil,pyhelpers,pyutil,imutils,platformdirs,filelock,pathspec,more-itertools,humanize,tenacity,boltons,toolz,python-benedict, andloguru.Add package inspection helpers, including
pkg_public_func,pkg_dependents_func_usage, andsave_dict_to_json.Add exploratory dependent-usage JSON datasets under
datasets/util_pkgs_dependents_func_usage.Add
THIRD_PARTY_LICENSES.mdand package metadata links for third-party license information.Add
PACKAGE_CLAIMS.mdto document supported claims, evidence sources, claim boundaries, and tradeoffs.Add ReadTheDocs API references for selected third-party wrappers and third-party license documentation.
Add a custom autosummary class template for generated class API pages.
Changed#
Keep optional dependency installation disabled by default in
import_package; users must passauto_install=Trueto run pip automatically.Update
requiresso missing dependencies are reported without installing packages unlessauto_install=Trueis explicitly passed.Update README and documentation language to use objective, evidence-bounded claims instead of broad statements such as “widely used” or general performance improvement.
Update utility package review documentation with PyPI version badges, download badges, latest-commit badges, repository links, package licenses, and selected package metadata.
Update generated utility indexes for function categories and keyword search.
Update Ruff configuration to use Google-style docstring checks.
Update package metadata for version
0.5.1, the revised project description, and third-party license file inclusion.
Removed#
Remove obsolete public utility categories from package exports and documentation, including
util_dababase,util_fullstack,util_gui,util_optimization, andutil_vis.Remove unused optional placeholder modules for AI, office, testing, visualization, and optimization helpers that are not part of the maintained public API.
Fixed#
Ensure
@requires(..., verbose=False)still skips wrapped functions when required dependencies are missing.Preserve wrapped function metadata in
requiresby usingfunctools.wraps.Fix ReadTheDocs autodoc and docutils warnings from generated
__init__method pages, stale API references, and malformed docstring markup.Fix stale
show_public_funcreferences by usingpkg_public_func.Fix documentation links and malformed MyST markup in release notes.
Expand tests for optional dependency handling, removed public packages, package inspection helpers, selected third-party wrappers, and existing utility behavior.
Security#
Disable automatic installation of missing dependencies by default to avoid unexpected package installation in CI, offline, or security-sensitive environments.
[0.4.5] - 2026-05-26#
Changed#
Move package configuration from
cfg.pyto__cfg.pyand update imports.Continue standardizing utility function docstrings, formatting, and input validation.
Update utility modules across data processing, datetime, geo, GitHub/PyPI, image, magic, office, path/IO, and package-wrapper helpers.
Update project packaging files and dependency lock data for the release.
Fixed#
Fix package import and utility discovery behavior after the configuration module rename.
Improve test coverage for core utilities, path/IO helpers, and list helper behavior.
[0.4.3] - 2026-04-24#
Added#
Add
CONTRIBUTING.mdwith contribution guidelines.Add
requirements_dev.txtfor development and documentation dependencies.Add
tests/test_core_utilities.pyand additional tests to improve package coverage.Add
util_pkgsutilities adopted frompsutil, including CPU, memory, disk, swap, and sensor helpers.Add documentation entries for new utility functions, including
get_active_python_env, OSM helpers,github_private_file_downloader, andtime_str_to_seconds.Add release notes assets and restructure release notes under
docs/source/release_notes.
Changed#
Update
requiresandimport_packagebehavior to avoid installing optional dependencies unless the user explicitly opts in.Refactor package initialization and utility references for cleaner function discovery.
Rename
pkg_configs.pytocfg.pyand update configuration imports.Update README examples, badges, links, and documentation structure.
Move package metadata to the modern
pyproject.tomlbuild configuration and remove legacy setup usage.Reformat and refactor utility modules across AI, datetime, geo, git/PyPI, image, magic, office, path/IO, and testing helpers.
Update documentation generation and API reference pages for the revised package layout.
Removed#
Remove legacy
setup.py.Remove the legacy
pyufunc/__init.pyfile.Remove the old
pkg_utilsreference page in favor ofcfg.Remove obsolete logging helper modules, including
_lg_datetime.py,_lg_logger.py,_lg_rotate_file_writer.py,_lg_stream.py, and_log_writer.py.Remove
docs/source/how_to_guidepages that were superseded by the new documentation layout.Remove pinned runtime dependencies from
requirements.txt.
Fixed#
Fix import failures after installation by removing top-level optional dependency imports.
Fix circular-import risk around
pyufunc.util_magic.requiresby decoupling low-level import helpers fromutil_data_processing.Fix optional pandas, numpy, and shapely imports so
pyufunccan import without those packages installed.Fix class-level
@requiresusage that could replace classes with dependency placeholder functions.Fix submodule dependency on
from pyufunc import requiresby importing the decorator directly.Fix README links and badge formatting.
[0.4.2] - 2026-03-23#
Changed#
Disable auto-install of required packages, instead, will print out the message to remind user on missing dependency.
Restructure the package loading for better function reference
Fixed#
On initial installation of the package, the package will not install ‘potential’ dependencies until user run the specific function.
Removed#
pkg_util removed and implemented in __init__.py instead.
removed show_util_func_by_keyword function
[0.4.1] - 2025-07-29#
Added#
Add
pyufunc.find_executable_from_PATH_on_linuxas a new function to find an executable in the system PATH on LinuxEnhance
pyufunc.gmns_real_linkprint out message when the link is not found in the GMNS dataAdd
pyufunc.github_private_file_downloaderas a new function to download a private file from GitHub using a personal access tokenAdd
pyufunc.time_str_to_secondsas a new function to convert a time string in the format “HH:MM:SS” to secondsAdd
pyufunc.cvt_py_to_dllas a new function to convert a Python file to a DLL file using CythonAdd
pyufunc.time_unit_converteras a new function to convert time units between different formats (e.g., seconds, minutes, hours)Add
pyufunc.calc_distance_on_unit_haversineas a new function to calculate the distance between two points on a unit sphere using the haversine formula