Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mesclando os métodos is_valid's do telefone em apenas um #256

Merged
merged 2 commits into from
Oct 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 10 additions & 13 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,27 +8,24 @@
- Exemplo 2: Descrição da segunda alteração.
- ...-->


## Checklist de Revisão
<!--- Marque as caixas que se aplicam. Você pode deixar caixas desmarcadas se elas não se aplicarem.-->

- [] Eu li o [Contributing.md](https://github.com/brazilian-utils/brutils-python/blob/main/CONTRIBUTING.md)
- [] Os testes foram adicionados ou atualizados para refletir as mudanças (se aplicável).
- [] Foi adicionada uma entrada no changelog / Meu PR não necessita de uma nova entrada no changelog.
- [] A [documentação](https://github.com/brazilian-utils/brutils-python/blob/main/README.md) em português foi atualizada ou criada, se necessário.
- [] Se feita a documentação, a atualização do [arquivo em inglês](https://github.com/brazilian-utils/brutils-python/blob/main/README_EN.md). <!---Permitido uso de Google Tradutor/ChatGPT. -->
- [] Eu documentei as minhas mudanças no código, adicionando docstrings e comentários. [Instruções](https://github.com/brazilian-utils/brutils-python/blob/main/CONTRIBUTING.md#8-fa%C3%A7a-as-suas-altera%C3%A7%C3%B5es)
- [] O código segue as diretrizes de estilo e padrões de codificação do projeto.
- [] Todos os testes passam. [Instruções](https://github.com/brazilian-utils/brutils-python/blob/main/CONTRIBUTING.md#testes)
- [] O Pull Request foi testado localmente. [Instruções](https://github.com/brazilian-utils/brutils-python/blob/main/CONTRIBUTING.md#7-execute-o-brutils-localmente)
- [] Não há conflitos de mesclagem.

- [ ] Eu li o [Contributing.md](https://github.com/brazilian-utils/brutils-python/blob/main/CONTRIBUTING.md)
- [ ] Os testes foram adicionados ou atualizados para refletir as mudanças (se aplicável).
- [ ] Foi adicionada uma entrada no changelog / Meu PR não necessita de uma nova entrada no changelog.
- [ ] A [documentação](https://github.com/brazilian-utils/brutils-python/blob/main/README.md) em português foi atualizada ou criada, se necessário.
- [ ] Se feita a documentação, a atualização do [arquivo em inglês](https://github.com/brazilian-utils/brutils-python/blob/main/README_EN.md). <!---Permitido uso de Google Tradutor/ChatGPT. -->
- [ ] Eu documentei as minhas mudanças no código, adicionando docstrings e comentários. [Instruções](https://github.com/brazilian-utils/brutils-python/blob/main/CONTRIBUTING.md#8-fa%C3%A7a-as-suas-altera%C3%A7%C3%B5es)
- [ ] O código segue as diretrizes de estilo e padrões de codificação do projeto.
- [ ] Todos os testes passam. [Instruções](https://github.com/brazilian-utils/brutils-python/blob/main/CONTRIBUTING.md#testes)
- [ ] O Pull Request foi testado localmente. [Instruções](https://github.com/brazilian-utils/brutils-python/blob/main/CONTRIBUTING.md#7-execute-o-brutils-localmente)
- [ ] Não há conflitos de mesclagem.

## Comentários Adicionais (opcional)
<!--- Adicione qualquer informação adicional ou contexto que você acha importante para os revisores entenderem suas mudanças.-->

## Issue Relacionada
<!---Todos os PRs devem ter uma issue relacionada. Dessa forma, podemos garantir que ninguém perca tempo trabalhando em algo que não precisa ser feito. -->


Closes #<numero_da_issue>
61 changes: 30 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,6 @@ False
- [Phone](#phone)
- [format_phone](#format_phone)
- [is_valid_phone](#is_valid_phone)
- [is_valid_mobile_phone](#is_valid_mobile_phone)
- [is_valid_landline_phone](#is_valid_landline_phone)
- [remove_symbols_phone](#remove_symbols_phone)
- [generate_mobile_phone](#generate_mobile_phone)
- [generate_landline_phone](#generate_landline_phone)
Expand Down Expand Up @@ -236,39 +234,40 @@ Formata um numero de telefone recebido para um formato apresentavel humanamente.

### is_valid_phone

Verifica se o número de telefone é valido, podendo ser telefone fixo ou celular. Apenas números,
com DDD e sem o prefixo internacional, formatados como string.
***Exemplo: +55 48 9999 9999 deve ser chamado como is_valid_phone('4899999999').*** Esta função
valida apenas números de telefone brasileiros e não verifica se o número realmente existe.
Retornar se um número de telefone brasileiro é valido.
Não verifica se o número realmente existe.

```python
>>> from brutils import is_valid_phone
>>> is_valid_phone('11994029275')
True
```
is_valid_phone(phone_number, type)
```

### is_valid_mobile_phone

Verifica se o número de celular é valido. Apenas números, com DDD e sem o prefixo internacional,
formatados como string.***Exemplo: +55 48 9999 9999 ficaria '4899999999'.*** Esta função valida
apenas números de celular brasileiros e não verifica se o número realmente existe.
Argumentos
- phone_number (str):
* o número de telefone a ser validado
* obrigatório
* apenas dígitos, sem símbolos
* sem o código do país
* deve incluir o número de DDD com dois dígitos
* exemplo: '+55 48 9999 9999' deve ser utilizado como '4899999999'

```python
>>> from brutils import is_valid_mobile_phone
>>> is_valid_mobile_phone('11994029275')
True
```
- type (str):
* 'mobile' para validar apenas números de celular
* 'landline' para validar apenas números de telefone fixo
* caso não especificado, valida para um para o outro.
* opcional

### is_valid_landline_phone
Retorno
- bool: True se o número é válido, False caso contrário.

Verifica se o número de telefone fixo é valido. Apenas números, com DDD e sem o prefixo
internacional, formatados como string. ***Exemplo: +55 48 3333 3333 ficaria '4833333333'.***
Esta função valida apenas números de telefones fixos brasileiros e não verifica se o número
realmente existe.
Example

```python
>>> from brutils import is_valid_landline_phone
>>> is_valid_landline_phone('1938814933')
>>> from brutils import is_valid_phone
>>> is_valid_phone('11994029275')
True
>>> is_valid_mobile_phone('11994029275', 'mobile')
True
>>> is_valid_landline_phone('1938814933', 'landline')
True
```

Expand All @@ -292,7 +291,7 @@ Gera um número de telefone móvel válido e aleatório
'63996408441'
>>> generate_mobile_phone()
'78964850019'
>>> generate_mobile_phone()
>>> generate_mobile_phone()
'53924997638'
```

Expand All @@ -317,7 +316,7 @@ Gera um número de telefone fixo válido

### is_valid_email

Verificar se uma string corresponde a um e-mail válido. As regras para validar um endereço de e-mail geralmente seguem as especificações definidas pelo RFC 5322 (atualizado pelo RFC 5322bis), que é o padrão amplamente aceito para formatos de endereços de e-mail.
Verificar se uma string corresponde a um e-mail válido. As regras para validar um endereço de e-mail geralmente seguem as especificações definidas pelo RFC 5322 (atualizado pelo RFC 5322bis), que é o padrão amplamente aceito para formatos de endereços de e-mail.

```python
from brutils import is_valid_email
Expand Down Expand Up @@ -368,7 +367,7 @@ False
### is_valid_license_plate_mercosul

Verifica se uma string correspondente a um número da placa é válido, conforme as novas
normas do Mercosul, isto é, seguindo o padrão LLLNLNN.
normas do Mercosul, isto é, seguindo o padrão LLLNLNN.
***Exemplo: ABC4E67.***

```python
Expand Down Expand Up @@ -617,4 +616,4 @@ Vamos construir juntos! 🚀🚀
[github-discussions-doc]: https://docs.github.com/pt/discussions
[github-discussions]: https://github.com/brazilian-utils/brutils-python/discussions
[github-issues-doc]: https://docs.github.com/pt/issues/tracking-your-work-with-issues/creating-an-issue
[github-issues]: https://github.com/brazilian-utils/brutils-python/issues
[github-issues]: https://github.com/brazilian-utils/brutils-python/issues
49 changes: 28 additions & 21 deletions README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,6 @@ False
- [Phone](#phone)
- [format_phone](#format_phone)
- [is_valid_phone](#is_valid_phone)
- [is_valid_mobile_phone](#is_valid_mobile_phone)
- [is_valid_landline_phone](#is_valid_landline_phone)
- [remove_symbols_phone](#remove_symbols_phone)
- [generate_mobile_phone](#generate_mobile_phone)
- [generate_landline_phone](#generate_landline_phone)
Expand Down Expand Up @@ -239,31 +237,40 @@ Formats a given phone number to a human-presentable format. If it is not a valid

### is_valid_phone

Check if phone number is valid, can be landline or mobile phone. Numbers only, with area code (DDD) and without the international prefix, formatted as a string. ***For example: +55 48 9999 9999 would become '4899999999'*** This function validates only Brazilian phone numbers and does not verify if the number actually exists.
Return whether a Brazilian phone number is valid.
It does not verify if the number actually exists.

```python
>>> from brutils import is_valid_phone
>>> is_valid_phone('11994029275')
True
```
is_valid_phone(phone_number, type)
```

### is_valid_mobile_phone

Check if mobile phone number is valid. Numbers only, with area code (DDD) and without the international prefix, formatted as a string. ***For example: +55 48 9999 9999 would become '4899999999'*** This function validates only Brazilian phone numbers and does not verify if the number actually exists.
Args
- phone_number:
* the phone number to be validated
* mandatory
* digits only, no symbols
* without the country code
* should include the area code (DDD) with two digits
* example: '+55 48 9999 9999' should be used as '4899999999'

```python
>>> from brutils import is_valid_mobile_phone
>>> is_valid_mobile_phone('11994029275')
True
```
- type:
* 'mobile' to validate only mobile numbers
* 'landline' to validate only landline phone numbers
* if not specified, it validates for either.
* optional

### is_valid_landline_phone
Return
- bool: True if the phone number is valid. False otherwise.

Check if landline phone number is valid. Numbers only, with area code (DDD) and without the international prefix, formatted as a string. ***For example: +55 48 3333 3333 would become '4833333333'.*** This function validates only Brazilian phone numbers and does not verify if the number actually exists.
Example

```python
>>> from brutils import is_valid_landline_phone
>>> is_valid_landline_phone('1938814933')
>>> from brutils import is_valid_phone
>>> is_valid_phone('11994029275')
True
>>> is_valid_mobile_phone('11994029275', 'mobile')
True
>>> is_valid_landline_phone('1938814933', 'landline')
True
```

Expand All @@ -287,7 +294,7 @@ Generates a valid and random mobile phone number
'63996408441'
>>> generate_mobile_phone()
'78964850019'
>>> generate_mobile_phone()
>>> generate_mobile_phone()
'53924997638'
```

Expand Down Expand Up @@ -625,4 +632,4 @@ Let's build it together 🚀🚀
[github-discussions-doc]: https://docs.github.com/en/discussions
[github-discussions]: https://github.com/brazilian-utils/brutils-python/discussions
[github-issues-doc]: https://docs.github.com/en/issues/tracking-your-work-with-issues/creating-an-issue
[github-issues]: https://github.com/brazilian-utils/brutils-python/issues
[github-issues]: https://github.com/brazilian-utils/brutils-python/issues
24 changes: 11 additions & 13 deletions brutils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,45 +8,43 @@
)

from brutils.cnpj import (
is_valid as is_valid_cnpj,
format_cnpj,
remove_symbols as remove_symbols_cnpj,
generate as generate_cnpj,
is_valid as is_valid_cnpj,
remove_symbols as remove_symbols_cnpj,
)

from brutils.cep import (
is_valid as is_valid_cep,
format_cep,
generate as generate_cep,
is_valid as is_valid_cep,
remove_symbols as remove_symbols_cep,
)

from brutils.phone import (
is_valid_landline as is_valid_landline_phone,
is_valid_mobile as is_valid_mobile_phone,
is_valid as is_valid_phone,
format_phone,
generate_mobile_phone,
generate_landline_phone,
generate_mobile_phone,
is_valid as is_valid_phone,
)

from brutils.license_plate import (
is_valid_mercosul as is_valid_license_plate_mercosul,
is_valid_license_plate_old_format,
is_valid as is_valid_license_plate,
convert_to_mercosul as convert_license_plate_to_mercosul,
format as format_license_plate,
remove_symbols as remove_symbols_license_plate,
get_format as get_license_plate_format,
is_valid as is_valid_license_plate,
is_valid_old_format as is_valid_license_plate_old_format,
is_valid_mercosul as is_valid_license_plate_mercosul,
remove_symbols as remove_symbols_license_plate,
)

from brutils.email import is_valid as is_valid_email

from brutils.pis import (
is_valid as is_valid_pis,
format_pis,
generate as generate_pis,
is_valid as is_valid_pis,
remove_symbols as remove_symbols_pis,
format_pis,
)

from brutils.legal_process import (
Expand Down
12 changes: 6 additions & 6 deletions brutils/license_plate.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def convert_to_mercosul(license_plate: str) -> Optional[str]:
Ex: ABC4567 - > ABC4F67
ABC4*67 - > 'None'
"""
if not is_valid_license_plate_old_format(license_plate):
if not is_valid_old_format(license_plate):
return None

digits = [letter for letter in license_plate.upper()]
Expand All @@ -34,7 +34,7 @@ def format(license_plate: str) -> Optional[str]:
ABC123 - > 'None'
"""
license_plate = license_plate.upper()
if is_valid_license_plate_old_format(license_plate):
if is_valid_old_format(license_plate):
return license_plate[0:3] + "-" + license_plate[3:]
elif is_valid_mercosul(license_plate):
return license_plate.upper()
Expand All @@ -50,12 +50,12 @@ def is_valid(license_plate: str) -> bool:
Checks wheter license plate is valid according to the old format and
the Mercosul one.
"""
return is_valid_license_plate_old_format(
return is_valid_old_format(license_plate) or is_valid_mercosul(
license_plate
) or is_valid_mercosul(license_plate)
)


def is_valid_license_plate_old_format(license_plate: str) -> bool:
def is_valid_old_format(license_plate: str) -> bool:
"""
Checks whether a string matches the old format of Brazilian license plate.
"""
Expand Down Expand Up @@ -105,7 +105,7 @@ def get_format(license_plate: str) -> Optional[str]:
value[None]: For invalid license plates
"""

if is_valid_license_plate_old_format(license_plate):
if is_valid_old_format(license_plate):
return "LLLNNNN"

if is_valid_mercosul(license_plate):
Expand Down
Loading