Chars counter console util
Project description
chars-counter
A small Python utility that counts, per ASCII character category, how many characters appear exactly once in a given string.
Requirements
- Python ≥ 3.14
Installation
uv sync
Usage
from src import get_once_seen_chars_categories_count
from src.consts import ASCIICharCategories
result = get_once_seen_chars_categories_count("Hello")
# {'uppercase_letters': 1, 'lowercase_letters': 2}
# 'H' appears once (Uppercase), 'e' and 'o' appear once (Lowercase), 'l' appears twice (ignored)
The returned dictionary maps ASCIICharCategories members to the count of unique characters in that category. Categories with no once-seen characters are omitted.
ASCII character categories
| Category | Code points |
|---|---|
Control_Characters |
0–31, 127 |
Space |
32 |
Punctuation |
33–47, 58–64, 91–96, 123–126 |
Digits |
48–57 (0–9) |
Uppercase_Letters |
65–90 (A–Z) |
Lowercase_Letters |
97–122 (a–z) |
Passing a string that contains non-ASCII characters raises NotAsciiCharacterProvidedError.
Running tests
pytest
Running with coverage
coverage run -m pytest && coverage report
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chars_counter-0.2.0.tar.gz.
File metadata
- Download URL: chars_counter-0.2.0.tar.gz
- Upload date:
- Size: 3.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"20.1","id":"ulyssa","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
610e0b1ebb9eb0bf4bcb3191ac34bf6b3c5e1bb77d1c156067d174e49963caef
|
|
| MD5 |
355458612cb6d06984e4752064d7a43b
|
|
| BLAKE2b-256 |
a4b24a7b0efb89388ce4c9e6523e2260a794ce8068cb059c7dbe8799f52840af
|
File details
Details for the file chars_counter-0.2.0-py3-none-any.whl.
File metadata
- Download URL: chars_counter-0.2.0-py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"20.1","id":"ulyssa","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49dc4a5b9d978a7cf5887521da08535f6a40ffd40928755baf601d6520c6306f
|
|
| MD5 |
c3ed1b593e433b38c56b4a68df20f90b
|
|
| BLAKE2b-256 |
cf28dce00e18f23c232fac92f296e4b6bd39c179effabd563a6585aa9cc388da
|