Skip to main content

Common utility functions for the kiarina namespace packages

Project description

kiarina-utils-common

PyPI version Python License: MIT

Common utility functions for the kiarina namespace packages.

Installation

pip install kiarina-utils-common

Features

Configuration String Parser

Parse configuration strings into nested dictionaries with automatic type conversion.

from kiarina.utils.common import parse_config_string

# Basic usage
config = parse_config_string("cache.enabled:true,db.port:5432")
# Result: {"cache": {"enabled": True}, "db": {"port": 5432}}

# Flag support (no value)
config = parse_config_string("debug,verbose,cache.enabled:true")
# Result: {"debug": None, "verbose": None, "cache": {"enabled": True}}

# Array indices support
config = parse_config_string("items.0:first,items.1:second")
# Result: {"items": ["first", "second"]}

# Custom separators
config = parse_config_string(
    "key1=val1;key2.sub=42", 
    separator=";", 
    key_value_separator="="
)
# Result: {"key1": "val1", "key2": {"sub": 42}}

Type Conversion

Values are automatically converted to appropriate types:

  • "true", "True"bool(True)
  • "false", "False"bool(False)
  • Numeric strings ("1", "0", "-5", "3.14") → int or float
  • Other strings → str

Nested Keys

Use dot notation for nested structures:

config = parse_config_string("database.host:localhost,database.port:5432")
# Result: {"database": {"host": "localhost", "port": 5432}}

Array Indices

Use numeric keys for array structures:

config = parse_config_string("users.0.name:Alice,users.0.age:30,users.1.name:Bob")
# Result: {"users": [{"name": "Alice", "age": 30}, {"name": "Bob"}]}

API Reference

parse_config_string(config_str, *, separator=",", key_value_separator=":", nested_separator=".")

Parse configuration string into nested dictionary.

Parameters:

  • config_str (str): Configuration string to parse
  • separator (str, optional): Item separator. Default: ","
  • key_value_separator (str, optional): Key-value separator. Default: ":"
  • nested_separator (str, optional): Nested key separator. Default: "."

Returns:

  • dict[str, Any]: Parsed configuration dictionary

Examples:

# Basic usage
parse_config_string("key1:value1,key2:value2")
# {"key1": "value1", "key2": "value2"}

# Nested keys
parse_config_string("cache.enabled:true,db.port:5432")
# {"cache": {"enabled": True}, "db": {"port": 5432}}

# Flags (no value)
parse_config_string("debug,verbose")
# {"debug": None, "verbose": None}

# Custom separators
parse_config_string("a=1;b=2", separator=";", key_value_separator="=")
# {"a": 1, "b": 2}

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

This is a personal project by kiarina. While issues and pull requests are welcome, please note that this is primarily developed for personal use.

Related Packages

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

kiarina_utils_common-1.6.3.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

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

kiarina_utils_common-1.6.3-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file kiarina_utils_common-1.6.3.tar.gz.

File metadata

  • Download URL: kiarina_utils_common-1.6.3.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kiarina_utils_common-1.6.3.tar.gz
Algorithm Hash digest
SHA256 0f36f7b51725d5ff0e5e156b4cf0bfdd46a3d8aa06f85184877fd90a04f8c9a5
MD5 02838140581247a461268bf68f3eb256
BLAKE2b-256 c995f3dfd0a45a228b5e8e73a2e8eec54ad6c1bf7df0eb0038e4202b24a40a6e

See more details on using hashes here.

File details

Details for the file kiarina_utils_common-1.6.3-py3-none-any.whl.

File metadata

File hashes

Hashes for kiarina_utils_common-1.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d03fa467a245b634bd424d8aa9690193be465fcbd3e70813a1900202b445b29d
MD5 39bb535f92cf25ad7214f8066ac5524f
BLAKE2b-256 0eb32c9d613dae95e4c2fa8362e61eeb7af6182270172116cff86ab5c32ddd30

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