Code Monkey home page Code Monkey logo

validate-pyproject's Introduction

Project generated with PyScaffold

Built Status

ReadTheDocs

Coveralls

PyPI-Server

validate-pyproject

Automated checks on pyproject.toml powered by JSON Schema definitions

Important

This project is experimental and under active development. Issue reports and contributions are very welcome.

Description

With the approval of PEP 517 and PEP 518, the Python community shifted towards a strong focus on standardisation for packaging software, which allows more freedom when choosing tools during development and make sure packages created using different technologies can interoperate without the need for custom installation procedures.

This shift became even more clear when PEP 621 was also approved, as a standardised way of specifying project metadata and dependencies.

validate-pyproject was born in this context, with the mission of validating pyproject.toml files, and make sure they are compliant with the standards and PEPs. Behind the scenes, validate-pyproject relies on JSON Schema files, which, in turn, are also a standardised way of checking if a given data structure complies with a certain specification.

Usage

The easiest way of using validate-pyproject is via CLI. To get started, you need to install the package, which can be easily done using pipx_:

$ pipx install 'validate-pyproject[all]'

Now you can use validate-pyproject as a command line tool:

# in you terminal
$ validate-pyproject --help
$ validate-pyproject path/to/your/pyproject.toml

You can also use validate-pyproject in your Python scripts or projects:

# in your python code
from validate_pyproject import api, errors

# let's assume that you have access to a `loads` function
# responsible for parsing a string representing the TOML file
# (you can check the `toml` or `tomli` projects for that)
pyproject_as_dict = loads(pyproject_toml_str)

# now we can use validate-pyproject
validator = api.Validator()

try:
    validator(pyproject_as_dict)
except errors.ValidationError as ex:
    print(f"Invalid Document: {ex.message}")

To do so, don't forget to add it to your virtual environment or specify it as a project or library dependency.

Note

When you install validate-pyproject[all], the packages tomli, packaging and trove-classifiers will be automatically pulled as dependencies. tomli is a lightweight parser for TOML, while packaging and trove-classifiers are used to validate aspects of PEP 621.

If you are only interested in using the Python API and wants to keep the dependencies minimal, you can also install validate-pyproject (without the [all] extra dependencies group).

If you don't install trove-classifiers, validate-pyproject will try to download a list of valid classifiers directly from PyPI (to prevent that, set the environment variable NO_NETWORK or VALIDATE_PYPROJECT_NO_NETWORK).

On the other hand, if validate-pyproject cannot find a copy of packaging in your environment, the validation will fail.

More details about validate-pyproject and its Python API can be found in our docs, which includes a description of the used JSON schemas, instructions for using it in a pre-compiled way_ and information about extending the validation with your own plugins.

Tip

If you consider contributing to this project, have a look on our contribution guides.

Plugins

The validate-pyproject-schema-store plugin has a vendored copy of pyproject.toml related SchemaStore entries. You can even install this using the [store] extra:

$ pipx install 'validate-pyproject[all,store]'

Some of the tools in SchemaStore also have integrated validate-pyproject plugins, like cibuildwheel and scikit-build-core. However, unless you want to pin an exact version of those tools, the SchemaStore copy is lighter weight than installing the entire package.

If you want to write a custom plugin for your tool, please consider also contributing a copy to SchemaStore.

pre-commit

validate-pyproject can be installed as a pre-commit hook:

---
repos:
  - repo: https://github.com/abravalheri/validate-pyproject
    rev: <insert current version here>
    hooks:
      - id: validate-pyproject
      # Optional extra validations from SchemaStore:
      additional_dependencies: ["validate-pyproject-schema-store[all]"]

By default, this pre-commit hook will only validate the pyproject.toml file at the root of the project repository. You can customize that by defining a custom regular expression pattern using the files parameter.

You can also use pre-commit autoupdate to update to the latest stable version of validate-pyproject (recommended).

You can also use validate-pyproject-schema-store as a pre-commit hook, which allows pre-commit to pin and update that instead of validate-pyproject itself.

Note

This project and its sister project ini2toml were initially created in the context of PyScaffold, with the purpose of helping migrating existing projects to PEP 621-style configuration when it is made available on setuptools. For details and usage information on PyScaffold see https://pyscaffold.org/.

validate-pyproject's People

Contributors

abravalheri avatar akx avatar avasam avatar cclauss avatar dependabot[bot] avatar felixonmars avatar henryiii avatar hugovk avatar hukkin avatar pdecat avatar pre-commit-ci[bot] avatar wwuck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

