Skip to main content

Core package for the ESPU ecosystem

Project description

ESPU

ESPU (EscapedShadows Python Utils) is a modular Python utility ecosystem built around a small core and opt-in extensions and libraries.

The core package is intentionally minimal. Functionality is added via extensions (espu-ext-*) and internal libraries (espu-lib-*), all living under the shared espu.* namespace.

The goal is to provide a clean, extensible foundation without forcing users to install everything up front.


Installation

Install the core package:

pip install espu

The core on its own provides only minimal functionality and acts primarily as an entry point and registry.


Extensions and Extras

Most functionality is provided via extensions, which can be installed using extras:

pip install espu[bezier]

This will install:

  • espu (core)
  • espu-ext-bezier
  • any required internal libraries (for example espu-lib-vector)

Extensions may depend on libraries and/or other extensions. Libraries may only depend on other libraries and never on extensions.

Multiple extras can be combined:

pip install espu[bezier,logger,wol]

Libraries

Internal libraries are reusable building blocks used by extensions or other libraries. They can also be installed explicitly if needed:

pip install espu[lib-vector]

Libraries live under the following namespace:

espu.lib.<name>


Inspecting Installed Components

The ESPU core module provides a small runtime API to inspect what components are known and which are currently installed.

from espu import core

print(core.available())     # All known official components
print(core.installed())     # Components currently installed
print(core.unknown())       # Installed but unregistered components

If core.unknown() returns any entries, it is recommended to review them carefully. Unrecognized packages inside the espu namespace may indicate unintended or potentially malicious code.


Managing Installations

The ESPU GitHub repository contains a management/ directory with helper scripts for maintaining an ESPU installation.

This folder includes:

  • a .sh script (Unix / Linux / macOS)
  • a .bat script (Windows)
  • a .py script (cross-platform)

These scripts are capable of:

  • detecting which ESPU components are currently installed
  • cleanly uninstalling all ESPU-related packages
  • upgrading to newer versions without manual package management pain

They are intended as convenience tools and are not required for normal usage although heavily recommended.


Uninstalling Extensions or Libraries

Extras are install-time only. To remove functionality, uninstall the underlying package directly:

pip uninstall espu-ext-bezier
pip uninstall espu-lib-vector

Or use one of the managing scripts mentioned above.

The core package (espu) will remain installed unless explicitly removed.


Versioning

All ESPU packages share the same version number. While this may seem unusual, it is intentional.

Using a single version across the core, extensions and libraries:

  • simplifies dependency management
  • avoids compatibility mismatches
  • allows predictable upgrades
  • reduces long-term maintenance overhead

This trade-off favors clarity and stability over fine-grained versioning.


Resources

Changelog

Documentation Please be patient as i am working on the documentation.


License

MIT License © EscapedShadows

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

espu-0.1.3.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

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

espu-0.1.3-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file espu-0.1.3.tar.gz.

File metadata

  • Download URL: espu-0.1.3.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for espu-0.1.3.tar.gz
Algorithm Hash digest
SHA256 61f7976169962dd5dde993517267b17c8cb018456c94f04c7a4fb4c6460b6afa
MD5 ecccbbad3a916ffd99da20dc41565c0f
BLAKE2b-256 914b85700bfd53f01cb38c3b5fc537029b2b7dc3fa764d50e04c979fe9ee1a45

See more details on using hashes here.

File details

Details for the file espu-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: espu-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for espu-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 869fe57c6a1908ac8735eaad6fe12c6627c8e4220054a1e1d1599f01c9c06472
MD5 d6a5170875e4b9d4811352f05133e30f
BLAKE2b-256 3cf2666fcd8b90ff1a6fa7d5ec048826bb74eb6da1c9e329a460f821ea96008b

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