Пример #1
0
    def valor(self, valor):
        if self.formato == 'alfa':
            if not isinstance(valor, basestring):
                print "{0} - {1}".format(self.nome, self.valor)
                raise errors.TipoError(self, valor)
            if len(valor) > self.digitos:
                print "{0} - {1}".format(self.nome, self.valor)
                raise errors.NumDigitosExcedidoError(self, valor)

        elif self.decimais:
            if not isinstance(valor, Decimal):
                print "{0} - {1}".format(self.nome, self.valor)
                raise errors.TipoError(self, valor)

            num_decimais = valor.as_tuple().exponent * -1
            if num_decimais != self.decimais:
                print "{0} - {1}".format(self.nome, self.valor)
                raise errors.NumDecimaisError(self, valor)

            if len(str(valor).replace('.', '')) > self.digitos:
                print "{0} - {1}".format(self.nome, self.valor)
                raise errors.NumDigitosExcedidoError(self, valor)

        else:
            if not isinstance(valor, (int, long)):
                print "{0} - {1}".format(self.nome, self.valor)
                raise errors.TipoError(self, valor)
            if len(str(valor)) > self.digitos:
                print "{0} - {1}".format(self.nome, self.valor)
                raise errors.NumDigitosExcedidoError(self, valor)

        self._valor = valor
Пример #2
0
    def valor(self, valor):

        if self.formato == 'alfa':
            if not isinstance(valor, str):
                print("{0} - {1}".format(self.nome, valor))
                raise errors.TipoError(self, valor)

            valor = self._normalize_str(valor)

            if len(valor) > self.digitos:
                print("truncating - {0}".format(self.nome))
                # reduz o len(valor)
                cortar = len(valor) - self.digitos
                valor = valor[:-(cortar)]

        elif self.decimais:
            if not isinstance(valor, Decimal):
                print("{0} - {1}".format(self.nome, valor))
                raise errors.TipoError(self, valor)

            num_decimais = valor.as_tuple().exponent * -1
            if num_decimais != self.decimais:
                print("{0} - {1}".format(self.nome, valor))
                raise errors.NumDecimaisError(self, valor)

            if len(str(valor).replace('.', '')) > self.digitos:
                print("{0} - {1}".format(self.nome, valor))
                raise errors.NumDigitosExcedidoError(self, valor)

        else:
            if not isinstance(valor, int):
                print("{0} - {1}".format(self.nome, valor))
                raise errors.TipoError(self, valor)
            if len(str(valor)) > self.digitos:
                print("{0} - {1}".format(self.nome, valor))
                raise errors.NumDigitosExcedidoError(self, valor)

        self._valor = valor
Пример #3
0
    def carregar(self, registro_str):
        for campo in self._campos.values():
            valor = registro_str[campo.inicio:campo.fim].strip()
            if campo.decimais:
                exponente = campo.decimais * -1
                dec = valor[:exponente] + '.' + valor[exponente:]
                try:
                    campo.valor = Decimal(dec)
                except InvalidOperation:
                    raise  # raise custom?

            elif campo.formato == 'num':
                try:
                    campo.valor = int(valor)
                except ValueError:
                    raise errors.TipoError(campo, valor)
            else:
                campo.valor = valor