Skip to content

Commit 7a1be91

Browse files
committed
Upgrade isort and enable black compat mode
isort and black can be incompatible. Often isort re-writes files in a way black doesn't like. It takes quite some time and manual effort to make changes that satisfy both isort and black. Fortunately, newer versions of isort support a black compatibility mode by setting isort profile to "black". This makes isort order imports in a way that is compatible with how black formats Python code. This PR configures isort to use the black profile by default.
1 parent 65801c3 commit 7a1be91

File tree

19 files changed

+54
-45
lines changed

19 files changed

+54
-45
lines changed

Diff for: .gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ __pycache__
2323
venv*/
2424
.venv*/
2525
opentelemetry-python-core*/
26+
/opentelemetry-python-core
2627

2728
# Installer logs
2829
pip-log.txt

Diff for: .isort.cfg

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ include_trailing_comma=True
33
force_grid_wrap=0
44
use_parentheses=True
55
line_length=79
6+
profile=black
67

78
; 3 stands for Vertical Hanging Indent, e.g.
89
; from third_party import (
@@ -13,6 +14,6 @@ line_length=79
1314
; docs: https://github.com/timothycrosley/isort#multi-line-output-modes
1415
multi_line_output=3
1516
skip=target
16-
skip_glob=**/gen/*,.venv*/*,venv*/*,reference*/*,opentelemetry-python-core/*
17+
skip_glob=**/gen/*,.venv*/*,venv*/*,reference*/*,opentelemetry-python-core/*,.tox/*
1718
known_first_party=opentelemetry
1819
known_third_party=psutil,pytest,redis,redis_opentracing

Diff for: .pylintrc

+9-2
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,14 @@ disable=missing-docstring,
7070
wrong-import-order, # Leave this up to isort
7171
bad-continuation, # Leave this up to black
7272
line-too-long, # Leave this up to black
73-
exec-used
73+
exec-used,
74+
super-with-arguments, # temp-pylint-upgrade
75+
isinstance-second-argument-not-valid-type, # temp-pylint-upgrade
76+
raise-missing-from, # temp-pylint-upgrade
77+
unused-argument, # temp-pylint-upgrade
78+
protected-access, # temp-pylint-upgrade
79+
super-init-not-called, # temp-pylint-upgrade
80+
invalid-overridden-method, # temp-pylint-upgrade
7481

7582
# Enable the message, report, category or checker with the given id(s). You can
7683
# either give multiple identifier separated by comma (,) or put this option
@@ -165,7 +172,7 @@ contextmanager-decorators=contextlib.contextmanager
165172
# List of members which are set dynamically and missed by pylint inference
166173
# system, and so shouldn't trigger E1101 when accessed. Python regular
167174
# expressions are accepted.
168-
generated-members=*_pb2.py
175+
generated-members=types_pb2.*
169176

170177
# Tells whether missing members accessed in mixin class should be ignored. A
171178
# mixin class is detected if its name ends with "mixin" (case insensitive).

Diff for: dev-requirements.txt

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
pylint==2.4.4
1+
pylint~=2.6
22
flake8~=3.7
3-
isort~=4.3
3+
isort~=5.6
44
black>=19.3b0,==19.*
5-
mypy==0.740
5+
httpretty~=1.0
6+
mypy==0.790
67
sphinx~=2.1
78
sphinx-rtd-theme~=0.4
89
sphinx-autodoc-typehints~=1.10.2

Diff for: exporter/opentelemetry-exporter-datadog/src/opentelemetry/exporter/datadog/exporter.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,15 @@
2121
from ddtrace.span import Span as DatadogSpan
2222

2323
import opentelemetry.trace as trace_api
24-
from opentelemetry.sdk.trace import sampling
25-
from opentelemetry.sdk.trace.export import SpanExporter, SpanExportResult
26-
27-
# pylint:disable=relative-beyond-top-level
28-
from .constants import (
24+
from opentelemetry.exporter.datadog.constants import (
2925
DD_ORIGIN,
3026
ENV_KEY,
3127
SAMPLE_RATE_METRIC_KEY,
3228
SERVICE_NAME_TAG,
3329
VERSION_KEY,
3430
)
31+
from opentelemetry.sdk.trace import sampling
32+
from opentelemetry.sdk.trace.export import SpanExporter, SpanExportResult
3533

3634
logger = logging.getLogger(__name__)
3735

Diff for: exporter/opentelemetry-exporter-datadog/src/opentelemetry/exporter/datadog/propagator.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
from opentelemetry import trace
1818
from opentelemetry.context import Context
19+
from opentelemetry.exporter.datadog import constants
1920
from opentelemetry.trace import get_current_span, set_span_in_context
2021
from opentelemetry.trace.propagation.textmap import (
2122
Getter,
@@ -24,9 +25,6 @@
2425
TextMapPropagatorT,
2526
)
2627

27-
# pylint:disable=relative-beyond-top-level
28-
from . import constants
29-
3028

3129
class DatadogFormat(TextMapPropagator):
3230
"""Propagator for the Datadog HTTP header format.

Diff for: exporter/opentelemetry-exporter-prometheus-remote-write/setup.cfg

+3-4
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,12 @@ package_dir=
3939
=src
4040
packages=find_namespace:
4141
install_requires =
42+
snappy >= 2.8
4243
protobuf >= 3.13.0
4344
requests == 2.25.0
4445
opentelemetry-api == 0.17.dev0
4546
opentelemetry-sdk == 0.17.dev0
4647

47-
[options.packages.find]
48-
where = src
4948

50-
[options.extras_require]
51-
test =
49+
[options.packages.find]
50+
where = src

Diff for: exporter/opentelemetry-exporter-prometheus-remote-write/src/opentelemetry/exporter/prometheus_remote_write/__init__.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
from typing import Dict, Sequence
1818

1919
import requests
20-
2120
import snappy
21+
2222
from opentelemetry.exporter.prometheus_remote_write.gen.remote_pb2 import (
2323
WriteRequest,
2424
)
@@ -268,7 +268,7 @@ def _convert_from_quantile(
268268
) -> Sequence[TimeSeries]:
269269
raise NotImplementedError()
270270

271-
# pylint: disable=no-member
271+
# pylint: disable=no-member,no-self-use
272272
def _create_timeseries(
273273
self,
274274
export_record: ExportRecord,
@@ -317,6 +317,7 @@ def add_label(label_name: str, label_value: str):
317317
timeseries.samples.append(sample)
318318
return timeseries
319319

320+
# pylint: disable=no-member,no-self-use
320321
def _build_message(self, timeseries: Sequence[TimeSeries]) -> bytes:
321322
write_request = WriteRequest()
322323
write_request.timeseries.extend(timeseries)
@@ -370,7 +371,7 @@ def _send_message(
370371
)
371372
if not response.ok:
372373
response.raise_for_status()
373-
except requests.exceptions.RequestException as e:
374-
logger.error("Export POST request failed with reason: %s", e)
374+
except requests.exceptions.RequestException as err:
375+
logger.error("Export POST request failed with reason: %s", err)
375376
return MetricsExportResult.FAILURE
376377
return MetricsExportResult.SUCCESS

Diff for: exporter/opentelemetry-exporter-prometheus-remote-write/tests/test_prometheus_remote_write_exporter.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,13 @@
1313
# limitations under the License.
1414

1515
import unittest
16-
from logging import Logger
17-
from unittest.mock import MagicMock, Mock, patch
16+
from unittest.mock import patch
1817

1918
from opentelemetry.exporter.prometheus_remote_write import (
2019
PrometheusRemoteWriteMetricsExporter,
2120
)
2221
from opentelemetry.exporter.prometheus_remote_write.gen.types_pb2 import (
2322
Label,
24-
Sample,
2523
TimeSeries,
2624
)
2725
from opentelemetry.sdk.metrics import Counter
@@ -339,15 +337,17 @@ def create_label(name, value):
339337
)
340338

341339
expected_timeseries = TimeSeries()
342-
expected_timeseries.labels.append(create_label("__name__", "testname"))
343-
expected_timeseries.labels.append(
340+
expected_timeseries.labels.append( # pylint:disable=E1101
341+
create_label("__name__", "testname")
342+
)
343+
expected_timeseries.labels.append( # pylint:disable=E1101
344344
create_label("resource_name", "resource_value")
345345
)
346-
expected_timeseries.labels.append(
346+
expected_timeseries.labels.append( # pylint:disable=E1101
347347
create_label("record_name", "record_value")
348348
)
349349

350-
sample = expected_timeseries.samples.add()
350+
sample = expected_timeseries.samples.add() # pylint:disable=E1101
351351
sample.timestamp = int(sum_aggregator.last_update_timestamp / 1000000)
352352
sample.value = 5.0
353353

Diff for: instrumentation/opentelemetry-instrumentation-django/src/opentelemetry/instrumentation/django/middleware.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@
3131

3232
try:
3333
from django.core.urlresolvers import ( # pylint: disable=no-name-in-module
34-
resolve,
3534
Resolver404,
35+
resolve,
3636
)
3737
except ImportError:
38-
from django.urls import resolve, Resolver404
38+
from django.urls import Resolver404, resolve
3939

4040
try:
4141
from django.utils.deprecation import MiddlewareMixin

Diff for: instrumentation/opentelemetry-instrumentation-fastapi/tests/test_fastapi_instrumentation.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ async def _(param: str):
9898
return {"message": param}
9999

100100
@app.get("/healthzz")
101-
async def health():
101+
async def _():
102102
return {"message": "ok"}
103103

104104
return app

Diff for: instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/__init__.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ def serve():
130130
"""
131131
from functools import partial
132132

133-
import grpc
133+
import grpc # pylint:disable=import-self
134134
from wrapt import wrap_function_wrapper as _wrap
135135

136136
from opentelemetry import trace
@@ -142,7 +142,6 @@ def serve():
142142
# pylint:disable=import-outside-toplevel
143143
# pylint:disable=import-self
144144
# pylint:disable=unused-argument
145-
# isort:skip
146145

147146

148147
class GrpcInstrumentorServer(BaseInstrumentor):
@@ -156,7 +155,7 @@ class GrpcInstrumentorServer(BaseInstrumentor):
156155
157156
"""
158157

159-
# pylint:disable=attribute-defined-outside-init
158+
# pylint:disable=attribute-defined-outside-init, redefined-outer-name
160159

161160
def _instrument(self, **kwargs):
162161
self._original_func = grpc.server

Diff for: instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/_client.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,14 @@
2525
import grpc
2626

2727
from opentelemetry import metrics, propagators, trace
28+
from opentelemetry.instrumentation.grpc import grpcext
29+
from opentelemetry.instrumentation.grpc._utilities import (
30+
RpcInfo,
31+
TimedMetricRecorder,
32+
)
2833
from opentelemetry.sdk.metrics.export.controller import PushController
2934
from opentelemetry.trace.status import Status, StatusCode
3035

31-
from . import grpcext
32-
from ._utilities import RpcInfo, TimedMetricRecorder
33-
3436

3537
class _GuardedSpan:
3638
def __init__(self, span):

Diff for: instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/_utilities.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,13 @@ def record_bytes_out(self, bytes_out, method):
8383
@contextmanager
8484
def record_latency(self, method):
8585
start_time = time()
86-
labels = {"method": method, "status_code": grpc.StatusCode.OK}
86+
labels = {
87+
"method": method,
88+
"status_code": grpc.StatusCode.OK, # pylint:disable=no-member
89+
}
8790
try:
8891
yield labels
89-
except grpc.RpcError as exc:
92+
except grpc.RpcError as exc: # pylint:disable=no-member
9093
if self._meter:
9194
# pylint: disable=no-member
9295
labels["status_code"] = exc.code()

Diff for: instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
import grpc
2626

27-
from .. import grpcext
27+
from opentelemetry.instrumentation.grpc import grpcext
2828

2929

3030
class _UnaryClientInfo(

Diff for: instrumentation/opentelemetry-instrumentation-grpc/tests/protobuf/test_server_pb2_grpc.py

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
22
import grpc
3-
43
from tests.protobuf import test_server_pb2 as test__server__pb2
54

65

Diff for: instrumentation/opentelemetry-instrumentation-grpc/tests/test_client_interceptor.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# limitations under the License.
1414

1515
import grpc
16+
from tests.protobuf import test_server_pb2_grpc
1617

1718
import opentelemetry.instrumentation.grpc
1819
from opentelemetry import trace
@@ -22,7 +23,6 @@
2223
SumAggregator,
2324
)
2425
from opentelemetry.test.test_base import TestBase
25-
from tests.protobuf import test_server_pb2_grpc
2626

2727
from ._client import (
2828
bidirectional_streaming_method,

Diff for: instrumentation/opentelemetry-instrumentation-wsgi/tests/test_getter.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
from unittest import TestCase, mock
15+
from unittest import TestCase
1616

1717
from opentelemetry.instrumentation.wsgi import CarrierGetter
1818

Diff for: scripts/eachdist.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,7 @@ def lint_args(args):
509509
)
510510
runsubprocess(
511511
args.dry_run,
512-
("isort", "--recursive", ".")
512+
("isort", ".")
513513
+ (("--diff", "--check-only") if args.check_only else ()),
514514
cwd=rootdir,
515515
check=True,

0 commit comments

Comments
 (0)