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
- 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.
- While the
el-std-pyis namely related to myel-std-cpplibrary, 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 withasyncioel.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 pathsel.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 eventsel.lifetime: Contextual lifetime management for registries (Any object that requires to register something, like aCallbackManagerorObservable)el.datastore: Zero-setup database-like data and configuration file handler that uses pydantic do define data models andasyncioto 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 withasyncioel.time_utils: Utilities for working with dates and timesel.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 withtypingel.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 withcustomtkinterel.widgets: Additionalcustomtkinterwidgetsel.tkml: Tkinter Markup Language: A more user-friendly way to define hierarchical UI with Tk/CTk widgetsel.mpl_utils: Utilities for working withmatplotlibel.assets: UI assest manager and some built-in assets
Debugging/Development
el.analysis: Utilities for analyzing code performanceel.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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6309dc7c47db37691f570883dbec36be2b651a7032c4ce08ef89c35d0f4d290f
|
|
| MD5 |
83db38c1e8960c99ade6b87f43de6291
|
|
| BLAKE2b-256 |
3b76acfe94749e9ce606b879b5a1a17328660437c72b0ff6a61aba6f90feaf88
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99a99286e3075501dcdd0b12fe5f69fd3128e9ce395164da155e2a3ce155302b
|
|
| MD5 |
3e8292c1e61f14cf686e6bdd4be923bb
|
|
| BLAKE2b-256 |
9720402af9a8c87d19446853a4875546838ed8d80a62456eba041237d13a7a4d
|