buvis-pybase
Foundation library for BUVIS Python projects. Provides configuration management, filesystem utilities, adapters for external tools, and string manipulation.
Install
pip install buvis-pybase
Features
- Configuration - Pydantic settings with Click helpers (
buvis_options,get_settings) - Adapters - Shell, UV, Poetry, JIRA, Console wrappers
- Filesystem - Cross-platform file metadata, directory operations
- Formatting - String slugify, abbreviations, case conversion
Usage
import click
from buvis.pybase.configuration import buvis_options, get_settings, GlobalSettings
from buvis.pybase.adapters import ShellAdapter, ConsoleAdapter
from buvis.pybase.filesystem import DirTree
from buvis.pybase.formatting import StringOperator
# Config via Click (adds --debug/--log-level/--config-dir/--config)
@click.command()
@buvis_options # Use settings_class=CustomSettings for tool-specific models
@click.pass_context
def main(ctx: click.Context) -> None:
settings = get_settings(ctx) # GlobalSettings by default
click.echo(f"Debug: {settings.debug}")
# Shell commands
shell = ShellAdapter()
stderr, stdout = shell.exe("ls -la")
# Console output
console = ConsoleAdapter()
console.success("Done")
# Filesystem
DirTree.remove_empty_directories("/path/to/clean")
# Strings
slug = StringOperator.slugify("Hello World!") # "hello-world"
Development
uv sync --all-groups # install deps
pre-commit install --hook-type pre-commit --hook-type post-commit # setup hooks
uv run pytest # run tests
Release
Releases via GitHub Actions (manual trigger):
- Go to Actions → Release workflow → Run workflow
- Choose
prerelease(test.pypi only) orrelease(both pypis + GitHub release)
Version determined from conventional commits (feat: → minor, fix: → patch).
uv run semantic-release version --print --noop # preview next version
See dev/docs/versioning.md for details.
License
MIT
Metadata
Release files for buvis-pybase 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| buvis_pybase-0.10.0.tar.gz | 209.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| buvis_pybase-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 267.4 kB
Release files / buvis_pybase-0.10.0.tar.gz
| Download URL | buvis_pybase-0.10.0.tar.gz |
|---|---|
| Size | 209.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9e0811045c0e40e8fba95f2a4f5414446be307e4cfe1d3a24a4d0b9b582399ea
|
|
BLAKE2b-256 checksum How to use checksums |
c688d72a69935223f7b392d019ba4a40fff8777443424d014a4e8a71744282ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 11, 2026.
Transparency logRelease files / buvis_pybase-0.10.0-py3-none-any.whl
| Download URL | buvis_pybase-0.10.0-py3-none-any.whl |
|---|---|
| Size | 58.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c8f31b926c8a4b43018108ba9b7ca45a28eb75367e84b59114a8cf50192f3b20
|
|
BLAKE2b-256 checksum How to use checksums |
f0d67628e774f2ff479e6d2916ab85e3e2629719454f128df9d2b51a84374d15
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 11, 2026.
Transparency log