Юниты с одинаковым именем в Pint - переопределить / использовать контексты? - PullRequest
0 голосов
/ 24 апреля 2020

Есть ли способ обработки единиц, которые имеют одинаковое имя / метку в Pint (возможно, путем переключения контекстов или использования групп или систем)? Например:

  • G может иногда использоваться для галлона, силы тяжести или даже Galileo
  • Gal может использоваться для галлона или Galileo
  • C можно использовать для Цельсия или Кулона
@context volume
    gallon = gallon = 231 * cubic_inch
    GAL = gallon
    Gal = gallon
    G = gallon
@end

@context acceleration
    galileo = centimeter / second ** 2
    GAL = galileo
    Gal = galileo
    G = galileo
@end

@context temperature
    degree_Celsius = kelvin
    C = degree_Celsius
@end

@context charge
    coulomb = ampere * second
    C = coulomb
@end

Затем я мог бы переключать контексты перед работой с определенным типом юнитов. Однако я, похоже, неправильно понимаю, как работает Pint, потому что мой пример кода приводит к ошибке.

Я знаю, что Pint обрабатывает единицы в моих примерах, используя небольшие различия в использовании заглавных букв, символа степени и т. Д. c , Тем не менее, это не очень хорошо работает для моего проекта. Мне гораздо легче определить тип единицы, с которой я работаю, на основе предоставленных мне имен переменных, чем определить ее по имени / метке единицы (я могу объяснить это более подробно, если это необходимо). Возможно ли временно переопределить юнит, подобный этому, с помощью контекста?

EDIT : я также разместил свой вопрос на GintHub в Pint, и разработчики ответили там. Проверьте эту страницу для обновлений и потенциальных решений: https://github.com/hgrecco/pint/issues/1089

...