Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-traitlets for
openSUSE:Factory checked in at 2022-09-15 22:57:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-traitlets (Old)
and /work/SRC/openSUSE:Factory/.python-traitlets.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-traitlets"
Thu Sep 15 22:57:35 2022 rev:12 rq:1003061 version:5.4.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-traitlets/python-traitlets.changes
2022-06-24 08:45:33.459155785 +0200
+++
/work/SRC/openSUSE:Factory/.python-traitlets.new.2083/python-traitlets.changes
2022-09-15 22:57:37.848951198 +0200
@@ -1,0 +2,9 @@
+Mon Sep 12 14:34:49 UTC 2022 - Arun Persaud <[email protected]>
+
+- update to version 5.4.0:
+ * Fix version_info
+ * Make generated config files more lintable
+ * Fix union trait from string
+ * Add security.md, and tidelift bage
+
+-------------------------------------------------------------------
Old:
----
traitlets-5.3.0.tar.gz
New:
----
traitlets-5.4.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-traitlets.spec ++++++
--- /var/tmp/diff_new_pack.9D0h4w/_old 2022-09-15 22:57:38.324952541 +0200
+++ /var/tmp/diff_new_pack.9D0h4w/_new 2022-09-15 22:57:38.328952553 +0200
@@ -17,7 +17,7 @@
Name: python-traitlets
-Version: 5.3.0
+Version: 5.4.0
Release: 0
Summary: Traitlets Python configuration system
License: BSD-3-Clause
++++++ traitlets-5.3.0.tar.gz -> traitlets-5.4.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/traitlets-5.3.0/.github/workflows/downstream.yml
new/traitlets-5.4.0/.github/workflows/downstream.yml
--- old/traitlets-5.3.0/.github/workflows/downstream.yml 2020-02-02
01:00:00.000000000 +0100
+++ new/traitlets-5.4.0/.github/workflows/downstream.yml 2020-02-02
01:00:00.000000000 +0100
@@ -2,54 +2,63 @@
on:
push:
+ branches: ["main"]
pull_request:
+concurrency:
+ group: downstream-${{ github.ref }}
+ cancel-in-progress: true
+
jobs:
- tests:
+ ipython:
runs-on: ubuntu-latest
+ timeout-minutes: 10
+ steps:
+ - uses: actions/checkout@v2
+ - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
+ - uses: jupyterlab/maintainer-tools/.github/actions/downstream-test@v1
+ with:
+ package_name: ipython
+ package_spec: pip install -e ".[test]"
+ nbconvert:
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
steps:
- - name: Checkout
- uses: actions/checkout@v2
+ - uses: actions/checkout@v2
+ - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
+ - uses: jupyterlab/maintainer-tools/.github/actions/downstream-test@v1
+ with:
+ package_name: nbconvert
+ package_spec: pip install -e ".[test]"
- - name: Set up Python 3.8
- uses: actions/setup-python@v2
+ jupyter_server:
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ steps:
+ - uses: actions/checkout@v2
+ - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
+ - uses: jupyterlab/maintainer-tools/.github/actions/downstream-test@v1
with:
- python-version: 3.8
+ package_name: jupyter_server
- - name: Install dependencies
- run: |
- pip install --upgrade pip
- pip install build
- python -m build .
- pip install dist/traitlets*.whl
- pip install --pre --upgrade traitlets[test] pytest pytest-cov
- pip install ipython[test] nbconvert[test] \
- notebook[test] ipywidgets[test]
- pip freeze
-
- - name: Run tests IPython
- run: |
- cd $HOME
- pytest -ra --cov traitlets
--cov-report=xml:coverage-from-ipython.xml --pyargs IPython
-
- - name: Run tests nbconvert
- run: |
- cd $HOME
- pytest -ra --cov traitlets
--cov-report=xml:coverage-from-nbconvert.xml \
- --pyargs nbconvert -p no:unraisableexception -k 'not network'
-
- - name: Run tests notebook
- run: |
- cd $HOME
- pytest -ra --cov traitlets
--cov-report=xml:coverage-from-notebook.xml \
- --pyargs notebook -k 'not selenium and not integration_tests'
-
- - name: Run tests ipywidgets
- run: |
- cd $HOME
- pytest -ra --cov traitlets
--cov-report=xml:coverage-from-ipywidgets.xml \
- --pyargs ipywidgets
+ ipywidgets:
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ steps:
+ - uses: actions/checkout@v2
+ - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
+ - uses: jupyterlab/maintainer-tools/.github/actions/downstream-test@v1
+ with:
+ package_name: ipywidgets
- - name: Upload coverage to Codecov
- uses: codecov/codecov-action@v2
+ notebook:
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ steps:
+ - uses: actions/checkout@v2
+ - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
+ - uses: jupyterlab/maintainer-tools/.github/actions/downstream-test@v1
+ with:
+ package_name: notebook
+ test_command: pytest -vv --ignore-glob=notebook/tests/selenium/*
--ignore-glob=notebook/nbconvert/tests/*
--ignore-glob=notebook/services/nbconvert/tests/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/traitlets-5.3.0/.github/workflows/tests.yml
new/traitlets-5.4.0/.github/workflows/tests.yml
--- old/traitlets-5.3.0/.github/workflows/tests.yml 2020-02-02
01:00:00.000000000 +0100
+++ new/traitlets-5.4.0/.github/workflows/tests.yml 2020-02-02
01:00:00.000000000 +0100
@@ -31,7 +31,7 @@
steps:
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
@@ -45,19 +45,19 @@
python -m pytest --cov traitlets --cov-report=xml -v traitlets
- name: Upload coverage to Codecov
- uses: codecov/codecov-action@v2
+ uses: codecov/codecov-action@v3
test_miniumum_verisons:
name: Test Minimum Versions
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Base Setup
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
with:
python_version: "3.7"
- - name: Install miniumum versions
+ - name: Install minimum versions
uses: jupyterlab/maintainer-tools/.github/actions/install-minimums@v1
- name: Run the unit tests
run: pytest -vv -W default traitlets || pytest -vv -W default
traitlets --lf
@@ -68,7 +68,7 @@
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: Base Setup
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
- name: Install the Python dependencies
@@ -87,7 +87,7 @@
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
- uses: jupyterlab/maintainer-tools/.github/actions/make-sdist@v1
@@ -104,8 +104,10 @@
name: pre-commit
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-python@v2
+ - uses: actions/checkout@v3
+ - uses: actions/setup-python@v4
+ with:
+ python-version: 3.x
- uses: pre-commit/[email protected]
with:
extra_args: --all-files --hook-stage=manual
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/traitlets-5.3.0/.pre-commit-config.yaml
new/traitlets-5.4.0/.pre-commit-config.yaml
--- old/traitlets-5.3.0/.pre-commit-config.yaml 2020-02-02 01:00:00.000000000
+0100
+++ new/traitlets-5.4.0/.pre-commit-config.yaml 2020-02-02 01:00:00.000000000
+0100
@@ -25,7 +25,7 @@
- id: trailing-whitespace
- repo: https://github.com/psf/black
- rev: 22.3.0
+ rev: 22.8.0
hooks:
- id: black
args: ["--line-length", "100"]
@@ -38,7 +38,7 @@
args: [--profile=black]
- repo: https://github.com/pre-commit/mirrors-mypy
- rev: v0.961
+ rev: v0.971
hooks:
- id: mypy
args: ["--config-file", "pyproject.toml"]
@@ -47,43 +47,39 @@
stages: [manual]
- repo: https://github.com/pre-commit/mirrors-prettier
- rev: v2.6.2
+ rev: v3.0.0-alpha.0
hooks:
- id: prettier
- repo: https://github.com/asottile/pyupgrade
- rev: v2.34.0
+ rev: v2.37.3
hooks:
- id: pyupgrade
args: [--py37-plus]
- repo: https://github.com/PyCQA/doc8
- rev: 0.11.2
+ rev: v1.0.0
hooks:
- id: doc8
args: [--max-line-length=200]
stages: [manual]
- repo: https://github.com/pycqa/flake8
- rev: 4.0.1
+ rev: 5.0.4
hooks:
- id: flake8
additional_dependencies:
- [
- "flake8-bugbear==20.1.4",
- "flake8-logging-format==0.6.0",
- "flake8-implicit-str-concat==0.2.0",
- ]
+ ["flake8-bugbear==22.6.22", "flake8-implicit-str-concat==0.2.0"]
stages: [manual]
- repo: https://github.com/pre-commit/mirrors-eslint
- rev: v8.17.0
+ rev: v8.23.0
hooks:
- id: eslint
stages: [manual]
- repo: https://github.com/sirosen/check-jsonschema
- rev: 0.16.0
+ rev: 0.18.2
hooks:
- id: check-jsonschema
name: "Check GitHub Workflows"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/traitlets-5.3.0/PKG-INFO new/traitlets-5.4.0/PKG-INFO
--- old/traitlets-5.3.0/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
+++ new/traitlets-5.4.0/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: traitlets
-Version: 5.3.0
+Version: 5.4.0
Project-URL: Homepage, https://github.com/ipython/traitlets
Author-email: IPython Development Team <[email protected]>
License: # Licensing terms
@@ -65,6 +65,7 @@
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
+License-File: COPYING.md
Keywords: Interactive,Interpreter,Shell,Web
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
@@ -83,6 +84,7 @@
[](https://github.com/ipython/traitlets/actions/workflows/tests.yml)
[](https://github.com/ipython/traitlets/actions/workflows/downstream.yml)
[](https://traitlets.readthedocs.io/en/latest/?badge=latest)
+[](https://tidelift.com/badges/package/pypi/traitlets?style=flat)
| | |
| ------------- | ------------------------------------ |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/traitlets-5.3.0/README.md
new/traitlets-5.4.0/README.md
--- old/traitlets-5.3.0/README.md 2020-02-02 01:00:00.000000000 +0100
+++ new/traitlets-5.4.0/README.md 2020-02-02 01:00:00.000000000 +0100
@@ -3,6 +3,7 @@
[](https://github.com/ipython/traitlets/actions/workflows/tests.yml)
[](https://github.com/ipython/traitlets/actions/workflows/downstream.yml)
[](https://traitlets.readthedocs.io/en/latest/?badge=latest)
+[](https://tidelift.com/badges/package/pypi/traitlets?style=flat)
| | |
| ------------- | ------------------------------------ |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/traitlets-5.3.0/SECURITY.md
new/traitlets-5.4.0/SECURITY.md
--- old/traitlets-5.3.0/SECURITY.md 1970-01-01 01:00:00.000000000 +0100
+++ new/traitlets-5.4.0/SECURITY.md 2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1,10 @@
+# Security Policy
+
+## Reporting a Vulnerability
+
+All IPython and Jupyter security are handled via [email protected].
+You can find more information on the Jupyter website.
https://jupyter.org/security
+
+## Tidelift
+
+We are also lifting IPython via Tidelift, you can also report security concern
via the [tidelift platform](https://tidelift.com/security).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/traitlets-5.3.0/docs/source/changelog.rst
new/traitlets-5.4.0/docs/source/changelog.rst
--- old/traitlets-5.3.0/docs/source/changelog.rst 2020-02-02
01:00:00.000000000 +0100
+++ new/traitlets-5.4.0/docs/source/changelog.rst 2020-02-02
01:00:00.000000000 +0100
@@ -1,6 +1,16 @@
Changes in Traitlets
====================
+Traitlets 5.4
+-------------
+
+5.4.0
+*****
+
+ - Fix version_info
+ - Make generated config files more lintable
+ - Fix union trait from string
+ - Add security.md, and tidelift bage
Traitlets 5.3
-------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/traitlets-5.3.0/pyrightconfig.json
new/traitlets-5.4.0/pyrightconfig.json
--- old/traitlets-5.3.0/pyrightconfig.json 1970-01-01 01:00:00.000000000
+0100
+++ new/traitlets-5.4.0/pyrightconfig.json 2020-02-02 01:00:00.000000000
+0100
@@ -0,0 +1 @@
+{"venvPath":"/Users/steve.silvester/miniconda/envs","venv":
"rtraitlets-dc8751d170388729c0a1a5ab_env"}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/traitlets-5.3.0/traitlets/_version.py
new/traitlets-5.4.0/traitlets/_version.py
--- old/traitlets-5.3.0/traitlets/_version.py 2020-02-02 01:00:00.000000000
+0100
+++ new/traitlets-5.4.0/traitlets/_version.py 2020-02-02 01:00:00.000000000
+0100
@@ -1,5 +1,5 @@
-version_info = (5, 3, 0)
-__version__ = "5.3.0"
+version_info = (5, 4, 0)
+__version__ = "5.4.0"
# unlike `.dev`, alpha, beta and rc _must not_ have dots,
# or the wheel and tgz won't look to pip like the same version.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/traitlets-5.3.0/traitlets/config/application.py
new/traitlets-5.4.0/traitlets/config/application.py
--- old/traitlets-5.3.0/traitlets/config/application.py 2020-02-02
01:00:00.000000000 +0100
+++ new/traitlets-5.4.0/traitlets/config/application.py 2020-02-02
01:00:00.000000000 +0100
@@ -830,12 +830,12 @@
if not isinstance(path, list):
path = [path]
- for path in path[::-1]:
+ for current in reversed(path):
# path list is in descending priority order, so load files
backwards:
- pyloader = cls.python_config_loader_class(basefilename + ".py",
path=path, log=log)
+ pyloader = cls.python_config_loader_class(basefilename + ".py",
path=current, log=log)
if log:
- log.debug("Looking for %s in %s", basefilename, path or
os.getcwd())
- jsonloader = cls.json_config_loader_class(basefilename + ".json",
path=path, log=log)
+ log.debug("Looking for %s in %s", basefilename, current or
os.getcwd())
+ jsonloader = cls.json_config_loader_class(basefilename + ".json",
path=current, log=log)
loaded: t.List[t.Any] = []
filenames: t.List[str] = []
for loader in [pyloader, jsonloader]:
@@ -882,7 +882,7 @@
"""Load config files by filename and path."""
filename, ext = os.path.splitext(filename)
new_config = Config()
- for (config, filename) in self._load_config_files(
+ for (config, fname) in self._load_config_files(
filename,
path=path,
log=self.log,
@@ -890,9 +890,9 @@
):
new_config.merge(config)
if (
- filename not in self._loaded_config_files
+ fname not in self._loaded_config_files
): # only add to list of loaded files if not previously loaded
- self._loaded_config_files.append(filename)
+ self._loaded_config_files.append(fname)
# add self.cli_config to preserve CLI config priority
new_config.merge(self.cli_config)
self.update_config(new_config)
@@ -941,6 +941,8 @@
"""generate default config file from Configurables"""
lines = ["# Configuration file for %s." % self.name]
lines.append("")
+ lines.append("c = get_config() # noqa")
+ lines.append("")
classes = self.classes if classes is None else classes
config_classes = list(self._classes_with_config_traits(classes))
for cls in config_classes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/traitlets-5.3.0/traitlets/tests/test_traitlets.py
new/traitlets-5.4.0/traitlets/tests/test_traitlets.py
--- old/traitlets-5.3.0/traitlets/tests/test_traitlets.py 2020-02-02
01:00:00.000000000 +0100
+++ new/traitlets-5.4.0/traitlets/tests/test_traitlets.py 2020-02-02
01:00:00.000000000 +0100
@@ -82,6 +82,10 @@
self._notify_type = change["type"]
+class CrossValidationStub(HasTraits):
+ _cross_validation_lock = False
+
+
# -----------------------------------------------------------------------------
# Test classes
# -----------------------------------------------------------------------------
@@ -2924,7 +2928,7 @@
if type(expected) is type and issubclass(expected, Exception):
with pytest.raises(expected):
value = cast(s)
- trait.validate(None, value)
+ trait.validate(CrossValidationStub(), value)
else:
value = cast(s)
assert value == expected
@@ -3136,6 +3140,30 @@
_from_string_test(TCPAddress, s, expected)
[email protected](
+ "s, expected",
+ [("[]", []), ("{}", "{}")],
+)
+def test_union_of_list_and_unicode_from_string(s, expected):
+ _from_string_test(Union([List(), Unicode()]), s, expected)
+
+
[email protected](
+ "s, expected",
+ [("1", 1), ("1.5", 1.5)],
+)
+def test_union_of_int_and_float_from_string(s, expected):
+ _from_string_test(Union([Int(), Float()]), s, expected)
+
+
[email protected](
+ "s, expected, allow_none",
+ [("[]", [], False), ("{}", {}, False), ("None", TraitError, False),
("None", None, True)],
+)
+def test_union_of_list_and_dict_from_string(s, expected, allow_none):
+ _from_string_test(Union([List(), Dict()], allow_none=allow_none), s,
expected)
+
+
def test_all_attribute():
"""Verify all trait types are added to `traitlets.__all__`"""
names = dir(traitlets)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/traitlets-5.3.0/traitlets/traitlets.py
new/traitlets-5.4.0/traitlets/traitlets.py
--- old/traitlets-5.3.0/traitlets/traitlets.py 2020-02-02 01:00:00.000000000
+0100
+++ new/traitlets-5.4.0/traitlets/traitlets.py 2020-02-02 01:00:00.000000000
+0100
@@ -2131,11 +2131,22 @@
----------
trait_types : sequence
The list of trait types of length at least 1.
+ **kwargs
+ Extra kwargs passed to `TraitType`
Notes
-----
Union([Float(), Bool(), Int()]) attempts to validate the provided
values
with the validation function of Float, then Bool, and finally Int.
+
+ Parsing from string is ambiguous for container types which accept other
+ collection-like literals (e.g. List accepting both `[]` and `()`
+ precludes Union from ever parsing ``Union([List(), Tuple()])`` as a
tuple;
+ you can modify behaviour of too permissive container traits by
overriding
+ ``_literal_from_string_pairs`` in subclasses.
+ Similarly, parsing unions of numeric types is only unambiguous if
+ types are provided in order of increasing permissiveness, e.g.
+ ``Union([Int(), Float()])`` (since floats accept integer-looking
values).
"""
self.trait_types = list(trait_types)
self.info_text = " or ".join([tt.info() for tt in self.trait_types])
@@ -2179,6 +2190,15 @@
else:
return Union(self.trait_types + [other])
+ def from_string(self, s):
+ for trait_type in self.trait_types:
+ try:
+ v = trait_type.from_string(s)
+ return trait_type.validate(None, v)
+ except (TraitError, ValueError):
+ continue
+ return super().from_string(s)
+
# -----------------------------------------------------------------------------
# Basic TraitTypes implementations/subclasses
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/traitlets-5.3.0/traitlets-dc8751d170388729c0a1a5ab.sublime-project
new/traitlets-5.4.0/traitlets-dc8751d170388729c0a1a5ab.sublime-project
--- old/traitlets-5.3.0/traitlets-dc8751d170388729c0a1a5ab.sublime-project
1970-01-01 01:00:00.000000000 +0100
+++ new/traitlets-5.4.0/traitlets-dc8751d170388729c0a1a5ab.sublime-project
2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1 @@
+{"folders":[{"path": "."}]}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/traitlets-5.3.0/traitlets-dc8751d170388729c0a1a5ab.sublime-workspace
new/traitlets-5.4.0/traitlets-dc8751d170388729c0a1a5ab.sublime-workspace
--- old/traitlets-5.3.0/traitlets-dc8751d170388729c0a1a5ab.sublime-workspace
1970-01-01 01:00:00.000000000 +0100
+++ new/traitlets-5.4.0/traitlets-dc8751d170388729c0a1a5ab.sublime-workspace
2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1 @@
+{}
\ No newline at end of file