Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-jupyter-core for
openSUSE:Factory checked in at 2022-03-14 19:35:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter-core (Old)
and /work/SRC/openSUSE:Factory/.python-jupyter-core.new.25692 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jupyter-core"
Mon Mar 14 19:35:17 2022 rev:10 rq:961398 version:4.9.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jupyter-core/python-jupyter-core.changes
2021-11-15 15:27:44.469846028 +0100
+++
/work/SRC/openSUSE:Factory/.python-jupyter-core.new.25692/python-jupyter-core.changes
2022-03-14 19:37:06.518129423 +0100
@@ -1,0 +2,10 @@
+Sun Mar 13 06:59:34 UTC 2022 - Ben Greiner <[email protected]>
+
+- Update to 4.9.2
+ * set proper sys.argv[0] for subcommand by @bnavigator in #248
+ * Add explicit encoding in open calls by @dlukes in #249
+ * jupyter_config_dir - reorder home_dir initialization by
+ @dharmaquark in #251
+- Drop argv0_subcommand.patch merged upstream
+
+-------------------------------------------------------------------
Old:
----
argv0_subcommand.patch
jupyter_core-4.9.1.tar.gz
New:
----
jupyter_core-4.9.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter-core.spec ++++++
--- /var/tmp/diff_new_pack.26WsES/_old 2022-03-14 19:37:06.934129921 +0100
+++ /var/tmp/diff_new_pack.26WsES/_new 2022-03-14 19:37:06.942129931 +0100
@@ -1,7 +1,7 @@
#
# spec file
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -31,10 +31,10 @@
%define psuffix %{nil}
%bcond_with test
%endif
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%{?!python_module:%define python_module() python3-%{**}}
%define skip_python2 1
Name: python-jupyter-core%{psuffix}
-Version: 4.9.1
+Version: 4.9.2
Release: 0
Summary: Base package on which Jupyter projects rely
License: BSD-3-Clause
@@ -42,8 +42,6 @@
Source0:
https://files.pythonhosted.org/packages/source/j/jupyter_core/jupyter_core-%{version}.tar.gz
# PATCH-FIX-OPENSUSE -- use_rpms_paths.patch -- change paths so they are easy
to replace at build time
Patch0: use_rpms_paths.patch
-# PATCH-FIX-UPSTREAM argv0_subcommand.patch -- gh#jupyter/jupyter_core#248,
merged after the release of 4.9.1
-Patch1: argv0_subcommand.patch
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module traitlets}
BuildRequires: fdupes
++++++ jupyter_core-4.9.1.tar.gz -> jupyter_core-4.9.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.9.1/PKG-INFO
new/jupyter_core-4.9.2/PKG-INFO
--- old/jupyter_core-4.9.1/PKG-INFO 2021-10-28 06:00:18.573315600 +0200
+++ new/jupyter_core-4.9.2/PKG-INFO 2022-02-15 23:34:31.406066400 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: jupyter_core
-Version: 4.9.1
+Version: 4.9.2
Summary: Jupyter core package. A base package on which Jupyter projects rely.
Home-page: https://jupyter.org
Author: Jupyter Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.9.1/jupyter_core/application.py
new/jupyter_core-4.9.2/jupyter_core/application.py
--- old/jupyter_core-4.9.1/jupyter_core/application.py 2021-10-26
22:39:23.000000000 +0200
+++ new/jupyter_core-4.9.2/jupyter_core/application.py 2022-02-15
23:33:11.000000000 +0100
@@ -147,7 +147,7 @@
config_text = config_text.decode('utf8')
print("Writing default config to: %s" % config_file)
ensure_dir_exists(os.path.abspath(os.path.dirname(config_file)), 0o700)
- with open(config_file, mode='w') as f:
+ with open(config_file, mode='w', encoding='utf-8') as f:
f.write(config_text)
def migrate_config(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.9.1/jupyter_core/command.py
new/jupyter_core-4.9.2/jupyter_core/command.py
--- old/jupyter_core-4.9.1/jupyter_core/command.py 2021-10-26
22:56:59.000000000 +0200
+++ new/jupyter_core-4.9.2/jupyter_core/command.py 2022-02-15
23:33:11.000000000 +0100
@@ -303,7 +303,7 @@
sys.exit(e)
try:
- _execvp(command, sys.argv[1:])
+ _execvp(command, [command] + sys.argv[2:])
except OSError as e:
sys.exit("Error executing Jupyter command %r: %s" % (subcommand, e))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.9.1/jupyter_core/migrate.py
new/jupyter_core-4.9.2/jupyter_core/migrate.py
--- old/jupyter_core-4.9.1/jupyter_core/migrate.py 2021-10-26
22:39:23.000000000 +0200
+++ new/jupyter_core-4.9.2/jupyter_core/migrate.py 2022-02-15
23:33:11.000000000 +0100
@@ -109,11 +109,11 @@
ensure_dir_exists(os.path.dirname(dst))
shutil.copy(src, dst)
if substitutions:
- with open(dst) as f:
+ with open(dst, encoding='utf-8') as f:
text = f.read()
for pat, replacement in substitutions.items():
text = pat.sub(replacement, text)
- with open(dst, 'w') as f:
+ with open(dst, 'w', encoding='utf-8') as f:
f.write(text)
return True
@@ -146,7 +146,7 @@
# check if custom_js is empty:
custom_js_empty = True
if os.path.isfile(custom_js):
- with open(custom_js) as f:
+ with open(custom_js, encoding='utf-8') as f:
js = f.read().strip()
for line in js.splitlines():
if not (
@@ -159,7 +159,7 @@
# check if custom_css is empty:
custom_css_empty = True
if os.path.isfile(custom_css):
- with open(custom_css) as f:
+ with open(custom_css, encoding='utf-8') as f:
css = f.read().strip()
custom_css_empty = css.startswith('/*') and css.endswith('*/')
@@ -242,7 +242,7 @@
# write a marker to avoid re-running migration checks
ensure_dir_exists(env['jupyter_config'])
- with open(os.path.join(env['jupyter_config'], 'migrated'), 'w') as f:
+ with open(os.path.join(env['jupyter_config'], 'migrated'), 'w',
encoding='utf-8') as f:
f.write(datetime.utcnow().isoformat())
return migrated
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.9.1/jupyter_core/paths.py
new/jupyter_core-4.9.2/jupyter_core/paths.py
--- old/jupyter_core-4.9.1/jupyter_core/paths.py 2021-10-27
21:17:42.000000000 +0200
+++ new/jupyter_core-4.9.2/jupyter_core/paths.py 2022-02-15
23:33:11.000000000 +0100
@@ -62,14 +62,13 @@
"""
env = os.environ
- home_dir = get_home_dir()
-
if env.get('JUPYTER_NO_CONFIG'):
return _mkdtemp_once('jupyter-clean-cfg')
if env.get('JUPYTER_CONFIG_DIR'):
return env['JUPYTER_CONFIG_DIR']
+ home_dir = get_home_dir()
return pjoin(home_dir, '.jupyter')
@@ -877,6 +876,7 @@
Indicates that the file is binary
"""
mode = 'wb' if binary else 'w'
+ encoding = None if binary else 'utf-8'
open_flag = os.O_CREAT | os.O_WRONLY | os.O_TRUNC
try:
os.remove(fname)
@@ -898,7 +898,7 @@
open_flag = os.O_WRONLY | os.O_TRUNC
win32_restrict_file_to_user(fname)
- with os.fdopen(os.open(fname, open_flag, 0o0600), mode) as f:
+ with os.fdopen(os.open(fname, open_flag, 0o0600), mode, encoding=encoding)
as f:
if os.name != 'nt':
# Enforce that the file got the requested permissions before
writing
file_mode = get_file_mode(fname)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_core-4.9.1/jupyter_core/tests/test_application.py
new/jupyter_core-4.9.2/jupyter_core/tests/test_application.py
--- old/jupyter_core-4.9.1/jupyter_core/tests/test_application.py
2021-10-26 22:39:23.000000000 +0200
+++ new/jupyter_core-4.9.2/jupyter_core/tests/test_application.py
2022-02-15 23:33:11.000000000 +0100
@@ -33,7 +33,7 @@
app = DummyApp()
td = mkdtemp()
fname = pjoin(td, 'config.py')
- with open(fname, 'w') as f:
+ with open(fname, 'w', encoding='utf-8') as f:
f.write(_dummy_config)
app.initialize(['--config', fname])
shutil.rmtree(td)
@@ -44,7 +44,7 @@
app = DummyApp()
td = mkdtemp()
fname = pjoin(td, 'config.py')
- with open(fname, 'w') as f:
+ with open(fname, 'w', encoding='utf-8') as f:
f.write(_dummy_config)
app.initialize(['--config', fname, '--DummyApp.n=20'])
shutil.rmtree(td)
@@ -66,7 +66,7 @@
def test_load_config():
config_dir = mkdtemp()
wd = mkdtemp()
- with open(pjoin(config_dir, 'dummy_app_config.py'), 'w') as f:
+ with open(pjoin(config_dir, 'dummy_app_config.py'), 'w', encoding='utf-8')
as f:
f.write('c.DummyApp.m = 1\n')
f.write('c.DummyApp.n = 1')
with patch.object(os, 'getcwd', lambda : wd):
@@ -75,7 +75,7 @@
assert app.n == 1, "Loaded config from config dir"
- with open(pjoin(wd, 'dummy_app_config.py'), 'w') as f:
+ with open(pjoin(wd, 'dummy_app_config.py'), 'w', encoding='utf-8') as f:
f.write('c.DummyApp.n = 2')
with patch.object(os, 'getcwd', lambda : wd):
@@ -92,7 +92,7 @@
def test_load_bad_config():
config_dir = mkdtemp()
wd = mkdtemp()
- with open(pjoin(config_dir, 'dummy_app_config.py'), 'w') as f:
+ with open(pjoin(config_dir, 'dummy_app_config.py'), 'w', encoding='utf-8')
as f:
f.write('c.DummyApp.m = "a\n') # Syntax error
with patch.object(os, 'getcwd', lambda : wd):
with pytest.raises(SyntaxError):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_core-4.9.1/jupyter_core/tests/test_command.py
new/jupyter_core-4.9.2/jupyter_core/tests/test_command.py
--- old/jupyter_core-4.9.1/jupyter_core/tests/test_command.py 2021-10-26
22:56:59.000000000 +0200
+++ new/jupyter_core-4.9.2/jupyter_core/tests/test_command.py 2022-02-15
23:33:11.000000000 +0100
@@ -201,3 +201,27 @@
env[str('PATHEXT')] = '.EXE'
out = check_output([sys.executable, str(jupyter), 'witness'], env=env)
assert b'WITNESS A' in out
+
+def test_argv0(tmpdir):
+ a = tmpdir.mkdir("a")
+ jupyter = a.join('jupyter')
+ jupyter.write(
+ 'from jupyter_core import command; command.main()'
+ )
+ jupyter.chmod(0o700)
+ witness_a = a.join('jupyter-witness')
+ witness_a_src = f'''#!{sys.executable}
+import sys
+print(sys.argv[0])
+'''
+ write_executable(witness_a, witness_a_src)
+
+ env = {}
+ if 'SYSTEMROOT' in os.environ: # Windows http://bugs.python.org/issue20614
+ env[str('SYSTEMROOT')] = os.environ['SYSTEMROOT']
+ if sys.platform == 'win32':
+ env[str('PATHEXT')] = '.EXE'
+ out = check_output([sys.executable, str(jupyter), 'witness'], env=env)
+
+ # Make sure the first argv is the full path to the executing script
+ assert f'{jupyter}-witness'.encode() in out
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_core-4.9.1/jupyter_core/tests/test_migrate.py
new/jupyter_core-4.9.2/jupyter_core/tests/test_migrate.py
--- old/jupyter_core-4.9.1/jupyter_core/tests/test_migrate.py 2021-10-26
22:39:23.000000000 +0200
+++ new/jupyter_core-4.9.2/jupyter_core/tests/test_migrate.py 2022-02-15
23:33:11.000000000 +0100
@@ -57,7 +57,7 @@
def touch(path, content=''):
ensure_dir_exists(os.path.dirname(path))
- with open(path, 'w') as f:
+ with open(path, 'w', encoding='utf-8') as f:
f.write(content)
@@ -65,10 +65,10 @@
"""Verify that two files match"""
assert os.path.exists(b)
- with open(a) as f:
+ with open(a, encoding='utf-8') as f:
a_txt = f.read()
- with open(b) as f:
+ with open(b, encoding='utf-8') as f:
b_txt = f.read()
assert a_txt == b_txt
@@ -166,7 +166,7 @@
'jupyter_test_config.py',
]
- with open(pjoin(jpy, 'jupyter_test_config.py')) as f:
+ with open(pjoin(jpy, 'jupyter_test_config.py'), encoding='utf-8') as f:
text = f.read()
assert text == 'c.Replaced.trait = 5\n'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.9.1/jupyter_core/tests/test_paths.py
new/jupyter_core-4.9.2/jupyter_core/tests/test_paths.py
--- old/jupyter_core-4.9.1/jupyter_core/tests/test_paths.py 2021-10-26
22:56:59.000000000 +0200
+++ new/jupyter_core-4.9.2/jupyter_core/tests/test_paths.py 2022-02-15
23:33:11.000000000 +0100
@@ -396,7 +396,7 @@
with secure_write(fname) as f:
f.write('test 1')
check_user_only_permissions(fname)
- with open(fname, 'r') as f:
+ with open(fname, 'r', encoding='utf-8') as f:
assert f.read() == 'test 1'
finally:
shutil.rmtree(directory)
@@ -411,7 +411,7 @@
f.write('test 1')
mode = os.stat(fname).st_mode
assert 0o0600 == (stat.S_IMODE(mode) & 0o7677) # tolerate
owner-execute bit
- with open(fname, 'r') as f:
+ with open(fname, 'r', encoding='utf-8') as f:
assert f.read() == 'test 1'
# Try changing file permissions ahead of time
@@ -420,7 +420,7 @@
f.write('test 2')
mode = os.stat(fname).st_mode
assert 0o0600 == (stat.S_IMODE(mode) & 0o7677) # tolerate
owner-execute bit
- with open(fname, 'r') as f:
+ with open(fname, 'r', encoding='utf-8') as f:
assert f.read() == 'test 2'
finally:
shutil.rmtree(directory)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.9.1/jupyter_core/version.py
new/jupyter_core-4.9.2/jupyter_core/version.py
--- old/jupyter_core-4.9.1/jupyter_core/version.py 2021-10-28
05:59:44.000000000 +0200
+++ new/jupyter_core-4.9.2/jupyter_core/version.py 2022-02-15
23:34:09.000000000 +0100
@@ -11,7 +11,7 @@
'serial'
])
-version_info = VersionInfo(4, 9, 1, 'final', 0)
+version_info = VersionInfo(4, 9, 2, 'final', 0)
_specifier_ = {'alpha': 'a', 'beta': 'b', 'candidate': 'rc', 'final': '',
'dev': 'dev'}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.9.1/jupyter_core.egg-info/PKG-INFO
new/jupyter_core-4.9.2/jupyter_core.egg-info/PKG-INFO
--- old/jupyter_core-4.9.1/jupyter_core.egg-info/PKG-INFO 2021-10-28
06:00:18.000000000 +0200
+++ new/jupyter_core-4.9.2/jupyter_core.egg-info/PKG-INFO 2022-02-15
23:34:31.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: jupyter-core
-Version: 4.9.1
+Version: 4.9.2
Summary: Jupyter core package. A base package on which Jupyter projects rely.
Home-page: https://jupyter.org
Author: Jupyter Development Team