diff --git a/.gitignore b/.gitignore index 42fd999..26f7f0a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,7 @@ swh-*/ packages/* snippets/ !packages/README !packages/keys/ .venv -.mypy_cache diff --git a/Makefile.python b/Makefile.python index 7744ed5..92502eb 100644 --- a/Makefile.python +++ b/Makefile.python @@ -1,64 +1,64 @@ # -*- mode: Makefile -*- PYMODULE := $(shell basename `pwd` | sed 's/-/./g') PYDIR := $(shell basename `pwd` | sed 's%-%/%g') PYTHON_BIN := $(shell test -d bin/ && find bin/ -type f -executable | xargs egrep -H '^\#.*python' | cut -f 1 -d :) TEST_DIRS := . TEST = python3 -m pytest TESTFLAGS = CODESPELL = codespell CODESPELLFLAGS = FLAKE = python3 -m flake8 FLAKEFLAGS = LINT = pylint3 LINTFLAGS = --rcfile=../pylintrc MYPY = mypy -MYPYFLAGS = --config-file ../mypy.ini +MYPYFLAGS = # MYPYPATH is not needed if all swh.* packages that support typing are # annotated with PEP 561 py.typed marker files # # MYPYPATH := $(shell pip list | grep '^swh\.' | awk '{print $$3}' | paste -sd:) all: .PHONY: test test: $(TEST) $(TESTFLAGS) $(TEST_DIRS) .PHONY: coverage coverage: $(TEST) $(TESTFLAGS) --cov=$(PYMODULE) --cov-branch $(TEST_DIRS) .PHONY: check check-flake check-codespell check: check-flake check-codespell check-flake: $(FLAKE) $(FLAKEFLAGS) swh $(PYTHON_BIN) check-codespell: find swh docs -name '*.py' -o -name '*.rst' | xargs -r $(CODESPELL) $(CODESPELLFLAGS) find . -maxdepth 1 -iname 'readme*' | xargs -r $(CODESPELL) $(CODESPELLFLAGS) typecheck: $(MYPY) $(MYPYFLAGS) -p $(PYMODULE) .PHONY: check-staged check-staged: git diff -z --staged --name-only -- '*.py' $(PYTHON_BIN) \ | xargs -0 -L1 -i'{}' /bin/sh -c \ "git show ':{}' | $(FLAKE) $(FLAKEFLAGS) --stdin-display-name '{}' -" .PHONY: lint lint: $(LINT) $(LINTFLAGS) $(PYMODULE) .PHONY: docs docs: make -C docs .PHONY: distclean # clean up Python bytecode files. Also consider random *.pyc files, in case # Python 2.x has been run by mistake distclean: find . -type d -name __pycache__ | xargs rm -rf find . -type f -name '*.pyc' -delete diff --git a/mypy.ini b/mypy.ini deleted file mode 100644 index a700c7f..0000000 --- a/mypy.ini +++ /dev/null @@ -1,79 +0,0 @@ -[mypy] - -# shared cache directoy, common for all swh-* repositories -cache_dir = ../.mypy_cache - -namespace_packages = True -warn_unused_ignores = True - -# support for sqlalchemy magic, see https://github.com/dropbox/sqlalchemy-stubs -plugins = sqlmypy - - -# 3rd party libraries without stubs (yet) - -[mypy-aiohttp_utils.*] -ignore_missing_imports = True - -[mypy-azure.*] -ignore_missing_imports = True - -[mypy-arrow.*] -ignore_missing_imports = True - -[mypy-celery.*] -ignore_missing_imports = True - -[mypy-decorator.*] -ignore_missing_imports = True - -[mypy-deprecated.*] -ignore_missing_imports = True - -[mypy-elasticsearch.*] -ignore_missing_imports = True - -[mypy-kafka.*] -ignore_missing_imports = True - -[mypy-kombu.*] -ignore_missing_imports = True - -[mypy-libcloud.*] -ignore_missing_imports = True - -[mypy-msgpack.*] -ignore_missing_imports = True - -[mypy-pkg_resources.extern.*] -ignore_missing_imports = True - -[mypy-psutil.*] -ignore_missing_imports = True - -[mypy-psycopg2.*] -ignore_missing_imports = True - -[mypy-pyblake2.*] -ignore_missing_imports = True - -[mypy-pytest.*] -ignore_missing_imports = True - -[mypy-pytest_kafka.*] -ignore_missing_imports = True - -[mypy-rados.*] -ignore_missing_imports = True - -[mypy-request_mock.*] -ignore_missing_imports = True - -[mypy-retrying.*] -ignore_missing_imports = True - -[mypy-sqlalchemy.*] -ignore_missing_imports = True - -[mypy-systemd.*] -ignore_missing_imports = True