brdocs-validation 0.3.0__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {brdocs-validation-0.3.0/brdocs_validation.egg-info → brdocs_validation-0.4.0}/PKG-INFO +5 -2
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/README.md +5 -2
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/__init__.py +2 -0
- brdocs_validation-0.4.0/br_docs/validators/sei.py +17 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0/brdocs_validation.egg-info}/PKG-INFO +5 -2
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/brdocs_validation.egg-info/SOURCES.txt +1 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/pyproject.toml +2 -2
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/tests/test_brdocs.py +18 -2
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/LICENSE.txt +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/__init__.py +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/cert.py +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/cnh.py +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/cnpj.py +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/cns.py +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/cpf.py +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/nis.py +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/renavam.py +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/te.py +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/types/__init__.py +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/types/format.py +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/brdocs_validation.egg-info/dependency_links.txt +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/brdocs_validation.egg-info/requires.txt +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/brdocs_validation.egg-info/top_level.txt +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/setup.cfg +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/tests/test_check_two_digits.py +0 -0
- {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/tests/test_format.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: brdocs-validation
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Validate brazilian documents using Type Hints in classes inheriting Pydantic's (V2) BaseModel
|
|
5
5
|
Author-email: Vinícius Aguiar <vaguiararqdevsoftware@proton.me>
|
|
6
6
|
Maintainer-email: Vinícius Aguiar <vaguiararqdevsoftware@proton.me>
|
|
@@ -54,10 +54,12 @@ pip install brdocs-validation
|
|
|
54
54
|
| RENAVAM | | Only numbers | Length: _9, 10 & 11_ |
|
|
55
55
|
| TE | Título de eleitor | Only numbers | |
|
|
56
56
|
| CERT | Certidão de casamento, nascimento e óbito | Only numbers | |
|
|
57
|
+
| SEI | Número do Processo SEI | 12345-67890123/4567-89 OR without special chars | |
|
|
58
|
+
|
|
57
59
|
## Usage
|
|
58
60
|
|
|
59
61
|
```python
|
|
60
|
-
from br_docs import CNPJ, CPF, CNH, NIS, CNS, RENAVAM, TE, CERT
|
|
62
|
+
from br_docs import CNPJ, CPF, CNH, NIS, CNS, RENAVAM, TE, CERT, SEI
|
|
61
63
|
from pydantic import BaseModel
|
|
62
64
|
|
|
63
65
|
|
|
@@ -70,4 +72,5 @@ class User(BaseModel):
|
|
|
70
72
|
renavam: RENAVAM
|
|
71
73
|
te: TE
|
|
72
74
|
cert: CERT
|
|
75
|
+
sei: SEI
|
|
73
76
|
```
|
|
@@ -22,10 +22,12 @@ pip install brdocs-validation
|
|
|
22
22
|
| RENAVAM | | Only numbers | Length: _9, 10 & 11_ |
|
|
23
23
|
| TE | Título de eleitor | Only numbers | |
|
|
24
24
|
| CERT | Certidão de casamento, nascimento e óbito | Only numbers | |
|
|
25
|
+
| SEI | Número do Processo SEI | 12345-67890123/4567-89 OR without special chars | |
|
|
26
|
+
|
|
25
27
|
## Usage
|
|
26
28
|
|
|
27
29
|
```python
|
|
28
|
-
from br_docs import CNPJ, CPF, CNH, NIS, CNS, RENAVAM, TE, CERT
|
|
30
|
+
from br_docs import CNPJ, CPF, CNH, NIS, CNS, RENAVAM, TE, CERT, SEI
|
|
29
31
|
from pydantic import BaseModel
|
|
30
32
|
|
|
31
33
|
|
|
@@ -38,4 +40,5 @@ class User(BaseModel):
|
|
|
38
40
|
renavam: RENAVAM
|
|
39
41
|
te: TE
|
|
40
42
|
cert: CERT
|
|
41
|
-
|
|
43
|
+
sei: SEI
|
|
44
|
+
```
|
|
@@ -9,6 +9,7 @@ from br_docs.validators.cpf import CPFv
|
|
|
9
9
|
from br_docs.validators.nis import NISv
|
|
10
10
|
from br_docs.validators.renavam import RENAVAMv
|
|
11
11
|
from br_docs.validators.te import TEv
|
|
12
|
+
from br_docs.validators.sei import SEIv
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
CPF = Annotated[str, AfterValidator(CPFv())]
|
|
@@ -19,3 +20,4 @@ CNS = Annotated[str, AfterValidator(CNSv())]
|
|
|
19
20
|
RENAVAM = Annotated[str, AfterValidator(RENAVAMv())]
|
|
20
21
|
TE = Annotated[str, AfterValidator(TEv())]
|
|
21
22
|
CERT = Annotated[str, AfterValidator(CERTv())]
|
|
23
|
+
SEI = Annotated[str, AfterValidator(SEIv())]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import re
|
|
2
|
+
|
|
3
|
+
from pydantic_core import PydanticCustomError
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class SEIv:
|
|
7
|
+
Patterns = re.compile(r'^\d{5}-?\d{8}/?\d{4}-?\d{2}$')
|
|
8
|
+
|
|
9
|
+
def __call__(self, value: str) -> str:
|
|
10
|
+
self.validate(value)
|
|
11
|
+
return value
|
|
12
|
+
|
|
13
|
+
def validate(self, value: str) -> str:
|
|
14
|
+
check_format = bool(self.Patterns.match(value))
|
|
15
|
+
if check_format is not True:
|
|
16
|
+
raise PydanticCustomError('invalid', 'Invalid Value')
|
|
17
|
+
return value
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: brdocs-validation
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Validate brazilian documents using Type Hints in classes inheriting Pydantic's (V2) BaseModel
|
|
5
5
|
Author-email: Vinícius Aguiar <vaguiararqdevsoftware@proton.me>
|
|
6
6
|
Maintainer-email: Vinícius Aguiar <vaguiararqdevsoftware@proton.me>
|
|
@@ -54,10 +54,12 @@ pip install brdocs-validation
|
|
|
54
54
|
| RENAVAM | | Only numbers | Length: _9, 10 & 11_ |
|
|
55
55
|
| TE | Título de eleitor | Only numbers | |
|
|
56
56
|
| CERT | Certidão de casamento, nascimento e óbito | Only numbers | |
|
|
57
|
+
| SEI | Número do Processo SEI | 12345-67890123/4567-89 OR without special chars | |
|
|
58
|
+
|
|
57
59
|
## Usage
|
|
58
60
|
|
|
59
61
|
```python
|
|
60
|
-
from br_docs import CNPJ, CPF, CNH, NIS, CNS, RENAVAM, TE, CERT
|
|
62
|
+
from br_docs import CNPJ, CPF, CNH, NIS, CNS, RENAVAM, TE, CERT, SEI
|
|
61
63
|
from pydantic import BaseModel
|
|
62
64
|
|
|
63
65
|
|
|
@@ -70,4 +72,5 @@ class User(BaseModel):
|
|
|
70
72
|
renavam: RENAVAM
|
|
71
73
|
te: TE
|
|
72
74
|
cert: CERT
|
|
75
|
+
sei: SEI
|
|
73
76
|
```
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "brdocs-validation"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.4.0"
|
|
8
8
|
dependencies = [
|
|
9
9
|
"pydantic>=2.0"
|
|
10
10
|
]
|
|
@@ -68,4 +68,4 @@ python =
|
|
|
68
68
|
3.12 = py312-pydantic{20,21,22,23,24,25,26}
|
|
69
69
|
3.11 = py311-pydantic{20,21,22,23,24,25,26}
|
|
70
70
|
3.10 = py310-pydantic{20,21,22,23,24,25,26}
|
|
71
|
-
"""
|
|
71
|
+
"""
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
from contextlib import contextmanager
|
|
2
2
|
|
|
3
|
+
import pytest
|
|
3
4
|
from pydantic import create_model
|
|
4
5
|
from pydantic_core import ValidationError
|
|
5
6
|
|
|
6
|
-
from br_docs import CNH, CPF, CNPJ, NIS, CNS, RENAVAM, TE, CERT
|
|
7
|
+
from br_docs import CNH, CPF, CNPJ, NIS, CNS, RENAVAM, TE, CERT, SEI
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
@contextmanager
|
|
@@ -14,7 +15,7 @@ def validate(model_name: str, values, value_type):
|
|
|
14
15
|
m = create_model(model_name, param=(value_type, ...))
|
|
15
16
|
m(param=value)
|
|
16
17
|
except ValidationError as exc:
|
|
17
|
-
|
|
18
|
+
raise exc
|
|
18
19
|
yield
|
|
19
20
|
finally:
|
|
20
21
|
pass
|
|
@@ -58,3 +59,18 @@ def test_te(te_list):
|
|
|
58
59
|
def test_cert(cert_list):
|
|
59
60
|
with validate(model_name='TestCERT', values=cert_list, value_type=CERT):
|
|
60
61
|
pass
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def test_valid_sei(valid_sei_list):
|
|
65
|
+
with validate(model_name='TestSEI', values=valid_sei_list, value_type=SEI):
|
|
66
|
+
pass
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def test_invalid_sei(invalid_sei_list):
|
|
70
|
+
with pytest.raises(ValidationError):
|
|
71
|
+
with validate(
|
|
72
|
+
model_name='TestSEI',
|
|
73
|
+
values=invalid_sei_list,
|
|
74
|
+
value_type=SEI,
|
|
75
|
+
):
|
|
76
|
+
pass
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/brdocs_validation.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
{brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/brdocs_validation.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|