Skip to content

Commit 4f25fe5

Browse files
committed
Update type hints
1 parent bc961c9 commit 4f25fe5

5 files changed

Lines changed: 147 additions & 158 deletions

File tree

notebooks/examples.ipynb

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -454,15 +454,7 @@
454454
"7. **Refresh** - Detect newly installed packages\n",
455455
"8. **Development Workflow** - Complete dev setup with autoreload\n",
456456
"9. **Debugging** - Diagnostic information\n",
457-
"10. **Cleanup** - Remove patches\n",
458-
"\n",
459-
"### Next Steps\n",
460-
"\n",
461-
"- See **QUICKSTART.md** for more copy-paste examples\n",
462-
"- See **README.md** for complete documentation\n",
463-
"- See **INSTALL.md** for installation instructions\n",
464-
"\n",
465-
"**Happy coding! 🚀**\n"
457+
"10. **Cleanup** - Remove patches\n"
466458
]
467459
}
468460
],

src/dbx_patch/patches/python_path_hook_patch.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@
1010

1111
from collections.abc import Callable
1212
import sys
13+
from typing import Any
1314

1415
from dbx_patch.models import PatchResult
1516
from dbx_patch.utils.logger import get_logger
1617

1718
_PATCH_APPLIED = False
18-
_ORIGINAL_HANDLE_SYS_PATH = None
19+
_ORIGINAL_HANDLE_SYS_PATH: Callable[..., None] | None = None
1920
_EDITABLE_PATHS: set[str] = set()
2021

2122

@@ -41,7 +42,7 @@ def refresh_editable_paths() -> int:
4142
return len(_EDITABLE_PATHS)
4243

4344

44-
def create_patched_handle_sys_path(original_method) -> Callable[..., None]:
45+
def create_patched_handle_sys_path(original_method: Callable[..., None]) -> Callable[..., None]:
4546
"""Create a patched version of PythonPathHook._handle_sys_path_maybe_updated.
4647
4748
That preserves editable install paths.
@@ -53,7 +54,7 @@ def create_patched_handle_sys_path(original_method) -> Callable[..., None]:
5354
Patched method that preserves editable paths
5455
"""
5556

56-
def patched_handle_sys_path_maybe_updated(self) -> None:
57+
def patched_handle_sys_path_maybe_updated(self: Any) -> None:
5758
# Call original method first
5859
original_method(self)
5960

@@ -111,6 +112,16 @@ def patch_python_path_hook(verbose: bool = True) -> PatchResult:
111112
# Save original method
112113
_ORIGINAL_HANDLE_SYS_PATH = PythonPathHook._handle_sys_path_maybe_updated
113114

115+
# Type narrowing check
116+
if _ORIGINAL_HANDLE_SYS_PATH is None:
117+
if logger:
118+
logger.error("Failed to save original method")
119+
return PatchResult(
120+
success=False,
121+
already_patched=False,
122+
hook_found=True,
123+
)
124+
114125
# Create and apply patch
115126
patched_method = create_patched_handle_sys_path(_ORIGINAL_HANDLE_SYS_PATH)
116127
PythonPathHook._handle_sys_path_maybe_updated = patched_method

src/dbx_patch/patches/sys_path_init_patch.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,16 @@
88
"""
99

1010
from collections.abc import Callable
11+
from typing import Any
1112

1213
from dbx_patch.models import PatchResult
1314
from dbx_patch.utils.logger import get_logger
1415

1516
_PATCH_APPLIED = False
16-
_ORIGINAL_PATCH_SYS_PATH = None
17+
_ORIGINAL_PATCH_SYS_PATH: Callable[[], None] | None = None
1718

1819

19-
def create_patched_patch_sys_path(original_function) -> Callable[[], None]:
20+
def create_patched_patch_sys_path(original_function: Callable[[], None]) -> Callable[[], None]:
2021
"""Create a patched version of patch_sys_path.
2122
2223
With_developer_paths that also processes .pth files for editable installs.
@@ -88,6 +89,16 @@ def patch_sys_path_init(verbose: bool = True) -> PatchResult:
8889
# Save original function
8990
_ORIGINAL_PATCH_SYS_PATH = sys_path_init.patch_sys_path_with_developer_paths
9091

92+
# Type narrowing check
93+
if _ORIGINAL_PATCH_SYS_PATH is None:
94+
if logger:
95+
logger.error("Failed to save original function")
96+
return PatchResult(
97+
success=False,
98+
already_patched=False,
99+
function_found=True,
100+
)
101+
91102
# Create and apply patch
92103
patched_function = create_patched_patch_sys_path(_ORIGINAL_PATCH_SYS_PATH)
93104
sys_path_init.patch_sys_path_with_developer_paths = patched_function

src/dbx_patch/patches/wsfs_import_hook_patch.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@
1414

1515
from collections.abc import Callable
1616
import inspect
17+
from typing import Any
1718

1819
from dbx_patch.models import PatchResult
1920
from dbx_patch.utils.logger import get_logger
2021

2122
_PATCH_APPLIED = False
22-
_ORIGINAL_IS_USER_IMPORT = None
23+
_ORIGINAL_IS_USER_IMPORT: Callable[..., bool] | None = None
2324
_EDITABLE_PATHS: set[str] = set()
2425

2526

@@ -47,7 +48,7 @@ def refresh_editable_paths() -> int:
4748
return len(_EDITABLE_PATHS)
4849

4950

50-
def create_patched_is_user_import(original_method) -> Callable[..., bool]:
51+
def create_patched_is_user_import(original_method: Callable[..., bool]) -> Callable[..., bool]:
5152
"""Create a patched version of WsfsImportHook.__is_user_import that allows editable installs.
5253
5354
Args:
@@ -57,7 +58,7 @@ def create_patched_is_user_import(original_method) -> Callable[..., bool]:
5758
Patched method that includes editable path checking
5859
"""
5960

60-
def patched_is_user_import(self) -> bool:
61+
def patched_is_user_import(self: Any) -> bool:
6162
try:
6263
f = inspect.currentframe()
6364
num_items_processed = 0
@@ -139,6 +140,19 @@ def patch_wsfs_import_hook(verbose: bool = True) -> PatchResult:
139140
# Save original method
140141
_ORIGINAL_IS_USER_IMPORT = WsfsImportHook._WsfsImportHook__is_user_import
141142

143+
# Type narrowing check
144+
if _ORIGINAL_IS_USER_IMPORT is None:
145+
if logger:
146+
logger.error("Failed to save original method")
147+
return PatchResult(
148+
success=False,
149+
already_patched=False,
150+
editable_paths_count=0,
151+
editable_paths=[],
152+
hook_found=True,
153+
error="Failed to save original method",
154+
)
155+
142156
# Create and apply patch
143157
patched_method = create_patched_is_user_import(_ORIGINAL_IS_USER_IMPORT)
144158
WsfsImportHook._WsfsImportHook__is_user_import = patched_method

0 commit comments

Comments
 (0)