validate-pyproject's Issues

Speed up `--store` support

Thanks for providing this useful tool.

I looked into validating pyproject.toml with a cibuildwheel section. A schema for the cibuildwheel section is included in https://json.schemastore.org/pyproject.json (as of pypa/cibuildwheel#1622), but not in the JSON schema shipped with validate-pyproject. So I went to use the new --store command-line option in my pre-commit configuration like this:

- repo: https://github.com/abravalheri/validate-pyproject
  rev: main
  hooks:
    - id: validate-pyproject
      args:
        # Load an up-to-date JSON schema for pyproject.toml which references
        # the tool schemas used within pyproject.toml.
        - "--store"
        - "https://json.schemastore.org/pyproject.json"

This approach works beautifully on a technical level (i.e., the cibuildwheel tool section is validated correctly), but comes at a cost: running validate-pyproject now takes multiple seconds.

$ time validate-pyproject --store https://json.schemastore.org/pyproject.json pyproject.toml
Valid file: pyproject.toml

________________________________________________________
Executed in    8.15 secs    fish           external
   usr time    1.08 secs  931.00 micros    1.08 secs
   sys time    0.11 secs  116.00 micros    0.11 secs


$ time validate-pyproject pyproject.toml
Valid file: pyproject.toml

________________________________________________________
Executed in  148.49 millis    fish           external
   usr time  132.08 millis    1.26 millis  130.82 millis
   sys time   16.51 millis    0.16 millis   16.35 millis

I haven't done any profiling, but I would assume downloading the individual schemas at least contributes to the cost.

@henryiii, is this something you're seeing as well, and is there already a plan to address this (caching?)

0.7.1: sphinx warnings

Looks like latest sphins shows some warnings:

+ /usr/bin/python3 setup.py build_sphinx -b man --build-dir build/sphinx
running build_sphinx
Running Sphinx v4.5.0
Creating file /home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/api/validate_pyproject.rst.
Creating file /home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/api/validate_pyproject.plugins.rst.
Creating file /home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/api/validate_pyproject.pre_compile.rst.
Creating file /home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/api/validate_pyproject.vendoring.rst.
Creating file /home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/api/modules.rst.
loading configurations for validate-pyproject 0.7.1 ...
making output directory... done
loading intersphinx inventory from https://www.sphinx-doc.org/en/master/objects.inv...
loading intersphinx inventory from https://docs.python.org/3.8/objects.inv...
loading intersphinx inventory from https://matplotlib.org/objects.inv...
loading intersphinx inventory from https://numpy.org/doc/stable/objects.inv...
loading intersphinx inventory from https://scikit-learn.org/stable/objects.inv...
loading intersphinx inventory from https://pandas.pydata.org/pandas-docs/stable/objects.inv...
loading intersphinx inventory from https://docs.scipy.org/doc/scipy/reference/objects.inv...
loading intersphinx inventory from https://setuptools.pypa.io/en/stable/objects.inv...
loading intersphinx inventory from https://pyscaffold.org/en/stable/objects.inv...
intersphinx inventory has moved: https://docs.scipy.org/doc/scipy/reference/objects.inv -> https://docs.scipy.org/doc/scipy/objects.inv
intersphinx inventory has moved: https://matplotlib.org/objects.inv -> https://matplotlib.org/stable/objects.inv
[autosummary] generating autosummary for: api/modules.rst, api/validate_pyproject.plugins.rst, api/validate_pyproject.pre_compile.rst, api/validate_pyproject.rst, api/validate_pyproject.vendoring.rst, authors.rst, changelog.rst, contributing.rst, dev-guide.rst, embedding.rst, faq.rst, index.rst, json-schemas.rst, license.rst, readme.rst, schemas.rst
building [mo]: targets for 0 po files that are out of date
building [man]: all manpages
updating environment: [new config] 16 added, 0 changed, 0 removed
reading sources... [100%] schemas
CONTRIBUTING.rst:243: CRITICAL: Title level inconsistent:

Releases
--------
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
writing... validate-pyproject.1 { readme schemas embedding faq contributing dev-guide license authors changelog api/modules api/validate_pyproject api/validate_pyproject.plugins api/validate_pyproject.pre_compile api/validate_pyproject.vendoring } /home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table row spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
/home/tkloczko/rpmbuild/BUILD/validate-pyproject-0.7.1/docs/schemas.rst:: WARNING: "table cell spanning" not supported
done
build succeeded, 291 warnings.

