|
1 | 1 | from contextlib import suppress |
2 | | -from typing import Any, Optional |
| 2 | +from typing import Any, Dict, Optional, cast |
3 | 3 |
|
4 | 4 | from pydoll.browser.interfaces import Options |
5 | 5 | from pydoll.browser.preference_types import PREFERENCE_SCHEMA, BrowserPreferences |
@@ -154,9 +154,11 @@ def _set_pref_path(self, path: list, value): |
154 | 154 | self._validate_pref_path(path) |
155 | 155 | self._validate_pref_value(path, value) |
156 | 156 |
|
157 | | - d = self._browser_preferences |
| 157 | + d: Dict[str, Any] = cast(Dict[str, Any], self._browser_preferences) |
158 | 158 | for key in path[:-1]: |
159 | | - d = d.setdefault(key, {}) |
| 159 | + if key not in d or not isinstance(d[key], dict): |
| 160 | + d[key] = {} |
| 161 | + d = cast(Dict[str, Any], d[key]) |
160 | 162 | d[path[-1]] = value |
161 | 163 |
|
162 | 164 | @staticmethod |
@@ -217,10 +219,10 @@ def _get_pref_path(self, path: list): |
217 | 219 | except InvalidPreferencePath: |
218 | 220 | raise |
219 | 221 |
|
220 | | - nested_preferences = self._browser_preferences |
| 222 | + nested_preferences: Dict[str, Any] = cast(Dict[str, Any], self._browser_preferences) |
221 | 223 | with suppress(KeyError, TypeError): |
222 | 224 | for key in path: |
223 | | - nested_preferences = nested_preferences[key] |
| 225 | + nested_preferences = cast(Dict[str, Any], nested_preferences[key]) |
224 | 226 | return nested_preferences |
225 | 227 | return None |
226 | 228 |
|
|
0 commit comments