/usr/share/pyshared/quantities/registry.py is in python-quantities 0.10.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | # -*- coding: utf-8 -*-
"""
"""
import copy
import re
class UnitRegistry:
class __Registry:
__shared_state = {}
def __init__(self):
self.__dict__ = self.__shared_state
self.__context = {}
def __getitem__(self, string):
try:
return eval(string, self.__context)
except NameError:
# could return self['UnitQuantity'](string)
raise LookupError(
'Unable to parse units: "%s"'%string
)
def __setitem__(self, string, val):
assert isinstance(string, str)
try:
assert string not in self.__context
except AssertionError:
if val == self.__context[string]:
return
raise KeyError(
'%s has already been registered for %s'
% (string, self.__context[string])
)
self.__context[string] = val
__regex = re.compile(r'([A-Za-z])\.([A-Za-z])')
__registry = __Registry()
def __getattr__(self, attr):
return getattr(self.__registry, attr)
def __setitem__(self, label, value):
self.__registry.__setitem__(label, value)
def __getitem__(self, label):
"""Parses a string description of a unit e.g., 'g/cc'"""
label = self.__regex.sub(
r"\g<1>*\g<2>", label.replace('^', '**').replace('ยท', '*'))
# make sure we can parse the label ....
if label == '': label = 'dimensionless'
if label == "%": label = "percent"
if label.lower() == "in": label = "inch"
return self.__registry[label]
unit_registry = UnitRegistry()
|