`_find_and_load_licence()` in pre-compile might be unsafe

Basically, what I'm thinking of is:

>>> [f for f in importlib.metadata.files("validate-pyproject") if f.stem == 'LICENSE']
[PackagePath('validate_pyproject-0.9.post1.dev3+g3b0db8c.dist-info/LICENSE.txt'),
 PackagePath('validate_pyproject/_vendor/fastjsonschema/LICENSE')]

i.e. both the package license file and the vendored fastjsonschema's LICENSE file matches this:

def _find_and_load_licence(files: Optional[Sequence[_M.PackagePath]]) -> str:
    if files is None:  # pragma: no cover
        raise ImportError("Could not find LICENSE for package")
    try:
        return next(f for f in files if f.stem.upper() == "LICENSE").read_text("UTF-8")

and I think it might be UB that the license file from dist-info is returned first.

That said, in Gentoo we remove the LICENSE* files from .dist-info since they are redundant to our license metadata, so this doesn't work correctly at all. Could you perhaps install the license file directly as part of package data, and use it similarly to how FJS's license is grabbed?

Validate fields pointing to paths

Fields allowing for files are:

  1. readme
  2. license

It would be very nice of validate-pyproject, if it could raise when one of these files are not accessible. It just happened to me during transitioning from RST to Markdown for the readme, that I forgot to adopt this. And I used validate-pyproject as a pre-commit hook.

I'd also be happy to submit a PR for this.

0.9 fails to install on windows python 3.10

Noticed this problem when trying to build pre-commit hooks:

    FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\XXX\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\Local\\pypa\\virtualenv\\wheel\\3.10\\image\\1\\CopyPipInstall\\setuptools-62.1.0-py3-none-any\\setuptools\\config\\_validate_pyproject\\extra_validations.py'

Downgrading to 0.8.1 solved the problem.

schema-store: Failing on valid hatch toml

Hello!

Version: v0.17. The pre-commit configuration is the same as the README.

pyproject.toml section that is causing trouble:

[tool.hatch.env]
requires = ["hatch-pip-compile"]

pre-commit failure:

Validate pyproject.toml..................................................Failed
- hook id: validate-pyproject
- exit code: 1

Invalid file: pyproject.toml
[ERROR] `tool.hatch` must not contain {'env'} properties

If I comment out additional_dependencies: ["validate-pyproject-schema-store[all]"] the check does not fail.

License Validation uses older standard

As per latest PEP0639 deprecates subkeys in license - https://peps.python.org/pep-0639/#deprecate-license-key-table-subkeys

This causes the following error in projects that adopted the new standard. (Especially the ones that adopted Hatch)

$ validate-pyproject pyproject.toml                          
Invalid file: pyproject.toml
[ERROR] `project.license` must be valid exactly by one definition (2 matches found):

    - keys:
        'file': {type: string}
      required: ['file']
    - keys:
        'text': {type: string}
      required: ['text']

As per PEP document:

Table values for the license key in the [project] table, including the text and file table subkeys, are now deprecated. If the new license-files key is present, build tools MUST raise an error if the license key is defined and has a value other than a single top-level string.

