-
-
Notifications
You must be signed in to change notification settings - Fork 113
Description
Seu pedido de recurso está relacionado a um problema? Por favor, descreva.
Dado um código do IBGE de dois dígitos que representa um estado brasileiro, quero obter a sigla de Unidade Federativa (UF) correspondente. Isso é útil para conversão de códigos numéricos do IBGE em siglas de estados para sistemas e documentos.
Por exemplo, converter "12" para "AM" (Amazonas).
Descreva a solução que você gostaria
- Uma função
convert_code_to_uf, que recebe um código do IBGE (string de 2 dígitos) e retorna a sigla de UF correspondente. - A função deve verificar se o código do IBGE é válido e retornar a sigla da UF correspondente.
- Se o código do IBGE não for válido, a função deve retornar
None. - A função deve lidar com todos os estados e o Distrito Federal do Brasil.
- Os códigos do IBGE devem ser representados como strings de dois dígitos.
- Já existe um enum dos códigos do IBGE e suas correspondências com UF no arquivo
brutils/data/enums/ibge_uf.py, porém o enum não mapeia para o código. Criar um novo Enum no mesmo arquivo que mapeie código e UF.
Descreva alternativas que você considerou
-
Seguir até o passo 8 do guia de contribuição.
-
Como parte do passo 8, criar o arquivo:
brutils-python/brutils/ibge/uf.py.def convert_code_to_uf(code): # type: (str) -> str | None """ Converts a given IBGE code (2-digit string) to its corresponding UF (state abbreviation). This function takes a 2-digit IBGE code and returns the corresponding UF code. It handles all Brazilian states and the Federal District. Args: code (str): The 2-digit IBGE code to be converted. Returns: str or None: The UF code corresponding to the IBGE code, or None if the IBGE code is invalid. Example: >>> convert_code_to_uf('12') "AM" >>> convert_code_to_uf('33') "RJ" >>> convert_code_to_uf('99') None """ # implementar a lógica da função aqui
Importar a nova função no arquivo
brutils-python/brutils/__init__.py:# IBGE Imports from brutils.ibge.uf import ( convert_code_to_uf, )
E adicionar o nome da nova função na lista
__all__do mesmo arquivobrutils-python/brutils/__init__.py:__all__ = [ ... # IBGE 'convert_code_to_uf', ]
-
Como parte do passo 9, criar o arquivo de teste:
brutils-python/tests/ibge/test_uf.py.from unittest import TestCase from brutils.ibge.uf import convert_code_to_uf class TestUF(TestCase): def test_convert_code_to_uf(self): # Testes para códigos válidos self.assertEqual(convert_code_to_uf('12'), "AM") # Amazonas self.assertEqual(convert_code_to_uf('33'), "RJ") # Rio de Janeiro self.assertEqual(convert_code_to_uf('31'), "MG") # Minas Gerais self.assertEqual(convert_code_to_uf('52'), "GO") # Goiás # Testes para códigos inválidos self.assertIsNone(convert_code_to_uf('99')) # Código não existe self.assertIsNone(convert_code_to_uf('00')) # Código não existe self.assertIsNone(convert_code_to_uf('')) # Código vazio self.assertIsNone(convert_code_to_uf('AB')) # Código não numérico # implementar mais casos de teste aqui se necessário
-
Seguir os passos seguintes do guia de contribuição.
Contexto adicional
- A lista de códigos do IBGE e suas correspondências com as UFs é definida pelo Instituto Brasileiro de Geografia e Estatística (IBGE). Para mais detalhes, consulte o site do IBGE.
- A lista de códigos e suas correspondências pode ser encontrada em: https://www.ibge.gov.br/explicacoes-para-publico/explicacoes-para-publico/33180-tabela-de-codigos-de-unidade-federativa-uf.html.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status