A PEP 772 implementation
Project description
Idae
A PEP 723 implementation
Usage
Run like normal Python except that the first argument must be a path to the script.
idae example.py
The dependency specification within the Python script must be like the following (example from PEP 723):
#!/usr/bin/env idae
# /// script
# requires-python = ">=3.11"
# dependencies = [
# "requests<3",
# "rich",
# ]
# ///
import requests
from rich.pretty import pprint
resp = requests.get("https://peps.python.org/api/peps.json")
data = resp.json()
pprint([(k, v["title"]) for k, v in data.items()][:10])
If you need to pass arguments that look like options for idae to the script you want to run, use the standard UNIX convention of --. For example, let's say you have a script
# script.py
import sys
print(" ".join(sys.argv[1:]))
and you want that script to output I am --help. To run it with Idae, use
idae script.py -- I am --help
Caveats
How it works
- Detect script file
- Detect appropriate Python executable
- Use venv to create a temporary virtual environment in the user cache directory using the executable detected
- Find PEP 723
piprequirements - Install them into the virtual environment
- Run the script within the virtual environment
Run idae clean to remove all cached environments to free up space. Environments are cached per set of requirements.
Installation
You can get this project via pip
$ pip install idae
But we highly recommend you install this project using pipx
$ pipx install idae
Why the name
The scientific name for Pythons is "Pythonidae". I just removed the "Python" and we get "idae".
License
This project is licensed under the GNU GPL v3+.
In short, this means you can do anything with it (distribute, modify, sell) but if you were to publish your changes, you must make the source code and build instructions readily available.
If you are a company using this project and want an exception, email me at thatxliner@gmail.com and we can discuss.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file idae-1.1.0.tar.gz.
File metadata
- Download URL: idae-1.1.0.tar.gz
- Upload date:
- Size: 20.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58ac9ae718aae5e1af95a3835e6be65730d72330bc7ff5899e28d750cf0803aa
|
|
| MD5 |
44aaf5740f67386c5d6b30007b15c5e6
|
|
| BLAKE2b-256 |
cfcc397d61ab94ad7fd081bde108dc212e706f8606c189781507725b17c77a8c
|
File details
Details for the file idae-1.1.0-py3-none-any.whl.
File metadata
- Download URL: idae-1.1.0-py3-none-any.whl
- Upload date:
- Size: 20.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4325b876dcae48277ccb978399d7716766ba1ad866a95b4b8b17a2df15a2838
|
|
| MD5 |
53fc6029855404fb2b502efbd53e45e9
|
|
| BLAKE2b-256 |
362bdcff748dd498a073d7d8212e34d15c37c6d5d92b60e35bbcd66b77fce844
|