Hello community,
here is the log from the commit of package python3-jupyter_core for
openSUSE:Factory checked in at 2017-03-03 17:46:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-jupyter_core (Old)
and /work/SRC/openSUSE:Factory/.python3-jupyter_core.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-jupyter_core"
Fri Mar 3 17:46:13 2017 rev:7 rq:461371 version:4.3.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python3-jupyter_core/python3-jupyter_core-doc.changes
2016-05-25 21:27:06.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.python3-jupyter_core.new/python3-jupyter_core-doc.changes
2017-03-03 17:46:14.474662267 +0100
@@ -1,0 +2,22 @@
+Wed Mar 1 15:55:38 UTC 2017 - [email protected]
+
+- Fix source URL.
+
+-------------------------------------------------------------------
+Tue Feb 28 20:09:53 UTC 2017 - [email protected]
+
+- Update to 4.3.0
+ * Add `JUPYTER_NO_CONFIG` environment variable for disabling all Jupyter
configuration.
+ * More detailed error message when failing to launch subcommands.
+- Update to 4.2.1
+ * Fix error message on Windows when subcommand not found.
+ * Correctly display PATH in ``jupyter troubleshoot`` on Windows.
+- Update to 4.2.0
+ * Make :command:`jupyter` directory top priority in search path for
subcommands,
+ so that :command:`jupyter-subcommand` next to :command:`jupyter` will
always be picked if present.
+ * Avoid using ``shell=True`` for subcommand dispatch on Windows.
+- Update to 4.1.1
+ * Include symlink directory and real location on subcommand PATH when
:file:`jupyter` is a symlink.
+- Merge all documentation into single rpm.
+
+-------------------------------------------------------------------
---
/work/SRC/openSUSE:Factory/python3-jupyter_core/python3-jupyter_core.changes
2016-10-20 23:09:58.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.python3-jupyter_core.new/python3-jupyter_core.changes
2017-03-03 17:46:14.566649267 +0100
@@ -1,0 +2,17 @@
+Tue Feb 28 20:09:53 UTC 2017 - [email protected]
+
+- Update to 4.3.0
+ * Add `JUPYTER_NO_CONFIG` environment variable for disabling all Jupyter
configuration.
+ * More detailed error message when failing to launch subcommands.
+- Update to 4.2.1
+ * Fix error message on Windows when subcommand not found.
+ * Correctly display PATH in ``jupyter troubleshoot`` on Windows.
+- Update to 4.2.0
+ * Make :command:`jupyter` directory top priority in search path for
subcommands,
+ so that :command:`jupyter-subcommand` next to :command:`jupyter` will
always be picked if present.
+ * Avoid using ``shell=True`` for subcommand dispatch on Windows.
+- Update to 4.1.1
+ * Include symlink directory and real location on subcommand PATH when
:file:`jupyter` is a symlink.
+- Merge all documentation into single rpm.
+
+-------------------------------------------------------------------
Old:
----
jupyter_core-4.1.0.tar.gz
New:
----
jupyter_core-4.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-jupyter_core-doc.spec ++++++
--- /var/tmp/diff_new_pack.6LYneA/_old 2017-03-03 17:46:15.346539051 +0100
+++ /var/tmp/diff_new_pack.6LYneA/_new 2017-03-03 17:46:15.354537920 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python3-jupyter_core-doc
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -23,39 +23,27 @@
%endif
Name: python3-jupyter_core-doc
-Version: 4.1.0
+Version: 4.3.0
Release: 0
Summary: Documentation for python3-jupyter_core
License: BSD-3-Clause
Group: Development/Languages/Python
Url: http://jupyter.org
-Source:
https://pypi.python.org/packages/source/j/jupyter_core/jupyter_core-%{version}.tar.gz
+Source:
https://files.pythonhosted.org/packages/source/j/jupyter_core/jupyter_core-%{version}.tar.gz
BuildRequires: python3-Sphinx
BuildRequires: python3-jupyter_core
%if %{build_pdf}
BuildRequires: python3-Sphinx-latex
%endif
+Provides: %{name}-html = %{version}
+Provides: %{name}-pdf = %{version}
+Obsoletes: %{name}-html < %{version}
+Obsoletes: %{name}-pdf < %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%description
-Documentation and help files for python3-jupyter_core in HTML format
-
-%package html
-Summary: HTML documentation for python3-jupyter_core
-Group: Development/Languages/Python
-Recommends: python3-jupyter_core = %{version}
-
-%description html
-Documentation and help files for python3-jupyter_core in HTML format
-
-%package pdf
-Summary: PDF documentation for python3-jupyter_core
-Group: Development/Languages/Python
-Recommends: python3-jupyter_core = %{version}
-
-%description pdf
-Documentation and help files for python3-jupyter_core in PDF format
+Documentation and help files for python3-jupyter_core.
%prep
%setup -q -n jupyter_core-%{version}
@@ -73,15 +61,11 @@
rm -rf _build/html/.buildinfo
popd
-%files html
+%files
%defattr(-,root,root,-)
%doc COPYING.md
%doc docs/_build/html/
-
%if %{build_pdf}
-%files pdf
-%defattr(-,root,root,-)
-%doc COPYING.md
%doc docs/_build/latex/jupyter_core.pdf
%endif
++++++ python3-jupyter_core.spec ++++++
--- /var/tmp/diff_new_pack.6LYneA/_old 2017-03-03 17:46:15.374535095 +0100
+++ /var/tmp/diff_new_pack.6LYneA/_new 2017-03-03 17:46:15.378534529 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python3-jupyter_core
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python3-jupyter_core
-Version: 4.1.0
+Version: 4.3.0
Release: 0
Summary: Base package on which Jupyter projects rely
License: BSD-3-Clause
@@ -34,6 +34,7 @@
BuildRequires: python3-mock
BuildRequires: python3-pbr
BuildRequires: python3-pytest
+BuildRequires: python3-testpath
Requires: python3 >= 3.3
Requires: python3-ipython_genutils
Requires: python3-traitlets
@@ -84,8 +85,9 @@
rm test_migrate.py
ln -s %{buildroot}%{_bindir}/jupyter-%{py3_ver} ./jupyter
export "PATH=%{buildroot}%{_bindir}:./:$PATH"
+export "PYTHONPATH=$PYTHONPATH:%{buildroot}%{python3_sitelib}"
# test_not_on_path removes the environment variables needed to make the tests
work
-PYTHONPATH=%{buildroot}%{python3_sitelib} py.test -k "not test_not_on_path"
+py.test -k "not test_not_on_path and not test_path_priority"
popd
%post
++++++ jupyter_core-4.1.0.tar.gz -> jupyter_core-4.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.1.0/PKG-INFO
new/jupyter_core-4.3.0/PKG-INFO
--- old/jupyter_core-4.1.0/PKG-INFO 2016-03-08 14:07:39.000000000 +0100
+++ new/jupyter_core-4.3.0/PKG-INFO 2017-02-14 18:32:10.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: jupyter_core
-Version: 4.1.0
+Version: 4.3.0
Summary: Jupyter core package. A base package on which Jupyter projects rely.
Home-page: http://jupyter.org
Author: Jupyter Development Team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.1.0/docs/changelog.rst
new/jupyter_core-4.3.0/docs/changelog.rst
--- old/jupyter_core-4.1.0/docs/changelog.rst 2016-03-08 14:06:27.000000000
+0100
+++ new/jupyter_core-4.3.0/docs/changelog.rst 2017-02-10 12:06:44.000000000
+0100
@@ -1,9 +1,53 @@
Changes in jupyter-core
=======================
+4.3
+---
+
+4.3.0
+~~~~~
+
+`on
+GitHub <https://github.com/jupyter/jupyter_core/releases/tag/4.3.0>`__
+
+- Add `JUPYTER_NO_CONFIG` environment variable for disabling all Jupyter
configuration.
+- More detailed error message when failing to launch subcommands.
+
+
+4.2
+---
+
+4.2.1
+~~~~~
+
+`on
+GitHub <https://github.com/jupyter/jupyter_core/releases/tag/4.2.1>`__
+
+- Fix error message on Windows when subcommand not found.
+- Correctly display PATH in ``jupyter troubleshoot`` on Windows.
+
+4.2.0
+~~~~~
+
+`on
+GitHub <https://github.com/jupyter/jupyter_core/releases/tag/4.2.0>`__
+
+- Make :command:`jupyter` directory top priority in search path for
subcommands,
+ so that :command:`jupyter-subcommand` next to :command:`jupyter` will always
be picked if present.
+- Avoid using ``shell=True`` for subcommand dispatch on Windows.
+
4.1
---
+4.1.1
+~~~~~
+
+`on
+GitHub <https://github.com/jupyter/jupyter_core/releases/tag/4.1.1>`__
+
+- Include symlink directory and real location on subcommand PATH when
:file:`jupyter` is a symlink.
+
+
4.1.0
~~~~~
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.1.0/docs/index.rst
new/jupyter_core-4.3.0/docs/index.rst
--- old/jupyter_core-4.1.0/docs/index.rst 2015-09-17 09:28:33.000000000
+0200
+++ new/jupyter_core-4.3.0/docs/index.rst 2016-10-11 14:52:31.000000000
+0200
@@ -3,7 +3,7 @@
This documentation only describes the public API in the ``jupyter_core``
package. For overview information about using Jupyter, see the `main Jupyter
-docs <http://jupyter.readthedocs.org/en/latest/>`__.
+docs <https://jupyter.readthedocs.io/en/latest/>`__.
Contents:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.1.0/examples/jupyter-completion.bash
new/jupyter_core-4.3.0/examples/jupyter-completion.bash
--- old/jupyter_core-4.1.0/examples/jupyter-completion.bash 1970-01-01
01:00:00.000000000 +0100
+++ new/jupyter_core-4.3.0/examples/jupyter-completion.bash 2016-08-10
11:22:59.000000000 +0200
@@ -0,0 +1,90 @@
+# load with: . jupyter-completion.bash
+
+if [[ -n ${ZSH_VERSION-} ]]; then
+ autoload -Uz bashcompinit && bashcompinit
+fi
+
+_jupyter()
+{
+ local url=$1
+ local var=$2
+ local dash=$3
+ if [[ "$url $var" == $__jupyter ]]; then
+ opts=$__jupyter
+ return
+ fi
+ # matplotlib and profile don't need the = and the
+ # version without simplifies the special cased completion
+ opts=$(jupyter ${url} --help-all | grep -E "^-{1,2}[^-]" | sed -e
"s/<.*//" -e "s/[^=]$/& /" -e "$ s/^/\n-h\n--help\n--help-all\n/")
+ __jupyter="$url $var"
+ __jupyter="$opts"
+}
+
+_jupyter()
+{
+ local cur=${COMP_WORDS[COMP_CWORD]}
+ local prev=${COMP_WORDS[COMP_CWORD - 1]}
+ local subcommands="notebook qtconsole console nbconvert kernelspec trust "
+ local opts="help"
+ if [ -z "$__jupyter" ]; then
+ _jupyter baseopts
+ __jupyter="${opts}"
+ fi
+ local baseopts="$__jupyter"
+ local mode=""
+ for i in "${COMP_WORDS[@]}"; do
+ [ "$cur" = "$i" ] && break
+ if [[ ${subcommands} == *${i}* ]]; then
+ mode="$i"
+ break
+ elif [[ ${i} == "--"* ]]; then
+ mode="nosubcommand"
+ break
+ fi
+ done
+
+
+ if [[ ${cur} == -* ]]; then
+ case $mode in
+ "notebook" | "qtconsole" | "console" | "nbconvert")
+ _jupyter $mode
+ opts=$"${opts} ${baseopts}"
+ ;;
+ "kernelspec")
+ if [[ $COMP_CWORD -ge 3 ]]; then
+ # 'history trim' and 'history clear' covered by next line
+ _jupyter $mode\ "${COMP_WORDS[2]}"
+ else
+ _jupyter $mode
+
+ fi
+ opts=$"${opts}"
+ ;;
+ *)
+ opts=$baseopts
+ esac
+ # don't drop the trailing space
+ local IFS=$'\t\n'
+ COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+ return 0
+ elif [[ $mode == "kernelspec" ]]; then
+ if [[ $COMP_CWORD -ge 3 ]]; then
+ # drop into flags
+ opts="--"
+ else
+ opts="list install "
+ fi
+ local IFS=$'\t\n'
+ COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+ else
+ if [ "$COMP_CWORD" == 1 ]; then
+ local IFS=$'\t\n'
+ local sub=$(echo $subcommands | sed -e "s/ / \t/g")
+ COMPREPLY=( $(compgen -W "${sub}" -- ${cur}) )
+ else
+ COMPREPLY=( $(compgen -f -- ${cur}) )
+ fi
+ fi
+
+}
+complete -o default -o nospace -F _jupyter jupyter
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.1.0/jupyter_core/application.py
new/jupyter_core-4.3.0/jupyter_core/application.py
--- old/jupyter_core-4.1.0/jupyter_core/application.py 2016-01-21
13:40:14.000000000 +0100
+++ new/jupyter_core-4.3.0/jupyter_core/application.py 2017-02-13
10:51:58.000000000 +0100
@@ -262,7 +262,7 @@
@classmethod
def launch_instance(cls, argv=None, **kwargs):
- """Launch an instance of a Jupyer Application"""
+ """Launch an instance of a Jupyter Application"""
try:
return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
except NoStart:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.1.0/jupyter_core/command.py
new/jupyter_core-4.3.0/jupyter_core/command.py
--- old/jupyter_core-4.1.0/jupyter_core/command.py 2016-02-23
16:16:17.000000000 +0100
+++ new/jupyter_core-4.3.0/jupyter_core/command.py 2017-02-07
10:55:35.000000000 +0100
@@ -93,7 +93,16 @@
Python provides execvp on Windows, but its behavior is problematic (Python
bug#9148).
"""
if sys.platform.startswith('win'):
- p = Popen([cmd] + argv[1:], shell=True)
+ # PATH is ignored when shell=False,
+ # so rely on shutil.which
+ try:
+ from shutil import which
+ except ImportError:
+ from .utils.shutil_which import which
+ cmd_path = which(cmd)
+ if cmd_path is None:
+ raise OSError('%r not found' % cmd, errno.ENOENT)
+ p = Popen([cmd_path] + argv[1:])
# Don't raise KeyboardInterrupt in the parent process.
# Set this after spawning, to avoid subprocess inheriting handler.
import signal
@@ -105,18 +114,27 @@
def _path_with_self():
- """Ensure `jupyter`'s dir is on PATH"""
- script = sys.argv[0]
- bindir = os.path.dirname(script)
+ """Put `jupyter`'s dir at the front of PATH
+
+ Ensures that /path/to/jupyter subcommand
+ will do /path/to/jupyter-subcommand
+ even if /other/jupyter-subcommand is ahead of it on PATH
+ """
+ scripts = [sys.argv[0]]
+ if os.path.islink(scripts[0]):
+ # include realpath, if `jupyter` is a symlink
+ scripts.append(os.path.realpath(scripts[0]))
+
path_list = (os.environ.get('PATH') or os.defpath).split(os.pathsep)
- if (os.path.isdir(bindir)
- and bindir not in path_list
- and os.access(script, os.X_OK) # only if it's a script
- ):
- # ensure executable's dir is on PATH
- # avoids missing subcommands when jupyter is run via absolute path
- path_list.append(bindir)
- os.environ['PATH'] = os.pathsep.join(path_list)
+ for script in scripts:
+ bindir = os.path.dirname(script)
+ if (os.path.isdir(bindir)
+ and os.access(script, os.X_OK) # only if it's a script
+ ):
+ # ensure executable's dir is on PATH
+ # avoids missing subcommands when jupyter is run via absolute path
+ path_list.insert(0, bindir)
+ os.environ['PATH'] = os.pathsep.join(path_list)
return path_list
@@ -167,9 +185,7 @@
try:
_execvp(command, sys.argv[1:])
except OSError as e:
- if e.errno == errno.ENOENT:
- sys.exit("jupyter: %r is not a Jupyter command" % subcommand)
- raise
+ sys.exit("Error executing Jupyter command %r: %s" % (subcommand, e))
if __name__ == '__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.1.0/jupyter_core/paths.py
new/jupyter_core-4.3.0/jupyter_core/paths.py
--- old/jupyter_core-4.1.0/jupyter_core/paths.py 2016-01-29
08:21:30.000000000 +0100
+++ new/jupyter_core-4.3.0/jupyter_core/paths.py 2017-02-07
10:46:49.000000000 +0100
@@ -11,6 +11,7 @@
import os
import sys
+import tempfile
pjoin = os.path.join
@@ -23,6 +24,18 @@
homedir = os.path.realpath(homedir)
return homedir
+_dtemps = {}
+def _mkdtemp_once(name):
+ """Make or reuse a temporary directory.
+
+ If this is called with the same name in the same process, it will return
+ the same directory.
+ """
+ try:
+ return _dtemps[name]
+ except KeyError:
+ d = _dtemps[name] = tempfile.mkdtemp(prefix=name + '-')
+ return d
def jupyter_config_dir():
"""Get the Jupyter config directory for this platform and user.
@@ -33,6 +46,9 @@
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']
@@ -164,6 +180,9 @@
def jupyter_config_path():
"""Return the search path for Jupyter config files as a list."""
paths = [jupyter_config_dir()]
+ if os.environ.get('JUPYTER_NO_CONFIG'):
+ return paths
+
for p in ENV_CONFIG_PATH:
if p not in SYSTEM_CONFIG_PATH:
paths.append(p)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_core-4.1.0/jupyter_core/tests/test_command.py
new/jupyter_core-4.3.0/jupyter_core/tests/test_command.py
--- old/jupyter_core-4.1.0/jupyter_core/tests/test_command.py 2016-01-29
08:21:30.000000000 +0100
+++ new/jupyter_core-4.3.0/jupyter_core/tests/test_command.py 2016-09-13
15:22:49.000000000 +0200
@@ -115,3 +115,26 @@
witness.chmod(0o700)
out = check_output([sys.executable, str(jupyter), 'witness'], env={'PATH':
''})
assert b'WITNESS' in out
+
+
+def test_path_priority(tmpdir):
+ a = tmpdir.mkdir("a")
+ jupyter = a.join('jupyter')
+ jupyter.write(
+ 'from jupyter_core import command; command.main()'
+ )
+ jupyter.chmod(0o700)
+ witness_cmd = 'jupyter-witness'
+ if sys.platform == 'win32':
+ witness_cmd += '.py'
+ witness_a = a.join(witness_cmd)
+ witness_a.write('#!%s\n%s\n' % (sys.executable, 'print("WITNESS A")'))
+ witness_a.chmod(0o700)
+
+ b = tmpdir.mkdir("b")
+ witness_b = b.join(witness_cmd)
+ witness_b.write('#!%s\n%s\n' % (sys.executable, 'print("WITNESS B")'))
+ witness_b.chmod(0o700)
+
+ out = check_output([sys.executable, str(jupyter), 'witness'], env={'PATH':
str(b)})
+ assert b'WITNESS A' in out
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/jupyter_core-4.1.0/jupyter_core/tests/test_migrate.py
new/jupyter_core-4.3.0/jupyter_core/tests/test_migrate.py
--- old/jupyter_core-4.1.0/jupyter_core/tests/test_migrate.py 2016-01-29
08:21:30.000000000 +0100
+++ new/jupyter_core-4.3.0/jupyter_core/tests/test_migrate.py 2016-06-24
23:29:51.000000000 +0200
@@ -1,7 +1,7 @@
-"""Test config file migration"""
# coding: utf-8
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
+"""Test config file migration"""
import os
import re
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.1.0/jupyter_core/troubleshoot.py
new/jupyter_core-4.3.0/jupyter_core/troubleshoot.py
--- old/jupyter_core-4.1.0/jupyter_core/troubleshoot.py 2016-03-08
14:06:27.000000000 +0100
+++ new/jupyter_core-4.3.0/jupyter_core/troubleshoot.py 2016-10-11
14:52:31.000000000 +0200
@@ -59,7 +59,7 @@
environment_data = get_data()
print('$PATH:')
- for directory in environment_data['path'].split(':'):
+ for directory in environment_data['path'].split(os.pathsep):
print('\t' + directory)
print('\n' + 'sys.path:')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/jupyter_core-4.1.0/jupyter_core/version.py
new/jupyter_core-4.3.0/jupyter_core/version.py
--- old/jupyter_core-4.1.0/jupyter_core/version.py 2016-03-08
14:07:01.000000000 +0100
+++ new/jupyter_core-4.3.0/jupyter_core/version.py 2017-02-13
10:51:58.000000000 +0100
@@ -1,6 +1,6 @@
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
-version_info = (4, 1, 0)
+version_info = (4, 3, 0)
__version__ = '.'.join(map(str, version_info))