Skip to content

Commit

Permalink
Mesclando os métodos is_valid's do telefone em apenas um (#256)
Browse files Browse the repository at this point in the history
* Arrumando checkboxes no template de PR

* Arrumando imports e agregando is_valid's para telefone
  • Loading branch information
camilamaia authored Oct 19, 2023
1 parent 2f018dd commit c5d54d8
Show file tree
Hide file tree
Showing 8 changed files with 304 additions and 208 deletions.
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

0 comments on commit c5d54d8

Please sign in to comment.