cep-range


Namecep-range JSON
Version 0.0.1 PyPI version JSON
download
home_page
Summary
upload_time2023-07-05 18:17:00
maintainer
docs_urlNone
authorGabriel Gontijo
requires_python
licenseMIT License
keywords cep coordenadas geograficas enderecos postalcode address
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # cep_range

A biblioteca `cep_range` fornece funcoes relacionadas a obtencao de coordenadas geograficas, calculo de distancia entre dois pontos, obtencao de CEP a partir de coordenadas, busca de CEPs dentro de um raio especifico, outros.

**Funcoes:**

1. `validate_cep(cep)`: Funcao para validar um CEP que retornar um formato padrao "XXXXX-XXX".

2. `get_coordinates(cep)`: Funcao para obter as coordenadas geograficas (`latitude` e `longitude`) a partir de um CEP. Utiliza o Selenium para abrir o Google Maps, inserir o CEP na barra de pesquisa, aguardar o carregamento da pagina e extrair as coordenadas da URL. Retorna as coordenadas como uma tupla `(latitude, longitude)`. Se as coordenadas não forem encontradas, gera uma mensagem de erro.

3. `calculate_distance(cep_1, cep_2, unit)`: Funcao para calcular a distancia entre dois pontos geográficos. Obtém as coordenadas dos CEPs fornecidos usando a funcao `get_coordinates()`, converte as coordenadas para radianos e calcula a distancia. O resultado e retornado em quilometros (`unit='KM'`) ou metros (`unit='M'`). Se as coordenadas nao forem encontradas para algum dos CEPs gera uma excecao `CoordinatesNotFoundError`.

4. `get_cep(latitude, longitude)`: Funcao para obter o CEP correspondente a um par de coordenadas geograficas (`latitude` e `longitude`). Utiliza Nominatim do Geopy para reverter a geocodificacao e obter o CEP. Retorna o CEP se encontrado. Caso contrario, lança uma excecao indicando que nao foi possivel converter as coordenadas em CEP. Infelizmente o Nominatim pode retorna dados imprecisos.

5. `ceps_range(raio_m, cep_c)`: Funcao para gerar uma lista de CEPs unicos dentro de um determinado raio (em metros) a partir de um CEP central.

**Bibliotecas Necessarias:**
- geopy.geocoders.Nominatim: Biblioteca que fornece uma interface para o servico de geocodificacao do Nominatim, usado para converter coordenadas em CEP.
- selenium.webdriver: Módulo utilizado para automatizar a interacao com um navegador web, usado para capturar dados de (`latitude` e `longitude`) de forma precisa.
- selenium.webdriver.common.by: 'By' Utilizada para localizar elementos em uma pagina.
- selenium.webdriver.support.ui.WebDriverWait: Classe utilizada para aguardar condicoes especificas de elementos da pagina.
- selenium.webdriver.support.expected_conditions
- math
- re

**Instalacao:**
```
 pip install cep-range
```

Exemplos:
```python
 import cep_range

 ceps_raio_500m = cep_range.ceps_range(500, '01153-000')
 # output = ['01155-020', '01154-020', '01234-001', '01150-000', '01151-000', '01156-001', '01155-010', '01152-000', '01155-040', '01232-010', '01155-030', '01154-030', '01155-060', '01156-030', '01233-060', '01154-000', '01150-001', '01231-010', '01155-000', '01235-000', '01154-010']

 distancia = cep_range.calculate_distance('01150-000', '01154-010', 'm')
 # output = 829.704

 coordenadas = cep_range.get_coordinates('01154-010')
 # output = (-23.5290645, -46.6634956)
```
            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "cep-range",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "cep coordenadas geograficas enderecos postalcode address",
    "author": "Gabriel Gontijo",
    "author_email": "gontijogabr@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/f9/6f/23646a0a8d8327e21eb0cb8443120af76e6ce3808ba7a5a00d9e01d73314/cep-range-0.0.1.tar.gz",
    "platform": null,
    "description": "# cep_range\n\nA biblioteca `cep_range` fornece funcoes relacionadas a obtencao de coordenadas geograficas, calculo de distancia entre dois pontos, obtencao de CEP a partir de coordenadas, busca de CEPs dentro de um raio especifico, outros.\n\n**Funcoes:**\n\n1. `validate_cep(cep)`: Funcao para validar um CEP que retornar um formato padrao \"XXXXX-XXX\".\n\n2. `get_coordinates(cep)`: Funcao para obter as coordenadas geograficas (`latitude` e `longitude`) a partir de um CEP. Utiliza o Selenium para abrir o Google Maps, inserir o CEP na barra de pesquisa, aguardar o carregamento da pagina e extrair as coordenadas da URL. Retorna as coordenadas como uma tupla `(latitude, longitude)`. Se as coordenadas n\u00c3\u00a3o forem encontradas, gera uma mensagem de erro.\n\n3. `calculate_distance(cep_1, cep_2, unit)`: Funcao para calcular a distancia entre dois pontos geogr\u00c3\u00a1ficos. Obt\u00c3\u00a9m as coordenadas dos CEPs fornecidos usando a funcao `get_coordinates()`, converte as coordenadas para radianos e calcula a distancia. O resultado e retornado em quilometros (`unit='KM'`) ou metros (`unit='M'`). Se as coordenadas nao forem encontradas para algum dos CEPs gera uma excecao `CoordinatesNotFoundError`.\n\n4. `get_cep(latitude, longitude)`: Funcao para obter o CEP correspondente a um par de coordenadas geograficas (`latitude` e `longitude`). Utiliza Nominatim do Geopy para reverter a geocodificacao e obter o CEP. Retorna o CEP se encontrado. Caso contrario, lan\u00c3\u00a7a uma excecao indicando que nao foi possivel converter as coordenadas em CEP. Infelizmente o Nominatim pode retorna dados imprecisos.\n\n5. `ceps_range(raio_m, cep_c)`: Funcao para gerar uma lista de CEPs unicos dentro de um determinado raio (em metros) a partir de um CEP central.\n\n**Bibliotecas Necessarias:**\n- geopy.geocoders.Nominatim: Biblioteca que fornece uma interface para o servico de geocodificacao do Nominatim, usado para converter coordenadas em CEP.\n- selenium.webdriver: M\u00c3\u00b3dulo utilizado para automatizar a interacao com um navegador web, usado para capturar dados de (`latitude` e `longitude`) de forma precisa.\n- selenium.webdriver.common.by: 'By' Utilizada para localizar elementos em uma pagina.\n- selenium.webdriver.support.ui.WebDriverWait: Classe utilizada para aguardar condicoes especificas de elementos da pagina.\n- selenium.webdriver.support.expected_conditions\n- math\n- re\n\n**Instalacao:**\n```\n pip install cep-range\n```\n\nExemplos:\n```python\n import cep_range\n\n ceps_raio_500m = cep_range.ceps_range(500, '01153-000')\n # output = ['01155-020', '01154-020', '01234-001', '01150-000', '01151-000', '01156-001', '01155-010', '01152-000', '01155-040', '01232-010', '01155-030', '01154-030', '01155-060', '01156-030', '01233-060', '01154-000', '01150-001', '01231-010', '01155-000', '01235-000', '01154-010']\n\n distancia = cep_range.calculate_distance('01150-000', '01154-010', 'm')\n # output = 829.704\n\n coordenadas = cep_range.get_coordinates('01154-010')\n # output = (-23.5290645, -46.6634956)\n```",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "",
    "version": "0.0.1",
    "project_urls": null,
    "split_keywords": [
        "cep",
        "coordenadas",
        "geograficas",
        "enderecos",
        "postalcode",
        "address"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f96f23646a0a8d8327e21eb0cb8443120af76e6ce3808ba7a5a00d9e01d73314",
                "md5": "0269ac7a73d8df725e2b2f1568ed9a9b",
                "sha256": "7040579a71a83a6f7dc8264c7014b32934970840192813c64f23e1123810b9b6"
            },
            "downloads": -1,
            "filename": "cep-range-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "0269ac7a73d8df725e2b2f1568ed9a9b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 4166,
            "upload_time": "2023-07-05T18:17:00",
            "upload_time_iso_8601": "2023-07-05T18:17:00.809838Z",
            "url": "https://files.pythonhosted.org/packages/f9/6f/23646a0a8d8327e21eb0cb8443120af76e6ce3808ba7a5a00d9e01d73314/cep-range-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-05 18:17:00",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "cep-range"
}
        
Elapsed time: 0.14776s