Skip to main content

Common Utility functions for development

Project description

cutility

Common utilities for faster development

Table of Contents

Installation

You can install cutility using pip:

pip install --upgrade cutility

Usage

Utils

Measure Execution Time

from cutility.utils import get_exec_time

@get_exec_time
def foo():
    import time
    time.sleep(1)

foo()
# Output: Time taken to execute 'foo': 0:00:01.005044

Check Path Existence

from cutility.utils import check_path_exist

exists = check_path_exist("./data/temp.txt")
print(exists)  # Output: False

Load Environment Variables

from cutility.utils import load_env

ENV = load_env("./.env")
print(ENV)
print(os.getenv("DATA_ROOT"))
print(os.getenv("PROJECT_ROOT"))
print(os.getenv("CONFIG_PATH"))

Loggers

Simple Logger

from cutility.loggers import get_simple_logger

log = get_simple_logger()
log.i("Hello world of loggers")
# Output: [2023-12-17 02:21:03,847] - [INFO] : Hello world of loggers

IO

Read and Write Files

from cutility.io import readers, writers

# Read and write text files
text_content = readers.read_text("./data/example_r.txt")
writers.write_text(text_content, "./data/example_w.txt")

# Read and write JSON files
json_data = readers.read_json("./data/example_r.json")
writers.write_json(json_data, "./data/example_w.json")

# Read and write YAML files
yaml_data = readers.read_yaml("./data/example_r.yaml")
writers.write_yaml(yaml_data, "./data/example_w.yaml")

Dir Handler

from cutility import get_dir_handler

dirh = get_dir_handler(project_root="./", data_root="./data", verbose=True)
print(dirh.get_data_root())
print(dirh.get_project_root())

Cleaners

Generic Cleaner

from cutility.cleaners import GenericSimpleTextCleaner

gtc = GenericSimpleTextCleaner()
sample_text = """Check out this link: https://example.com. ๐Ÿ˜Ž #Python @user1, sample@gmail.com 123-456-7908"""

cleaning_steps = [
    (gtc.replace_contacts, {"repl": " {{PHONE}} "}),
    (gtc.replace_emails, {"repl": " {{EMAIL}} "}),
    (gtc.clean_emojis, {}),
    (gtc.clean_hashtags, {}),
    (gtc.clean_web_links, {}),
]

cleaned_text = gtc.apply_text_cleaning_functions(sample_text, cleaning_steps)
print(cleaned_text)

Simple Text Cleaner

from cutility.cleaners import SimpleTextCleaner

cleaned_text = SimpleTextCleaner.clean_emojis("๐ŸŒŸ Sed euismod justo t semper justo. ๐Ÿ˜Š")
print(cleaned_text)

PII Text Cleaner

from cutility.cleaners import PiiTextCleaner

text = "My contact number is +1(123) 456 7890 and my email is email@company.com"
cleaned_text = PiiTextCleaner.replace_emails(PiiTextCleaner.replace_contacts(text))
print(cleaned_text)

Project Structure

./src
โ””โ”€โ”€ cutility
    โ”œโ”€โ”€ __init__.py
    โ”œโ”€โ”€ _version.py
    โ”œโ”€โ”€ cleaners
    โ”‚   โ”œโ”€โ”€ __init__.py
    โ”‚   โ”œโ”€โ”€ clean.py
    โ”‚   โ”œโ”€โ”€ pii_cleaner.py
    โ”‚   โ””โ”€โ”€ text_cleaner.py
    โ”œโ”€โ”€ dir_handler.py
    โ”œโ”€โ”€ io
    โ”‚   โ”œโ”€โ”€ __init__.py
    โ”‚   โ”œโ”€โ”€ readers
    โ”‚   โ””โ”€โ”€ writers
    โ”œโ”€โ”€ loggers
    โ”‚   โ”œโ”€โ”€ __init__.py
    โ”‚   โ””โ”€โ”€ _simple_logger.py
    โ””โ”€โ”€ utils
        โ”œโ”€โ”€ __init__.py
        โ”œโ”€โ”€ env_loader.py
        โ”œโ”€โ”€ exec_time.py
        โ””โ”€โ”€ path.py

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License.

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

cutility-1.0.0.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

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

cutility-1.0.0-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file cutility-1.0.0.tar.gz.

File metadata

  • Download URL: cutility-1.0.0.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for cutility-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5a29af4c077948bbcd9ab7bc39d4c0fbb6126e42d7c49775fc99c938ca5d6a76
MD5 8f5180fc342d85ce97ec28bb1f94d760
BLAKE2b-256 f3da9ccad78d9981f5731de0de957485fdf04e45473721a5072d3f3633af0862

See more details on using hashes here.

File details

Details for the file cutility-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: cutility-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for cutility-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 20e28a5d4b36e434b793f9c690abedcd3208cb60e5975a7e4b0c43dd4670be2e
MD5 80346bb6029f3c407c7d4b5f7b1a6ab9
BLAKE2b-256 298689e7606c0ad6d1b54b5eeec6b8ea4e7863051e8f5eb27420fb8d204247d7

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