Skip to content

Commit

Permalink
Rename extension_blacklist and extension_whitelist
Browse files Browse the repository at this point in the history
  • Loading branch information
trungleduc committed Aug 1, 2023
1 parent a9ab6f3 commit 8d2e4ce
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 30 deletions.
8 changes: 5 additions & 3 deletions voila/handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
from tornado.httputil import split_host_and_port
from traitlets.traitlets import Bool

from .configuration import VoilaConfiguration

from ._version import __version__
from .notebook_renderer import NotebookRenderer
from .request_info_handler import RequestInfoSocketHandler
Expand Down Expand Up @@ -68,7 +70,7 @@ def initialize(self, **kwargs):
self.notebook_path = kwargs.pop("notebook_path", []) # should it be []
self.template_paths = kwargs.pop("template_paths", [])
self.traitlet_config = kwargs.pop("config", None)
self.voila_configuration = kwargs["voila_configuration"]
self.voila_configuration: VoilaConfiguration = kwargs["voila_configuration"]
self.prelaunch_hook = kwargs.get("prelaunch_hook", None)
# we want to avoid starting multiple kernels due to template mistakes
self.kernel_started = False
Expand Down Expand Up @@ -198,8 +200,8 @@ async def get_generator(self, path=None):
base_url=self.base_url,
settings=self.settings,
log=self.log,
extension_whitelist=self.voila_configuration.extension_whitelist,
extension_blacklist=self.voila_configuration.extension_blacklist,
extension_allowlist=self.voila_configuration.extension_allowlist,
extension_denylist=self.voila_configuration.extension_denylist,
),
mathjax_config=mathjax_config,
mathjax_url=mathjax_url,
Expand Down
4 changes: 2 additions & 2 deletions voila/tornado/treehandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ def allowed_content(content):
base_url=self.base_url,
settings=self.settings,
log=self.log,
extension_whitelist=self.voila_configuration.extension_whitelist,
extension_blacklist=self.voila_configuration.extension_blacklist,
extension_allowlist=self.voila_configuration.extension_allowlist,
extension_denylist=self.voila_configuration.extension_denylist,
)
page_config["jupyterLabTheme"] = theme_arg

Expand Down
46 changes: 23 additions & 23 deletions voila/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ def get_page_config(
base_url,
settings,
log,
extension_whitelist: List[str] = [],
extension_blacklist: List[str] = [],
extension_allowlist: List[str] = [],
extension_denylist: List[str] = [],
):
page_config = {
"appVersion": __version__,
Expand Down Expand Up @@ -110,38 +110,38 @@ def get_page_config(
"@voila-dashboards/jupyterlab-preview",
"@jupyter/collaboration-extension",
]
must_have_extensions = ["@jupyter-widgets/jupyterlab-manager"]
required_extensions = ["@jupyter-widgets/jupyterlab-manager"]
federated_extensions = deepcopy(page_config["federated_extensions"])

page_config["federated_extensions"] = filter_extension(
federated_extensions=federated_extensions,
disabled_extensions=disabled_extensions,
must_have_extensions=must_have_extensions,
extension_whitelist=extension_whitelist,
extension_blacklist=extension_blacklist,
required_extensions=required_extensions,
extension_allowlist=extension_allowlist,
extension_denylist=extension_denylist,
)
return page_config


def filter_extension(
federated_extensions: List[Dict],
disabled_extensions: List[str] = [],
must_have_extensions: List[str] = [],
extension_whitelist: List[str] = [],
extension_blacklist: List[str] = [],
required_extensions: List[str] = [],
extension_allowlist: List[str] = [],
extension_denylist: List[str] = [],
) -> List[Dict]:
"""Create a list of extension to be loaded from available extensions and the
black/white list configuration.
allow/deny list configuration.
Args:
- federated_extensions (List[Dict]): List of available extension
- disabled_extensions (List[str], optional): List of extension disabled by default.
Defaults to [].
- must_have_extensions (List[str], optional): List of extension must be enabled.
- required_extensions (List[str], optional): List of required extensions.
Defaults to [].
- extension_whitelist (List[str], optional): The white listed extensions.
- extension_allowlist (List[str], optional): The allowlisted extensions.
Defaults to [].
- extension_blacklist (List[str], optional): The black listed extensions.
- extension_denylist (List[str], optional): The denylisted extensions.
Defaults to [].
Returns:
Expand All @@ -150,31 +150,31 @@ def filter_extension(
filtered_extensions = [
x for x in federated_extensions if x["name"] not in disabled_extensions
]
if len(extension_blacklist) == 0:
if len(extension_whitelist) == 0:
# No white and black list, return all
if len(extension_denylist) == 0:
if len(extension_allowlist) == 0:
# No allow and deny list, return all
return filtered_extensions

# White list is not empty, return white listed only
# Allow list is not empty, return allow listed only
return [
x
for x in filtered_extensions
if x["name"] in must_have_extensions or x["name"] in extension_whitelist
if x["name"] in required_extensions or x["name"] in extension_allowlist
]

if len(extension_whitelist) == 0:
# No white list, return non black listed only
if len(extension_allowlist) == 0:
# No allow list, return non deny listed only
return [
x
for x in filtered_extensions
if x["name"] in must_have_extensions or x["name"] not in extension_blacklist
if x["name"] in required_extensions or x["name"] not in extension_denylist
]

# Have both black and white list, use only white list
# Have both allow and deny list, use only allow list
return [
x
for x in filtered_extensions
if x["name"] in must_have_extensions or x["name"] in extension_whitelist
if x["name"] in required_extensions or x["name"] in extension_allowlist
]


Expand Down
4 changes: 2 additions & 2 deletions voila/voila_kernel_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -383,8 +383,8 @@ def _notebook_renderer_factory(
base_url=self.parent.base_url,
settings=self.parent.app.settings,
log=self.parent.log,
extension_whitelist=voila_configuration.extension_whitelist,
extension_blacklist=voila_configuration.extension_blacklist,
extension_allowlist=voila_configuration.extension_allowlist,
extension_denylist=voila_configuration.extension_denylist,
),
mathjax_config=mathjax_config,
mathjax_url=mathjax_url,
Expand Down

0 comments on commit 8d2e4ce

Please sign in to comment.