Skip to main content

A General Use Python Tookit.

Project description

PyToolkit

Python General tools

Utilities

string_or_list function allows you to interpret a string and return a list. Provides you the option of adding a delimeter using an OR function to return a possible string that you may be expecting possible commond delimeters. Such as: ",|:|\|, ".

Example:

>>> from pytoolkit.utils import string_or_list

>>> test = 'string1,string2 string3|string4'
>>> string_or_list(test)
['string1,string2 string3|string4']
>>> string_or_list(test,delimeters=',| ')
['string1', 'string2', 'string3|string4']
>>> string_or_list(test,delimeters=',| |\|')
['string1', 'string2', 'string3', 'string4']

Dataclass Base

Used for basic extended functionality for dataclass declerations. Includes the ability to create a dataclass from a dictionary or from **kwargs. Also, includes a conversion from Dataclass to a Python dictionary.

Usage:

from typing import Optional
from dataclasses import dataclass

from pytoolkit.utilities import BaseMonitor, NONETYPE

@dataclass
class Sample(BaseMonitor):
    key1: str
    key2: str
    key3: int
    key5: Optional[str] = NONETYPE

# create a sample module
_dict = {"key1": "value1", "key2": "value2", "key3": 3}

sample1 = Sample.create_from_dict(_dict)
sample2 = Sample.create_from_kwargs(**_dict)

print(sample1)
print(sample2)
print(sample1.to_dict())

OUTPUT:

>>> print(sample1)
Sample(key1='value1', key2='value2', key3=3, key5=<object object at 0x10c8e8b70>)
>>> print(sample2)
Sample(key1='value1', key2='value2', key3=3, key5=<object object at 0x10c8e8b70>)
>>> print(sample1.to_dict())
{'key1': 'value1', 'key2': 'value2', 'key3': 3}

Maniuplating Dictionaries

Flatten a Dictionary:

import json
from pytoolkit import utilities

sample_dict = {"key1":"value","key2": "value2", "metadata": {"key1": "meta_value1","key2":"meta_value2"}}

# Convert dictionary into a flat dictionary
flat_dict = utilities.flatten_dict(sample_dict)

# Convert dictionary back into a nested ditionary
nest_dict = utilities.nested_dict(flat_dict)

print(f"This is a Flattened Dictionary:\n{json.dumps(flat_dict,indent=1)}")
print(f"This is a Nested Dictionary:\n{json.dumps(nest_dict,indent=1)}")

OUTPUT:

This is a Flattened Dictionary:
{
 "key1": "value",
 "key2": "value2",
 "metadata.key1": "meta_value1",
 "metadata.key2": "meta_value2"
}

This is a Nested Dictionary:
{
 "key1": "value",
 "key2": "value2",
 "metadata": {
  "key1": "meta_value1",
  "key2": "meta_value2"
 }
}

The above is using the default '.' seperator value. There is a mix of commands that can be passed to adjust how the dictionary is expressed. This is useful for expressing data in otherformats that do not allow for nested dictionaries, but need a way to recreate the original formated datastructure.

Nested Dictionary:

TOOD: Create a way to extract a CSV or XCEL file and turn it into a proper dictionary based on the type. Integrate with Splunk

TODO: Add splunk HEC fromatter with proper chunck

TODO: KVSTORE configuration tool.

Utilities

Sanatize dictionary data

from pytoolkit.utils import sanatize_data

test_dict = {
    "value1": "one",
    "value2": "two",
    "subvalue01": {
        "password": "welcome123",
        "username": "testuser",
    }
}

sanatized_dict = sanatize_data(data=test_dict)
print(sanatize_dict)
# {"value1": "one", "value2": "two", "subvalue01": { "password": "[MASKED]", "username": "testuser"}}

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

pytoolkit928-0.0.16.tar.gz (56.3 kB view details)

Uploaded Source

Built Distribution

pytoolkit928-0.0.16-py3-none-any.whl (47.0 kB view details)

Uploaded Python 3

File details

Details for the file pytoolkit928-0.0.16.tar.gz.

File metadata

  • Download URL: pytoolkit928-0.0.16.tar.gz
  • Upload date:
  • Size: 56.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for pytoolkit928-0.0.16.tar.gz
Algorithm Hash digest
SHA256 6db05302f3938a4c06ffbb8e076e728bb3a95fab1f328b0f989ac9078bda4ca8
MD5 0a1a0c8e22a234947f9045aef30a2b31
BLAKE2b-256 b60781266568f8686b67d46e11a6c86fe92f2d83cc85ef165324490efca55f9e

See more details on using hashes here.

File details

Details for the file pytoolkit928-0.0.16-py3-none-any.whl.

File metadata

File hashes

Hashes for pytoolkit928-0.0.16-py3-none-any.whl
Algorithm Hash digest
SHA256 4db4b3030eea4a5a34e30ae4ddce2f1d8ca4b9096427bb34bc7aee257518f8bb
MD5 efed85d108b112fec82ddec50acab147
BLAKE2b-256 dc366c2d6f760eb0bbf4c0c4fee7915d878671b1f34111bf8070f57a7f02d447

See more details on using hashes here.

Supported by

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