Seu pedido de recurso está relacionado a um problema? Por favor, descreva.
Dado o nome de um município, desejo obter o código IBGE correspondente. A busca deve funcionar mesmo sem considerar diferenças de maiúsculas, minúsculas, acentuação e o caractere especial ç (considerando c também).
Por exemplo, ao passar o nome "São Paulo", "sao paulo", ou "São paulo", a função deve retornar "3550308". Também deve considerar "Conceição do Coité" como "Conceicao do Coite".
Descreva a solução que você gostaria
- Uma função
get_code_by_municipality_name, que recebe o nome de um município (string) e retorna o código IBGE correspondente (string).
- A função deve ignorar diferenças de maiúsculas, minúsculas, acentos e o caractere especial ç (considerando c também).
- Para nomes de municípios que não existirem na base, a função deve retornar
None.
- A saída deve ser formatada como:
"Código IBGE". Exemplo: "3550308".
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/municipality.py.
def get_code_by_municipality_name(municipality_name): # type: (str) -> str | None
"""
Returns the IBGE code for a given municipality name.
This function takes a string representing a municipality's name
and returns the corresponding IBGE code (string). The function
will handle names by ignoring differences in case, accents, and
treating the character ç as c.
Args:
municipality_name (str): The name of the municipality.
Returns:
str: The IBGE code of the municipality.
- Returns None if the name is not valid or does not exist.
Example:
>>> get_code_by_municipality_name("São Paulo")
"3550308"
>>> get_code_by_municipality_name("goiania")
"5208707"
>>> get_code_by_municipality_name("Conceição do Coité")
"2909401"
>>> get_code_by_municipality_name("conceicao do Coite")
"2909401"
>>> get_code_by_municipality_name("Municipio Inexistente")
None
"""
# Implementar a lógica de busca pelo nome do município, lidando com diferenças de acentuação e capitalização
Importar a nova função no arquivo brutils-python/brutils/__init__.py
# IBGE Imports
from brutils.ibge.municipality import (
get_code_by_municipality_name,
)
E adicionar o nome da nova função na lista __all__ do mesmo arquivo brutils-python/brutils/__init__.py:
__all__ = [
...
# IBGE
get_code_by_municipality_name
]
-
Como parte do passo 9, criar o arquivo de teste: brutils-python/tests/ibge/municipality.py.
from unittest import TestCase
from brutils.ibge.municipality import get_code_by_municipality_name
class TestIBGE(TestCase):
def test_get_code_by_municipality_name(self):
self.assertEqual(get_code_by_municipality_name("São Paulo"), "3550308")
self.assertEqual(get_code_by_municipality_name("rio de janeiro"), "3304557")
self.assertEqual(get_code_by_municipality_name("GOIANIA"), "5208707")
self.assertEqual(get_code_by_municipality_name("Conceição do Coité"), "2909401")
self.assertEqual(get_code_by_municipality_name("conceicao do Coite"), "2909401")
self.assertIsNone(get_code_by_municipality_name("Municipio Inexistente"))
# Implementar mais casos de teste aqui
-
Seguir os passos seguintes do guia de contribuição.
Contexto adicional
Seu pedido de recurso está relacionado a um problema? Por favor, descreva.
Dado o nome de um município, desejo obter o código IBGE correspondente. A busca deve funcionar mesmo sem considerar diferenças de maiúsculas, minúsculas, acentuação e o caractere especial ç (considerando c também).
Por exemplo, ao passar o nome
"São Paulo","sao paulo", ou"São paulo", a função deve retornar"3550308". Também deve considerar"Conceição do Coité"como"Conceicao do Coite".Descreva a solução que você gostaria
get_code_by_municipality_name, que recebe o nome de um município (string) e retorna o código IBGE correspondente (string).None."Código IBGE". Exemplo:"3550308".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/municipality.py.Importar a nova função no arquivo
brutils-python/brutils/__init__.pyE 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/municipality.py.Seguir os passos seguintes do guia de contribuição.
Contexto adicional