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


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.0.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.0-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for espu-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4a45a71cc30249d7e0ed73ac6898ba67503d700113c9b1781f37682cb107d910
MD5 8482e49f59dd737ce258bed6868b09b5
BLAKE2b-256 954aee41df9bd1856411102b9d6be6460d1950c07badbc8694454fe3e7ed4146

See more details on using hashes here.

File details

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

File metadata

  • Download URL: espu-0.1.0-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.13.11

File hashes

Hashes for espu-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cc80b825be76da5fc4feeb8edf812322db643acc1df71caab1017fd7f54038b4
MD5 56a702e288ebe0c96c4d9533d5814d05
BLAKE2b-256 6fd447c55a226077178887e411e336a5b21664d835e27cabecf064160fca524e

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