From 4efff7788f052cfdd2949af9198eb2c18a4cd4e8 Mon Sep 17 00:00:00 2001 From: Marcello Stanisci Date: Wed, 6 Dec 2017 17:51:55 +0100 Subject: annotating types for config parser --- talerbank/app/models.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'talerbank/app/models.py') diff --git a/talerbank/app/models.py b/talerbank/app/models.py index 97da159..b0d0ca4 100644 --- a/talerbank/app/models.py +++ b/talerbank/app/models.py @@ -21,8 +21,7 @@ from django.contrib.auth.models import User from django.db import models from django.conf import settings from django.core.exceptions import ValidationError -from . import amount -from .types import TA +from .amount import Amount, BadFormatAmount class AmountField(models.Field): @@ -36,30 +35,30 @@ class AmountField(models.Field): return "varchar" # Pass stringified object to db connector - def get_prep_value(self, value: TA) -> str: + def get_prep_value(self, value: Amount) -> str: if not value: return "%s:0.0" % settings.TALER_CURRENCY return value.stringify(settings.TALER_DIGITS) @staticmethod - def from_db_value(value: str, *args) -> TA: + def from_db_value(value: str, *args) -> Amount: del args # pacify PEP checkers if value is None: - return amount.Amount.parse(settings.TALER_CURRENCY) - return amount.Amount.parse(value) + return Amount.parse(settings.TALER_CURRENCY) + return Amount.parse(value) - def to_python(self, value: Any) -> TA: - if isinstance(value, amount.Amount): + def to_python(self, value: Any) -> Amount: + if isinstance(value, Amount): return value try: if value is None: - return amount.Amount.parse(settings.TALER_CURRENCY) - return amount.Amount.parse(value) - except amount.BadFormatAmount: + return Amount.parse(settings.TALER_CURRENCY) + return Amount.parse(value) + except BadFormatAmount: raise ValidationError("Invalid input for an amount string: %s" % value) -def get_zero_amount() -> TA: - return amount.Amount(settings.TALER_CURRENCY) +def get_zero_amount() -> Amount: + return Amount(settings.TALER_CURRENCY) class BankAccount(models.Model): is_public = models.BooleanField(default=False) -- cgit v1.2.3