safeshield 1.5.4__py3-none-any.whl → 1.5.5__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: safeshield
3
- Version: 1.5.4
3
+ Version: 1.5.5
4
4
  Summary: Library for Help Validation Control
5
5
  Home-page: https://github.com/WunsunTarniho/py-guard
6
6
  Author: Wunsun Tarniho
@@ -5,7 +5,7 @@ validator/core/__init__.py,sha256=ZcqlXJSk03i_CVzmIN-nVe1UOyvwwO5jhbEj7f62Y_o,59
5
5
  validator/core/validator.py,sha256=bE8T4N9vl4bNYPUgEa9nbTGAaTutb8qVWuRsjMd-ssk,12688
6
6
  validator/database/__init__.py,sha256=O-cB6-MhNapJ3iwe5jvifbMfr1dPjXLtEdfNTKIu0hc,171
7
7
  validator/database/detector.py,sha256=Vac7oVL26GjU6expGo01-6mgUtXqldr-jirzpYokZBM,9597
8
- validator/database/manager.py,sha256=XJM_I0WaWfZWV710duAc32p1gtiP2or-MAj75WPw1oM,6478
8
+ validator/database/manager.py,sha256=QD_vmsE36LnTHANTPf63ICxEqfWym9cPI-uWEXYrvr4,6924
9
9
  validator/rules/__init__.py,sha256=z3Vk3R5CRgjeqyDWZxdofD2tBMTgdyYVuFmo1mKOTj4,830
10
10
  validator/rules/array.py,sha256=7xwdXnthWZNDbD4lONgqtOf44OOQq1J6XexYm6BXea4,3512
11
11
  validator/rules/base.py,sha256=yhxQdGiiM-wY7VtRH-KRU-_wmw7RVJnmJcmayO1EqBk,5870
@@ -24,8 +24,8 @@ validator/services/rule_error_handler.py,sha256=l4jA6WtTRBNGytVA_nSwJpbix_viNWhq
24
24
  validator/services/rule_preparer.py,sha256=7HSMuSGGgaYWv8dt_m7pL5MQkJcTwFBH9gfmCZwzt8U,5284
25
25
  validator/utils/__init__.py,sha256=Yzo-xv285Be-a233M4duDdYtscuHiuBbPSX_C8yViJI,20
26
26
  validator/utils/string.py,sha256=0YACzeEaWNEOR9_7O9A8D1ItIbtWfOJ8IfrzcB8VMYA,515
27
- safeshield-1.5.4.dist-info/LICENSE,sha256=YxHGBtuH0Vsy-KPvW2_afKE54XIrf1eipLF4v6kaybI,35276
28
- safeshield-1.5.4.dist-info/METADATA,sha256=ZtLkkdr4CeSIZgv9a_KaxhYFpqRx1zkita8Akl5_5ZU,6544
29
- safeshield-1.5.4.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
30
- safeshield-1.5.4.dist-info/top_level.txt,sha256=iUtV3dlHOIiMfLuY4pruY00lFni8JzOkQ3Nh1II19OE,10
31
- safeshield-1.5.4.dist-info/RECORD,,
27
+ safeshield-1.5.5.dist-info/LICENSE,sha256=YxHGBtuH0Vsy-KPvW2_afKE54XIrf1eipLF4v6kaybI,35276
28
+ safeshield-1.5.5.dist-info/METADATA,sha256=7lBi2Etv4ltTVdmI3fF8D9rzS716r6SNHr7cZXUWxlw,6544
29
+ safeshield-1.5.5.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
30
+ safeshield-1.5.5.dist-info/top_level.txt,sha256=iUtV3dlHOIiMfLuY4pruY00lFni8JzOkQ3Nh1II19OE,10
31
+ safeshield-1.5.5.dist-info/RECORD,,
@@ -111,8 +111,21 @@ class DatabaseManager:
111
111
  return cursor.fetchall()
112
112
 
113
113
  def exists(self, table: str, column: str, value: Any) -> bool:
114
- """Optimized exists check with parameterized query"""
115
- sql = f"SELECT 1 FROM {table} WHERE {column} = %s LIMIT 1"
114
+ if '.' in column:
115
+ parts = column.split('.')
116
+ if len(parts) != 2:
117
+ raise ValueError("Foreign key reference should be in format 'foreign_key.column'")
118
+
119
+ foreign_key, related_column = parts
120
+ sql = f"""
121
+ SELECT 1 FROM {table} t
122
+ JOIN {foreign_key} r ON t.{foreign_key} = r.id
123
+ WHERE r.{related_column} = %s
124
+ LIMIT 1
125
+ """
126
+ else:
127
+ sql = f"SELECT 1 FROM {table} WHERE {column} = %s LIMIT 1"
128
+
116
129
  result = self.query(sql, (value,))
117
130
  return bool(result)
118
131