Skip to content

Commit ec3eb43

Browse files
Remove traitlets dependency (#32)
* Remove traitlets dependency * lint * again
1 parent 2223501 commit ec3eb43

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

comm/base_comm.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
import typing as t
1010
import uuid
1111

12-
from traitlets.utils.importstring import import_item
13-
1412
import comm
1513

1614
if t.TYPE_CHECKING:
@@ -212,7 +210,19 @@ def register_target(self, target_name: str, f: CommTargetCallback | str) -> None
212210
f can be a Python callable or an import string for one.
213211
"""
214212
if isinstance(f, str):
215-
f = import_item(f)
213+
parts = f.rsplit(".", 1)
214+
if len(parts) == 2:
215+
# called with 'foo.bar....'
216+
package, obj = parts
217+
module = __import__(package, fromlist=[obj])
218+
try:
219+
f = getattr(module, obj)
220+
except AttributeError as e:
221+
error_msg = f"No module named {obj}"
222+
raise ImportError(error_msg) from e
223+
else:
224+
# called with un-dotted string
225+
f = __import__(parts[0])
216226

217227
self.targets[target_name] = t.cast(CommTargetCallback, f)
218228

pyproject.toml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ classifiers = [
2323
"Programming Language :: Python",
2424
"Programming Language :: Python :: 3",
2525
]
26-
dependencies = [
27-
"traitlets>=4",
28-
]
2926

3027
[project.optional-dependencies]
3128
test = [

0 commit comments

Comments
 (0)