Skip to main content

puber – Text tools for publishers

puber is a lightweight toolkit for text normalization and preparation for publishing workflows.

The project is designed as a growing set of utilities for working with human-oriented text data.

At the moment, the package provides basic name normalization, but its functionality will be expanded with additional text processing tools in future releases.


Installation

Using pip

pip install --upgrade puber

For development:

pip install -e .

Recommended for CLI use: pipx

If you primarily use puber as a command-line tool, it is best installed with pipx.
This isolates the package in its own virtual environment and avoids polluting your system Python:

pipx install --upgrade puber

After installation it will be available globally:

puber --help

Requirements

  • Python 3.9+
  • macOS, Linux, or Windows

Usage

Command-line interface

Currently available commands:

# Normalize as personal name
puber norm -n "Татьяна М. Иванова" # -> Иванова Т.М.

Python API

from puber import norm_name

print(norm_name("Татьяна М. Иванова"))  # -> Иванова Т.М.

Testing

The project includes an extensive automated test suite for text normalization.

Run tests from the project root:

pytest

For src-layout development:

pip install -e .
pytest

License

MIT License
(c) 2025 Timur Ulyahin
https://github.com/ucomru


Project Homepage

GitHub:
https://github.com/ucomru/python-puber

PyPI:
https://pypi.org/project/puber/

Metadata

Release files for puber 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for puber 0.1.1
File Size Uploaded
puber-0.1.1.tar.gz 7.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for puber 0.1.1
File Interpreter ABI Platform
puber-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 14.3 kB

Release files / puber-0.1.1.tar.gz

Download URL puber-0.1.1.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
7e33bcb17f60b5cd9056a2d6f813c24e766c6c21d1b5ff766b2238c6dddc47bf
BLAKE2b-256 checksum
How to use checksums
b5cc7166a09e212493f01a4b9b2804ad181d57574a84cf2e0a41615b5d6b885c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release files / puber-0.1.1-py3-none-any.whl

Download URL puber-0.1.1-py3-none-any.whl
Size 6.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
06c5e536b8b8f577e45a5f346fdffb5e28fe368bd1f04be3681b33311e209041
BLAKE2b-256 checksum
How to use checksums
6e367a3f5c6b96cc3ba8aad152d07e202d6fdc8c5f9643119042ae985761c198
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page