Skip to main content

effectual

/ɪˈfek.tʃu.əl/ meaning effective and successful

Why?

Sometimes you want a single portable python file without having to make a platform specific executable or a dependency-less .pyz! Basically me trying to make Vite for python (badly) :(

When not to use this

  • The python package requires access to specific files like CustomTkinter and Pillow
  • Incredibly version specific code, for example something that won't run on a slightly different python version or operating system
  • The output bundle needs to include packages that aren't mostly written in python

Setup

Template

If you want a simple minimal setup process then just use the effectual-template

DIY

First make sure you have uv installed and updated:

uv self update

Furthermore if you haven't already created a project run:

uv init

Then to install effectual run:

uv add effectual --dev

Finally add the following lines to your pyproject.toml and configure to your heart's desire

[tool.effectual]

sourceDirectory = "./src/"
outputDirectory =  "./dist/"
outputFileName = "bundle.pyz"
minification = true
compressionLevel = 5

Note you must have a __main__.py entrypoint for this to work

Bundling

Development

To bundle in dev mode use:

uv run efec dev

This is like what esBuild does for vite

Production

To build a distributable .pyz file run:

uv run efec dist

This is like what what Rollup does for vite

To be added

  • Treeshaking
  • Rewriting some time critical parts in Rust 🚀🦀
  • Cross platform compatibility (multiple output bundles)
  • Bundling python version shebang and bytecode compilation
  • Plugin and loader system (like rollup and webpack)

Contributions

All contributions are welcome, I'm not the best in the world at project management but if you think you can add a feature or improve anything please send over a pull request!

Building the project from source

Requirements

To build the project from source you need two tools:

  1. uv
  2. TaskFile

Process

  1. CD to your effectual directory and run:

     task setup
    
  2. Then to build a distributable tar.gz and wheel:

     task build
    

Metadata

Release files for effectual 0.8.12

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

Source distribution (sdist)

Source distribution for effectual 0.8.12
File Size Uploaded
effectual-0.8.12.tar.gz 102.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for effectual 0.8.12
File Interpreter ABI Platform
effectual-0.8.12-py3-none-any.whl Python 3 none any Details

Total release size: 111.8 kB

Release files / effectual-0.8.12.tar.gz

Download URL effectual-0.8.12.tar.gz
Size 102.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d9495ab1bef3af028f32b9015197f7dd02003fe653c9e7b739a19bc823c482a7
BLAKE2b-256 checksum
How to use checksums
d70a085d56fac13556f57c8b781eaafb38f6f6befc6c2bd6c55c44d5d98402e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.18.1 {"ci":null,"cpu":"AMD64","implementation":{"name":"CPython","version":"3.11.10"},"installer":{"name":"hatch","version":"1.18.1"},"openssl_version":"OpenSSL 3.0.15 3 Sep 2024","python":"3.11.10","system":{"name":"Windows","release":"10"}} HTTPX2/2.13.1

Release files / effectual-0.8.12-py3-none-any.whl

Download URL effectual-0.8.12-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ee788c940d80d06afdf11e2fc6cd53b313ad489141e6a8fecf7d17365f4a4908
BLAKE2b-256 checksum
How to use checksums
063fb17f7f9d183413c81751c485953f458019468d64884296a09593c7e5b480
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.18.1 {"ci":null,"cpu":"AMD64","implementation":{"name":"CPython","version":"3.11.10"},"installer":{"name":"hatch","version":"1.18.1"},"openssl_version":"OpenSSL 3.0.15 3 Sep 2024","python":"3.11.10","system":{"name":"Windows","release":"10"}} HTTPX2/2.13.1

Release history Release notifications | RSS feed

0.8.13

2 release files

This release

0.8.12 This release

2 release files

0.8.10

2 release files

0.8.9

2 release files

0.8.8

2 release files

0.8.7

2 release files

0.8.6

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.12

2 release files

0.7.11

2 release files

0.7.9

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

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