diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..7e4b296 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,51 @@ +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v2.4.0 + hooks: + - id: trailing-whitespace + - id: check-json + - id: check-yaml + +- repo: https://gitlab.com/pycqa/flake8 + rev: 3.8.3 + hooks: + - id: flake8 + +- repo: https://github.com/codespell-project/codespell + rev: v1.16.0 + hooks: + - id: codespell + exclude: ^(swh/loader/package/.*[/]+tests/data/.*)$ + entry: codespell --ignore-words-list=iff + +- repo: local + hooks: + - id: mypy + name: mypy + entry: mypy + args: [swh] + pass_filenames: false + language: system + types: [python] + +- repo: https://github.com/PyCQA/isort + rev: 5.5.2 + hooks: + - id: isort + +- repo: https://github.com/python/black + rev: 19.10b0 + hooks: + - id: black + +# unfortunately, we are far from being able to enable this... +# - repo: https://github.com/PyCQA/pydocstyle.git +# rev: 4.0.0 +# hooks: +# - id: pydocstyle +# name: pydocstyle +# description: pydocstyle is a static analysis tool for checking compliance with Python docstring conventions. +# entry: pydocstyle --convention=google +# language: python +# types: [python] + diff --git a/docs/README.rst b/docs/README.rst index 1b58ae3..3d3ed78 100644 --- a/docs/README.rst +++ b/docs/README.rst @@ -1,15 +1,4 @@ -.. _swh-loader-bzr: - Software Heritage - Bazaar/Breezy loader ======================================== Loader for `Bazaar `_ and `Breezy `_ repositories. Breezy is a friendly fork of Bazaar that supports the Bazaar file format and network protocol. - - -Reference Documentation ------------------------ - -.. toctree:: - :maxdepth: 2 - - /apidoc/swh.loader.bzr diff --git a/docs/index.rst b/docs/index.rst index 00cafe5..bc094db 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,15 +1,16 @@ -.. _swh-py-template: +.. _swh-loader-bzr: .. include:: README.rst .. toctree:: :maxdepth: 2 :caption: Contents: + how-bzr-works Indices and tables ------------------ * :ref:`genindex` * :ref:`modindex` * :ref:`search` diff --git a/swh/__init__.py b/swh/__init__.py index e780381..b36383a 100644 --- a/swh/__init__.py +++ b/swh/__init__.py @@ -1,4 +1,3 @@ from pkgutil import extend_path -from typing import Iterable -__path__: Iterable[str] = extend_path(__path__, __name__) +__path__ = extend_path(__path__, __name__) diff --git a/tox.ini b/tox.ini index f5d7c1e..c27d4ab 100644 --- a/tox.ini +++ b/tox.ini @@ -1,73 +1,73 @@ [tox] envlist=black,flake8,mypy,py3 [testenv] extras = testing deps = pytest-cov commands = pytest --doctest-modules \ {envsitepackagesdir}/swh/foo \ --cov={envsitepackagesdir}/swh/foo \ --cov-branch {posargs} [testenv:black] skip_install = true deps = black==19.10b0 commands = {envpython} -m black --check swh [testenv:flake8] skip_install = true deps = flake8 commands = {envpython} -m flake8 [testenv:mypy] extras = testing deps = - mypy + mypy==0.920 commands = mypy swh # build documentation outside swh-environment using the current # git HEAD of swh-docs, is executed on CI for each diff to prevent # breaking doc build [testenv:sphinx] whitelist_externals = make usedevelop = true extras = testing deps = # fetch and install swh-docs in develop mode -e git+https://forge.softwareheritage.org/source/swh-docs#egg=swh.docs setenv = SWH_PACKAGE_DOC_TOX_BUILD = 1 # turn warnings into errors SPHINXOPTS = -W commands = make -I ../.tox/sphinx/src/swh-docs/swh/ -C docs # build documentation only inside swh-environment using local state # of swh-docs package [testenv:sphinx-dev] whitelist_externals = make usedevelop = true extras = testing deps = # install swh-docs in develop mode -e ../swh-docs setenv = SWH_PACKAGE_DOC_TOX_BUILD = 1 # turn warnings into errors SPHINXOPTS = -W commands = make -I ../.tox/sphinx-dev/src/swh-docs/swh/ -C docs