Package: vmklib
vmklib (2.0.0)Simplify project workflows by standardizing use of GNU Make.DocumentationGeneratedBysphinx-apidoc(What'ssphinx-apidoc?)Bypydoc(What'spydoc?)Python Version SupportThis package is tested with the following Python minor versions:python3.10python3.11python3.12Platform SupportThis package is tested on the following platforms:ubuntu-latestmacos-latestwindows-latestIntroductionThis tool integrates with existingMakefile's with zero additional
content or bootstrapping required.There are many choices in technology or products for performing static
analysis on source code, building test infrastructure, or managing local
development environments. These are only a small subset of common, developer
tasks when building software. This package intends to aggregate recipes
(and their dependency relationships) for these tasks so that they can be
integrated into a project without re-building this infrastructure. Lessons
learned and improvements in each project can be back-propagated everywhere
else with simple package updates.Quick LinksdatazengrippypipythonvenvvmklibyamlDependency GraphCommand-line Options$ ./venv3.11/bin/mk -h

usage: mk [-h] [--version] [-v] [-q] [--curses] [--no-uvloop] [-C DIR]
          [-p PREFIX] [-d] [-D DEFAULT] [-f FILE] [-c CONFIG] [-P PROJ]
          [targets ...]

Simplify project workflows by standardizing use of GNU Make.

