Python helpers and utilities with no dependencies
Project description
NoDeps
Features
proj
Automatic installation of packages
PipMetaPathFinder
is a sys.meta_path
finder that automatically installs packages when they are imported.
Task dependencies
venv
runswrite
andrequirements
build
runsvenv
,completions
,docs
andclean
.tests
runsbuild
,ruff
,pytest
andtox
publish
runstests
,commit
,tag
,push
,twine
andclean
Completions
To install completions after a package is installed:
proj completions [name]
or completions [name]
Repos
To synchronize (push or pull) all repos under ~/Archive
and $HOME
run: repos --sync
or proj repos --sync
pyproject.toml
Project
Project section information in pyproject.toml
is automatically updated when Project.write()
is called, is key is not in project.
An empty pyproject.toml
is needed.
Extras
To use all extras from nodeps to your project, add the following to your pyproject.toml
:
[project.optional-dependencies]
dev = [
"nodeps[all]",
]
docs conf.py and requirements.txt
doc conf.py
, reference.md
and requirements.txt
are automatically updated when Project.write()
is called.
Makefile
.PHONY: docs tests venv
brew:
@proj $@ --command gh
browser:
@$@
build: # Build a project `venv`, `completions`, `docs` and `clean`.
@$@
clean:
@$@
commit: tests
@$@
completions:
@$@
coverage:
@proj $@
docs:
@$@
latest:
@$@
next:
@$@
nodeps:
@python3 -m pip install -q $@
publish: # runs `tests`, `commit`, `tag`, `push`, `twine` and `clean`
@$@
pyenv:
@pyenv install 3.11
@pyenv install 3.12-dev
pytest:
@proj $@
requirements:
@$@ --install
ruff:
@proj $@
secrets:
@$@
tests: # runs `build`, `ruff`, `pytest` and `tox`
@$@
tox:
@proj $@
twine:
@proj $@
venv: # runs `write` and `requirements`
@$@
.DEFAULT_GOAL := publish
Extras:
ansi
: forgetstdout
andstrip
function usingstrip-ansi
librarycli
: fortyper
to have CLI forproj
commandecho
: forecho
package usingclick
librarylog
: forlogger
function usingloguru
librarypickle
: forcache
function usingjsonpickle
andstructlog
librariespth
: forPTHBuildPy
,PTHDevelop
,PTHEasyInstall
andPTHInstallLib
classes usingsetuptools
librarypretty
: forrich
library install andicecream.ic
configurationrepo
: forRepo
class usinggitpython
libraryrequests
: forpython_latest
,python_versions
andrequest_x_api_key_json
functions that use therequests
andbeautifulsoup4
libraries
Test imports uninstalling: pip uninstall loguru beautifulsoup4 click jsonpickle strip_ansi structlog typer
PTH
Add to your setup.cfg
and <mypackage>.pth
file in your package.
[options]
cmdclass =
build_py = nodeps.PTHBuildPy
develop = nodeps.PTHDevelop
easy_install = nodeps.PTHEasyInstall
install_lib = nodeps.PTHInstallLib
[options.package_data]
mypackage =
*.pth
Add to your pyproject.toml
:
[build-system]
requires = [
"nodeps",
"setuptools >= 68.2.2, <69",
"setuptools_scm >= 8.0.3, <9",
"wheel >= 0.41.2, <1"
]
To verify that nodeps.pth
is being installed use:
python -c "import venv; print(venv.CORE_VENV_DEPS)"
Post install
File _post_install.py
is automatically executed after pip install
with the pip
install patch.
Installation
You can install nodeps via pip from PyPI:
$ pip install nodeps
You can install nodeps with extras pip from PyPI:
$ pip install nodeps[repo]
To install all extras (not including development extras):
$ pip install nodeps[all]
License
Distributed under the terms of the MIT license, nodeps is free and open source software.
Issues
If you encounter any problems, please file an issue along with a detailed description.
Credits
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.