Skip to main content

Personal Library

Project description

Iridis

This is my personal library that provides a way for me to share and reuse code that i commonly use. That is for colorful printing to console, user input validation and benchmarking for example.

Color Enum

The Color enum defines various color codes that can be used with the functions below.

from enum import Enum

class Color(Enum):
    RED = "\033[91m"
    GREEN = "\033[92m"
    YELLOW = "\033[93m"
    BLUE = "\033[94m"
    PURPLE = "\033[95m"
    # Additional colors available (e.g., BRIGHT, BG colors)

Functions

print_with_color(*values: object, color: Color)

Prints the given values in the specified color.

  • values: Objects to print.
  • color: Color enum specifying the text color.

Example

print_with_color("Hello, World!", color=Color.BLUE)

print_error(*values: object)

Prints the values in red to indicate an error.

  • values: Objects representing the error message.

Example

print_error("This is an error message.")

print_title(*values: object)

Prints the values in green to indicate a title or header.

  • values: Objects representing the title text.

Example

print_title("Welcome to the Application")

print_rainbow(*values: object)

Prints the values with a rainbow color effect.

  • values: Objects to print with each character in a different color.

Example

print_rainbow("This text is in rainbow colors!")

get_number_from_user(input_text: str, error_message: str, conditions: list) -> float

Prompts the user for a number and validates it against optional conditions.

  • input_text: Prompt text (default: "Vložte číslo:").
  • error_message: Error message shown if input is invalid (default: "Špatný vstup, zkuste znova!").
  • conditions: List of boolean lambda conditions to validate the input.

Example

get_number_from_user("Enter a number: ", "Invalid input!", conditions=[lambda x: x > 0])

get_string_from_user(input_text: str, error_message: str, conditions: list) -> str

Prompts the user to input a string and validates it against specified conditions.

  • input_text: Prompt text for the user.
  • error_message: Error message shown if input is invalid (default: "Špatný vstup, zkuste znova!").
  • conditions: A list of callable conditions that take a string and return a boolean.

Example

get_string_from_user(
    "Enter your name: ",
    "Invalid name!",
    conditions=[is_not_empty, is_alpha_only]
)

String Validation Functions

These utility functions validate string inputs:

  • is_not_empty(string: str) -> bool: Checks if the string is not empty.
  • is_alpha_only(string: str) -> bool: Ensures the string contains only alphabetic characters.
  • has_digits(string: str) -> bool: Returns True if the string contains any digits.
  • has_no_digits(string: str) -> bool: Ensures the string has no digits.
  • has_special_characters(string: str) -> bool: Checks if the string contains any special characters.
  • has_no_special_characters(string: str) -> bool: Ensures the string has no special characters.
  • is_valid_utf8(string: str) -> bool: Checks if the string contains only valid UTF-8 characters.

Other

@benchmark

Is a decorator that will upon calling the decorated function return an additional value of how long the decorated function took time to execute.

Example

@benchmark
def add(a, b):
    return a + b


result, execution_time = add(5, 3)
print(f"Result: {result}, Execution time: {execution_time:.6f} seconds")

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

iridis-0.3.1.tar.gz (4.6 kB view details)

Uploaded Source

File details

Details for the file iridis-0.3.1.tar.gz.

File metadata

  • Download URL: iridis-0.3.1.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for iridis-0.3.1.tar.gz
Algorithm Hash digest
SHA256 48781a233ca6166aff584600ac727ebeeba99c1375875540b4899898978df2f0
MD5 f2c8d1e40b9abf277b3a082fe50f40ea
BLAKE2b-256 075b7ae03e3dcb06a1ac3834f70bb58ae9411e89b78bd10b06a8f092f92f2e7d

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