Skip to content

Commit a9bc983

Browse files
feat: adiciona suporte a anotações modernas em legal_process (#634)
* feat: adiciona suporte a anotações modernas em legal_process * refactor: implementa variaveis do tipo Final[str] --------- Co-authored-by: Nilton Pimentel <63605485+niltonpimentel02@users.noreply.github.com>
1 parent fdcec2c commit a9bc983

3 files changed

Lines changed: 23 additions & 8 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1616

1717
- Suporte a anotações modernas no `brutils/cep.py` [#637](https://github.com/brazilian-utils/python/pull/637)
1818

19+
### Fixed
20+
21+
- Suporte a anotações modernas `legal_process` [#622](https://github.com/brazilian-utils/brutils-python/pull/634)
22+
1923
## [2.3.0] - 2025-10-07
2024

2125
### Added

brutils/legal_process.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,17 @@
33
import re
44
from datetime import datetime
55
from random import randint
6+
from typing import Final
67

7-
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
8-
DATA_DIR = f"{ROOT_DIR}/data"
9-
VALID_IDS_FILE = f"{DATA_DIR}/legal_process_ids.json"
8+
ROOT_DIR: Final[str] = os.path.dirname(os.path.abspath(__file__))
9+
DATA_DIR: Final[str] = f"{ROOT_DIR}/data"
10+
VALID_IDS_FILE: Final[str] = f"{DATA_DIR}/legal_process_ids.json"
1011

1112
# FORMATTING
1213
############
1314

1415

15-
def remove_symbols(legal_process: str): # type: (str) -> str
16+
def remove_symbols(legal_process: str) -> str:
1617
"""
1718
Removes specific symbols from a given legal process.
1819
@@ -35,7 +36,7 @@ def remove_symbols(legal_process: str): # type: (str) -> str
3536
return legal_process.replace(".", "").replace("-", "")
3637

3738

38-
def format_legal_process(legal_process_id): # type: (str) -> (str)
39+
def format_legal_process(legal_process_id: str) -> str | None:
3940
"""
4041
Format a legal process ID into a standard format.
4142
@@ -68,7 +69,7 @@ def format_legal_process(legal_process_id): # type: (str) -> (str)
6869
############
6970

7071

71-
def is_valid(legal_process_id): # type: (str) -> bool
72+
def is_valid(legal_process_id: str) -> bool:
7273
"""
7374
Check if a legal process ID is valid.
7475
@@ -112,7 +113,9 @@ def is_valid(legal_process_id): # type: (str) -> bool
112113
) and valid_process
113114

114115

115-
def generate(year=datetime.now().year, orgao=randint(1, 9)): # type: (int, int) -> (str)
116+
def generate(
117+
year: int = datetime.now().year, orgao: int = randint(1, 9)
118+
) -> str | None:
116119
"""
117120
Generate a random legal process ID number.
118121
@@ -153,7 +156,7 @@ def generate(year=datetime.now().year, orgao=randint(1, 9)): # type: (int, int)
153156
return f"{NNNNNNN}{DD}{year}{orgao}{TR}{OOOO}"
154157

155158

156-
def _checksum(basenum): # type: (int) -> str
159+
def _checksum(basenum: int) -> str:
157160
"""
158161
Checksum to compute the verification digit for a Legal Process ID number.
159162
`basenum` needs to be a digit without the verification id.

tests/test_legal_process.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ def test_format_legal_process(self):
2020
format_legal_process("00000000000000000000"),
2121
("0000000-00.0000.0.00.0000"),
2222
)
23+
self.assertIsInstance(
24+
format_legal_process("00000000000000000000"),
25+
str,
26+
)
2327
self.assertIsNone(format_legal_process("2314194582005507"))
2428
self.assertIsNone(format_legal_process("0000000000000000000000000"))
2529
self.assertIsNone(format_legal_process("0000000000000000000asdasd"))
@@ -45,18 +49,21 @@ def test_remove_symbols(self):
4549
)
4650
self.assertEqual(remove_symbols("@...---...#"), "@#")
4751
self.assertEqual(remove_symbols("...---..."), "")
52+
self.assertIsInstance(remove_symbols("...---..."), str)
4853

4954
def test_generate(self):
5055
self.assertEqual(generate()[9:13], str(datetime.now().year))
5156
self.assertEqual(generate(year=3000)[9:13], "3000")
5257
self.assertEqual(generate(orgao=4)[13:14], "4")
5358
self.assertEqual(generate(year=3000, orgao=4)[9:13], "3000")
59+
self.assertIsInstance(generate(year=3000, orgao=4)[9:13], str)
5460
self.assertIsNone(generate(year=1000, orgao=4))
5561
self.assertIsNone(generate(orgao=0))
5662

5763
def test_check_sum(self):
5864
self.assertEqual(_checksum(546611720238150014), "77")
5965
self.assertEqual(_checksum(403818720238230498), "50")
66+
self.assertIsInstance(_checksum(403818720238230498), str)
6067

6168
def test_is_valid(self):
6269
self.assertIs(is_valid("10188748220234018200"), True)
@@ -66,6 +73,7 @@ def test_is_valid(self):
6673
self.assertIs(is_valid("455323469202340251"), False)
6774
self.assertIs(is_valid("455323469202340257123123123"), False)
6875
self.assertIs(is_valid("455323423QQWEQWSsasd&*(()"), False)
76+
self.assertIsInstance(is_valid("455323423QQWEQWSsasd&*(()"), bool)
6977

7078

7179
if __name__ == "__main__":

0 commit comments

Comments
 (0)