From ae86f1ce2884f64765868c2150aa630f2d5516e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E8=91=89?= Date: Wed, 19 Jun 2019 16:11:20 +0800 Subject: [PATCH] compact MethodType between 2 and 3 (#403) Signed-off-by: Hanaasagi --- prometheus_client/metrics.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/prometheus_client/metrics.py b/prometheus_client/metrics.py index b7c5e5a4..b5dfe952 100644 --- a/prometheus_client/metrics.py +++ b/prometheus_client/metrics.py @@ -14,6 +14,10 @@ if sys.version_info > (3,): unicode = str + create_bound_method = types.MethodType +else: + def create_bound_method(func, obj): + return types.MethodType(func, obj, obj.__class__) def _build_full_name(metric_type, name, namespace, subsystem, unit): @@ -369,7 +373,7 @@ def set_function(self, f): def samples(self): return (('', {}, float(f())),) - self._child_samples = types.MethodType(samples, self) + self._child_samples = create_bound_method(samples, self) def _child_samples(self): return (('', {}, self._value.get()),)