diff --git a/test-requirements.txt b/test-requirements.txt index eea1d691ef..914dcf0198 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -14,3 +14,4 @@ sphinxcontrib-programoutput oslosphinx mock PyMySQL +mypy diff --git a/tox.ini b/tox.ini index a3f018f97a..cc5ea58518 100644 --- a/tox.ini +++ b/tox.ini @@ -27,8 +27,12 @@ deps = bindep commands = bindep test [testenv:pep8] -# streamer is python3 only, so we need to run flake8 in python3 -commands = flake8 {posargs} +# --ignore-missing-imports tells mypy to not try to follow imported modules +# out of the current tree. As you might expect, we don't want to run static +# type checking on the world - just on ourselves. +commands = + flake8 {posargs} + mypy --ignore-missing-imports zuul [testenv:cover] commands = diff --git a/zuul/ansible/action/add_host.pyi b/zuul/ansible/action/add_host.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/asa_config.pyi b/zuul/ansible/action/asa_config.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/asa_template.pyi b/zuul/ansible/action/asa_template.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/assemble.pyi b/zuul/ansible/action/assemble.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/copy.pyi b/zuul/ansible/action/copy.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/dellos10_config.pyi b/zuul/ansible/action/dellos10_config.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/dellos6_config.pyi b/zuul/ansible/action/dellos6_config.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/dellos9_config.pyi b/zuul/ansible/action/dellos9_config.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/eos_config.pyi b/zuul/ansible/action/eos_config.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/eos_template.pyi b/zuul/ansible/action/eos_template.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/fetch.pyi b/zuul/ansible/action/fetch.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/include_vars.pyi b/zuul/ansible/action/include_vars.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/ios_config.pyi b/zuul/ansible/action/ios_config.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/ios_template.pyi b/zuul/ansible/action/ios_template.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/iosxr_config.pyi b/zuul/ansible/action/iosxr_config.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/iosxr_template.pyi b/zuul/ansible/action/iosxr_template.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/junos_config.pyi b/zuul/ansible/action/junos_config.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/junos_template.pyi b/zuul/ansible/action/junos_template.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/net_config.pyi b/zuul/ansible/action/net_config.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/net_template.pyi b/zuul/ansible/action/net_template.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/network.pyi b/zuul/ansible/action/network.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/normal.pyi b/zuul/ansible/action/normal.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/nxos_config.pyi b/zuul/ansible/action/nxos_config.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/nxos_template.pyi b/zuul/ansible/action/nxos_template.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/ops_config.pyi b/zuul/ansible/action/ops_config.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/ops_template.pyi b/zuul/ansible/action/ops_template.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/patch.pyi b/zuul/ansible/action/patch.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/script.pyi b/zuul/ansible/action/script.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/sros_config.pyi b/zuul/ansible/action/sros_config.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/synchronize.pyi b/zuul/ansible/action/synchronize.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/template.pyi b/zuul/ansible/action/template.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/unarchive.pyi b/zuul/ansible/action/unarchive.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/vyos_config.pyi b/zuul/ansible/action/vyos_config.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/win_copy.pyi b/zuul/ansible/action/win_copy.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/action/win_template.pyi b/zuul/ansible/action/win_template.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/_banned.pyi b/zuul/ansible/lookup/_banned.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/consul_kv.pyi b/zuul/ansible/lookup/consul_kv.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/credstash.pyi b/zuul/ansible/lookup/credstash.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/csvfile.pyi b/zuul/ansible/lookup/csvfile.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/dig.pyi b/zuul/ansible/lookup/dig.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/dnstxt.pyi b/zuul/ansible/lookup/dnstxt.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/env.pyi b/zuul/ansible/lookup/env.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/etcd.pyi b/zuul/ansible/lookup/etcd.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/file.pyi b/zuul/ansible/lookup/file.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/fileglob.pyi b/zuul/ansible/lookup/fileglob.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/filetree.pyi b/zuul/ansible/lookup/filetree.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/first_found.pyi b/zuul/ansible/lookup/first_found.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/hashi_valut.pyi b/zuul/ansible/lookup/hashi_valut.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/ini.pyi b/zuul/ansible/lookup/ini.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/keyring.pyi b/zuul/ansible/lookup/keyring.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/lastpass.pyi b/zuul/ansible/lookup/lastpass.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/lines.pyi b/zuul/ansible/lookup/lines.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/mongodb.pyi b/zuul/ansible/lookup/mongodb.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/password.pyi b/zuul/ansible/lookup/password.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/passwordstore.pyi b/zuul/ansible/lookup/passwordstore.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/pipe.pyi b/zuul/ansible/lookup/pipe.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/redis_kv.pyi b/zuul/ansible/lookup/redis_kv.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/shelvefile.pyi b/zuul/ansible/lookup/shelvefile.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/template.pyi b/zuul/ansible/lookup/template.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/ansible/lookup/url.pyi b/zuul/ansible/lookup/url.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/zuul/driver/__init__.py b/zuul/driver/__init__.py index c78283d211..5193fe6090 100644 --- a/zuul/driver/__init__.py +++ b/zuul/driver/__init__.py @@ -33,7 +33,7 @@ class Driver(object, metaclass=abc.ABCMeta): The class or instance attribute **name** must be provided as a string. """ - name = None + name = None # type: str def reconfigure(self, tenant): """Called when a tenant is reconfigured. diff --git a/zuul/driver/bubblewrap/__init__.py b/zuul/driver/bubblewrap/__init__.py index ec94d4b74a..e8209f1d79 100644 --- a/zuul/driver/bubblewrap/__init__.py +++ b/zuul/driver/bubblewrap/__init__.py @@ -23,6 +23,8 @@ import shlex import subprocess import sys +from typing import Dict, List # flake8: noqa + from zuul.driver import (Driver, WrapperInterface) @@ -70,7 +72,7 @@ class BubblewrapDriver(Driver, WrapperInterface): name = 'bubblewrap' log = logging.getLogger("zuul.BubblewrapDriver") - mounts_map = {'rw': [], 'ro': []} + mounts_map = {'rw': [], 'ro': []} # type: Dict[str, List] def __init__(self): self.bwrap_command = self._bwrap_command() diff --git a/zuul/lib/yamlutil.py b/zuul/lib/yamlutil.py index 2419906cdc..2c84b06ae5 100644 --- a/zuul/lib/yamlutil.py +++ b/zuul/lib/yamlutil.py @@ -13,7 +13,8 @@ import yaml from yaml import YAMLObject, YAMLError # noqa: F401 try: - from yaml import cyaml + # Explicit type ignore to deal with provisional import failure + from yaml import cyaml # type: ignore import _yaml SafeLoader = cyaml.CSafeLoader SafeDumper = cyaml.CSafeDumper