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 in the source directory 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)
  • Python based config file for more granular builds rather then using the pyproject.toml

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 project directory and run:

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

     task build
    

Metadata

Release files for effectual 0.8.13

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.13
File Size Uploaded
effectual-0.8.13.tar.gz 66.4 kB Details

Built distribution (wheel)

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

Total release size: 75.7 kB

Release files / effectual-0.8.13.tar.gz

Download URL effectual-0.8.13.tar.gz
Size 66.4 kB
Tags Source
SHA-256 checksum
How to use checksums
883ab8eac61e4e05de459b3eeb00fc77e2213f992315291d6ccee99cdbf6943e
BLAKE2b-256 checksum
How to use checksums
133148de7c2f9c7ec60970e4af58c4a6db939ccd4de747c08068bbf10000b001
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.13-py3-none-any.whl

Download URL effectual-0.8.13-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0d0b4a7bfa1cb8356258007984c83983253753958dac03d3d77878c2dbc0b6e6
BLAKE2b-256 checksum
How to use checksums
5eddf11f4eead3183fca6aab52af597c0b6c24cf1ff512c91c64a76cb1aa9c7d
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

This release

0.8.13 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