Noxmake is a nox wrapper for automatic project file generation.
Project description
Readme
About noxmake
Noxmake is a nox wrapper for automatic project file generation.
Requirements
- Python >= 3.12
- git
Installation
To install noxmake, simply execute:
$ pip install noxmake
Getting Started
Create and costumize your project
Create a project
$ noxmake -- --license "GPL-3.0+" --version-scm --auto-deps --with-black --with-codespell --with-mypy --with-flake8 --with-gitcliff --auto-baseline --project-line-lenght 200 --project-description "Noxmake is a nox wrapper for automatic project file generation."
NOTE: project config is saved in the .noxmake_cfg file
Download a template file to costumize it:
$ noxmake -s README.md.an
Force rewrite your project file with local template
$ noxmake -s README.md -- -f --only-local
Generate your first project release
Create your repository
$ git init
Commit your project files
$ git add . && git commit -m "add: initial commit" .
Launch project default sessions
$ nox
Finalize project
$ nox -s finalize
Generate the first release
$ nox -s release
Getting help
$ noxmake --help
usage: noxmake [-h] [--version] [-l] [--json] [-s [SESSIONS ...]] [-p [PYTHONS ...]] [-k KEYWORDS] [-t [TAGS ...]] [-v] [-ts]
[-db {conda,mamba,micromamba,virtualenv,venv,uv,none}] [-fb {conda,mamba,micromamba,virtualenv,venv,uv,none}] [--no-venv]
[--reuse-venv {yes,no,always,never}] [-r] [-N] [-R] [-f NOXFILE] [--envdir ENVDIR] [--extra-pythons [EXTRA_PYTHONS ...]] [-P [FORCE_PYTHONS ...]]
[-x] [--no-stop-on-first-error] [--error-on-missing-interpreters] [--no-error-on-missing-interpreters] [--error-on-external-run]
[--no-error-on-external-run] [--install-only] [--no-install] [--report REPORT] [--non-interactive] [--nocolor] [--forcecolor]
...
Noxmake is a nox wrapper for automatic project file generation.
General options:
These are general arguments used when invoking Nox.
-h, --help Show this help message and exit.
--version Show the Nox version and exit.
posargs Arguments following ``--`` that are passed through to the session(s).
-f NOXFILE, --noxfile NOXFILE
Location of the Python file containing Nox sessions.
Sessions options:
These arguments are used to control which Nox session(s) to execute.
-l, --list-sessions, --list
List all available sessions and exit.
--json JSON output formatting. Requires list-sessions currently.
-s [SESSIONS ...], -e [SESSIONS ...], --sessions [SESSIONS ...], --session [SESSIONS ...]
Which sessions to run. By default, all sessions will run.
-k KEYWORDS, --keywords KEYWORDS
Only run sessions that match the given expression.
-t [TAGS ...], --tags [TAGS ...]
Only run sessions with the given tags.
Python options:
These arguments are used to control which Python version(s) to use.
-p [PYTHONS ...], --pythons [PYTHONS ...], --python [PYTHONS ...]
Only run sessions that use the given python interpreter versions.
--extra-pythons [EXTRA_PYTHONS ...], --extra-python [EXTRA_PYTHONS ...]
Additionally, run sessions using the given python interpreter versions.
-P [FORCE_PYTHONS ...], --force-pythons [FORCE_PYTHONS ...], --force-python [FORCE_PYTHONS ...]
Run sessions with the given interpreters instead of those listed in the Noxfile. This is a shorthand for ``--python=X.Y --extra-
python=X.Y``. It will also work on sessions that don't have any interpreter parametrized.
Environment options:
These arguments are used to control Nox's creation and usage of virtual environments.
-db {conda,mamba,micromamba,virtualenv,venv,uv,none}, --default-venv-backend {conda,mamba,micromamba,virtualenv,venv,uv,none}
Virtual environment backend to use by default for Nox sessions, this is ``'virtualenv'`` by default but any of ``['conda', 'mamba',
'micromamba', 'virtualenv', 'venv', 'uv', 'none']`` are accepted.
-fb {conda,mamba,micromamba,virtualenv,venv,uv,none}, --force-venv-backend {conda,mamba,micromamba,virtualenv,venv,uv,none}
Virtual environment backend to force-use for all Nox sessions in this run, overriding any other venv backend declared in the Noxfile and
ignoring the default backend. Any of ``['conda', 'mamba', 'micromamba', 'virtualenv', 'venv', 'uv', 'none']`` are accepted.
--no-venv Runs the selected sessions directly on the current interpreter, without creating a venv. This is an alias for '--force-venv-backend none'.
--reuse-venv {yes,no,always,never}
Controls existing virtualenvs recreation. This is ``'no'`` by default, but any of ``('yes', 'no', 'always', 'never')`` are accepted.
-r, --reuse-existing-virtualenvs
This is an alias for '--reuse-venv=yes|no'.
-N, --no-reuse-existing-virtualenvs
Disables --reuse-existing-virtualenvs if it is enabled in the Noxfile.
-R Reuse existing virtualenvs and skip package re-installation. This is an alias for '--reuse-existing-virtualenvs --no-install'.
--envdir ENVDIR Directory where Nox will store virtualenvs, this is ``.nox`` by default.
Execution options:
These arguments are used to control execution of sessions.
-x, --stop-on-first-error
Stop after the first error.
--no-stop-on-first-error
Disables --stop-on-first-error if it is enabled in the Noxfile.
--error-on-missing-interpreters
Error instead of skipping sessions if an interpreter can not be located.
--no-error-on-missing-interpreters
Disables --error-on-missing-interpreters if it is enabled in the Noxfile.
--error-on-external-run
Error if run() is used to execute a program that isn't installed in a session's virtualenv.
--no-error-on-external-run
Disables --error-on-external-run if it is enabled in the Noxfile.
--install-only Skip session.run invocations in the Noxfile.
--no-install Skip invocations of session methods for installing packages (session.install, session.conda_install, session.run_install) when a virtualenv
is being reused.
--non-interactive Force session.interactive to always be False, even in interactive sessions.
Reporting options:
These arguments are used to control Nox's reporting during execution.
-v, --verbose Logs the output of all commands run including commands marked silent.
-ts, --add-timestamp Adds a timestamp to logged output.
--report REPORT Output a report of all sessions to the given filename.
--nocolor, --no-color
Disable all color output.
--forcecolor, --force-color
Force color output, even if stdout is not an interactive terminal.
Noxmake global session options.
options:
-f, --force Always generate files even if the file already exists.
--template uri Uri of the project template.
Available scheme:[pymod|file|https|http]
/!\ Experimental, uses it only when you trust the source
--only-local Uses only local template
--auto-deps Search for project dependencies.
See pipreqs for more information.
--auto-deps-mode {>=,==,no}
Enable dynamic versioning (default=">=")
cf: pipreqs --mode.
--auto-deps-local Use only local package
cf: pipreqs --use-local.
--license LICENSE Project license (default=GPL-3.0-only).
--devstatus DEVSTATUS
Project development status (default=proto).
--build-backend BUILD_BACKEND
Project build-backend (default=setuptools).
--srcdir SRCDIR Path to the project source directory (default=src).
--testdir TESTDIR Path to the project test directory (default=tests).
--docdir DOCDIR Path to the project documentation directory (default=doc).
--changelog CHANGELOG
Path to the project change log file (default=CHANGELOG.md).
-k KEYWORDS, --keywords KEYWORDS
Project keywords
--auto-baseline Request noxmake to generate the baseline name.
Uses wonderworld and namemaker packages.
--no-namespace Disable namespace finder (setupttools).
--project-_key_ VALUE
Set a pyproject.project._key_ to VALUE.
--define [DEFINES] Use this option to define pre-processing constants,
if no value is given, the constant is set to true
samples:
noxmake -- -k name1
noxmake -- k name1=value
usage: " ... {{pyproject.tool.noxmake.name1 }} ... ".
--undef DEFINES Defines a constant and sets its value to false.
--version-scm Uses scm versioning.
--version-dynamic Uses dynamic versioning.
--with-all Sets all variables beginning with "with" to true.
--with-_tool_ Activates a tool in the build process.
sample: noxmake -- --with-mypy
usage: "... {%if options.with_mypy %} ..."
--without-_tool_ Deactivates a tool.
--using-_feature_ Enables a tool feature.
sample: noxmake -- --with-coverage --using-coverage-branch.
--not-using-_feature_
Disables a feature.
License
GNU General Public License v3.0 or later
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.
Source Distribution
noxmake-0.1.1.tar.gz
(103.2 kB
view details)
Built Distribution
noxmake-0.1.1-py3-none-any.whl
(98.6 kB
view details)
File details
Details for the file noxmake-0.1.1.tar.gz
.
File metadata
- Download URL: noxmake-0.1.1.tar.gz
- Upload date:
- Size: 103.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd2fb0d91c2807818e8ff3b1cedf54ea9d5a28353b835ff7d22cae7be88db591 |
|
MD5 | 5794f62b61c8e63a5f33e71ec85772cc |
|
BLAKE2b-256 | 2106b3247bf4a4ee8d7f0c8636eeeb256bbdbc09478080f36aa1c361ab2bfd84 |
File details
Details for the file noxmake-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: noxmake-0.1.1-py3-none-any.whl
- Upload date:
- Size: 98.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7ace329854b2af96e2e6014aa0ee1b8ca4c485aedd0c79fd3de8b0b2c2d8283 |
|
MD5 | f15e3e0fed64fe717a1708b3565099d9 |
|
BLAKE2b-256 | 76b662a52391dddee0857956514fb983399612e8a92aca523fff50fc1addac52 |