Allow custom units to be registered with Pint

pull/205/head
Russ Garrett 2018-04-14 12:27:06 +01:00
rodzic ab85605c61
commit 3c985ec271
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 68880BB652AB0570
2 zmienionych plików z 15 dodań i 1 usunięć

Wyświetl plik

@ -1186,6 +1186,11 @@ class Datasette:
}
return self._inspect
def register_custom_units(self):
"Register any custom units defined in the metadata.json with Pint"
for unit in self.metadata.get('custom_units', []):
ureg.define(unit)
def app(self):
app = Sanic(__name__)
default_templates = str(app_root / 'datasette' / 'templates')
@ -1230,6 +1235,8 @@ class Datasette:
'/<db_name:[^/]+>/<table:[^/]+?>/<pk_path:[^/]+?><as_json:(\.jsono?)?$>'
)
self.register_custom_units()
@app.exception(Exception)
def on_exception(request, exception):
title = None

Wyświetl plik

@ -79,7 +79,14 @@ Column units are configured in the metadata like so::
}
Units are interpreted using Pint_, and you can see the full list of available units in
Pint's `unit registry`_.
Pint's `unit registry`_. You can also add custom units to the metadata, which will be
registered with Pint::
{
"custom_units": [
"decibel = [] = dB"
]
}
.. _Pint: https://pint.readthedocs.io/
.. _unit registry: https://github.com/hgrecco/pint/blob/master/pint/default_en.txt