Skip to content

Commit e8e0f94

Browse files
committed
attempt to address naming issues in extension loader
1 parent b3450f5 commit e8e0f94

File tree

5 files changed

+25
-6
lines changed

5 files changed

+25
-6
lines changed

examples/simple/simple_ext1/application.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
class SimpleApp1(ExtensionAppJinjaMixin, ExtensionApp):
1111

1212
# The name of the extension.
13-
name = "simple_ext1"
13+
name = "foo"
1414

1515
# The url that your extension will serve its homepage.
16-
extension_url = '/simple_ext1/default'
16+
extension_url = '/foo/default'
1717

1818
# Should your extension expose other server extensions when launched directly?
1919
load_other_extensions = True

jupyter_server/extension/application.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,14 @@ class method. This method can be set as a entry_point in
153153
# this extension from the CLI, e.g. `jupyter {name}`.
154154
name = None
155155

156+
@classmethod
157+
def get_extension_package(cls):
158+
return cls.__module__.split('.')[0]
159+
160+
@classmethod
161+
def get_extension_point(cls):
162+
return cls.__module__
163+
156164
# Extension URL sets the default landing page for this extension.
157165
extension_url = "/"
158166

@@ -370,7 +378,7 @@ def stop(self):
370378
def _jupyter_server_config(cls):
371379
base_config = {
372380
"ServerApp": {
373-
"jpserver_extensions": {cls.name: True},
381+
"jpserver_extensions": {cls.get_extension_package(): True},
374382
"open_browser": True,
375383
"default_url": cls.extension_url
376384
}
@@ -389,7 +397,7 @@ def _load_jupyter_server_extension(cls, serverapp):
389397
extension = extension_manager.extension_points[cls.name].app
390398
except KeyError:
391399
extension = cls()
392-
extension.link_to_serverapp(serverapp)
400+
extension._link_jupyter_server_extension(serverapp)
393401
extension.initialize()
394402
return extension
395403

jupyter_server/extension/manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def _valid_metadata(self, proposed):
4949
self._module = importlib.import_module(self._module_name)
5050
except ImportError:
5151
raise ExtensionModuleNotFound(
52-
"The module '{}' could not be found. Are you "
52+
"The submodule '{}' could not be found. Are you "
5353
"sure the extension is installed?".format(self._module_name)
5454
)
5555
# Initialize the app object if it exists.

jupyter_server/extension/utils.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,17 @@ class ExtensionModuleNotFound(Exception):
137137
pass
138138

139139

140+
class NotAnExtensionApp(Exception):
141+
pass
142+
143+
144+
def get_extension_app_pkg(app_cls):
145+
"""Get the Python package name
146+
"""
147+
if not isinstance(app_cls, "ExtensionApp"):
148+
raise NotAnExtensionApp("The ")
149+
150+
140151
def get_loader(obj):
141152
"""Looks for _load_jupyter_server_extension as an attribute
142153
of the object or module.

jupyter_server/serverapp.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1511,7 +1511,7 @@ def init_server_extensions(self):
15111511

15121512
# Initialize each extension
15131513
self.extension_manager = ExtensionManager(
1514-
parent=self,
1514+
logger=self.log,
15151515
jpserver_extensions=self.jpserver_extensions
15161516
)
15171517
self.extension_manager.link_extensions()

0 commit comments

Comments
 (0)