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.11

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.11
File Size Uploaded
effectual-0.8.11.tar.gz 129.8 kB Details

Built distribution (wheel)

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

Total release size: 139.0 kB

Release files / effectual-0.8.11.tar.gz

Download URL effectual-0.8.11.tar.gz
Size 129.8 kB
Tags Source
SHA-256 checksum
How to use checksums
01755514b64f2d28075c6baf3c7fd7123606c54dc82cbc48e8770d2c9fa0f87c
BLAKE2b-256 checksum
How to use checksums
e3106db1a53ba6247374ebcbb6e35c2701c1f6103e02cd438c3acb711b4a59db
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.11-py3-none-any.whl

Download URL effectual-0.8.11-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e3c08395e30dc03f3e808d3965d7de3e99530677f317279c90bcfd2e60cbc31
BLAKE2b-256 checksum
How to use checksums
b5ed62ca20a8ef879c3da6f520b0cf284b1e4dab73162ec03f300cd1520e775e
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.11 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