From 493d179eb042742ef1a73587cfe48d2ebc9d787b Mon Sep 17 00:00:00 2001 From: Chris Kleinknecht Date: Tue, 25 Jun 2019 17:48:05 -0700 Subject: [PATCH 1/9] Add mypy config --- mypy.ini | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 mypy.ini diff --git a/mypy.ini b/mypy.ini new file mode 100644 index 00000000000..f1bf2755f22 --- /dev/null +++ b/mypy.ini @@ -0,0 +1,13 @@ +[mypy] + disallow_any_unimported = True + disallow_any_decorated = True + disallow_any_explicit = True + disallow_any_generics = True + disallow_subclassing_any = True + disallow_untyped_calls = True + disallow_untyped_defs = True + disallow_incomplete_defs = True + check-untyped-defs = True + disallow_untyped_decorators = True + warn_unused_ignores = True + warn_return_any = True From 5c26a0c45a539ecb0db9c1a33f2f8e9e78abea77 Mon Sep 17 00:00:00 2001 From: Chris Kleinknecht Date: Tue, 25 Jun 2019 17:48:29 -0700 Subject: [PATCH 2/9] Fix various strict mypy errors --- opentelemetry-api/opentelemetry/__init__.py | 13 +++++++++++++ opentelemetry-api/opentelemetry/trace/__init__.py | 8 ++++---- 2 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 opentelemetry-api/opentelemetry/__init__.py diff --git a/opentelemetry-api/opentelemetry/__init__.py b/opentelemetry-api/opentelemetry/__init__.py new file mode 100644 index 00000000000..d853a7bcf65 --- /dev/null +++ b/opentelemetry-api/opentelemetry/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2019, OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/opentelemetry-api/opentelemetry/trace/__init__.py b/opentelemetry-api/opentelemetry/trace/__init__.py index 282bc72b3f0..f3e53849b83 100644 --- a/opentelemetry-api/opentelemetry/trace/__init__.py +++ b/opentelemetry-api/opentelemetry/trace/__init__.py @@ -63,7 +63,7 @@ """ from contextlib import contextmanager -from typing import Iterator +import typing class Tracer: @@ -86,7 +86,7 @@ def get_current_span(self) -> 'Span': @contextmanager - def start_span(self, name: str, parent: 'Span') -> Iterator['Span']: + def start_span(self, name: str, parent: 'Span') -> typing.Iterator['Span']: """Context manager for span creation. Create a new child of the current span, or create a root span if no @@ -155,7 +155,7 @@ def create_span(self, name: str, parent: 'Span') -> 'Span': """ @contextmanager - def use_span(self, span: 'Span') -> Iterator[None]: + def use_span(self, span: 'Span') -> typing.Iterator[None]: """Context manager for controlling a span's lifetime. Start the given span and set it as the current span in this tracer's @@ -229,5 +229,5 @@ class TraceOptions(int): # TODO -class TraceState(dict): +class TraceState(typing.Dict[str, str]): pass From dfe87df314f179861dc458e39532ceb3af3bba0f Mon Sep 17 00:00:00 2001 From: Chris Kleinknecht Date: Tue, 25 Jun 2019 17:52:12 -0700 Subject: [PATCH 3/9] Add tox mypy command --- tox.ini | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index edfece5971f..aa70cf3b3ec 100644 --- a/tox.ini +++ b/tox.ini @@ -1,10 +1,12 @@ [tox] skipsdist = True -envlist = py37-lint +envlist = py37-lint, py37-mypy [testenv] deps = py37-lint: pylint + py37-mypy: mypy commands = - py37-lint: pylint opentelemetry-api/opentelemetry/trace/ + py37-lint: pylint opentelemetry-api/opentelemetry/ + py37-mypy: mypy opentelemetry-api/opentelemetry/ From 9ff0101da23f7e6a5d34863f38a8cf2e6971bc6a Mon Sep 17 00:00:00 2001 From: Chris Kleinknecht Date: Wed, 26 Jun 2019 15:09:03 -0700 Subject: [PATCH 4/9] Fix typo, bring back disallow_any_expr --- mypy.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mypy.ini b/mypy.ini index f1bf2755f22..5899d1954e0 100644 --- a/mypy.ini +++ b/mypy.ini @@ -1,5 +1,6 @@ [mypy] disallow_any_unimported = True + disallow_any_expr = True disallow_any_decorated = True disallow_any_explicit = True disallow_any_generics = True @@ -7,7 +8,7 @@ disallow_untyped_calls = True disallow_untyped_defs = True disallow_incomplete_defs = True - check-untyped-defs = True + check_untyped_defs = True disallow_untyped_decorators = True warn_unused_ignores = True warn_return_any = True From 15b30bc737a51927bdabf48d98fd16b09380de1e Mon Sep 17 00:00:00 2001 From: Chris Kleinknecht Date: Wed, 26 Jun 2019 15:09:36 -0700 Subject: [PATCH 5/9] Require typing for old python versions --- opentelemetry-api/setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/opentelemetry-api/setup.py b/opentelemetry-api/setup.py index 2e405905aae..460417304ff 100644 --- a/opentelemetry-api/setup.py +++ b/opentelemetry-api/setup.py @@ -41,6 +41,7 @@ include_package_data=True, long_description=open("README.rst").read(), install_requires=[ + "typing; python_version<'3.5'", ], extras_require={}, license="Apache-2.0", From 9e5757e1b2c3a9529781ec4f699cec1162ee4eb2 Mon Sep 17 00:00:00 2001 From: Chris Kleinknecht Date: Wed, 26 Jun 2019 15:09:53 -0700 Subject: [PATCH 6/9] Ignore contextmanager type errors --- opentelemetry-api/opentelemetry/trace/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opentelemetry-api/opentelemetry/trace/__init__.py b/opentelemetry-api/opentelemetry/trace/__init__.py index f3e53849b83..e1bda185a73 100644 --- a/opentelemetry-api/opentelemetry/trace/__init__.py +++ b/opentelemetry-api/opentelemetry/trace/__init__.py @@ -85,7 +85,7 @@ def get_current_span(self) -> 'Span': """ - @contextmanager + @contextmanager # type: ignore def start_span(self, name: str, parent: 'Span') -> typing.Iterator['Span']: """Context manager for span creation. @@ -154,7 +154,7 @@ def create_span(self, name: str, parent: 'Span') -> 'Span': The newly-created span. """ - @contextmanager + @contextmanager # type: ignore def use_span(self, span: 'Span') -> typing.Iterator[None]: """Context manager for controlling a span's lifetime. From a8e416dc513130770b390bcc4d182868b4d9695d Mon Sep 17 00:00:00 2001 From: Chris Kleinknecht Date: Wed, 26 Jun 2019 15:24:00 -0700 Subject: [PATCH 7/9] Move toxfile --- .travis.yml | 2 +- tox.ini => opentelemetry-api/tox.ini | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename tox.ini => opentelemetry-api/tox.ini (53%) diff --git a/.travis.yml b/.travis.yml index 4f9cb871ea1..8084044fc0d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ install: - pip install tox-travis script: - - tox + - (cd opentelemetry-api; tox) branches: only: diff --git a/tox.ini b/opentelemetry-api/tox.ini similarity index 53% rename from tox.ini rename to opentelemetry-api/tox.ini index aa70cf3b3ec..ae7a17656af 100644 --- a/tox.ini +++ b/opentelemetry-api/tox.ini @@ -8,5 +8,5 @@ deps = py37-mypy: mypy commands = - py37-lint: pylint opentelemetry-api/opentelemetry/ - py37-mypy: mypy opentelemetry-api/opentelemetry/ + py37-lint: pylint opentelemetry/ + py37-mypy: mypy opentelemetry/ From 085dc48592d0da8ee26e9b70de9347b97eac7c88 Mon Sep 17 00:00:00 2001 From: Chris Kleinknecht Date: Wed, 26 Jun 2019 15:28:35 -0700 Subject: [PATCH 8/9] Move .pylintrc --- .pylintrc => opentelemetry-api/.pylintrc | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .pylintrc => opentelemetry-api/.pylintrc (100%) diff --git a/.pylintrc b/opentelemetry-api/.pylintrc similarity index 100% rename from .pylintrc rename to opentelemetry-api/.pylintrc From bd81da110aadebb33c6877510274372fff8a4ab8 Mon Sep 17 00:00:00 2001 From: Chris Kleinknecht Date: Thu, 27 Jun 2019 09:11:22 -0700 Subject: [PATCH 9/9] Try installing trace in all python versions --- opentelemetry-api/tox.ini | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opentelemetry-api/tox.ini b/opentelemetry-api/tox.ini index ae7a17656af..17129c5be49 100644 --- a/opentelemetry-api/tox.ini +++ b/opentelemetry-api/tox.ini @@ -1,12 +1,14 @@ [tox] skipsdist = True -envlist = py37-lint, py37-mypy +envlist = py{34,35,36,37}-unit, py37-lint, py37-mypy [testenv] deps = + py{34,35,36,37}-unit: -e . py37-lint: pylint py37-mypy: mypy commands = + py{34,35,36,37}-unit: python -c "from opentelemetry import trace" py37-lint: pylint opentelemetry/ py37-mypy: mypy opentelemetry/