-
Notifications
You must be signed in to change notification settings - Fork 0
/
BlockedDataHolder.py
38 lines (32 loc) · 1.66 KB
/
BlockedDataHolder.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import re as PyRegex
def set_regex_pattern(regex_pattern):
# Each Request Holder will have req_domain_name that will have multiple regex
# and for better management we are using "," (comma) as the separator
# which will be replaced by "|" (PIPE) to match for all regex pattern
_regex_pattern = None;
try:
regex_pattern_changed = regex_pattern.replace(",", "|")
print(f"Req_Domain_Name_List Provided: [{regex_pattern}], Converted(Using Delimiter:[[,]->[|]]): [{regex_pattern_changed}]")
_regex_pattern = PyRegex.compile(regex_pattern_changed) # many things can be added here
except PyRegex.error as excep:
regex_pattern_changed = regex_pattern_changed.replace("*", ".*")
_regex_pattern = PyRegex.compile(regex_pattern_changed);
print(f"Problem in Regex: [{excep}], Therefore Regex To:[{_regex_pattern}]")
finally:
return _regex_pattern
class BlockedDataHolder:
def __init__(self, block_policy_name,
block_policy_description,
block_policy_regex_pattern,
block_policy_webcategory_list):
self.block_policy_name = block_policy_name
self.block_policy_description = block_policy_description
self.block_policy_regex_pattern = set_regex_pattern(block_policy_regex_pattern)
self.block_policy_webcategory_list = block_policy_webcategory_list
def __repr__(self):
return f"""
[block_policy_name]: [{self.block_policy_name}]
[block_policy_description]: [{self.block_policy_description}]
[block_policy_regex_pattern]: [{self.block_policy_regex_pattern}]
[block_policy_webcategory_list]: [{self.block_policy_webcategory_list}]
"""