Skip to main content

AccidentallyTheCable's Utility Kit

Project description

ATCKit

AccidentallyTheCable's Utility Kit

About

This is a small kit of classes, util functions, etc that I found myself rewriting or reusing frequently, and instead of copying everywhere, they are now here.

How does it work?

Do the needfuls.... do the needful dance

Literally, import whatever you need to use..

Usage

FunctionSubscriber

A Class container for Function callback subscription via += or -=. Functions can be retrieved in order of addition.

subscriber = FunctionSubscriber()

def a():
    print("I am a teapot")

def b():
    print("I am definitely totally not also a teapot, I swear")

subscriber += a
subscriber += b

for cb in subscriber.functions:
    cb()

>> I am a teapot
>> I am definitely totally not also a teapot, I swear

This class uses the typing.Callable type for function storage. You can extend the FunctionSubscriber class to define the callback function parameters, etc.

class MySubscriber(FunctionSubscriber):
    """My Function Subscriber
    Callback: (bool) -> None
    """

    _functions:list[Callable[[bool],None]]

    def __iadd__(self,fn:Callable[[bool],None]) -> Self:
        """Inline Add. Subscribe Function
        @param method \c fn Method to Subscribe
        """
        return super().__iadd__(fn)

    def __isub__(self,fn:Callable[[bool],None]) -> Self:
        """Inline Subtract. Unsubscribe Function
        @param method \c fn Method to Unsubscribe
        """
        return super().__isub__(fn)

UtilFuncs

A Class containing various static methods:

  • scan_dir: Search a specified Path, and execute a callback function on discovered files.
    • Allows exclusion of Files/Dirs via regex pattern matching
  • deep_sort: Sort a Dictionary recursively, including through lists of dicts
  • check_pid: Check if a process ID exists (via kill 0)
  • register_signals: Register Shutdown / Restart Handlers
    • Check for Shutdown via UtilFuncs.shutdown (bool)
    • Check for Restart via UtilFuncs.restart (bool)

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

atckit-1.0.2.tar.gz (80.1 kB view details)

Uploaded Source

Built Distribution

atckit-1.0.2-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

Details for the file atckit-1.0.2.tar.gz.

File metadata

  • Download URL: atckit-1.0.2.tar.gz
  • Upload date:
  • Size: 80.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for atckit-1.0.2.tar.gz
Algorithm Hash digest
SHA256 c349fc8e774afdba03bb1a68e4cf943c65d9bd7e5af6519db015bef151604288
MD5 a90a3bf7efb7ea490917052096c3bbd6
BLAKE2b-256 249e58a44e197fde1b6c5b6c4260e86b11dbdd04e120ef98cc9f14775c7d8994

See more details on using hashes here.

File details

Details for the file atckit-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: atckit-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 17.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for atckit-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cfaba92701aa63de4d406dabc8f0a3b350a96dc1f6f02682b62a8c4f0eb1bebd
MD5 a85cc5c8e9ebba1804ac3a2a5a01f849
BLAKE2b-256 8a3b0d20614e115250edb51233ac5f746e1cdde813957ebd98e6c9a40efb4e32

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