safeshield 1.0.7__tar.gz → 1.0.9__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.
Potentially problematic release.
This version of safeshield might be problematic. Click here for more details.
- {safeshield-1.0.7 → safeshield-1.0.9}/PKG-INFO +7 -1
- {safeshield-1.0.7 → safeshield-1.0.9}/README.md +6 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/safeshield.egg-info/PKG-INFO +7 -1
- {safeshield-1.0.7 → safeshield-1.0.9}/setup.py +1 -1
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/database/detector.py +8 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/rules/base.py +20 -3
- {safeshield-1.0.7 → safeshield-1.0.9}/LICENSE +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/safeshield.egg-info/SOURCES.txt +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/safeshield.egg-info/dependency_links.txt +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/safeshield.egg-info/requires.txt +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/safeshield.egg-info/top_level.txt +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/setup.cfg +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/__init__.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/core/__init__.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/core/validator.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/database/__init__.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/database/manager.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/exceptions.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/factory.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/rules/__init__.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/rules/array.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/rules/basic.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/rules/comparison.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/rules/conditional.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/rules/date.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/rules/files.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/rules/format.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/rules/string.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/rules/type.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/rules/utilities.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/services/__init__.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/services/rule_conflict.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/services/rule_error_handler.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/services/rule_preparer.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/utils/__init__.py +0 -0
- {safeshield-1.0.7 → safeshield-1.0.9}/validator/utils/string.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: safeshield
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.9
|
|
4
4
|
Summary: Library for Help Validation Control
|
|
5
5
|
Home-page: https://github.com/WunsunTarniho/py-guard
|
|
6
6
|
Author: Wunsun Tarniho
|
|
@@ -40,3 +40,9 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
40
40
|
|
|
41
41
|
## v1.0.7 (2024-07-20)
|
|
42
42
|
- Fixed: Libary deprecated.
|
|
43
|
+
|
|
44
|
+
## v1.0.8 (2024-07-20)
|
|
45
|
+
- Fixed: Libary deprecated.
|
|
46
|
+
|
|
47
|
+
## v1.0.8 (2024-07-20)
|
|
48
|
+
- Fixed: Libary deprecated.
|
|
@@ -20,4 +20,10 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
20
20
|
- Fixed: Libary deprecated.
|
|
21
21
|
|
|
22
22
|
## v1.0.7 (2024-07-20)
|
|
23
|
+
- Fixed: Libary deprecated.
|
|
24
|
+
|
|
25
|
+
## v1.0.8 (2024-07-20)
|
|
26
|
+
- Fixed: Libary deprecated.
|
|
27
|
+
|
|
28
|
+
## v1.0.8 (2024-07-20)
|
|
23
29
|
- Fixed: Libary deprecated.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: safeshield
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.9
|
|
4
4
|
Summary: Library for Help Validation Control
|
|
5
5
|
Home-page: https://github.com/WunsunTarniho/py-guard
|
|
6
6
|
Author: Wunsun Tarniho
|
|
@@ -40,3 +40,9 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
40
40
|
|
|
41
41
|
## v1.0.7 (2024-07-20)
|
|
42
42
|
- Fixed: Libary deprecated.
|
|
43
|
+
|
|
44
|
+
## v1.0.8 (2024-07-20)
|
|
45
|
+
- Fixed: Libary deprecated.
|
|
46
|
+
|
|
47
|
+
## v1.0.8 (2024-07-20)
|
|
48
|
+
- Fixed: Libary deprecated.
|
|
@@ -59,6 +59,14 @@ class DatabaseAutoDetector:
|
|
|
59
59
|
"""Detect Odoo database configuration"""
|
|
60
60
|
try:
|
|
61
61
|
from odoo.tools import config
|
|
62
|
+
print({
|
|
63
|
+
'type': 'postgresql', # Odoo selalu menggunakan PostgreSQL
|
|
64
|
+
'host': config['db_host'] or 'localhost',
|
|
65
|
+
'port': str(config['db_port'] or 5432),
|
|
66
|
+
'username': config['db_user'] or 'odoo',
|
|
67
|
+
'password': config['db_password'] or '',
|
|
68
|
+
'database': config['db_name']
|
|
69
|
+
}, 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee')
|
|
62
70
|
return {
|
|
63
71
|
'type': 'postgresql', # Odoo selalu menggunakan PostgreSQL
|
|
64
72
|
'host': config['db_host'] or 'localhost',
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
from abc import ABC, abstractmethod
|
|
2
2
|
from typing import Any, Dict, List, Optional, Set, Union, Tuple, Type
|
|
3
3
|
from enum import Enum
|
|
4
|
-
from .string import pascal_to_snake
|
|
4
|
+
# from .string import pascal_to_snake
|
|
5
5
|
import inspect
|
|
6
|
+
import re
|
|
6
7
|
|
|
7
8
|
class ValidationRule(ABC):
|
|
8
9
|
"""Abstract base class for all validation rules"""
|
|
@@ -12,7 +13,7 @@ class ValidationRule(ABC):
|
|
|
12
13
|
self._params: List[str] = list(params)
|
|
13
14
|
|
|
14
15
|
def __init_subclass__(cls):
|
|
15
|
-
cls.rule_name = pascal_to_snake(cls.__name__)
|
|
16
|
+
cls.rule_name = cls.pascal_to_snake(cls.__name__)
|
|
16
17
|
|
|
17
18
|
@property
|
|
18
19
|
def params(self) -> List[str]:
|
|
@@ -81,4 +82,20 @@ class ValidationRule(ABC):
|
|
|
81
82
|
|
|
82
83
|
param_str = ' ,'.join(params)
|
|
83
84
|
|
|
84
|
-
return [v.strip() for v in param_str.split(',') if v.strip()]
|
|
85
|
+
return [v.strip() for v in param_str.split(',') if v.strip()]
|
|
86
|
+
|
|
87
|
+
def pascal_to_snake(name):
|
|
88
|
+
"""Convert PascalCase to snake_case"""
|
|
89
|
+
# Handle kasus khusus terlebih dahulu
|
|
90
|
+
special_cases = {
|
|
91
|
+
'UUIDRule': 'uuid',
|
|
92
|
+
'IPRule': 'ip',
|
|
93
|
+
'URLRule': 'url'
|
|
94
|
+
}
|
|
95
|
+
if name in special_cases:
|
|
96
|
+
return special_cases[name]
|
|
97
|
+
|
|
98
|
+
# Konversi regular PascalCase ke snake_case
|
|
99
|
+
s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
|
|
100
|
+
result = re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower()
|
|
101
|
+
return result.replace('_rule', '')
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|