Skip to content

Commit 0fd5c7b

Browse files
authored
Avoid usage of ipython_genutils (#718)
1 parent f4d131b commit 0fd5c7b

File tree

13 files changed

+119
-41
lines changed

13 files changed

+119
-41
lines changed

jupyter_server/_sysinfo.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
import subprocess
1010
import sys
1111

12-
from ipython_genutils import encoding
13-
1412
import jupyter_server
1513

1614

@@ -86,7 +84,6 @@ def pkg_info(pkg_path):
8684
sys_platform=sys.platform,
8785
platform=platform.platform(),
8886
os_name=os.name,
89-
default_encoding=encoding.DEFAULT_ENCODING,
9087
)
9188

9289

jupyter_server/auth/security.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@
1111
import warnings
1212
from contextlib import contextmanager
1313

14-
from ipython_genutils.py3compat import cast_bytes
15-
from ipython_genutils.py3compat import cast_unicode
16-
from ipython_genutils.py3compat import str_to_bytes
1714
from jupyter_core.paths import jupyter_config_dir
1815
from traitlets.config import Config
1916
from traitlets.config import ConfigFileNotFound
@@ -72,11 +69,11 @@ def passwd(passphrase=None, algorithm="argon2"):
7269
)
7370
h = ph.hash(passphrase)
7471

75-
return ":".join((algorithm, cast_unicode(h, "ascii")))
72+
return ":".join((algorithm, h))
7673

7774
h = hashlib.new(algorithm)
7875
salt = ("%0" + str(salt_len) + "x") % random.getrandbits(4 * salt_len)
79-
h.update(cast_bytes(passphrase, "utf-8") + str_to_bytes(salt, "ascii"))
76+
h.update(passphrase.encode("utf-8") + salt.encode("ascii"))
8077

8178
return ":".join((algorithm, salt, h.hexdigest()))
8279

@@ -133,7 +130,7 @@ def passwd_check(hashed_passphrase, passphrase):
133130
if len(pw_digest) == 0:
134131
return False
135132

136-
h.update(cast_bytes(passphrase, "utf-8") + cast_bytes(salt, "ascii"))
133+
h.update(passphrase.encode("utf-8") + salt.encode("ascii"))
137134

138135
return h.hexdigest() == pw_digest
139136

@@ -160,7 +157,7 @@ def persist_config(config_file=None, mode=0o600):
160157
yield config
161158

162159
with io.open(config_file, "w", encoding="utf8") as f:
163-
f.write(cast_unicode(json.dumps(config, indent=2)))
160+
f.write(json.dumps(config, indent=2))
164161

165162
try:
166163
os.chmod(config_file, mode)

jupyter_server/base/handlers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
from urllib.parse import urlparse
1717

1818
import prometheus_client
19-
from ipython_genutils.path import filefind
2019
from jinja2 import TemplateNotFound
2120
from jupyter_core.paths import is_hidden
2221
from tornado import escape
@@ -31,6 +30,7 @@
3130
from jupyter_server.i18n import combine_translations
3231
from jupyter_server.services.security import csp_report_uri
3332
from jupyter_server.utils import ensure_async
33+
from jupyter_server.utils import filefind
3434
from jupyter_server.utils import url_escape
3535
from jupyter_server.utils import url_is_absolute
3636
from jupyter_server.utils import url_path_join

jupyter_server/base/zmqhandlers.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
from urllib.parse import urlparse
1010

1111
import tornado
12-
from ipython_genutils.py3compat import cast_unicode
1312

1413
try:
1514
from jupyter_client.jsonutil import json_default
@@ -268,8 +267,7 @@ def _reserialize_reply(self, msg_or_list, channel=None):
268267
buf = serialize_binary_message(msg)
269268
return buf
270269
else:
271-
smsg = json.dumps(msg, default=json_default)
272-
return cast_unicode(smsg)
270+
return json.dumps(msg, default=json_default)
273271

274272
def select_subprotocol(self, subprotocols):
275273
preferred_protocol = self.settings.get("kernel_ws_protocol")
@@ -326,7 +324,7 @@ def pre_get(self):
326324
raise web.HTTPError(403)
327325

328326
if self.get_argument("session_id", False):
329-
self.session.session = cast_unicode(self.get_argument("session_id"))
327+
self.session.session = self.get_argument("session_id")
330328
else:
331329
self.log.warning("No session ID specified")
332330

jupyter_server/gateway/handlers.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import os
77
import random
88

9-
from ipython_genutils.py3compat import cast_unicode
109
from jupyter_client.session import Session
1110
from tornado import web
1211
from tornado.concurrent import Future
@@ -59,7 +58,7 @@ def authenticate(self):
5958
raise web.HTTPError(403)
6059

