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