From cf2b98d218f3ee4b7a9ca055615c007f5e376bc0 Mon Sep 17 00:00:00 2001 From: Florimond Manca Date: Tue, 10 Mar 2020 12:01:48 +0100 Subject: [PATCH] Fix type hint on normalize prefix argument --- datadog_checks_base/datadog_checks/base/checks/base.py | 7 ++++--- datadog_checks_base/datadog_checks/base/utils/common.py | 4 +++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/datadog_checks_base/datadog_checks/base/checks/base.py b/datadog_checks_base/datadog_checks/base/checks/base.py index b1b347e0421d1..19dde0bdbe408 100644 --- a/datadog_checks_base/datadog_checks/base/checks/base.py +++ b/datadog_checks_base/datadog_checks/base/checks/base.py @@ -626,12 +626,13 @@ def set_external_tags(self, external_tags): raise def convert_to_underscore_separated(self, name): - # type: (bytes) -> bytes + # type: (Union[str, bytes]) -> bytes """ Convert from CamelCase to camel_case And substitute illegal metric characters """ - metric_name = self.FIRST_CAP_RE.sub(br'\1_\2', ensure_bytes(name)) + name = ensure_bytes(name) + metric_name = self.FIRST_CAP_RE.sub(br'\1_\2', name) metric_name = self.ALL_CAP_RE.sub(br'\1_\2', metric_name).lower() metric_name = self.METRIC_REPLACEMENT.sub(br'_', metric_name) return self.DOT_UNDERSCORE_CLEANUP.sub(br'.', metric_name).strip(b'_') @@ -693,7 +694,7 @@ def _format_namespace(self, s, raw=False): return to_native_string(s) def normalize(self, metric, prefix=None, fix_case=False): - # type: (Union[str, bytes], bytes, bool) -> str + # type: (Union[str, bytes], Union[str, bytes], bool) -> str """ Turn a metric into a well-formed metric name prefix.b.c diff --git a/datadog_checks_base/datadog_checks/base/utils/common.py b/datadog_checks_base/datadog_checks/base/utils/common.py index e175823018828..9a499310f95d7 100644 --- a/datadog_checks_base/datadog_checks/base/utils/common.py +++ b/datadog_checks_base/datadog_checks/base/utils/common.py @@ -7,7 +7,7 @@ import re import warnings from decimal import ROUND_HALF_UP, Decimal -from typing import TYPE_CHECKING, Any +from typing import TYPE_CHECKING, Any, Text, Union from six import PY3, iteritems, text_type from six.moves.urllib.parse import urlparse @@ -16,12 +16,14 @@ def ensure_bytes(s): + # type: (Union[Text, bytes]) -> bytes if isinstance(s, text_type): s = s.encode('utf-8') return s def ensure_unicode(s): + # type: (Union[Text, bytes]) -> Text if isinstance(s, bytes): s = s.decode('utf-8') return s