positional arguments:
  targets               targets to execute

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  -v, --verbose         set to increase logging verbosity
  -q, --quiet           set to reduce output
  --curses              whether or not to use curses.wrapper when starting
  --no-uvloop           whether or not to disable uvloop as event loop driver
  -C DIR, --dir DIR     execute from a specific directory
  -p PREFIX, --prefix PREFIX
                        a prefix to apply to all targets
  -d, --disable-make    whether or not to allow GNU Make target resolution
                        (default: 'False')
  -D DEFAULT, --default DEFAULT
                        default target to make if none is specified (default:
                        'all')
  -f FILE, --file FILE  file to source user-provided recipes from (default:
                        'Makefile')
  -c CONFIG, --config CONFIG
                        file to source user-provided variable definitions,
                        ahead of loading package makefiles (default:
                        'vmklib.json')
  -P PROJ, --proj PROJ  project name for internal variable useTargetsNote that the full invocation for a target's command is:mk [options] <prefix>-<command> [ARG1=val1 ARG2=val2]datazenTargets for use with thedatazenpackage.Prefix:dz-Optional ArgumentsDZ_DIR- Optionally override the-Cargument.DZ_MANIFEST- Optionally provide a non-default manifest file to-m.DZ_VERBOSE- Setting this passes-vas an additional argument.Commandssync- Rundz, executing the default target.clean- Rundzwith-cto clean the cache.describe- Rundzwith-dto describe cache contents.install- Installdatazenin the resolved virtual environment (withpip). This depends on a "concrete" underlying target that allows it to be installed only once.upgrade- Upgradedatazenin the resolved virtual environment (withpip).gripTargets for renderingGitHub Markdownwithgrip.Prefix:grip-Optional ArgumentsSECRETHUB_GRIP_PATH- The full path for thesecrethub readcommand to source aGitHub personal access tokenfrom, requiressecrethub.GRIP_PORT- Thehost:portString to serve the rendered results on.GRIP_ENV- Output file to write to for sourcing credentials.GRIP_FILE- The file to render, path is relative to project root.Commandscheck-env- Checks thatGRIP_TOKENis set in the environment, errors if not.render- ServeREADME.mdwithgrip.pypiTargets for uploading packages toPyPI.Prefix:pypi-Optional ArgumentsUPLOAD_ENV- Output file to write to for sourcing credentials.SECRETHUB_PYPI_PATH- The full path for thesecrethub readcommand to source aPyPI API tokenfrom, requiressecrethub.Commandscheck-env- Enforces thatTWINE_USERNAMEandTWINE_PASSWORDare set in the environment, errors if not.upload- Attempt to upload everything indisttoPyPI.pythonTargets for executing common,Pythonworkflow tasks.Prefix:python-Optional ArgumentsPY_LINT_ARGS- Set to override the default, adds thetestsdirectory andPY_LINT_EXTRA_ARGS.PY_WIDTH- Override (from79) to set--line-lengtharguments for formatters.PY_LINT_EXTRA_ARGS- Set to add additional linting arguments.PYTEST_ARGS- Set to override the default, additionalpytestarguments.PYTEST_EXTRA_ARGS- Add additional arguments to the default set.PYTHON_COV_PORT- Port to host test-coverage HTML on (usinghttp.server). Defaults to zero.PY_BUILDER- The target name to use as apython-uploaddependency (e.g.python-distversuspython-build). Defaults topython-build.PY_DOCS_HOST- Host argument passed topydocmodule (-n). Defaults to0.0.0.0.PY_DOCS_PORT- Port argument passed topydocmodule (-p). Defaults to0.PY_DOCS_EXTRA_ARGS- Extra arguments to pass to thepydocmodule.Commandslint- Runpylintandflake8against a project's package sources. Also runs the format checkers.sa- Runmypyagainst a project's package sources.sa-types- Runmypywithout checking the result and attempt to install missing type/stub packages.stubs- Runstubgenagainst a project's package sources.format- Runblackandisortagainst a project's package sources.format-check- Runblackwith the--checkargument andisortwith the--check-onlyargument.tags- Create atagsfile for the project usingctags(must be installed).edit- Createtagsand then open $EDITOR in the project directory.test- Run all of a project's tests withpytest.test-%- Run project tests based on a search pattern (i.e. the-koption).view- Attempt to open the test-coverage HTML with$BROWSER(environment variable).host-coverage- Host test-coverage HTML locally, with the port specified byPYTHON_COV_PORT.all- Runlint,saandtestin sequence.clean- Remove compiled and cached files, test coverage, built package artifacts and other caches.dist- Buildsdistandbdist_wheelwithsetup.pyin the project root.build- Build the package withpython -m build.dist-with-stubs- Buildsdistandbdist_wheelwithsetup.pyin the project root, this also runsstubgenahead of packaging so that stubs are included in the source distribution and wheel.upload- Usetwineto upload the built package toPyPI.editable- Install the project's package in editable mode (-eoption) to the virtual environment.docs- Run thepydocmodule and host HTML documentation via an arbitrary HTTP port.docs-%- Run thepydocmodule and pass the stem as an argument.deps- Runpydepsagainst the project (producingSVGoutput).venvTargets for managingPython virtual environments.Prefix:(no prefix)Optional ArgumentsPYTHON_VERSION- The version of Python to create a virtual environment for. (default:3.8)REQUIREMENTS_DIR- The location of the directory containing requirements files. (default:requirementsin the project root)REQ_FILES- Text files to install requirements from (using-r), in the requirements directory. (default:requirements.txtanddev_requirements.txt)Commandsvenv- Create or update the resolved virtual environment, if necessary.venv-clean- Remove any virtual environments from the project root (or sub-directories).vmklibTargets related to this package, itself.Prefix:mk-Commandsupgrade- Upgrade (or install)vmklibin the resolved virtual environment.sys-upgrade- Upgrade (or install)vmklibas a system or user package.header- Print theMakefileheader that should be used when integrating this package.todo- Perform a case-insensitive search fortodoin project directories.yamlTargets for interacting withyamldata (files).Prefix:yaml-Optional ArgumentsYAMLLINT_ARGS- Set to provide arguments toyamllint(such as the path to a config file).Commandsyaml-lint-install- Installyamllint.yaml-lint-%- Executeyamllintagainst$*.Internal Dependency GraphA coarse view of the internal structure and scale ofvmklib's source.
Generated usingpydeps(viamk python-deps).