{"id":6934,"library":"ubiquerg","title":"Ubiquerg","description":"Ubiquerg is a Python utility package providing a collection of universally helpful, low-level functions. These functions are designed to be generic and have no external dependencies beyond standard built-in Python modules, making them suitable for use across many different applications. The library is currently at version 0.9.3, released in April 2026, with a regular release cadence.","status":"active","version":"0.9.3","language":"en","source_language":"en","source_url":"https://github.com/pepkit/ubiquerg/","tags":["utility","tools","files","paths","collections","environment"],"install":[{"cmd":"pip install ubiquerg","lang":"bash","label":"Install latest version"}],"dependencies":[],"imports":[{"symbol":"expandpath","correct":"from ubiquerg.paths import expandpath"},{"symbol":"is_filepath_like","correct":"from ubiquerg.files import is_filepath_like"},{"symbol":"deep_update","correct":"from ubiquerg.collection import deep_update"}],"quickstart":{"code":"from ubiquerg.paths import expandpath\nfrom ubiquerg.files import is_filepath_like\nimport os\n\n# Example 1: Expanding user and environment variables in a path\nexpanded_path = expandpath(\"~/my_project/$USER_DATA\")\nprint(f\"Expanded path: {expanded_path}\")\n\n# Example 2: Checking if a path is file-like\n# Create a dummy file for demonstration\ndummy_file = \"test_file.txt\"\nwith open(dummy_file, \"w\") as f:\n    f.write(\"Hello, ubiquerg!\")\n\nis_file_like = is_filepath_like(dummy_file)\nprint(f\"Is '{dummy_file}' a file-like path? {is_file_like}\")\n\n# Clean up the dummy file\nos.remove(dummy_file)","lang":"python","description":"Demonstrates how to use `expandpath` to resolve user and environment variables in a path and `is_filepath_like` to check if a string represents a file path."},"warnings":[{"fix":"Monitor release notes for potential API changes, especially when updating minor versions. Test your application thoroughly after updates.","message":"The library is currently in 'Development Status :: 4 - Beta'. While generally stable, this status indicates that the API is not yet final and may undergo minor non-backward-compatible changes in future minor releases.","severity":"gotcha","affected_versions":"All versions up to 0.9.3"},{"fix":"Review `mkabs` usage if migrating from versions prior to 0.8.0, especially with unusual path inputs, and test expected outputs to ensure compatibility with the expanded behavior.","message":"The `mkabs` function (introduced in v0.8.0) was expanded to handle more cases. If you were relying on specific prior behavior for edge cases, or implicitly expecting a stricter interpretation, new versions might behave differently (e.g., resolving paths that previously failed).","severity":"gotcha","affected_versions":">=0.8.0"},{"fix":"Verify calls to `is_url` if your application handles `Path` objects explicitly or relies on strict input type checking. Ensure no unintended behavior arises from `Path` object acceptance.","message":"The `is_url` function (changed in v0.8.0) now explicitly allows `Path` objects as input. While this is an enhancement, if your code implicitly assumed only string inputs and performed pre-processing, this change might subtly affect error handling or validation logic in downstream components.","severity":"gotcha","affected_versions":">=0.8.0"},{"fix":"Carefully test the `deep_update` function with various nested dictionary scenarios if its precise behavior is critical to your application, particularly if you are accustomed to its implementation in other libraries.","message":"The `deep_update` function (ported in v0.8.1) was brought over from `yacman`. While designed for recursive dictionary updates, users migrating from `yacman` or expecting a specific recursive merge behavior should test its exact functionality with complex nested structures to ensure it aligns with expectations, as subtle differences might exist.","severity":"gotcha","affected_versions":">=0.8.1"}],"env_vars":null,"last_verified":"2026-04-15T00:00:00.000Z","next_check":"2026-07-14T00:00:00.000Z","problems":[]}