vmklib


Namevmklib JSON
Version 2.0.5 PyPI version JSON
download
home_pagehttps://github.com/vkottler/vmklib
SummarySimplify project workflows by standardizing use of GNU Make.
upload_time2024-10-26 02:10:59
maintainerNone
docs_urlNone
authorVaughn Kottler
requires_python>=3.12
licenseMIT License Copyright (c) 2024 Libre Embedded Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords workflow tool make
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <!--
    =====================================
    generator=datazen
    version=3.1.4
    hash=6b34cd9966ea5866b40e45651045cb02
    =====================================
-->

# vmklib ([2.0.5](https://pypi.org/project/vmklib/))

[![python](https://img.shields.io/pypi/pyversions/vmklib.svg)](https://pypi.org/project/vmklib/)
![Build Status](https://github.com/vkottler/vmklib/workflows/Python%20Package/badge.svg)
[![codecov](https://codecov.io/gh/vkottler/vmklib/branch/master/graphs/badge.svg?branch=master)](https://codecov.io/github/vkottler/vmklib)
![PyPI - Status](https://img.shields.io/pypi/status/vmklib)
![Dependents (via libraries.io)](https://img.shields.io/librariesio/dependents/pypi/vmklib)

*Simplify project workflows by standardizing use of GNU Make.*

## Documentation

### Generated

* By [sphinx-apidoc](https://vkottler.github.io/python/sphinx/vmklib)
(What's [`sphinx-apidoc`](https://www.sphinx-doc.org/en/master/man/sphinx-apidoc.html)?)
* By [pydoc](https://vkottler.github.io/python/pydoc/vmklib.html)
(What's [`pydoc`](https://docs.python.org/3/library/pydoc.html)?)

## Python Version Support

This package is tested with the following Python minor versions:

* [`python3.12`](https://docs.python.org/3.12/)
* [`python3.13`](https://docs.python.org/3.13/)

## Platform Support

This package is tested on the following platforms:

* `ubuntu-latest`
* `macos-latest`
* `windows-latest`

# Introduction

This tool integrates with existing `Makefile`'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 Links

* [datazen](#datazen)
* [grip](#grip)
* [pypi](#pypi)
* [python](#python)
* [venv](#venv)
* [vmklib](#vmklib)
* [yaml](#yaml)
* [Dependency Graph](#dependency-graph)

# Command-line Options

```
$ ./venv3.12/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 use

```

# Targets

Note that the full invocation for a target's command is:

```
mk [options] <prefix>-<command> [ARG1=val1 ARG2=val2]
```

## datazen

Targets for use with the [datazen](https://pypi.org/project/datazen/) package.

Prefix: `dz-`

### Optional Arguments

**DZ_DIR** - Optionally override the `-C` argument.

**DZ_MANIFEST** - Optionally provide a non-default manifest file to `-m`.

**DZ_VERBOSE** - Setting this passes `-v` as an additional argument.

### Commands

**sync** - Run `dz`, executing the default target.

**clean** - Run `dz` with `-c` to clean the cache.

**describe** - Run `dz` with `-d` to describe cache contents.

**install** - Install `datazen` in the resolved virtual environment (with `pip`). This depends on a "concrete" underlying target that allows it to be installed only once.

**upgrade** - Upgrade `datazen` in the resolved virtual environment (with `pip`).

## grip

Targets for rendering [GitHub Markdown](https://docs.github.com/en/rest/reference/markdown) with [grip](https://github.com/joeyespo/grip).

Prefix: `grip-`

### Optional Arguments

**SECRETHUB_GRIP_PATH** - The full path for the `secrethub read` command to source a [GitHub personal access token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token) from, requires [secrethub](https://secrethub.io/).

**GRIP_PORT** - The `host:port` String 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.

### Commands

**check-env** - Checks that `GRIP_TOKEN` is set in the environment, errors if not.

**render** - Serve `README.md` with `grip`.

## pypi

Targets for uploading packages to [PyPI](https://pypi.org/).

Prefix: `pypi-`

### Optional Arguments

**UPLOAD_ENV** - Output file to write to for sourcing credentials.

**SECRETHUB_PYPI_PATH** - The full path for the `secrethub read` command to source a [PyPI API token](https://pypi.org/help/#apitoken) from, requires [secrethub](https://secrethub.io/).

### Commands

**check-env** - Enforces that `TWINE_USERNAME` and `TWINE_PASSWORD` are set in the environment, errors if not.

**upload** - Attempt to upload everything in `dist` to [PyPI](https://pypi.org/).

## python

Targets for executing common, [Python](https://www.python.org/) workflow tasks.

Prefix: `python-`

### Optional Arguments

**PY_LINT_ARGS** - Set to override the default, adds the `tests` directory and `PY_LINT_EXTRA_ARGS`.

**PY_WIDTH** - Override (from `79`) to set `--line-length` arguments for formatters.

**PY_LINT_EXTRA_ARGS** - Set to add additional linting arguments.

**PYTEST_ARGS** - Set to override the default, additional [pytest](https://docs.pytest.org/en/stable/) arguments.

**PYTEST_EXTRA_ARGS** - Add additional arguments to the default set.

**PYTHON_COV_PORT** - Port to host test-coverage HTML on (using `http.server`). Defaults to zero.

**PY_BUILDER** - The target name to use as a `python-upload` dependency (e.g. `python-dist` versus `python-build`). Defaults to `python-build`.

**PY_DOCS_HOST** - Host argument passed to `pydoc` module (`-n`). Defaults to `0.0.0.0`.

**PY_DOCS_PORT** - Port argument passed to `pydoc` module (`-p`). Defaults to `0`.

**PY_DOCS_EXTRA_ARGS** - Extra arguments to pass to the `pydoc` module.

### Commands

**lint** - Run [pylint](https://www.pylint.org/) and [flake8](https://flake8.pycqa.org/en/latest/) against a project's package sources. Also runs the format checkers.

**sa** - Run [mypy](http://mypy-lang.org/) against a project's package sources.

**sa-types** - Run [mypy](http://mypy-lang.org/) without checking the result and attempt to install missing type/stub packages.

**stubs** - Run [stubgen](https://mypy.readthedocs.io/en/stable/stubgen.html) against a project's package sources.

**format** - Run [black](https://pypi.org/project/black/) and [isort](https://pypi.org/project/isort/) against a project's package sources.

**format-check** - Run [black](https://pypi.org/project/black/) with the `--check` argument and [isort](https://pypi.org/project/isort/) with the `--check-only` argument.

**tags** - Create a `tags` file for the project using [ctags](https://github.com/universal-ctags/ctags) (must be installed).

**edit** - Create `tags` and then open $EDITOR in the project directory.

**test** - Run all of a project's tests with [pytest](https://docs.pytest.org/en/stable/).

**test-%** - Run project tests based on a search pattern (i.e. the `-k` option).

**view** - Attempt to open the test-coverage HTML with `$BROWSER` (environment variable).

**host-coverage** - Host test-coverage HTML locally, with the port specified by `PYTHON_COV_PORT`.

**all** - Run `lint`, `sa` and `test` in sequence.

**clean** - Remove compiled and cached files, test coverage, built package artifacts and other caches.

**dist** - Build `sdist` and `bdist_wheel` with `setup.py` in the project root.

**build** - Build the package with `python -m build`.

**dist-with-stubs** - Build `sdist` and `bdist_wheel` with `setup.py` in the project root, this also runs `stubgen` ahead of packaging so that stubs are included in the source distribution and wheel.

**upload** - Use [twine](https://pypi.org/project/twine/) to upload the built package to [PyPI](https://pypi.org/).

**editable** - Install the project's package in editable mode (`-e` option) to the virtual environment.

**docs** - Run the `pydoc` module and host HTML documentation via an arbitrary HTTP port.

**docs-%** - Run the `pydoc` module and pass the stem as an argument.

**deps** - Run `pydeps` against the project (producing [SVG](https://www.w3.org/TR/SVG2/) output).

## venv

Targets for managing [Python virtual environments](https://docs.python.org/3/library/venv.html).

Prefix: `(no prefix)`

### Optional Arguments

**PYTHON_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: `requirements` in the project root)

**REQ_FILES** - Text files to install requirements from (using `-r`), in the requirements directory. (default: `requirements.txt` and `dev_requirements.txt`)

### Commands

**venv** - Create or update the resolved virtual environment, if necessary.

**venv-clean** - Remove any virtual environments from the project root (or sub-directories).

## vmklib

Targets related to this package, itself.

Prefix: `mk-`

### Commands

**upgrade** - Upgrade (or install) `vmklib` in the resolved virtual environment.

**sys-upgrade** - Upgrade (or install) `vmklib` as a system or user package.

**header** - Print the `Makefile` header that should be used when integrating this package.

**todo** - Perform a case-insensitive search for `todo` in project directories.

## yaml

Targets for interacting with [yaml](https://yaml.org/) data (files).

Prefix: `yaml-`

### Optional Arguments

**YAMLLINT_ARGS** - Set to provide arguments to `yamllint` (such as the path to a config file).

### Commands

**yaml-lint-install** - Install [yamllint](https://yamllint.readthedocs.io/en/stable/index.html).

**yaml-lint-%** - Execute `yamllint` against `$*`.

# Internal Dependency Graph

A coarse view of the internal structure and scale of
`vmklib`'s source.
Generated using [pydeps](https://github.com/thebjorn/pydeps) (via
`mk python-deps`).

![vmklib's Dependency Graph](im/pydeps.svg)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/vkottler/vmklib",
    "name": "vmklib",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": "Vaughn Kottler <vaughn@libre-embedded.com>",
    "keywords": "workflow, tool, make",
    "author": "Vaughn Kottler",
    "author_email": "Vaughn Kottler <vaughn@libre-embedded.com>",
    "download_url": "https://files.pythonhosted.org/packages/fa/61/32e93bf3be9ee365681f2a5e9708eaae11eba4ba5c5b2d6abe8e7183a70e/vmklib-2.0.5.tar.gz",
    "platform": null,
    "description": "<!--\n    =====================================\n    generator=datazen\n    version=3.1.4\n    hash=6b34cd9966ea5866b40e45651045cb02\n    =====================================\n-->\n\n# vmklib ([2.0.5](https://pypi.org/project/vmklib/))\n\n[![python](https://img.shields.io/pypi/pyversions/vmklib.svg)](https://pypi.org/project/vmklib/)\n![Build Status](https://github.com/vkottler/vmklib/workflows/Python%20Package/badge.svg)\n[![codecov](https://codecov.io/gh/vkottler/vmklib/branch/master/graphs/badge.svg?branch=master)](https://codecov.io/github/vkottler/vmklib)\n![PyPI - Status](https://img.shields.io/pypi/status/vmklib)\n![Dependents (via libraries.io)](https://img.shields.io/librariesio/dependents/pypi/vmklib)\n\n*Simplify project workflows by standardizing use of GNU Make.*\n\n## Documentation\n\n### Generated\n\n* By [sphinx-apidoc](https://vkottler.github.io/python/sphinx/vmklib)\n(What's [`sphinx-apidoc`](https://www.sphinx-doc.org/en/master/man/sphinx-apidoc.html)?)\n* By [pydoc](https://vkottler.github.io/python/pydoc/vmklib.html)\n(What's [`pydoc`](https://docs.python.org/3/library/pydoc.html)?)\n\n## Python Version Support\n\nThis package is tested with the following Python minor versions:\n\n* [`python3.12`](https://docs.python.org/3.12/)\n* [`python3.13`](https://docs.python.org/3.13/)\n\n## Platform Support\n\nThis package is tested on the following platforms:\n\n* `ubuntu-latest`\n* `macos-latest`\n* `windows-latest`\n\n# Introduction\n\nThis tool integrates with existing `Makefile`'s with zero additional\ncontent or bootstrapping required.\n\nThere are many choices in technology or products for performing static\nanalysis on source code, building test infrastructure, or managing local\ndevelopment environments. These are only a small subset of common, developer\ntasks when building software. This package intends to aggregate recipes\n(and their dependency relationships) for these tasks so that they can be\nintegrated into a project without re-building this infrastructure. Lessons\nlearned and improvements in each project can be back-propagated everywhere\nelse with simple package updates.\n\n## Quick Links\n\n* [datazen](#datazen)\n* [grip](#grip)\n* [pypi](#pypi)\n* [python](#python)\n* [venv](#venv)\n* [vmklib](#vmklib)\n* [yaml](#yaml)\n* [Dependency Graph](#dependency-graph)\n\n# Command-line Options\n\n```\n$ ./venv3.12/bin/mk -h\n\nusage: mk [-h] [--version] [-v] [-q] [--curses] [--no-uvloop] [-C DIR]\n          [-p PREFIX] [-d] [-D DEFAULT] [-f FILE] [-c CONFIG] [-P PROJ]\n          [targets ...]\n\nSimplify project workflows by standardizing use of GNU Make.\n\npositional arguments:\n  targets               targets to execute\n\noptions:\n  -h, --help            show this help message and exit\n  --version             show program's version number and exit\n  -v, --verbose         set to increase logging verbosity\n  -q, --quiet           set to reduce output\n  --curses              whether or not to use curses.wrapper when starting\n  --no-uvloop           whether or not to disable uvloop as event loop driver\n  -C DIR, --dir DIR     execute from a specific directory\n  -p PREFIX, --prefix PREFIX\n                        a prefix to apply to all targets\n  -d, --disable-make    whether or not to allow GNU Make target resolution\n                        (default: 'False')\n  -D DEFAULT, --default DEFAULT\n                        default target to make if none is specified (default:\n                        'all')\n  -f FILE, --file FILE  file to source user-provided recipes from (default:\n                        'Makefile')\n  -c CONFIG, --config CONFIG\n                        file to source user-provided variable definitions,\n                        ahead of loading package makefiles (default:\n                        'vmklib.json')\n  -P PROJ, --proj PROJ  project name for internal variable use\n\n```\n\n# Targets\n\nNote that the full invocation for a target's command is:\n\n```\nmk [options] <prefix>-<command> [ARG1=val1 ARG2=val2]\n```\n\n## datazen\n\nTargets for use with the [datazen](https://pypi.org/project/datazen/) package.\n\nPrefix: `dz-`\n\n### Optional Arguments\n\n**DZ_DIR** - Optionally override the `-C` argument.\n\n**DZ_MANIFEST** - Optionally provide a non-default manifest file to `-m`.\n\n**DZ_VERBOSE** - Setting this passes `-v` as an additional argument.\n\n### Commands\n\n**sync** - Run `dz`, executing the default target.\n\n**clean** - Run `dz` with `-c` to clean the cache.\n\n**describe** - Run `dz` with `-d` to describe cache contents.\n\n**install** - Install `datazen` in the resolved virtual environment (with `pip`). This depends on a \"concrete\" underlying target that allows it to be installed only once.\n\n**upgrade** - Upgrade `datazen` in the resolved virtual environment (with `pip`).\n\n## grip\n\nTargets for rendering [GitHub Markdown](https://docs.github.com/en/rest/reference/markdown) with [grip](https://github.com/joeyespo/grip).\n\nPrefix: `grip-`\n\n### Optional Arguments\n\n**SECRETHUB_GRIP_PATH** - The full path for the `secrethub read` command to source a [GitHub personal access token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token) from, requires [secrethub](https://secrethub.io/).\n\n**GRIP_PORT** - The `host:port` String to serve the rendered results on.\n\n**GRIP_ENV** - Output file to write to for sourcing credentials.\n\n**GRIP_FILE** - The file to render, path is relative to project root.\n\n### Commands\n\n**check-env** - Checks that `GRIP_TOKEN` is set in the environment, errors if not.\n\n**render** - Serve `README.md` with `grip`.\n\n## pypi\n\nTargets for uploading packages to [PyPI](https://pypi.org/).\n\nPrefix: `pypi-`\n\n### Optional Arguments\n\n**UPLOAD_ENV** - Output file to write to for sourcing credentials.\n\n**SECRETHUB_PYPI_PATH** - The full path for the `secrethub read` command to source a [PyPI API token](https://pypi.org/help/#apitoken) from, requires [secrethub](https://secrethub.io/).\n\n### Commands\n\n**check-env** - Enforces that `TWINE_USERNAME` and `TWINE_PASSWORD` are set in the environment, errors if not.\n\n**upload** - Attempt to upload everything in `dist` to [PyPI](https://pypi.org/).\n\n## python\n\nTargets for executing common, [Python](https://www.python.org/) workflow tasks.\n\nPrefix: `python-`\n\n### Optional Arguments\n\n**PY_LINT_ARGS** - Set to override the default, adds the `tests` directory and `PY_LINT_EXTRA_ARGS`.\n\n**PY_WIDTH** - Override (from `79`) to set `--line-length` arguments for formatters.\n\n**PY_LINT_EXTRA_ARGS** - Set to add additional linting arguments.\n\n**PYTEST_ARGS** - Set to override the default, additional [pytest](https://docs.pytest.org/en/stable/) arguments.\n\n**PYTEST_EXTRA_ARGS** - Add additional arguments to the default set.\n\n**PYTHON_COV_PORT** - Port to host test-coverage HTML on (using `http.server`). Defaults to zero.\n\n**PY_BUILDER** - The target name to use as a `python-upload` dependency (e.g. `python-dist` versus `python-build`). Defaults to `python-build`.\n\n**PY_DOCS_HOST** - Host argument passed to `pydoc` module (`-n`). Defaults to `0.0.0.0`.\n\n**PY_DOCS_PORT** - Port argument passed to `pydoc` module (`-p`). Defaults to `0`.\n\n**PY_DOCS_EXTRA_ARGS** - Extra arguments to pass to the `pydoc` module.\n\n### Commands\n\n**lint** - Run [pylint](https://www.pylint.org/) and [flake8](https://flake8.pycqa.org/en/latest/) against a project's package sources. Also runs the format checkers.\n\n**sa** - Run [mypy](http://mypy-lang.org/) against a project's package sources.\n\n**sa-types** - Run [mypy](http://mypy-lang.org/) without checking the result and attempt to install missing type/stub packages.\n\n**stubs** - Run [stubgen](https://mypy.readthedocs.io/en/stable/stubgen.html) against a project's package sources.\n\n**format** - Run [black](https://pypi.org/project/black/) and [isort](https://pypi.org/project/isort/) against a project's package sources.\n\n**format-check** - Run [black](https://pypi.org/project/black/) with the `--check` argument and [isort](https://pypi.org/project/isort/) with the `--check-only` argument.\n\n**tags** - Create a `tags` file for the project using [ctags](https://github.com/universal-ctags/ctags) (must be installed).\n\n**edit** - Create `tags` and then open $EDITOR in the project directory.\n\n**test** - Run all of a project's tests with [pytest](https://docs.pytest.org/en/stable/).\n\n**test-%** - Run project tests based on a search pattern (i.e. the `-k` option).\n\n**view** - Attempt to open the test-coverage HTML with `$BROWSER` (environment variable).\n\n**host-coverage** - Host test-coverage HTML locally, with the port specified by `PYTHON_COV_PORT`.\n\n**all** - Run `lint`, `sa` and `test` in sequence.\n\n**clean** - Remove compiled and cached files, test coverage, built package artifacts and other caches.\n\n**dist** - Build `sdist` and `bdist_wheel` with `setup.py` in the project root.\n\n**build** - Build the package with `python -m build`.\n\n**dist-with-stubs** - Build `sdist` and `bdist_wheel` with `setup.py` in the project root, this also runs `stubgen` ahead of packaging so that stubs are included in the source distribution and wheel.\n\n**upload** - Use [twine](https://pypi.org/project/twine/) to upload the built package to [PyPI](https://pypi.org/).\n\n**editable** - Install the project's package in editable mode (`-e` option) to the virtual environment.\n\n**docs** - Run the `pydoc` module and host HTML documentation via an arbitrary HTTP port.\n\n**docs-%** - Run the `pydoc` module and pass the stem as an argument.\n\n**deps** - Run `pydeps` against the project (producing [SVG](https://www.w3.org/TR/SVG2/) output).\n\n## venv\n\nTargets for managing [Python virtual environments](https://docs.python.org/3/library/venv.html).\n\nPrefix: `(no prefix)`\n\n### Optional Arguments\n\n**PYTHON_VERSION** - The version of Python to create a virtual environment for. (default: `3.8`)\n\n**REQUIREMENTS_DIR** - The location of the directory containing requirements files. (default: `requirements` in the project root)\n\n**REQ_FILES** - Text files to install requirements from (using `-r`), in the requirements directory. (default: `requirements.txt` and `dev_requirements.txt`)\n\n### Commands\n\n**venv** - Create or update the resolved virtual environment, if necessary.\n\n**venv-clean** - Remove any virtual environments from the project root (or sub-directories).\n\n## vmklib\n\nTargets related to this package, itself.\n\nPrefix: `mk-`\n\n### Commands\n\n**upgrade** - Upgrade (or install) `vmklib` in the resolved virtual environment.\n\n**sys-upgrade** - Upgrade (or install) `vmklib` as a system or user package.\n\n**header** - Print the `Makefile` header that should be used when integrating this package.\n\n**todo** - Perform a case-insensitive search for `todo` in project directories.\n\n## yaml\n\nTargets for interacting with [yaml](https://yaml.org/) data (files).\n\nPrefix: `yaml-`\n\n### Optional Arguments\n\n**YAMLLINT_ARGS** - Set to provide arguments to `yamllint` (such as the path to a config file).\n\n### Commands\n\n**yaml-lint-install** - Install [yamllint](https://yamllint.readthedocs.io/en/stable/index.html).\n\n**yaml-lint-%** - Execute `yamllint` against `$*`.\n\n# Internal Dependency Graph\n\nA coarse view of the internal structure and scale of\n`vmklib`'s source.\nGenerated using [pydeps](https://github.com/thebjorn/pydeps) (via\n`mk python-deps`).\n\n![vmklib's Dependency Graph](im/pydeps.svg)\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2024 Libre Embedded  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Simplify project workflows by standardizing use of GNU Make.",
    "version": "2.0.5",
    "project_urls": {
        "Homepage": "https://github.com/vkottler/vmklib"
    },
    "split_keywords": [
        "workflow",
        " tool",
        " make"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "abef268843075c00b11af238368bab9ddf9ce912a51d335a2356c7df60a5db3f",
                "md5": "ab8220d2031ac90b5397004a0ab2fe61",
                "sha256": "f681341c6b3c7f55f3c524923b81522904a9c30b94c86b5571e3b489d30f8973"
            },
            "downloads": -1,
            "filename": "vmklib-2.0.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ab8220d2031ac90b5397004a0ab2fe61",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 41171,
            "upload_time": "2024-10-26T02:10:58",
            "upload_time_iso_8601": "2024-10-26T02:10:58.376790Z",
            "url": "https://files.pythonhosted.org/packages/ab/ef/268843075c00b11af238368bab9ddf9ce912a51d335a2356c7df60a5db3f/vmklib-2.0.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fa6132e93bf3be9ee365681f2a5e9708eaae11eba4ba5c5b2d6abe8e7183a70e",
                "md5": "af0106b1d9b9c48ac7fc41abf5f02743",
                "sha256": "7419ca95bb2038c6d44861b4ce370cbff8d5d1def5b4a4e9deb3c1dd6e86462b"
            },
            "downloads": -1,
            "filename": "vmklib-2.0.5.tar.gz",
            "has_sig": false,
            "md5_digest": "af0106b1d9b9c48ac7fc41abf5f02743",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 33587,
            "upload_time": "2024-10-26T02:10:59",
            "upload_time_iso_8601": "2024-10-26T02:10:59.890875Z",
            "url": "https://files.pythonhosted.org/packages/fa/61/32e93bf3be9ee365681f2a5e9708eaae11eba4ba5c5b2d6abe8e7183a70e/vmklib-2.0.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-26 02:10:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "vkottler",
    "github_project": "vmklib",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "vmklib"
}
        
Elapsed time: 9.40872s