# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/02_utils.ipynb.

# %% auto 0
__all__ = ['codigos_vencimentos', 'let_only_digits', 'format_cnpj', 'format_cpf', 'fill_zeros']

# %% ../nbs/02_utils.ipynb 2
import pandas as pd

# %% ../nbs/02_utils.ipynb 3
def let_only_digits(doc: str) -> str:
    """Remove all non-digit characters from a string"""
    return ''.join(filter(str.isdigit, doc))

# %% ../nbs/02_utils.ipynb 7
def format_cnpj(cnpj: str) -> str:
    """Format a CNPJ string"""
    return cnpj[:2] + '.' + cnpj[2:5] + '.' + cnpj[5:8] + '/' + cnpj[8:12] + '-' + cnpj[12:]

# %% ../nbs/02_utils.ipynb 9
def format_cpf(cpf: str) -> str:
    """Format a CPF string"""
    return cpf[:3] + '.' + cpf[3:6] + '.' + cpf[6:9] + '-' + cpf[9:]

# %% ../nbs/02_utils.ipynb 11
def fill_zeros(doc: str, n: int) -> str:
    """Fill a string with zeros to the left with n characters"""
    return doc.zfill(n)

# %% ../nbs/02_utils.ipynb 14
codigos_vencimentos = pd.DataFrame([{'Descrição': 'Limite de crédito com vencimento até 360 dias ',
  'CodigoVencimento': 'v20'},
 {'Descrição': 'Limite de crédito com vencimento acima de 360 dias ',
  'CodigoVencimento': 'v40'},
 {'Descrição': 'Créditos a liberar até 360 dias ', 'CodigoVencimento': 'v60'},
 {'Descrição': 'Créditos a liberar acima de 360 dias ',
  'CodigoVencimento': 'v80'},
 {'Descrição': 'Créditos a vencer até 30 dias', 'CodigoVencimento': 'v110'},
 {'Descrição': 'Créditos a vencer de 31 a 60 dias',
  'CodigoVencimento': 'v120'},
 {'Descrição': 'Créditos a vencer de 61 a 90 dias',
  'CodigoVencimento': 'v130'},
 {'Descrição': 'Créditos a vencer de 91 a 180 dias',
  'CodigoVencimento': 'v140'},
 {'Descrição': 'Créditos a vencer de 181 a 360 dias ',
  'CodigoVencimento': 'v150'},
 {'Descrição': 'Créditos a vencer de 361 a 720 dias',
  'CodigoVencimento': 'v160'},
 {'Descrição': 'Créditos a vencer de 721 a 1080 dias',
  'CodigoVencimento': 'v165'},
 {'Descrição': 'Créditos a vencer de 1081 a 1440 dias',
  'CodigoVencimento': 'v170'},
 {'Descrição': 'Créditos a vencer de 1441 a 1800 dias',
  'CodigoVencimento': 'v175'},
 {'Descrição': 'Créditos a vencer de 1801 a 5400 dias',
  'CodigoVencimento': 'v180'},
 {'Descrição': 'Créditos a vencer acima de 5400 dias',
  'CodigoVencimento': 'v190'},
 {'Descrição': 'Créditos a vencer com prazo indeterminado',
  'CodigoVencimento': 'v199'},
 {'Descrição': 'Créditos vencidos de 1 a 14 dias', 'CodigoVencimento': 'v205'},
 {'Descrição': 'Créditos vencidos de 15 a 30 dias',
  'CodigoVencimento': 'v210'},
 {'Descrição': 'Créditos vencidos de 31 a 60 dias',
  'CodigoVencimento': 'v220'},
 {'Descrição': 'Créditos vencidos de 61 a 90 dias',
  'CodigoVencimento': 'v230'},
 {'Descrição': 'Créditos vencidos de 91 a 120 dias',
  'CodigoVencimento': 'v240'},
 {'Descrição': 'Créditos vencidos de 121 a 150 dias',
  'CodigoVencimento': 'v245'},
 {'Descrição': 'Créditos vencidos de 151 a 180 dias',
  'CodigoVencimento': 'v250'},
 {'Descrição': 'Créditos vencidos de 181 a 240 dias',
  'CodigoVencimento': 'v255'},
 {'Descrição': 'Créditos vencidos de 241 a 300 dias',
  'CodigoVencimento': 'v260'},
 {'Descrição': 'Créditos vencidos de 301 a 360 dias',
  'CodigoVencimento': 'v270'},
 {'Descrição': 'Créditos vencidos de 361 a 540 dias',
  'CodigoVencimento': 'v280'},
 {'Descrição': 'Créditos vencidos acima de 540 dias',
  'CodigoVencimento': 'v290'},
 {'Descrição': 'Créditos baixados como prejuízo até 12 meses',
  'CodigoVencimento': 'v310'},
 {'Descrição': 'Créditos baixados como prejuízo há mais de 12m e até 48 meses',
  'CodigoVencimento': 'v320'},
 {'Descrição': 'Créditos baixados como prejuízo há mais de 48 meses',
  'CodigoVencimento': 'v330'}])
