Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cria função ibge.convert_text_to_uf que recebe um nome de estado e retorna sua UF. #450

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

alphabraga
Copy link

Descrição

Esse pull request tem a soluçao para issue #396 que define a criação de uma função ibge.convert_text_to_uf que recebe um nome de estado e retorna sua UF.

Mudanças Propostas

  • funcao criada no local solicitado.
  • testes criados
  • adinadas entradas no init.py

Checklist de Revisão

  • Eu li o Contributing.md
  • Os testes foram adicionados ou atualizados para refletir as mudanças (se aplicável).
  • Foi adicionada uma entrada no changelog / Meu PR não necessita de uma nova entrada no changelog.
  • A documentação em português foi atualizada ou criada, se necessário.
  • Se feita a documentação, a atualização do arquivo em inglês.
  • Eu documentei as minhas mudanças no código, adicionando docstrings e comentários. Instruções
  • O código segue as diretrizes de estilo e padrões de codificação do projeto.
  • Todos os testes passam. Instruções
  • O Pull Request foi testado localmente. Instruções
  • Não há conflitos de mesclagem.

Comentários Adicionais (opcional)

Issue Relacionada

Closes #396

@alphabraga alphabraga requested review from a team as code owners November 7, 2024 00:13
@alphabraga alphabraga changed the title 396 Cria função ibge.convert_text_to_uf que recebe um nome de estado e retorna sua UF. Nov 7, 2024
Copy link

codecov bot commented Nov 7, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 99.78%. Comparing base (4af1cdc) to head (ba653d1).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #450   +/-   ##
=======================================
  Coverage   99.78%   99.78%           
=======================================
  Files          18       18           
  Lines         472      476    +4     
=======================================
+ Hits          471      475    +4     
  Misses          1        1           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

@BeneBr BeneBr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ajudando o pessoal do brrutils com os PRs.
Aparentmente seu código me parece ok. Algumas poucas modificações acredito que sejam necessárias. Meu principal ponto é se realmente é preciso utilizarr a dependência unidecode

from brutils.data.enums.uf import CODE_TO_UF
from unidecode import unidecode

from brutils.data.enums.uf import CODE_TO_UF, UF


def convert_code_to_uf(code): # type: (str) -> str | None
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apesar do brutils não utilizar algo como o mypy para verificação de tipos de maneira estática, recomendo fortemente utilizar tipagem no código mesmo ao invés de docstrings.

Suggested change
def convert_code_to_uf(code): # type: (str) -> str | None
def convert_code_to_uf(code: str) -> str | None:

@@ -30,3 +32,35 @@ def convert_code_to_uf(code): # type: (str) -> str | None
result = CODE_TO_UF(code).name

return result


def convert_text_to_uf(state_name): # type: (str) -> str | None
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def convert_text_to_uf(state_name): # type: (str) -> str | None
def convert_text_to_uf(state_name: str) -> str | None:

None
"""

federal_units = {unidecode(i.value.upper()): i.name for i in UF}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

É realmente necessário utilizar essa nova dependência para tratar acentos? Ou tem alguma outra coisa que está dando errado e eu não estou percebendo?

Acredito que esse trecho possa ser definido assim:

federal_units= { uf.value.casefold(): uf for uf in UF}
return federal_units.get(state_name.casefold()), None)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Conversão de Nome de Estado para UF
2 participants