mirror of
https://github.com/jupyter/notebook.git
synced 2025-04-24 14:20:54 +08:00
CLN : Update super usage
This commit updates the super usage. Because Python 2 is not supported anymore, super usage can be updated such that super is called without any arguments in the default case where super is called with the class name and self. Note that all usage of super has not been updated - a few cases which smelled funny have been ignored.
This commit is contained in:
parent
2ba296039a
commit
84df5297d5
@ -301,7 +301,7 @@ class IPythonHandler(AuthenticatedHandler):
|
||||
|
||||
def set_default_headers(self):
|
||||
"""Add CORS headers, if defined"""
|
||||
super(IPythonHandler, self).set_default_headers()
|
||||
super().set_default_headers()
|
||||
if self.allow_origin:
|
||||
self.set_header("Access-Control-Allow-Origin", self.allow_origin)
|
||||
elif self.allow_origin_pat:
|
||||
@ -442,7 +442,7 @@ class IPythonHandler(AuthenticatedHandler):
|
||||
# Servers without authentication are vulnerable to XSRF
|
||||
return
|
||||
try:
|
||||
return super(IPythonHandler, self).check_xsrf_cookie()
|
||||
return super().check_xsrf_cookie()
|
||||
except web.HTTPError as e:
|
||||
if self.request.method in {'GET', 'HEAD'}:
|
||||
# Consider Referer a sufficient cross-origin check for GET requests
|
||||
@ -496,7 +496,7 @@ class IPythonHandler(AuthenticatedHandler):
|
||||
def prepare(self):
|
||||
if not self.check_host():
|
||||
raise web.HTTPError(403)
|
||||
return super(IPythonHandler, self).prepare()
|
||||
return super().prepare()
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# template rendering
|
||||
@ -591,7 +591,7 @@ class APIHandler(IPythonHandler):
|
||||
def prepare(self):
|
||||
if not self.check_origin():
|
||||
raise web.HTTPError(404)
|
||||
return super(APIHandler, self).prepare()
|
||||
return super().prepare()
|
||||
|
||||
def write_error(self, status_code, **kwargs):
|
||||
"""APIHandler errors are JSON, not human pages"""
|
||||
@ -618,7 +618,7 @@ class APIHandler(IPythonHandler):
|
||||
# preserve _user_cache so we don't raise more than once
|
||||
if hasattr(self, '_user_cache'):
|
||||
return self._user_cache
|
||||
self._user_cache = user = super(APIHandler, self).get_current_user()
|
||||
self._user_cache = user = super().get_current_user()
|
||||
return user
|
||||
|
||||
def get_login_url(self):
|
||||
@ -627,12 +627,12 @@ class APIHandler(IPythonHandler):
|
||||
# instead of redirecting, raise 403 instead.
|
||||
if not self.current_user:
|
||||
raise web.HTTPError(403)
|
||||
return super(APIHandler, self).get_login_url()
|
||||
return super().get_login_url()
|
||||
|
||||
@property
|
||||
def content_security_policy(self):
|
||||
csp = '; '.join([
|
||||
super(APIHandler, self).content_security_policy,
|
||||
super().content_security_policy,
|
||||
"default-src 'none'",
|
||||
])
|
||||
return csp
|
||||
@ -653,7 +653,7 @@ class APIHandler(IPythonHandler):
|
||||
def finish(self, *args, **kwargs):
|
||||
self.update_api_activity()
|
||||
self.set_header('Content-Type', 'application/json')
|
||||
return super(APIHandler, self).finish(*args, **kwargs)
|
||||
return super().finish(*args, **kwargs)
|
||||
|
||||
def options(self, *args, **kwargs):
|
||||
if 'Access-Control-Allow-Headers' in self.settings.get('headers', {}):
|
||||
@ -700,13 +700,12 @@ class AuthenticatedFileHandler(IPythonHandler, web.StaticFileHandler):
|
||||
def content_security_policy(self):
|
||||
# In case we're serving HTML/SVG, confine any Javascript to a unique
|
||||
# origin so it can't interact with the notebook server.
|
||||
return super(AuthenticatedFileHandler, self).content_security_policy + \
|
||||
"; sandbox allow-scripts"
|
||||
return super().content_security_policy + "; sandbox allow-scripts"
|
||||
|
||||
@web.authenticated
|
||||
def head(self, path):
|
||||
self.check_xsrf_cookie()
|
||||
return super(AuthenticatedFileHandler, self).head(path)
|
||||
return super().head(path)
|
||||
|
||||
@web.authenticated
|
||||
def get(self, path):
|
||||
@ -731,10 +730,10 @@ class AuthenticatedFileHandler(IPythonHandler, web.StaticFileHandler):
|
||||
if cur_mime == 'text/plain':
|
||||
return 'text/plain; charset=UTF-8'
|
||||
else:
|
||||
return super(AuthenticatedFileHandler, self).get_content_type()
|
||||
return super().get_content_type()
|
||||
|
||||
def set_headers(self):
|
||||
super(AuthenticatedFileHandler, self).set_headers()
|
||||
super().set_headers()
|
||||
# disable browser caching, rely on 304 replies for savings
|
||||
if "v" not in self.request.arguments:
|
||||
self.add_header("Cache-Control", "no-cache")
|
||||
@ -749,7 +748,7 @@ class AuthenticatedFileHandler(IPythonHandler, web.StaticFileHandler):
|
||||
|
||||
Adding to tornado's own handling, forbids the serving of hidden files.
|
||||
"""
|
||||
abs_path = super(AuthenticatedFileHandler, self).validate_absolute_path(root, absolute_path)
|
||||
abs_path = super().validate_absolute_path(root, absolute_path)
|
||||
abs_root = os.path.abspath(root)
|
||||
if is_hidden(abs_path, abs_root) and not self.contents_manager.allow_hidden:
|
||||
self.log.info("Refusing to serve hidden file, via 404 Error, use flag 'ContentsManager.allow_hidden' to enable")
|
||||
@ -795,7 +794,7 @@ class FileFindHandler(IPythonHandler, web.StaticFileHandler):
|
||||
_static_paths = {}
|
||||
|
||||
def set_headers(self):
|
||||
super(FileFindHandler, self).set_headers()
|
||||
super().set_headers()
|
||||
# disable browser caching, rely on 304 replies for savings
|
||||
if "v" not in self.request.arguments or \
|
||||
any(self.request.path.startswith(path) for path in self.no_cache_paths):
|
||||
@ -842,7 +841,7 @@ class FileFindHandler(IPythonHandler, web.StaticFileHandler):
|
||||
if (absolute_path + os.sep).startswith(root):
|
||||
break
|
||||
|
||||
return super(FileFindHandler, self).validate_absolute_path(root, absolute_path)
|
||||
return super().validate_absolute_path(root, absolute_path)
|
||||
|
||||
|
||||
class APIVersionHandler(APIHandler):
|
||||
|
@ -289,7 +289,7 @@ class AuthenticatedZMQStreamHandler(ZMQStreamHandler, IPythonHandler):
|
||||
# assign and yield in two step to avoid tornado 3 issues
|
||||
res = self.pre_get()
|
||||
yield maybe_future(res)
|
||||
res = super(AuthenticatedZMQStreamHandler, self).get(*args, **kwargs)
|
||||
res = super().get(*args, **kwargs)
|
||||
yield maybe_future(res)
|
||||
|
||||
def initialize(self):
|
||||
|
@ -294,7 +294,7 @@ jupyter bundlerextension disable --py <packagename> # disable all bundlers in
|
||||
|
||||
def start(self):
|
||||
"""Perform the App's functions as configured"""
|
||||
super(BundlerExtensionApp, self).start()
|
||||
super().start()
|
||||
|
||||
# The above should have called a subcommand and raised NoStart; if we
|
||||
# get here, it didn't, so we should self.log.info a message.
|
||||
|
@ -26,8 +26,7 @@ class FilesHandler(IPythonHandler):
|
||||
def content_security_policy(self):
|
||||
# In case we're serving HTML/SVG, confine any Javascript to a unique
|
||||
# origin so it can't interact with the notebook server.
|
||||
return super(FilesHandler, self).content_security_policy + \
|
||||
"; sandbox allow-scripts"
|
||||
return super().content_security_policy + "; sandbox allow-scripts"
|
||||
|
||||
@web.authenticated
|
||||
def head(self, path):
|
||||
|
@ -68,7 +68,7 @@ class WebSocketChannelsHandler(WebSocketHandler, IPythonHandler):
|
||||
def get(self, kernel_id, *args, **kwargs):
|
||||
self.authenticate()
|
||||
self.kernel_id = cast_unicode(kernel_id, 'ascii')
|
||||
yield super(WebSocketChannelsHandler, self).get(kernel_id=kernel_id, *args, **kwargs)
|
||||
yield super().get(kernel_id=kernel_id, *args, **kwargs)
|
||||
|
||||
def send_ping(self):
|
||||
if self.ws_connection is None and self.ping_callback is not None:
|
||||
@ -97,7 +97,7 @@ class WebSocketChannelsHandler(WebSocketHandler, IPythonHandler):
|
||||
if self.ws_connection: # prevent WebSocketClosedError
|
||||
if isinstance(message, bytes):
|
||||
binary = True
|
||||
super(WebSocketChannelsHandler, self).write_message(message, binary=binary)
|
||||
super().write_message(message, binary=binary)
|
||||
elif self.log.isEnabledFor(logging.DEBUG):
|
||||
msg_summary = WebSocketChannelsHandler._get_message_summary(json_decode(utf8(message)))
|
||||
self.log.debug("Notebook client closed websocket connection - message dropped: {}".format(msg_summary))
|
||||
@ -105,7 +105,7 @@ class WebSocketChannelsHandler(WebSocketHandler, IPythonHandler):
|
||||
def on_close(self):
|
||||
self.log.debug("Closing websocket connection %s", self.request.path)
|
||||
self.gateway.on_close()
|
||||
super(WebSocketChannelsHandler, self).on_close()
|
||||
super().on_close()
|
||||
|
||||
@staticmethod
|
||||
def _get_message_summary(message):
|
||||
@ -129,7 +129,7 @@ class GatewayWebSocketClient(LoggingConfigurable):
|
||||
"""Proxy web socket connection to a kernel/enterprise gateway."""
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super(GatewayWebSocketClient, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
self.kernel_id = None
|
||||
self.ws = None
|
||||
self.ws_future = Future()
|
||||
|
@ -205,7 +205,7 @@ class GatewayClient(SingletonConfigurable):
|
||||
return bool(os.environ.get(self.validate_cert_env, str(self.validate_cert_default_value)) not in ['no', 'false'])
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super(GatewayClient, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
self._static_args = {} # initialized on first use
|
||||
|
||||
env_whitelist_default_value = ''
|
||||
@ -310,7 +310,7 @@ class GatewayKernelManager(MappingKernelManager):
|
||||
_kernels = {}
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super(GatewayKernelManager, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
self.base_endpoint = url_path_join(GatewayClient.instance().url, GatewayClient.instance().kernels_endpoint)
|
||||
|
||||
def __contains__(self, kernel_id):
|
||||
@ -507,7 +507,7 @@ class GatewayKernelManager(MappingKernelManager):
|
||||
class GatewayKernelSpecManager(KernelSpecManager):
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super(GatewayKernelSpecManager, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
base_endpoint = url_path_join(GatewayClient.instance().url,
|
||||
GatewayClient.instance().kernelspecs_endpoint)
|
||||
|
||||
|
@ -45,7 +45,7 @@ class StreamCapturer(Thread):
|
||||
daemon = True # Don't hang if main thread crashes
|
||||
started = False
|
||||
def __init__(self, echo=False):
|
||||
super(StreamCapturer, self).__init__()
|
||||
super().__init__()
|
||||
self.echo = echo
|
||||
self.streams = []
|
||||
self.buffer = BytesIO()
|
||||
@ -264,14 +264,14 @@ class JSController(TestController):
|
||||
# If the engine is SlimerJS, we need to buffer the output because
|
||||
# SlimerJS does not support exit codes, so CasperJS always returns 0.
|
||||
if self.engine == 'slimerjs' and not buffer_output:
|
||||
return super(JSController, self).launch(capture_output=True)
|
||||
return super().launch(capture_output=True)
|
||||
|
||||
else:
|
||||
return super(JSController, self).launch(buffer_output=buffer_output)
|
||||
return super().launch(buffer_output=buffer_output)
|
||||
|
||||
def wait(self, *pargs, **kwargs):
|
||||
"""Wait for the JSController to finish"""
|
||||
ret = super(JSController, self).wait(*pargs, **kwargs)
|
||||
ret = super().wait(*pargs, **kwargs)
|
||||
# If this is a SlimerJS controller, check the captured stdout for
|
||||
# errors. Otherwise, just return the return code.
|
||||
if self.engine == 'slimerjs':
|
||||
|
@ -83,8 +83,7 @@ class NbconvertFileHandler(IPythonHandler):
|
||||
def content_security_policy(self):
|
||||
# In case we're serving HTML/SVG, confine any Javascript to a unique
|
||||
# origin so it can't interact with the notebook server.
|
||||
return super(NbconvertFileHandler, self).content_security_policy + \
|
||||
"; sandbox allow-scripts"
|
||||
return super().content_security_policy + "; sandbox allow-scripts"
|
||||
|
||||
@web.authenticated
|
||||
@gen.coroutine
|
||||
@ -158,8 +157,7 @@ class NbconvertPostHandler(IPythonHandler):
|
||||
def content_security_policy(self):
|
||||
# In case we're serving HTML/SVG, confine any Javascript to a unique
|
||||
# origin so it can't interact with the notebook server.
|
||||
return super(NbconvertPostHandler, self).content_security_policy + \
|
||||
"; sandbox allow-scripts"
|
||||
return super().content_security_policy + "; sandbox allow-scripts"
|
||||
|
||||
@web.authenticated
|
||||
def post(self, format):
|
||||
|
@ -980,7 +980,7 @@ class NBExtensionApp(BaseExtensionApp):
|
||||
|
||||
def start(self):
|
||||
"""Perform the App's functions as configured"""
|
||||
super(NBExtensionApp, self).start()
|
||||
super().start()
|
||||
|
||||
# The above should have called a subcommand and raised NoStart; if we
|
||||
# get here, it didn't, so we should self.log.info a message.
|
||||
|
@ -190,7 +190,7 @@ class NotebookWebApplication(web.Application):
|
||||
if settings['autoreload']:
|
||||
log.info('Autoreload enabled: the webapp will restart when any Python src file changes.')
|
||||
|
||||
super(NotebookWebApplication, self).__init__(handlers, **settings)
|
||||
super().__init__(handlers, **settings)
|
||||
|
||||
def init_settings(self, jupyter_app, kernel_manager, contents_manager,
|
||||
session_manager, kernel_spec_manager,
|
||||
@ -511,7 +511,7 @@ class NbserverStopApp(JupyterApp):
|
||||
help="UNIX socket of the server to be killed.")
|
||||
|
||||
def parse_command_line(self, argv=None):
|
||||
super(NbserverStopApp, self).parse_command_line(argv)
|
||||
super().parse_command_line(argv)
|
||||
if self.extra_args:
|
||||
try:
|
||||
self.port = int(self.extra_args[0])
|
||||
@ -1523,7 +1523,7 @@ class NotebookApp(JupyterApp):
|
||||
terminals_available = False
|
||||
|
||||
def parse_command_line(self, argv=None):
|
||||
super(NotebookApp, self).parse_command_line(argv)
|
||||
super().parse_command_line(argv)
|
||||
|
||||
if self.extra_args:
|
||||
arg0 = self.extra_args[0]
|
||||
@ -2026,7 +2026,7 @@ class NotebookApp(JupyterApp):
|
||||
def initialize(self, argv=None):
|
||||
self._init_asyncio_patch()
|
||||
|
||||
super(NotebookApp, self).initialize(argv)
|
||||
super().initialize(argv)
|
||||
self.init_logging()
|
||||
if self._dispatching:
|
||||
return
|
||||
@ -2192,7 +2192,7 @@ class NotebookApp(JupyterApp):
|
||||
This method takes no arguments so all configuration and initialization
|
||||
must be done prior to calling this method."""
|
||||
|
||||
super(NotebookApp, self).start()
|
||||
super().start()
|
||||
|
||||
if not self.allow_root:
|
||||
# check if we are running as root, and abort if it's not allowed
|
||||
|
@ -291,7 +291,7 @@ class ServerExtensionApp(BaseExtensionApp):
|
||||
|
||||
def start(self):
|
||||
"""Perform the App's actions as configured"""
|
||||
super(ServerExtensionApp, self).start()
|
||||
super().start()
|
||||
|
||||
# The above should have called a subcommand and raised NoStart; if we
|
||||
# get here, it didn't, so we should self.log.info a message.
|
||||
|
@ -27,7 +27,7 @@ class LargeFileManager(FileContentsManager):
|
||||
if chunk == 1:
|
||||
self.log.debug("Saving %s", os_path)
|
||||
self.run_pre_save_hook(model=model, path=path)
|
||||
super(LargeFileManager, self)._save_file(os_path, model['content'], model.get('format'))
|
||||
super()._save_file(os_path, model['content'], model.get('format'))
|
||||
else:
|
||||
self._save_large_file(os_path, model['content'], model.get('format'))
|
||||
except web.HTTPError:
|
||||
@ -43,7 +43,7 @@ class LargeFileManager(FileContentsManager):
|
||||
self.run_post_save_hook(model=model, os_path=os_path)
|
||||
return model
|
||||
else:
|
||||
return super(LargeFileManager, self).save(model, path)
|
||||
return super().save(model, path)
|
||||
|
||||
def _save_large_file(self, os_path, content, format):
|
||||
"""Save content of a generic file."""
|
||||
|
@ -190,7 +190,7 @@ class ZMQChannelsHandler(AuthenticatedZMQStreamHandler):
|
||||
self._kernel_info_future.set_result(info)
|
||||
|
||||
def initialize(self):
|
||||
super(ZMQChannelsHandler, self).initialize()
|
||||
super().initialize()
|
||||
self.zmq_stream = None
|
||||
self.channels = {}
|
||||
self.kernel_id = None
|
||||
@ -212,7 +212,7 @@ class ZMQChannelsHandler(AuthenticatedZMQStreamHandler):
|
||||
@gen.coroutine
|
||||
def pre_get(self):
|
||||
# authenticate first
|
||||
super(ZMQChannelsHandler, self).pre_get()
|
||||
super().pre_get()
|
||||
# check session collision:
|
||||
yield self._register_session()
|
||||
# then request kernel info, waiting up to a certain time before giving up.
|
||||
@ -236,7 +236,7 @@ class ZMQChannelsHandler(AuthenticatedZMQStreamHandler):
|
||||
@gen.coroutine
|
||||
def get(self, kernel_id):
|
||||
self.kernel_id = cast_unicode(kernel_id, 'ascii')
|
||||
yield super(ZMQChannelsHandler, self).get(kernel_id=kernel_id)
|
||||
yield super().get(kernel_id=kernel_id)
|
||||
|
||||
@gen.coroutine
|
||||
def _register_session(self):
|
||||
@ -254,7 +254,7 @@ class ZMQChannelsHandler(AuthenticatedZMQStreamHandler):
|
||||
self._open_sessions[self.session_key] = self
|
||||
|
||||
def open(self, kernel_id):
|
||||
super(ZMQChannelsHandler, self).open()
|
||||
super().open()
|
||||
km = self.kernel_manager
|
||||
km.notify_connect(kernel_id)
|
||||
|
||||
@ -419,10 +419,10 @@ class ZMQChannelsHandler(AuthenticatedZMQStreamHandler):
|
||||
self._iopub_window_byte_count -= byte_count
|
||||
self._iopub_window_byte_queue.pop(-1)
|
||||
return
|
||||
super(ZMQChannelsHandler, self)._on_zmq_reply(stream, msg)
|
||||
super()._on_zmq_reply(stream, msg)
|
||||
|
||||
def close(self):
|
||||
super(ZMQChannelsHandler, self).close()
|
||||
super().close()
|
||||
return self._close_future
|
||||
|
||||
def on_close(self):
|
||||
|
@ -21,7 +21,7 @@ dummy_date_s = isoformat(dummy_date)
|
||||
class DummyMKM(MappingKernelManager):
|
||||
"""MappingKernelManager interface that doesn't start kernels, for testing"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(DummyMKM, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
self.id_letters = iter(u'ABCDEFGHIJK')
|
||||
|
||||
def _new_id(self):
|
||||
|
@ -33,14 +33,14 @@ class TermSocket(WebSocketMixin, IPythonHandler, terminado.TermSocket):
|
||||
raise web.HTTPError(403)
|
||||
if not args[0] in self.term_manager.terminals:
|
||||
raise web.HTTPError(404)
|
||||
return super(TermSocket, self).get(*args, **kwargs)
|
||||
return super().get(*args, **kwargs)
|
||||
|
||||
def on_message(self, message):
|
||||
super(TermSocket, self).on_message(message)
|
||||
super().on_message(message)
|
||||
self._update_activity()
|
||||
|
||||
def write_message(self, message, binary=False):
|
||||
super(TermSocket, self).write_message(message, binary=binary)
|
||||
super().write_message(message, binary=binary)
|
||||
self._update_activity()
|
||||
|
||||
def _update_activity(self):
|
||||
|
@ -39,7 +39,7 @@ class TerminalManager(LoggingConfigurable, NamedTermManager):
|
||||
# Methods for managing terminals
|
||||
# -------------------------------------------------------------------------
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(TerminalManager, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def create(self):
|
||||
"""Create a new terminal."""
|
||||
@ -73,7 +73,7 @@ class TerminalManager(LoggingConfigurable, NamedTermManager):
|
||||
async def terminate(self, name, force=False):
|
||||
"""Terminate terminal 'name'."""
|
||||
self._check_terminal(name)
|
||||
await super(TerminalManager, self).terminate(name, force=force)
|
||||
await super().terminate(name, force=force)
|
||||
|
||||
# Decrease the metric below by one
|
||||
# because a terminal has been shutdown
|
||||
|
@ -161,7 +161,7 @@ class TestGateway(NotebookTestBase):
|
||||
def setUp(self):
|
||||
kwargs = dict()
|
||||
GatewayClient.instance().load_connection_args(**kwargs)
|
||||
super(TestGateway, self).setUp()
|
||||
super().setUp()
|
||||
|
||||
def test_gateway_options(self):
|
||||
nt.assert_equal(self.notebook.gateway_config.gateway_enabled, True)
|
||||
|
@ -142,7 +142,7 @@ def test_notebook_password():
|
||||
class TestingStopApp(notebookapp.NbserverStopApp):
|
||||
"""For testing the logic of NbserverStopApp."""
|
||||
def __init__(self, **kwargs):
|
||||
super(TestingStopApp, self).__init__(**kwargs)
|
||||
super().__init__(**kwargs)
|
||||
self.servers_shut_down = []
|
||||
|
||||
def shutdown_server(self, server):
|
||||
|
@ -159,7 +159,7 @@ class TestOrderedServerExtension(MockEnvTestCase):
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(TestOrderedServerExtension, self).setUp()
|
||||
super().setUp()
|
||||
mockextension1 = SimpleNamespace()
|
||||
mockextension2 = SimpleNamespace()
|
||||
|
||||
@ -179,7 +179,7 @@ class TestOrderedServerExtension(MockEnvTestCase):
|
||||
sys.modules['mockextension1'] = mockextension1
|
||||
|
||||
def tearDown(self):
|
||||
super(TestOrderedServerExtension, self).tearDown()
|
||||
super().tearDown()
|
||||
del sys.modules['mockextension2']
|
||||
del sys.modules['mockextension1']
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user