mbuali's picture
Upload folder using huggingface_hub
d1ceb73 verified
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
"""A license reporting CLI
Mostly ready-to-use, the downstream must provide the location of the application's
static resources. Licenses from an app's federated_extensions will also be discovered
as configured in `labextensions_path` and `extra_labextensions_path`.
from traitlets import default
from jupyterlab_server import LicensesApp
class MyLicensesApp(LicensesApp):
version = "0.1.0"
@default("static_dir")
def _default_static_dir(self):
return "my-static/"
class MyApp(JupyterApp, LabConfig):
...
subcommands = dict(
licenses=(MyLicensesApp, MyLicensesApp.description.splitlines()[0])
)
"""
from typing import Any
from jupyter_core.application import JupyterApp, base_aliases, base_flags
from traitlets import Bool, Enum, Instance, Unicode
from ._version import __version__
from .config import LabConfig
from .licenses_handler import LicensesManager
class LicensesApp(JupyterApp, LabConfig):
"""A license management app."""
version = __version__
description = """
Report frontend licenses
"""
static_dir = Unicode("", config=True, help="The static directory from which to show licenses")
full_text = Bool(False, config=True, help="Also print out full license text (if available)")
report_format = Enum(
["markdown", "json", "csv"], "markdown", config=True, help="Reporter format"
)
bundles_pattern = Unicode(".*", config=True, help="A regular expression of bundles to print")
licenses_manager = Instance(LicensesManager)
aliases = {
**base_aliases,
"bundles": "LicensesApp.bundles_pattern",
"report-format": "LicensesApp.report_format",
}
flags = {
**base_flags,
"full-text": (
{"LicensesApp": {"full_text": True}},
"Print out full license text (if available)",
),
"json": (
{"LicensesApp": {"report_format": "json"}},
"Print out report as JSON (implies --full-text)",
),
"csv": (
{"LicensesApp": {"report_format": "csv"}},
"Print out report as CSV (implies --full-text)",
),
}
def initialize(self, *args: Any, **kwargs: Any) -> None:
"""Initialize the app."""
super().initialize(*args, **kwargs)
self.init_licenses_manager()
def init_licenses_manager(self) -> None:
"""Initialize the license manager."""
self.licenses_manager = LicensesManager(
parent=self,
)
def start(self) -> None:
"""Start the app."""
report = self.licenses_manager.report(
report_format=self.report_format,
full_text=self.full_text,
bundles_pattern=self.bundles_pattern,
)[0]
print(report)
self.exit(0)