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 arquivo brutils-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
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
convert_code_to_uf, que recebe um código do IBGE (string de 2 dígitos) e retorna a sigla de UF correspondente.None.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.Importar a nova função no arquivo
brutils-python/brutils/__init__.py:E adicionar o nome da nova função na lista
__all__do mesmo arquivobrutils-python/brutils/__init__.py:Como parte do passo 9, criar o arquivo de teste:
brutils-python/tests/ibge/test_uf.py.Seguir os passos seguintes do guia de contribuição.
Contexto adicional