Skip to main content

An assortment of useful python utilities complementing some builtin and third party python packages

Project description

el-std-py

el-std-py is an assortment of useful python utilities complementing some builtin and third party python packages.

Disclaimer

  1. I mainly develop this library for my own use use, and while I do think that it might be useful to others, there is no guarantee that features work as expected and I may introduce breaking changes to APIs at any time.
  2. While the el-std-py is namely related to my el-std-cpp library, the two are not related in any way content-wise and there is no promise of feature parity whatsoever. Both libraries are simply utility libraries for the respective languages with features I commonly use in them. They are otherwise independent.

Versions

I am currently targeting Python 3.13 for this library. Although some things might work in earlier versions, there is no guarantee, and I will not refrain from using the latest python features.

Features and Documentation

While I might write more comprehensive documentation for some features along the way, I will at least try to maintain an up-to-date list of all available features:

(when reading from PyPi, some links might not work. View on GitHub for full documentation)

General program logic

  • el.async_tools: Utility functions for working with asyncio
  • el.terminal: Terminal controller enabling an asynchronous command interface and a color-coded logging configuration that is a good stating point and pushes logs to stdout without disturbing the user command line.
  • el.observable: Data wrapper classes allowing the observation and chaining of value change events and thus declaratively defining data paths
  • el.bindantic: An unofficial "extension" (one could call it a "mod") for pydantic that adds support for defining, dumping and validating binary data structures (like in C), while maintaining all pydantic features.
  • el.callback_manager: Simple callback registry class for exposing events
  • el.lifetime: Contextual lifetime management for registries (Any object that requires to register something, like a CallbackManager or Observable)
  • el.datastore: Zero-setup database-like data and configuration file handler that uses pydantic do define data models and asyncio to automatically store/load them to/from disc in the background without having to touch filepaths or files.
  • el.timers: Async timer classes such as IntervalTimer and WDTimer for use with asyncio
  • el.time_utils: Utilities for working with dates and times
  • el.errors: More exception types for general errors I have encountered to need often. Some of them are used by el.
  • el.typing_tools: Utility functions for working with typing
  • el.numbers: Mathematical utilities for working with numbers, such as linear mapping.
  • el.containers: Utilities for working with container objects

UI

  • el.ctk_utils: Utility functions and classes for working with customtkinter
  • el.widgets: Additional customtkinter widgets
  • el.tkml: Tkinter Markup Language: A more user-friendly way to define hierarchical UI with Tk/CTk widgets
  • el.mpl_utils: Utilities for working with matplotlib
  • el.assets: UI assest manager and some built-in assets

Debugging/Development

  • el.analysis: Utilities for analyzing code performance
  • el.nixos_ctk_font_fix: Module to work around issues when using CTk on NixOS (not intended for production)

Experimental

These might not be fully implemented (yet).

  • el.history_manager (experimental): Utility to manage history of pydantic model instances for implementing Undo/Redo functionality

Contribution

Despite all these disclaimers, if you have utilities, changes, fixes, etc. that you think might be nice to include here, feel free to create issues/PRs.

3rd party components and attribution

This library contains some third-party components requiring attribution, mainly assets for UI widgets. These components are exempt from the terms of LICENSE and instead fall under the terms of their respective licenses as provided by their authors.

Assets/Icons:

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

el_std_py-0.4.0.tar.gz (148.0 kB view details)

Uploaded Source

Built Distribution

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

el_std_py-0.4.0-py3-none-any.whl (158.7 kB view details)

Uploaded Python 3

File details

Details for the file el_std_py-0.4.0.tar.gz.

File metadata

  • Download URL: el_std_py-0.4.0.tar.gz
  • Upload date:
  • Size: 148.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.4

File hashes

Hashes for el_std_py-0.4.0.tar.gz
Algorithm Hash digest
SHA256 6309dc7c47db37691f570883dbec36be2b651a7032c4ce08ef89c35d0f4d290f
MD5 83db38c1e8960c99ade6b87f43de6291
BLAKE2b-256 3b76acfe94749e9ce606b879b5a1a17328660437c72b0ff6a61aba6f90feaf88

See more details on using hashes here.

File details

Details for the file el_std_py-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: el_std_py-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 158.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.4

File hashes

Hashes for el_std_py-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 99a99286e3075501dcdd0b12fe5f69fd3128e9ce395164da155e2a3ce155302b
MD5 3e8292c1e61f14cf686e6bdd4be923bb
BLAKE2b-256 9720402af9a8c87d19446853a4875546838ed8d80a62456eba041237d13a7a4d

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