Skip to main content

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:

Metadata

Release files for el-std-py 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for el-std-py 0.4.0
File Size Uploaded
el_std_py-0.4.0.tar.gz 148.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for el-std-py 0.4.0
File Interpreter ABI Platform
el_std_py-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 306.7 kB

Release files / el_std_py-0.4.0.tar.gz

Download URL el_std_py-0.4.0.tar.gz
Size 148.0 kB
Tags Source
SHA-256 checksum
How to use checksums
6309dc7c47db37691f570883dbec36be2b651a7032c4ce08ef89c35d0f4d290f
BLAKE2b-256 checksum
How to use checksums
3b76acfe94749e9ce606b879b5a1a17328660437c72b0ff6a61aba6f90feaf88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.4

Release files / el_std_py-0.4.0-py3-none-any.whl

Download URL el_std_py-0.4.0-py3-none-any.whl
Size 158.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
99a99286e3075501dcdd0b12fe5f69fd3128e9ce395164da155e2a3ce155302b
BLAKE2b-256 checksum
How to use checksums
9720402af9a8c87d19446853a4875546838ed8d80a62456eba041237d13a7a4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.4

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page