FADES(1)
π hey bestie, it's fades(1) π
welcome to the manual page for fades, straight outta the General Commands Manual. yes the title line up top says FADES(1) and the footer says it too, and we're folding all that in right here so we can get to the good part. buckle up, this one's a banger. π
β¨ NAME β¨
fades β a system that automagically handles the virtualenvs in the cases normally found when writing scripts and simple programs, and honestly? it even helps administer big projects too. no cap. π
π SYNOPSIS π
fades [-h][--help] [-V][--version] [-v][--verbose] [-q][--quiet]
[-i][--ipython] [-d][--dependency] [-r][--requirement] [-x][--exec] [-p
version][--python=version] [--rm=UUID] [--system-site-packages]
[--virtualenv-options=options] [--pip-options=options] [--python-
options=options] [--check-updates] [--clean-unused-
venvs=max_days_to_keep] [--get-venv-dir] [--no-precheck-availability]
[-a][--autoimport] [--freeze] [-m][--module] [--avoid-pip-upgrade]
[child_program [child_options]]
so you can run fades to execute your script directly, or you can slap it in a #! at the top of your script's beginning and let it do its thing. both slay. π¦
π DESCRIPTION π
fades will automagically create a brand new virtualenv (or reuse a previous created one), install the necessary dependencies, and execute your script inside that virtualenv. the only requirement is that you execute the script with fades and also mark the required dependencies. that's it. that's the whole thing. π«Ά
the first non-option parameter (if there is one) would be then the child program to execute, and any other parameters after that get passed as is to that child script.
fades can also be executed without passing a child script to execute: in this mode it will open a Python interactive interpreter inside the created/reused virtualenv (taking dependencies from the --dependency or --requirement options). and if you give it --autoimport, it will automatically import all the installed dependencies. main character energy fr fr. β¨
and okay, plot twist: if the child_program parameter is really an URL, the script will be automatically downloaded from there β and yes it supports the most common pastebins URLs too: pastebin.com, linkode.org, gist, etc. π iconic behaviour honestly.
π OPTIONS π
-h,--helpβ show help about all the parameters and options, then quit. π-V,--versionβ show the program version plus info about the system, then quit. π-v,--verboseβ send all internal debugging lines to stderr. this is the one you want when a problem arises, it may be very useful. π-q,--quietβ don't show anything (unless it has a real problem), so the original script stderr is not polluted at all. clean vibes only. π§Ό-i,--ipythonβ runs IPython shell instead of python ones. fancy. π-d,--dependencyβ specify dependencies straight through the command line. this option can be specified multiple times (once per dependency), and each time the format isrepository::dependency. the dependency may have versions specifications, and the repository is optional (it will infer it). examples:
requests
pypi::requests > 2.3
requests<=3
git+https://github.com/kennethreitz/requests.git#egg=requests
vcs::git+https://github.com/kennethreitz/requests.git#egg=requests
see more examples below for real command line usage explanations. π
-r,--requirementβ read the dependencies from a file. format in each line is the same as dependencies specified with--dependency. this option can be specified multiple times. π-pversion,--python=versionβ select which Python version to be used; the argument can be just the number (2.7), the whole name (python2.7) or the whole path (/usr/bin/python2.7). of course, the corresponding version of Python needs to be installed in your system. π
the dependencies can be indicated in multiple places (in the Python source file, with a comment besides the import, in a requirementsfile, and/or through command line). in case of multiple definitions of the same dependency, command line overrides everything else, and requirements file overrides what is specified in the source code. periodt. π
-x,--execβ execute thechild_programin the context of the virtualenv. thechild_program, which in this case becomes a mandatory parameter, can be just the executable name (relative to the venv'sbindirectory) or an absolute path. π--rmUUID β remove a virtualenv by UUID. see the--get-venv-diroption to easily find out the UUID. ποΈ--system-site-packagesβ give the virtual environment access to the system site-packages dir. π--virtualenv-options=VIRTUALENV_OPTIONβ extra options to be supplied to virtualenv. (this option can be used multiple times) π§°--pip-options=PIP_OPTIONβ extra options to be supplied to pip. (this option can be used multiple times) π¦--python-options=PYTHON_OPTIONβ extra options to be supplied to python. (this option can be used multiple times) π--check-updatesβ will check for updates in PyPI to verify if there are new versions for the requested dependencies. if a new version is available for a dependency, it will use it (if the dependency was requested without version) or just inform which new version is available (if the dependency was requested with a specific version). π--clean-unused-venvs=MAX_DAYS_TO_KEEPβ will remove all virtualenvs that haven't been used for more thanMAX_DAYS_TO_KEEPdays. spring cleaning bestie π§Ή--get-venv-dirβ show the virtualenv base directory (which includes the virtualenv UUID) and quit. π--no-precheck-availabilityβ don't check if the packages exists in PyPI before actually try to install them. π-a,--autoimportβ automatically import the dependencies when in interactive interpreter mode (ignored otherwise). β¨--freezeFILEPATH β will operate exactly as without the command, but also it will dump the revisions of installed dependencies to the givenfilepath. π§-m,--moduleβ run library module as a script (same behaviour than Python's-mparameter). π¬--avoid-pip-upgradeβ disable the automatic pip upgrade that happens after the virtualenv is created and before the dependencies begin to be installed. π«
πΈ EXAMPLES πΈ
fades foo.py --bar
executes foo.py under fades, passing the --bar parameter to the child program, in a virtualenv with the dependencies indicated in the source code. π
fades -v foo.py
executes foo.py under fades, showing all the fades messages (verbose mode). π
fades -d dependency1 -d dependency2>3.2 foo.py --bar
executes foo.py under fades (passing the --bar parameter to it), in a virtualenv with the dependencies indicated in the source code and also dependency1 and dependency2 (any version > 3.2). π
fades -d dependency1
executes the Python interactive interpreter in a virtualenv with dependency1 installed. π
fades -r requirements.txt
executes the Python interactive interpreter in a virtualenv after installing there all dependencies taken from the requirements.txt file. π
fades -r requirements.txt -r requirements_devel.txt
executes the Python interactive interpreter in a virtualenv after installing there all dependencies taken from files requirements.txt and requirements_devel.txt. β¨
π¦ USING CONFIGURATION FILES π¦
you can also configure fades using .ini config files. fades will search config files in /etc/fades/fades.ini, the path indicated by xdg for your system (for example ~/config/fades/fades.ini) and .fades.ini. so you can have different settings at system, user and project level. layering, we love to see it. π
the config files are in .ini format. (configparser) and fades will search for a [fades] section. you have to use the same configurations that in the CLI. the only difference is with the config options with a dash β it has to be replaced with a underscore. π
check http://fades.readthedocs.org/en/latest/readme.html#setting-options-using-config-files for full examples. π
π₯ SEE ALSO π₯
development is centralized in https://github.com/PyAr/fades π
check that site for a better explanation of fades usage. go read it bestie, it's giving documentation. π
π«Ά AUTHORS π«Ά
Facundo Batista, NicolΓ‘s Demarchi (see development page for contact info). legends, honestly. π
π LICENSING π
this program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3, as published by the Free Software Foundation. π
and that's the whole page bestie!! π this was the fades(1) page from the General Commands Manual β that's the source/version vibe and the date-stamp of the manual, folded right in here for you. now go make some virtualenvs, you absolute icon. β¨π
π¦
π¦ where this page comes from
- debian bookworm: fades 9.0.1-3 Β· GPL-3.0-only
- debian trixie: fades 9.0.2-2 Β· GPL-3.0-only
- ubuntu jammy: fades 9.0.1-2 Β· GPL-3.0-only
- ubuntu noble: fades 9.0.1-3ubuntu1 Β· GPL-3.0-only
- ubuntu questing: fades 9.0.2-2
- ubuntu resolute: fades 9.0.2-2build1 Β· GPL-3.0-only
- ubuntu stonking: fades 9.0.2-2build1 Β· GPL-3.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms