cep-range-lib


Namecep-range-lib JSON
Version 0.0.1 PyPI version JSON
download
home_page
Summary
upload_time2023-07-05 17:06:53
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 funções relacionadas à obtenção de coordenadas geográficas, cálculo de distância entre dois pontos, obtenção de CEP a partir de coordenadas, busca de CEPs dentro de um raio específico, outros.

**Funções:**

1. `validate_cep(cep)`: Função para validar um CEP que retornar um formato padrão "XXXXX-XXX".

2. `get_coordinates(cep)`: Função para obter as coordenadas geográficas (`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 página 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)`: Função para calcular a distância entre dois pontos geográficos. Obtém as coordenadas dos CEPs fornecidos usando a função `get_coordinates()`, converte as coordenadas para radianos e calcula a distância. O resultado é retornado em quilômetros (`unit='KM'`) ou metros (`unit='M'`). Se as coordenadas não forem encontradas para algum dos CEPs gera uma exceção `CoordinatesNotFoundError`.

4. `get_cep(latitude, longitude)`: Função para obter o CEP correspondente a um par de coordenadas geográficas (`latitude` e `longitude`). Utiliza Nominatim do Geopy para reverter a geocodificação e obter o CEP. Retorna o CEP se encontrado. Caso contrário, lança uma exceção indicando que não foi possível converter as coordenadas em CEP. Infelizmente o Nominatim pode retorna dados imprecisos.

5. `ceps_range(raio_m, cep_c)`: Função para gerar uma lista de CEPs únicos dentro de um determinado raio (em metros) a partir de um CEP central.

**Bibliotecas Necessárias:**
- geopy.geocoders.Nominatim: Biblioteca que fornece uma interface para o serviço de geocodificação do Nominatim, usado para converter coordenadas em CEP.
- selenium.webdriver: Módulo utilizado para automatizar a interação 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 página.
- selenium.webdriver.support.ui.WebDriverWait: Classe utilizada para aguardar condições específicas de elementos da página.
- selenium.webdriver.support.expected_conditions
- math
- re

**Instalação**

```shell
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-lib",
    "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/5a/1d/bf9848223170b65fad0de7a9ad170f747fe85ad1a9a6a5e2835b0c138268/cep-range-lib-0.0.1.tar.gz",
    "platform": null,
    "description": "# cep_range\n\nA biblioteca `cep_range` fornece fun\u00c3\u00a7\u00c3\u00b5es relacionadas \u00c3\u00a0 obten\u00c3\u00a7\u00c3\u00a3o de coordenadas geogr\u00c3\u00a1ficas, c\u00c3\u00a1lculo de dist\u00c3\u00a2ncia entre dois pontos, obten\u00c3\u00a7\u00c3\u00a3o de CEP a partir de coordenadas, busca de CEPs dentro de um raio espec\u00c3\u00adfico, outros.\n\n**Fun\u00c3\u00a7\u00c3\u00b5es:**\n\n1. `validate_cep(cep)`: Fun\u00c3\u00a7\u00c3\u00a3o para validar um CEP que retornar um formato padr\u00c3\u00a3o \"XXXXX-XXX\".\n\n2. `get_coordinates(cep)`: Fun\u00c3\u00a7\u00c3\u00a3o para obter as coordenadas geogr\u00c3\u00a1ficas (`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 p\u00c3\u00a1gina 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)`: Fun\u00c3\u00a7\u00c3\u00a3o para calcular a dist\u00c3\u00a2ncia entre dois pontos geogr\u00c3\u00a1ficos. Obt\u00c3\u00a9m as coordenadas dos CEPs fornecidos usando a fun\u00c3\u00a7\u00c3\u00a3o `get_coordinates()`, converte as coordenadas para radianos e calcula a dist\u00c3\u00a2ncia. O resultado \u00c3\u00a9 retornado em quil\u00c3\u00b4metros (`unit='KM'`) ou metros (`unit='M'`). Se as coordenadas n\u00c3\u00a3o forem encontradas para algum dos CEPs gera uma exce\u00c3\u00a7\u00c3\u00a3o `CoordinatesNotFoundError`.\n\n4. `get_cep(latitude, longitude)`: Fun\u00c3\u00a7\u00c3\u00a3o para obter o CEP correspondente a um par de coordenadas geogr\u00c3\u00a1ficas (`latitude` e `longitude`). Utiliza Nominatim do Geopy para reverter a geocodifica\u00c3\u00a7\u00c3\u00a3o e obter o CEP. Retorna o CEP se encontrado. Caso contr\u00c3\u00a1rio, lan\u00c3\u00a7a uma exce\u00c3\u00a7\u00c3\u00a3o indicando que n\u00c3\u00a3o foi poss\u00c3\u00advel converter as coordenadas em CEP. Infelizmente o Nominatim pode retorna dados imprecisos.\n\n5. `ceps_range(raio_m, cep_c)`: Fun\u00c3\u00a7\u00c3\u00a3o para gerar uma lista de CEPs \u00c3\u00banicos dentro de um determinado raio (em metros) a partir de um CEP central.\n\n**Bibliotecas Necess\u00c3\u00a1rias:**\n- geopy.geocoders.Nominatim: Biblioteca que fornece uma interface para o servi\u00c3\u00a7o de geocodifica\u00c3\u00a7\u00c3\u00a3o do Nominatim, usado para converter coordenadas em CEP.\n- selenium.webdriver: M\u00c3\u00b3dulo utilizado para automatizar a intera\u00c3\u00a7\u00c3\u00a3o 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 p\u00c3\u00a1gina.\n- selenium.webdriver.support.ui.WebDriverWait: Classe utilizada para aguardar condi\u00c3\u00a7\u00c3\u00b5es espec\u00c3\u00adficas de elementos da p\u00c3\u00a1gina.\n- selenium.webdriver.support.expected_conditions\n- math\n- re\n\n**Instala\u00c3\u00a7\u00c3\u00a3o**\n\n```shell\npip 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": "5a1dbf9848223170b65fad0de7a9ad170f747fe85ad1a9a6a5e2835b0c138268",
                "md5": "b16f96e98fb292ec86500a736ea2756b",
                "sha256": "4a438e3423073d3108ee3f31668160bf9952a9da1a3dfeb157e1cd8c638e6ede"
            },
            "downloads": -1,
            "filename": "cep-range-lib-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "b16f96e98fb292ec86500a736ea2756b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 4342,
            "upload_time": "2023-07-05T17:06:53",
            "upload_time_iso_8601": "2023-07-05T17:06:53.873480Z",
            "url": "https://files.pythonhosted.org/packages/5a/1d/bf9848223170b65fad0de7a9ad170f747fe85ad1a9a6a5e2835b0c138268/cep-range-lib-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-05 17:06:53",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "cep-range-lib"
}
        
Elapsed time: 1.98602s