1212 from BaseHTTPServer import BaseHTTPRequestHandler
1313except ImportError :
1414 # Python 3
15+ unicode = str
1516 from http .server import BaseHTTPRequestHandler
1617from functools import wraps
1718from threading import Lock
1819
1920__all__ = ['Counter' , 'Gauge' , 'Summary' , 'Histogram' ]
21+ # http://stackoverflow.com/questions/19913653/no-unicode-in-all-for-a-packages-init
22+ __all__ = [n .encode ('ascii' ) for n in __all__ ]
2023
2124_METRIC_NAME_RE = re .compile (r'^[a-zA-Z_:][a-zA-Z0-9_:]*$' )
2225_METRIC_LABEL_NAME_RE = re .compile (r'^[a-zA-Z_:][a-zA-Z0-9_:]*$' )
@@ -108,7 +111,7 @@ def labels(self, *labelvalues):
108111 '''Return the child for the given labelset.'''
109112 if len (labelvalues ) != len (self ._labelnames ):
110113 raise ValueError ('Incorrect label count' )
111- labelvalues = tuple (labelvalues )
114+ labelvalues = tuple ([ unicode ( l ) for l in labelvalues ] )
112115 with self ._lock :
113116 if labelvalues not in self ._metrics :
114117 self ._metrics [labelvalues ] = self ._wrappedClass (** self ._kwargs )
@@ -118,7 +121,7 @@ def remove(self, *labelvalues):
118121 '''Remove the given labelset from the metric.'''
119122 if len (labelvalues ) != len (self ._labelnames ):
120123 raise ValueError ('Incorrect label count' )
121- labelvalues = tuple (labelvalues )
124+ labelvalues = tuple ([ unicode ( l ) for l in labelvalues ] )
122125 with self ._lock :
123126 del self ._metrics [labelvalues ]
124127
0 commit comments