Skip to main content

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 (09)
Uppercase_Letters 65–90 (AZ)
Lowercase_Letters 97–122 (az)

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

chars_counter-0.2.0.tar.gz (3.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chars_counter-0.2.0-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

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

Hashes for chars_counter-0.2.0.tar.gz
Algorithm Hash digest
SHA256 610e0b1ebb9eb0bf4bcb3191ac34bf6b3c5e1bb77d1c156067d174e49963caef
MD5 355458612cb6d06984e4752064d7a43b
BLAKE2b-256 a4b24a7b0efb89388ce4c9e6523e2260a794ce8068cb059c7dbe8799f52840af

See more details on using hashes here.

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

Hashes for chars_counter-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 49dc4a5b9d978a7cf5887521da08535f6a40ffd40928755baf601d6520c6306f
MD5 c3ed1b593e433b38c56b4a68df20f90b
BLAKE2b-256 cf28dce00e18f23c232fac92f296e4b6bd39c179effabd563a6585aa9cc388da

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page