JSON Schema string is inconsistent (no trailing #)

In trying to support SchemaStore and validate-pyproject, I've run into a really annoying inconsistency. SchemaStore's JSON validator checks that the $schema property is a valid schema:

Valid schemas: [
    "https://json-schema.org/draft/2020-12/schema",
    "https://json-schema.org/draft/2019-09/schema",
    "http://json-schema.org/draft-07/schema#"
    "http://json-schema.org/draft-06/schema#",
    "http://json-schema.org/draft-04/schema#",
    "http://json-schema.org/draft-03/schema#"
]

But validate-pyproject requires "http://json-schema.org/draft-07/schema" (since fastjsonschema requires a subschema matches the parent schema exactly), so all plugins currently require the # not be present.

As far as I can tell, SchemaStore is correct - the correct spelling is with the trailing #, it was not removed until draft 2019-09 moved to https. And there are already 700+ schemas on SchemaStore there using it. :)

If you agree that the trailing # is correct, I think it would be easy to migrate, since validate-pyproject gets to pre-process schemas that go to fastjsonschema. The steps would be:

  • Move all schemas stored in validate-pyproject to "http://json-schema.org/draft-07/schema#"
  • Check all schemas loaded via the entry points to see if they have "http://json-schema.org/draft-07/schema". If they do, make a shallow copy and modify the $schema to have the trailing #.
  • Eventually produce a warning if a plugin has the incorrect schema.

Doing it sooner rather than later would be ideal, so more plugins don't keep appearing with the missing #.

If we didn't change this, then we could still handle this in reverse when loading a plugin, we could strip the # instead, so it's not a blocker for SchemaStore support.

Thoughts?

Report likely mistakes as warnings

My pyproject.toml contained an entry in authors that was technically not an error, but it would have been nice to get a warning about:

[project]
name = "bad-authors"
version = "0.1.0"
authors = [
    {author = "Foo Bar", email = "[email protected]"}
]

(author should have been name).

This is not an error since only one of name and email are required as per
https://packaging.python.org/en/latest/specifications/declaring-project-metadata/#authors-maintainers, but maybe it could be a warning if an unknown "extra" key has been found.

vendoring of fastjsonschema

Hi,

as pdm-pep517 has or will finally morphing into pdm-backend it uses a vendored version of validate-pyproject.

Currently I'm trying to package pdm-backend for Debian and if possible we try to avoid vendored stuff as it's hard to maintain from a security perspective. Now even validate-pyproject uses also a vendored package fastjsonschema.

It's possible to use vendoring in Debian as long all is DFSG compliance, but .... 🥲
What are the reasons for vendoring fastjsonschema in validate-pyproject? So far I analyzed the version used in validate-pyproject is based on the not recent version the project of fastjsonschema has moved to. Isn't it possible to drop the vendoring and depend on the native package?

I've tried to get the tests adjusted to use a system based version of fastjsonschema but failed. Using non vendored package would make the life of distro packagers more easy.

Thanks!

CLI hangs when no arguments provided

Perhaps foolishly, I expected validate-pyproject to auto-detect my pyproject.toml inside the current working directory; but pipx run validate-pyproject[all] hangs indefinitely, presumably waiting for stdin (line 219 of cli.py).

Support for SchemaStore

Would it make sense to support SchemaStore? Currently, there's only one subschema (Ruff), though I'm asking to see if Poetry can be pulled out as a subschema (currently part of the core schema for pyproject.toml) and there's a proposed addition for Hatch. I'm hoping to add my schemas there too, for VSCode and such support. It would be nice to have in validate-pyproject too, I think - you wouldn't have to install the various projects, just pull from one place (schemastore). I don't think it can be implemented as a third party plugin very easily, since you don't know what tool sections are provided beforehand (unless it was a regularly updated copy or something).

I don't have a good idea of how it would work, how someone would opt-in to it (I guess it might require getting the schemas from a URL? I'm not that sure how schemastore works or what would be ideal. I know there's also a repo.) Maybe a regular updated copy would not be too bad. Thoughts?

pre_compile fails when installed using setuptools instead of PEP517

When using the legacy setuptools python setup.py from the PyPI published sdist, setuptools installs a validate_pyproject-*.egg-info (also pre-packaged in the sdist), or validate_pyproject-0.9.dist-info (setup.py bdist_wheel)*. This clashes with pre_compile.load_licenses() which looks for the hard-coded dist_name validate-pyproject. Note the difference in - vs _.

"validate_pyproject_license": _find_and_load_licence(_M.files(dist_name)),

dist_name = "validate-pyproject"

Workaround: Use a PEP517 installer like pip or build+install.

* Edit: validate_pyproject-0.9.dist-info is also the one installed with a PEP517 frontend and found fine by importlib.metadata.files('validate-pyproject')

Missing SSL context when downloading classifiers.

pypa/setuptools#3575

I got this report through our security reports from an anonymous individual:

Running a static code analyser over a codebase including setuptools has identified that urlopen is used without passing an SSL config here https://github.com/pypa/setuptools/blob/main/setuptools/config/_validate_pyproject/formats.py#L118 – which means that the SSL certificate isn’t verified.
This isn’t an area I’m an expert in, but documentation suggests that we should be passing e.g. context=ssl.create_default_context() - see https://docs.python.org/3.5/library/urllib.request.html and https://docs.python.org/3.5/library/ssl.html#ssl.create_default_context

I agree there may be a security concern, but I deem it low impact (worst case, a malicious actor could inject invalid classifiers or remove valid ones, merely causing disruption to a build in a local context), so safe to disclose.

Crash on first commit when adding a pre-commit hook

I noticed an odd failure which might be related to #36. I was adding this to an existing project and added the following to my .pre-commit-config.yaml file:

    - repo: https://github.com/abravalheri/validate-pyproject
      rev: v0.12.2
      hooks:
          - id: validate-pyproject

I updated pyproject.toml to test it and ran git commit -a, waited for it to install the hook, and got this crash:

[ERROR] FileNotFoundError: [Errno 2] No such file or directory: '/Users/cadams/.cache/pre-commit/repobqc66rm2/py_env-python3/lib/python3.11/site-packages/validate_pyproject/pyproject_toml.schema.json'

What's interesting is that pre-commit run --all-files did not fail on the same repository. If I run it with -v, I see output like this indicating that it successfully validated the file:

Validate pyproject.toml..................................................Passed
- hook id: validate-pyproject
- duration: 0.09s

Valid file: pyproject.toml

If I change the pre-commit hook like this, it starts working, suggesting this is related to packaging:

    - repo: https://github.com/abravalheri/validate-pyproject
      rev: v0.12.2
      hooks:
          - id: validate-pyproject
            additional_dependencies: 
              - validate-pyproject

[ERROR] SchemaWithDuplicatedId: All schemas used in the validator MUST define a unique toplevel `"$id"`

When I run validate-pyproject with version 0.6.1 install with [all] with Python 3.8.13, I get exit code 1 and the following output:

[WARNING] validate_pyproject.api.load_builtin_plugin overwrites `tool.distutils` schema
[ERROR] SchemaWithDuplicatedId: All schemas used in the validator MUST define a unique toplevel `"$id"`.
`$id = 'https://docs.python.org/3/install/'` was found at least twice.

This also happens in directories without a pyproject.toml file, which is why I did not include mine. What does that mean?

Rename `vendoring`

The word vendor might create confusion between users.
We are not necessarily "vendoring" stuff, but instead offering a way to pre-compile the validator to work in a standalone fashion.

Data files are missing from wheel when building from git archive

I suspect something goes wrong around setuptools_scm.

To reproduce:

wget https://github.com/abravalheri/validate-pyproject/archive/refs/tags/v0.9.tar.gz
tar -xf v0.9.tar.gz
cd validate-pyproject-0.9
export SETUPTOOLS_SCM_PRETEND_VERSION=0.9
python -m build
unzip -l dist/validate_pyproject-0.9-py3-none-any.whl

At least the JSON schemas are missing.

pipx run validate-pyproject --help

Unfortunately, the following command fails:
% pipx run validate-pyproject --help

Traceback (most recent call last):
  File "/Users/cclauss/.local/pipx/.cache/780fbd20a9477c3/lib/python3.10/site-packages/validate_pyproject/cli.py", line 39, in <module>
    from tomli import TOMLDecodeError, loads
ModuleNotFoundError: No module named 'tomli'

Don't fetch trove-classifiers from the web

In order for builds to be reproducible, it means everything that is being checked and build will be checked and build consistently when repeated. When downloading the trove-classifiers from the web, it is (theoretically) possible that a validation pass one time and fail another. This should be avoided.

Furthermore, downstreams such as distributors do a lot of effort to avoid unwanted network lookups. We should not be adding more.

Note that if there is a setuptools option to disable this, this could make distributors happy!

By the way, I put it here instead of setuptools as the code path is in here if I am correct.

[FR] Relax validation of `py-modules`

The pip-run project defines a py-module that has a dash in the name. It does so intentionally in order to make it possible to type python -m pip-run without having to enter any chorded characters (- is roughly 1/3 as expensive as _).

After converting the config to pyproject.toml, however, this value is rejected by policy.

ValueError: invalid pyproject.toml config: `tool.setuptools.py-modules[0]`.
configuration error: `tool.setuptools.py-modules[0]` must be python-module-name
Backend: run command get_requires_for_build_editable with args {'config_settings': None}
configuration error: `tool.setuptools.py-modules[0]` must be python-module-name
GIVEN VALUE:
    "pip-run"

OFFENDING RULE: 'format'

DEFINITION:
    {
        "type": "string",
        "format": "python-module-name"
    }

I can understand why "python-module-name" seemed like a good reasonableness check, but it turns out to be backward incompatible and unnecessarily constraining against a use-case like above.

Can we back out this change and make it lenient as it was with setup.cfg?

@jaraco in pypa/setuptools#4316

0.7.1: pytest is failing in several units

I'm trying to package your module as an rpm package. So I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

  • python3 -sBm build -w --no-isolation
  • because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
  • install .whl file in </install/prefix>
  • run pytest with PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.