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.
Files changed (26) hide show
  1. {brdocs-validation-0.3.0/brdocs_validation.egg-info → brdocs_validation-0.4.0}/PKG-INFO +5 -2
  2. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/README.md +5 -2
  3. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/__init__.py +2 -0
  4. brdocs_validation-0.4.0/br_docs/validators/sei.py +17 -0
  5. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0/brdocs_validation.egg-info}/PKG-INFO +5 -2
  6. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/brdocs_validation.egg-info/SOURCES.txt +1 -0
  7. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/pyproject.toml +2 -2
  8. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/tests/test_brdocs.py +18 -2
  9. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/LICENSE.txt +0 -0
  10. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/__init__.py +0 -0
  11. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/cert.py +0 -0
  12. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/cnh.py +0 -0
  13. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/cnpj.py +0 -0
  14. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/cns.py +0 -0
  15. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/cpf.py +0 -0
  16. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/nis.py +0 -0
  17. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/renavam.py +0 -0
  18. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/te.py +0 -0
  19. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/types/__init__.py +0 -0
  20. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/br_docs/validators/types/format.py +0 -0
  21. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/brdocs_validation.egg-info/dependency_links.txt +0 -0
  22. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/brdocs_validation.egg-info/requires.txt +0 -0
  23. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/brdocs_validation.egg-info/top_level.txt +0 -0
  24. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/setup.cfg +0 -0
  25. {brdocs-validation-0.3.0 → brdocs_validation-0.4.0}/tests/test_check_two_digits.py +0 -0
  26. {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.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.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
  ```
@@ -10,6 +10,7 @@ br_docs/validators/cns.py
10
10
  br_docs/validators/cpf.py
11
11
  br_docs/validators/nis.py
12
12
  br_docs/validators/renavam.py
13
+ br_docs/validators/sei.py
13
14
  br_docs/validators/te.py
14
15
  br_docs/validators/types/__init__.py
15
16
  br_docs/validators/types/format.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "brdocs-validation"
7
- version = "0.3.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
- assert False, f"{exc}: {value}"
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