diff --git a/prometheus_client/core.py b/prometheus_client/core.py index 840fc9b2..340d955a 100644 --- a/prometheus_client/core.py +++ b/prometheus_client/core.py @@ -48,10 +48,11 @@ def register(self, collector): '''Add a collector to the registry.''' with self._lock: names = self._get_names(collector) - for name in names: - if name in self._names_to_collectors: - raise ValueError('Timeseries already present ' - 'in CollectorRegistry: ' + name) + duplicates = set(self._names_to_collectors).intersection(names) + if duplicates: + raise ValueError( + 'Duplicated timeseries in CollectorRegistry: {}'.format( + duplicates)) for name in names: self._names_to_collectors[name] = collector self._collector_to_names[collector] = names @@ -444,7 +445,8 @@ def __reset(self): file_prefix = typ if file_prefix not in files: filename = os.path.join( - os.environ['prometheus_multiproc_dir'], '{0}_{1}.db'.format(file_prefix, pid['value'])) + os.environ['prometheus_multiproc_dir'], + '{0}_{1}.db'.format(file_prefix, pid['value'])) files[file_prefix] = _MmapedDict(filename) self._file = files[file_prefix] self._key = json.dumps((metric_name, name, labelnames, labelvalues)) @@ -710,8 +712,9 @@ def __init__(self, name, labelnames, labelvalues, multiprocess_mode='all'): if (_ValueClass._multiprocess and multiprocess_mode not in ['min', 'max', 'livesum', 'liveall', 'all']): raise ValueError('Invalid multiprocess mode: ' + multiprocess_mode) - self._value = _ValueClass(self._type, name, name, labelnames, - labelvalues, multiprocess_mode=multiprocess_mode) + self._value = _ValueClass( + self._type, name, name, labelnames, labelvalues, + multiprocess_mode=multiprocess_mode) def inc(self, amount=1): '''Increment gauge by the given amount.''' diff --git a/prometheus_client/exposition.py b/prometheus_client/exposition.py index a2ba8fbc..aff3bffb 100644 --- a/prometheus_client/exposition.py +++ b/prometheus_client/exposition.py @@ -286,8 +286,9 @@ def _use_gateway(method, gateway, job, registry, grouping_key, timeout, handler) if grouping_key is None: grouping_key = {} - url = url + ''.join(['/{0}/{1}'.format(quote_plus(str(k)), quote_plus(str(v))) - for k, v in sorted(grouping_key.items())]) + url += ''.join( + '/{0}/{1}'.format(quote_plus(str(k)), quote_plus(str(v))) + for k, v in sorted(grouping_key.items())) headers=[('Content-Type', CONTENT_TYPE_LATEST)] handler(url=url, method=method, timeout=timeout, diff --git a/tests/test_multiprocess.py b/tests/test_multiprocess.py index 8f282d18..916b4457 100644 --- a/tests/test_multiprocess.py +++ b/tests/test_multiprocess.py @@ -153,8 +153,9 @@ def test_multi_expansion(self): self.d.write_value('abc', 42.0) self.d.write_value(key, 123.0) self.d.write_value('def', 17.0) - self.assertEqual([('abc', 42.0), (key, 123.0), ('def', 17.0)], - list(self.d.read_all_values())) + self.assertEqual( + [('abc', 42.0), (key, 123.0), ('def', 17.0)], + list(self.d.read_all_values())) def tearDown(self): os.unlink(self.tempfile) diff --git a/tox.ini b/tox.ini index 1e3b6e24..828539ff 100644 --- a/tox.ini +++ b/tox.ini @@ -63,9 +63,6 @@ ignore = E111, E114, E123, - E126, - E127, - E128, E231, E222, E225,