6160
if self.get_argument("session_id", False):
62-
self.session.session = cast_unicode(self.get_argument("session_id"))
61+
self.session.session = self.get_argument("session_id")
6362
else:
6463
self.log.warning("No session ID specified")
6564

@@ -70,7 +69,7 @@ def initialize(self):
7069

7170
async def get(self, kernel_id, *args, **kwargs):
7271
self.authenticate()
73-
self.kernel_id = cast_unicode(kernel_id, "ascii")
72+
self.kernel_id = kernel_id
7473
await super(WebSocketChannelsHandler, self).get(kernel_id=kernel_id, *args, **kwargs)
7574

7675
def send_ping(self):

jupyter_server/nbconvert/handlers.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@
33
# Distributed under the terms of the Modified BSD License.
44
import io
55
import os
6+
import sys
67
import zipfile
78

89
from anyio.to_thread import run_sync
9-
from ipython_genutils import text
10-
from ipython_genutils.py3compat import cast_bytes
1110
from nbformat import from_dict
1211
from tornado import web
1312
from tornado.log import app_log
@@ -21,6 +20,13 @@
2120

2221
AUTH_RESOURCE = "nbconvert"
2322

23+
# datetime.strftime date format for jupyter
24+
# inlined from ipython_genutils
25+
if sys.platform == "win32":
26+
date_format = "%B %d, %Y"
27+
else:
28+
date_format = "%B %-d, %Y"
29+
2430

2531
def find_resource_files(output_files_dir):
2632
files = []
@@ -50,7 +56,7 @@ def respond_zip(handler, name, output, resources):
5056
buffer = io.BytesIO()
5157
zipf = zipfile.ZipFile(buffer, mode="w", compression=zipfile.ZIP_DEFLATED)
5258
output_filename = os.path.splitext(name)[0] + resources["output_extension"]
53-
zipf.writestr(output_filename, cast_bytes(output, "utf-8"))
59+
zipf.writestr(output_filename, output.encode("utf-8"))
5460
for filename, data in output_files.items():
5561
zipf.writestr(os.path.basename(filename), data)
5662
zipf.close()
@@ -111,7 +117,7 @@ async def get(self, format, path):
111117
self.set_header("Last-Modified", model["last_modified"])
112118

113119
# create resources dictionary
114-
mod_date = model["last_modified"].strftime(text.date_format)
120+
mod_date = model["last_modified"].strftime(date_format)
115121
nb_title = os.path.splitext(name)[0]
116122

117123
resource_dict = {

jupyter_server/services/contents/filemanager.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
from jupyter_server import _tz as tz
3232
from jupyter_server.base.handlers import AuthenticatedFileHandler
3333
from jupyter_server.transutils import _i18n
34+
from jupyter_server.utils import import_item
3435

3536
try:
3637
from os.path import samefile

jupyter_server/services/contents/manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import warnings
88
from fnmatch import fnmatch
99

10-
from ipython_genutils.importstring import import_item
1110
from nbformat import sign
1211
from nbformat import validate as validate_nb
1312
from nbformat import ValidationError
@@ -31,6 +30,7 @@
3130
from .checkpoints import Checkpoints
3231
from jupyter_server.transutils import _i18n
3332
from jupyter_server.utils import ensure_async
33+
from jupyter_server.utils import import_item
3434

3535

3636
copy_pat = re.compile(r"\-Copy\d*\.")

jupyter_server/services/kernels/handlers.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
from textwrap import dedent
99
from traceback import format_tb
1010

11-
from ipython_genutils.py3compat import cast_unicode
1211
from jupyter_client import protocol_version as client_protocol_version
1312

1413
try:
@@ -406,7 +405,7 @@ def give_up():
406405
await future
407406

408407
async def get(self, kernel_id):
409-
self.kernel_id = cast_unicode(kernel_id, "ascii")
408+
self.kernel_id = kernel_id
410409
await super(ZMQChannelsHandler, self).get(kernel_id=kernel_id)
411410

412411
async def _register_session(self):

jupyter_server/terminal/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import os
22
import sys
3+
from shutil import which
34

45
import terminado
56

@@ -8,7 +9,6 @@
89
if not check_version(terminado.__version__, "0.8.3"):
910
raise ImportError("terminado >= 0.8.3 required, found %s" % terminado.__version__)
1011

11-
from ipython_genutils.py3compat import which
1212
from jupyter_server.utils import url_path_join as ujoin
1313
from . import api_handlers
1414
from .handlers import TermSocket

0 commit comments

Comments
 (0)