(self, text, length, fill=" ", align="<")
return ascii_string
Format the string into a fixed length ASCII (iso-8859-1) record.

        Note:
            'Todos los campos alfanuméricos y alfabéticos se presentarán
            alineados a la izquierda y rellenos de blancos por la derecha,
            en mayúsculas sin caracteres especiales, y sin vocales acentuadas.
            Para los caracteres específicos del idioma se utilizará la
            codificación ISO-8859-1. De esta forma la letra “Ñ” tendrá el
            valor ASCII 209 (Hex. D1) y la “Ç” (cedilla mayúscula) el valor
            ASCII 199 (Hex. C7).'
Format the string into a fixed length ASCII (iso-8859-1) record.
Format the string into a fixed length ASCII ( iso - 8859 - 1 ) record .
def _format_string(self, text, length, fill=" ", align="<"):
        """Format the string into a fixed length ASCII (iso-8859-1) record.

        Note:
            'Todos los campos alfanuméricos y alfabéticos se presentarán
            alineados a la izquierda y rellenos de blancos por la derecha,
            en mayúsculas sin caracteres especiales, y sin vocales acentuadas.
            Para los caracteres específicos del idioma se utilizará la
            codificación ISO-8859-1. De esta forma la letra “Ñ” tendrá el
            valor ASCII 209 (Hex. D1) y la “Ç” (cedilla mayúscula) el valor
            ASCII 199 (Hex. C7).'
        """
        if not text:
            return fill * length
        # Replace accents and convert to upper
        from unidecode import unidecode

        text = text.upper()
        text = "".join([unidecode(x) if x not in ("Ñ", "Ç") else x for x in text])
        text = re.sub(r"[^A-Z0-9\s\.,-_&'´\\:;/\(\)ÑÇ]", "", text, re.UNICODE | re.X)
        ascii_string = text.encode("iso-8859-1")
        # Cut the string if it is too long
        if len(ascii_string) > length:
            ascii_string = ascii_string[:length]
        # Format the string
        ascii_fill = fill.encode("iso-8859-1")
        if align == "<":
            ascii_string = ascii_string.ljust(length, ascii_fill)
        elif align == ">":
            ascii_string = ascii_string.rjust(length, ascii_fill)
        else:
            raise AssertionError(_("Wrong align option. It should be < or >"))
        # Sanity-check
        assert len(ascii_string) == length, _(
            "The formated string must match the given length"
        )
        # Return string
        return ascii_string
def _format_string ( self , text , length , fill = " " , align = "<" ) : if not text : return fill * length # Replace accents and convert to upper from unidecode import unidecode text = text . upper ( ) text = "" . join ( [ unidecode ( x ) if x not in ( "Ñ", Ç")  e se x f r x i  t xt]) text = re . sub ( r"[^A-Z0-9\s\.,-_&'´\\:;/\(\)ÑÇ]", " "  t e t, r e UN I CODE |  e X) ascii_string = text . encode ( "iso-8859-1" ) # Cut the string if it is too long if len ( ascii_string ) > length : ascii_string = ascii_string [ : length ] # Format the string ascii_fill = fill . encode ( "iso-8859-1" ) if align == "<" : ascii_string = ascii_string . ljust ( length , ascii_fill ) elif align == ">" : ascii_string = ascii_string . rjust ( length , ascii_fill ) else : raise AssertionError ( _ ( "Wrong align option. It should be < or >" ) ) # Sanity-check assert len ( ascii_string ) == length , _ ( "The formated string must match the given length" ) # Return string return ascii_string