openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2021
- 1 participants
- 1538 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-acoular for openSUSE:Factory checked in at 2021-01-31 16:52:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-acoular (Old)
and /work/SRC/openSUSE:Factory/.python-acoular.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-acoular"
Sun Jan 31 16:52:15 2021 rev:4 rq:867994 version:20.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-acoular/python-acoular.changes 2020-11-04 18:31:40.664242761 +0100
+++ /work/SRC/openSUSE:Factory/.python-acoular.new.28504/python-acoular.changes 2021-01-31 16:52:16.804725899 +0100
@@ -1,0 +2,7 @@
+Fri Jan 29 23:22:05 UTC 2021 - Ben Greiner <code(a)bnavigator.de>
+
+- Skip python36 build because Tumbleweed does not have
+ python36-scikit-learn and python36-scipy (NEP 29)
+- rpmlint fixes
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-acoular.spec ++++++
--- /var/tmp/diff_new_pack.EWJKGc/_old 2021-01-31 16:52:17.340726673 +0100
+++ /var/tmp/diff_new_pack.EWJKGc/_new 2021-01-31 16:52:17.340726673 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-acoular
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,6 +18,8 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
+# python36-scikit-learn and python36-scipy are not in Tumbleweed due to NEP 29
+%define skip_python36 1
%define github_version 20.10
Name: python-acoular
Version: 20.10
@@ -35,6 +37,7 @@
Requires: python-scipy >= 0.1.0
Requires: python-tables >= 3.4.4
Requires: python-traits >= 4.6.0
+Recommends: python-traisui
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module numba >= 0.40.0}
@@ -57,8 +60,10 @@
%prep
%setup -q -n acoular-%{github_version}
-sed -i -e '/^#!\//, 1d' acoular/fastFuncs.py
-# UNIX-incompatible test
+sed -i -e '1{/^#!/ d}' acoular/fastFuncs.py acoular/demo/acoular_demo.py acoular/tests/*.py
+# remove test scripts not applicable here
+rm acoular/tests/run_tests*.sh
+# Windows only load of the NIDAQmx dll
rm acoular/nidaqimport.py
%build
@@ -69,13 +74,13 @@
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
-%python_expand $python -c 'import acoular';
cd acoular/tests
-%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} $python -m unittest discover -v -p "test_*.py"
+%pyunittest discover -v -p "test_*.py"
%files %{python_files}
%doc README.rst
%license LICENSE
-%{python_sitelib}/*
+%{python_sitelib}/acoular
+%{python_sitelib}/acoular-%{version}*-info
%changelog
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-tabpy for openSUSE:Factory checked in at 2021-01-31 16:52:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-tabpy (Old)
and /work/SRC/openSUSE:Factory/.python-tabpy.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-tabpy"
Sun Jan 31 16:52:13 2021 rev:2 rq:867996 version:2.3.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-tabpy/python-tabpy.changes 2021-01-27 18:57:34.576372247 +0100
+++ /work/SRC/openSUSE:Factory/.python-tabpy.new.28504/python-tabpy.changes 2021-01-31 16:52:14.516722593 +0100
@@ -1,0 +2,6 @@
+Fri Jan 29 16:52:49 UTC 2021 - John Vandenberg <jayvdb(a)gmail.com>
+
+- Remove unnecessary build dependency on scikit-learn,
+ which is not available for Tumbleweed Python 3.6
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-tabpy.spec ++++++
--- /var/tmp/diff_new_pack.0XXyFW/_old 2021-01-31 16:52:15.096723431 +0100
+++ /var/tmp/diff_new_pack.0XXyFW/_new 2021-01-31 16:52:15.100723436 +0100
@@ -41,7 +41,7 @@
Recommends: python-numpy
Recommends: python-pandas
Recommends: python-scipy
-Recommends: python-sklearn
+Recommends: python-scikit-learn
Suggests: python-textblob
BuildArch: noarch
# SECTION test requirements
@@ -60,8 +60,8 @@
BuildRequires: %{python_module requests}
BuildRequires: %{python_module scipy}
BuildRequires: %{python_module simplejson}
-BuildRequires: %{python_module sklearn}
BuildRequires: %{python_module tornado}
+# scikit-learn dropped support for Python 3.6
# /SECTION
%python_subpackages
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-ncclient for openSUSE:Factory checked in at 2021-01-31 16:52:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ncclient (Old)
and /work/SRC/openSUSE:Factory/.python-ncclient.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ncclient"
Sun Jan 31 16:52:11 2021 rev:13 rq:867995 version:0.6.9
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ncclient/python-ncclient.changes 2020-08-10 15:06:00.600254285 +0200
+++ /work/SRC/openSUSE:Factory/.python-ncclient.new.28504/python-ncclient.changes 2021-01-31 16:52:12.500719680 +0100
@@ -1,0 +2,6 @@
+Thu Jan 28 21:19:07 UTC 2021 - Matej Cepl <mcepl(a)suse.com>
+
+- Add allow_old_sphinx.patch allowing building of documentation
+ on Leap 15 (bsc#1181270).
+
+-------------------------------------------------------------------
New:
----
allow_old_sphinx.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ncclient.spec ++++++
--- /var/tmp/diff_new_pack.YBJ2to/_old 2021-01-31 16:52:13.084720523 +0100
+++ /var/tmp/diff_new_pack.YBJ2to/_new 2021-01-31 16:52:13.088720529 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-ncclient
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -25,6 +25,9 @@
Group: Development/Languages/Python
URL: http://ncclient.org
Source: https://github.com/ncclient/ncclient/archive/v%{version}.tar.gz#/ncclient-%…
+# PATCH-FIX-OPENSUSE allow_old_sphinx.patch mcepl(a)suse.com
+# Allow build with old Sphinx (< 2.0) on Leap
+Patch0: allow_old_sphinx.patch
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
@@ -62,6 +65,10 @@
%prep
%setup -q -n ncclient-%{version}
+%if 0%{?suse_version} < 1550
+%patch0 -p1
+%endif
+
find examples/ -name "*.py" -exec sed -i 's|#!/usr/bin/env python$|#!/usr/bin/python|g' {} \;
# drop shebang
find ncclient/operations/third_party/ -name "*.py" -exec sed -i '/^#!\//, 1d' {} \;
++++++ allow_old_sphinx.patch ++++++
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -19,7 +19,7 @@ import sys, os
sys.path.insert(0, os.path.abspath("../.."))
# -- General configuration -----------------------------------------------------
-needs_sphinx = '2.0'
+# needs_sphinx = '2.0'
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-nilearn for openSUSE:Factory checked in at 2021-01-31 16:52:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-nilearn (Old)
and /work/SRC/openSUSE:Factory/.python-nilearn.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-nilearn"
Sun Jan 31 16:52:09 2021 rev:8 rq:867993 version:0.7.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-nilearn/python-nilearn.changes 2020-11-23 10:44:55.674268969 +0100
+++ /work/SRC/openSUSE:Factory/.python-nilearn.new.28504/python-nilearn.changes 2021-01-31 16:52:10.428716686 +0100
@@ -1,0 +2,6 @@
+Fri Jan 29 18:40:13 UTC 2021 - Ben Greiner <code(a)bnavigator.de>
+
+- Skip python36 build because Tumbleweed updates to SciPy 1.6.0
+ which dropped support for Python 3.6 (NEP 29)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-nilearn.spec ++++++
--- /var/tmp/diff_new_pack.g7pw9P/_old 2021-01-31 16:52:10.948717437 +0100
+++ /var/tmp/diff_new_pack.g7pw9P/_new 2021-01-31 16:52:10.952717443 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-nilearn
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,6 +18,8 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
+# SciPy 1.6.0 dropped support for Python 3.6
+%define skip_python36 1
Name: python-nilearn
Version: 0.7.0
Release: 0
@@ -31,19 +33,19 @@
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-joblib >= 0.11
+Requires: python-joblib >= 0.12
Requires: python-matplotlib >= 2.0
Requires: python-nibabel >= 2.0.2
-Requires: python-numpy >= 0.11
+Requires: python-numpy >= 1.11
Requires: python-requests
Requires: python-scikit-learn >= 0.19
Requires: python-scipy >= 0.19
BuildArch: noarch
# SECTION test requirements
-BuildRequires: %{python_module joblib >= 0.11}
+BuildRequires: %{python_module joblib >= 0.12}
BuildRequires: %{python_module matplotlib >= 2.0}
BuildRequires: %{python_module nibabel >= 2.0.2}
-BuildRequires: %{python_module numpy >= 0.11}
+BuildRequires: %{python_module numpy >= 1.11}
BuildRequires: %{python_module pandas}
BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module pytest}
@@ -81,6 +83,7 @@
%files %{python_files}
%doc AUTHORS.rst README.rst
%license LICENSE
-%{python_sitelib}/*
+%{python_sitelib}/nilearn
+%{python_sitelib}/nilearn-%{version}*-info
%changelog
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-colorcet for openSUSE:Factory checked in at 2021-01-31 16:52:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-colorcet (Old)
and /work/SRC/openSUSE:Factory/.python-colorcet.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-colorcet"
Sun Jan 31 16:52:07 2021 rev:5 rq:867991 version:2.0.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-colorcet/python-colorcet.changes 2020-05-28 09:20:10.837303472 +0200
+++ /work/SRC/openSUSE:Factory/.python-colorcet.new.28504/python-colorcet.changes 2021-01-31 16:52:09.384715177 +0100
@@ -1,0 +2,13 @@
+Sat Jan 30 06:01:29 UTC 2021 - Arun Persaud <arun(a)gmx.de>
+
+- specfile:
+ * update copyright year
+ * be more explicit in %files section
+
+- update to version 2.0.6, 2.0.5, 2.0.4, 2.0.3:
+ * Minor release primarily to update PyPI classifier to show that the
+ license is not proprietary. Also added some docstrings and usage
+ examples, and updated the swatch function to work with both list
+ and tuple colormaps.
+
+-------------------------------------------------------------------
Old:
----
colorcet-2.0.2.tar.gz
New:
----
colorcet-2.0.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-colorcet.spec ++++++
--- /var/tmp/diff_new_pack.AbjnZ9/_old 2021-01-31 16:52:09.952715997 +0100
+++ /var/tmp/diff_new_pack.AbjnZ9/_new 2021-01-31 16:52:09.956716004 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-colorcet
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-colorcet
-Version: 2.0.2
+Version: 2.0.6
Release: 0
Summary: Collection of perceptually uniform colormaps
License: CC-BY-4.0
@@ -69,6 +69,7 @@
%doc README.md
%license LICENSE.txt
%python_alternative %{_bindir}/colorcet
-%{python_sitelib}/*
+%{python_sitelib}/colorcet
+%{python_sitelib}/colorcet-%{version}-py*egg-info
%changelog
++++++ colorcet-2.0.2.tar.gz -> colorcet-2.0.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colorcet-2.0.2/PKG-INFO new/colorcet-2.0.6/PKG-INFO
--- old/colorcet-2.0.2/PKG-INFO 2019-08-28 18:06:52.000000000 +0200
+++ new/colorcet-2.0.6/PKG-INFO 2021-01-20 00:00:28.000000000 +0100
@@ -1,29 +1,30 @@
Metadata-Version: 2.1
Name: colorcet
-Version: 2.0.2
+Version: 2.0.6
Summary: Collection of perceptually uniform colormaps
-Home-page: https://colorcet.pyviz.org
+Home-page: https://colorcet.holoviz.org
Author: James A. Bednar
Author-email: jbednar(a)anaconda.com
Maintainer: James A. Bednar
Maintainer-email: jbednar(a)anaconda.com
License: CC-BY License
-Project-URL: Bug Tracker, http://github.com/pyviz/colorcet/issues
-Project-URL: Documentation, https://colorcet.pyviz.org
-Project-URL: Source Code, http://github.com/pyviz/colorcet
+Project-URL: Bug Tracker, http://github.com/holoviz/colorcet/issues
+Project-URL: Documentation, https://colorcet.holoviz.org
+Project-URL: Source Code, http://github.com/holoviz/colorcet
Description: README.md
Platform: UNKNOWN
-Classifier: License :: Other/Proprietary License
+Classifier: License :: OSI Approved
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
Classifier: Development Status :: 5 - Production/Stable
Requires-Python: >=2.7
-Provides-Extra: all
+Provides-Extra: tests
+Provides-Extra: examples
Provides-Extra: doc
-Provides-Extra: build
Provides-Extra: tests_extra
-Provides-Extra: examples
-Provides-Extra: tests
+Provides-Extra: build
+Provides-Extra: all
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colorcet-2.0.2/README.md new/colorcet-2.0.6/README.md
--- old/colorcet-2.0.2/README.md 2019-08-28 18:06:12.000000000 +0200
+++ new/colorcet-2.0.6/README.md 2021-01-19 23:59:46.000000000 +0100
@@ -1,4 +1,4 @@
-<img src="https://github.com/pyviz/colorcet/blob/master/doc/_static/logo.png" width=200><br>
+<img src="https://github.com/holoviz/colorcet/blob/master/doc/_static/logo.png" width=200><br>
-----------------
@@ -6,10 +6,10 @@
| | |
| --- | --- |
-| Build Status | [![Linux/MacOS Build Status](https://travis-ci.org/pyviz/colorcet.svg?branch=master)](https://tr… [![Windows Build status](https://img.shields.io/appveyor/ci/pyviz/colorcet/master.svg?logo=a… |
-| Latest dev release | [![Github tag](https://img.shields.io/github/tag/pyviz/colorcet.svg?label=tag&colorB=… |
-| Latest release | [![Github release](https://img.shields.io/github/release/pyviz/colorcet.svg?label=tag… [![PyPI version](https://img.shields.io/pypi/v/colorcet.svg?colorB=cc77dd)](https:/… [![colorcet version](https://img.shields.io/conda/v/pyviz/colorcet.svg?colorB=4488ff&st… [![conda-forge version](https://img.shields.io/conda/v/conda-forge/colorcet.svg?label=cond… [![defaults version](https://img.shields.io/conda/v/anaconda/colorcet.svg?label=conda%7… |
-| Docs | [![gh-pages](https://img.shields.io/github/last-commit/pyviz/colorcet/gh-pages.svg)](https://github.com/pyviz/colorcet/tree/gh-pages) [![site](https://img.shields.io/website-up-down-green-red/http/colorcet.pyviz.org.svg)](http://colorcet.pyviz.org) |
+| Build Status | [![Linux/MacOS Build Status](https://travis-ci.org/holoviz/colorcet.svg?branch=master)](https://… [![Windows Build status](https://img.shields.io/appveyor/ci/holoviz/colorcet/master.svg?logo… |
+| Latest dev release | [![Github tag](https://img.shields.io/github/tag/holoviz/colorcet.svg?label=tag&color… [![dev-site](https://img.shields.io/website-up-down-green-red/https/pyviz-dev.github.io/colorcet.svg?label=dev%20website)](https://pyviz-dev.github.io/colorcet/) |
+| Latest release | [![Github release](https://img.shields.io/github/release/holoviz/colorcet.svg?label=t… [![PyPI version](https://img.shields.io/pypi/v/colorcet.svg?colorB=cc77dd)](https:/… [![colorcet version](https://img.shields.io/conda/v/pyviz/colorcet.svg?colorB=4488ff&st… [![conda-forge version](https://img.shields.io/conda/v/conda-forge/colorcet.svg?label=cond… [![defaults version](https://img.shields.io/conda/v/anaconda/colorcet.svg?label=conda%7… |
+| Docs | [![gh-pages](https://img.shields.io/github/last-commit/holoviz/colorcet/gh-pages.svg)](https://github.com/holoviz/colorcet/tree/gh-pages) [![site](https://img.shields.io/website-up-down-green-red/http/colorcet.holoviz.org.svg)](http://colorcet.holoviz.org) |
## What is it?
@@ -64,7 +64,7 @@
If you want to try out the latest features between releases, you can get the latest dev release by specifying -c pyviz/label/dev in place of -c pyviz.
-For more information take a look at [Getting Started](http://colorcet.pyviz.org/getting_started).
+For more information take a look at [Getting Started](http://colorcet.holoviz.org/getting_started).
## Learning more
@@ -74,7 +74,7 @@
background is available in a [1996 paper from
IBM](http://www.research.ibm.com/people/l/lloydt/color/color.HTM).
-The matplotlib project also has a number of relevant resources,
+The Matplotlib project also has a number of relevant resources,
including an excellent
[2015 SciPy talk](https://www.youtube.com/watch?v=xAoljeRJ3lU), the
[viscm tool for creating maps like the four in mpl](https://github.com/matplotlib/viscm), the
@@ -84,16 +84,9 @@
## Samples
-All the colorcet colormaps that have short, memorable names (which are probably
+All the Colorcet colormaps that have short, memorable names (which are probably
the most useful ones) are visible here:
<img src="./examples/assets/images/named.png" width="800">
-But the complete set of 50+ is shown in the [User Guide](http://colorcet.pyviz.org/user_guide).
-
-
-## About PyViz
-
-Colorcet is part of the PyViz initiative for making Python-based visualization tools work well together.
-See [pyviz.org](http://pyviz.org) for related packages that you can use with Colorcet and
-[status.pyviz.org](http://status.pyviz.org) for the current status of each PyViz project.
+But the complete set of 50+ is shown in the [User Guide](http://colorcet.holoviz.org/user_guide).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colorcet-2.0.2/colorcet/.version new/colorcet-2.0.6/colorcet/.version
--- old/colorcet-2.0.2/colorcet/.version 2019-08-28 18:06:51.000000000 +0200
+++ new/colorcet-2.0.6/colorcet/.version 2021-01-20 00:00:28.000000000 +0100
@@ -1 +1 @@
-{"git_describe": "v2.0.2-0-g77d8d77", "version_string": "2.0.2"}
\ No newline at end of file
+{"git_describe": "v2.0.6-0-g1dad8be", "version_string": "2.0.6"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colorcet-2.0.2/colorcet/examples/index.ipynb new/colorcet-2.0.6/colorcet/examples/index.ipynb
--- old/colorcet-2.0.2/colorcet/examples/index.ipynb 2019-08-28 18:06:12.000000000 +0200
+++ new/colorcet-2.0.6/colorcet/examples/index.ipynb 2021-01-19 23:59:46.000000000 +0100
@@ -18,7 +18,7 @@
"The [categorical](user_guide/Categorical.ipynb) colormaps are perceptually distinct, but not uniform; each color is meant for a separate category and not as a position on a numerical scale. Here, categorical colormaps of arbitrary length are generated to cover a perceptual space with well-separated samples, using the method from \n",
"[Glasbey, van der Heijden, Toh, & Gray (2007)](https://strathprints.strath.ac.uk/30312/1/colorpaper_2006.pdf).\n",
"\n",
- "See [Getting Started](http://colorcet.pyviz.org/getting_started) for installation info, and the [User Guide](./user_guide/index.ipynb) for more info on what colormaps are available and how to use them.\n",
+ "See [Getting Started](http://colorcet.holoviz.org/getting_started) for installation info, and the [User Guide](./user_guide/index.ipynb) for more info on what colormaps are available and how to use them.\n",
"\n",
"\n",
"## Background\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colorcet-2.0.2/colorcet/examples/user_guide/index.ipynb new/colorcet-2.0.6/colorcet/examples/user_guide/index.ipynb
--- old/colorcet-2.0.2/colorcet/examples/user_guide/index.ipynb 2019-08-28 18:06:12.000000000 +0200
+++ new/colorcet-2.0.6/colorcet/examples/user_guide/index.ipynb 2021-01-19 23:59:46.000000000 +0100
@@ -80,6 +80,44 @@
"cell_type": "markdown",
"metadata": {},
"source": [
+ "#### Using `colorcet` via `matplotlib.cm.get_cmap`\n",
+ "\n",
+ "The `colorcet` colormaps are all available through `matplotlip.cm.get_cmap` by prepending `cet_`to the colormap name. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from matplotlib.cm import get_cmap\n",
+ "\n",
+ "get_cmap(\"cet_fire\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### Using `colorcet` to visualize custom colormaps using `swatch`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "color_list = ['#000000', '#380000', '#560000', '#760100', '#980300', '#bb0600', '#df0d00', '#f93500', '#fe6800', '#ff9100', '#ffb402', '#ffd407', '#fff324']\n",
+ "\n",
+ "swatch(name='', cmap=color_list)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
"## Complete list\n",
"\n",
"The `swatches` command accepts the optional key word argument `group` to show just the colormaps that fall under a particular group - try 'glasbey', 'circular', or 'diverging'. When no arguments are provided, `swatches` returns all of the colorcet colormaps."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colorcet-2.0.2/colorcet/plotting.py new/colorcet-2.0.6/colorcet/plotting.py
--- old/colorcet-2.0.2/colorcet/plotting.py 2019-08-28 18:06:12.000000000 +0200
+++ new/colorcet-2.0.6/colorcet/plotting.py 2021-01-19 23:59:46.000000000 +0100
@@ -14,11 +14,28 @@
array = np.meshgrid(np.linspace(0, 1, 256), np.linspace(0, 1, 10))[0]
def swatch(name, cmap=None, bounds=None, array=array, **kwargs):
- """Show swatch using matplotlib or bokeh via holoviews"""
+ """Show a color swatch for a colormap using matplotlib or bokeh via holoviews.
+ Colormaps can be selected by `name`, including those in Colorcet
+ along with any standard Bokeh palette or named Matplotlib colormap.
+
+ Custom colormaps can be visualized by passing an explicit
+ list of colors (for Bokeh) or the colormap object (for Matplotlib) to `cmap`.
+
+ HoloViews options for either backend can be passed in as kwargs,
+ so that you can customize the width, height, etc. of the swatch.
+
+ The `bounds` and `array` arguments allow you to customize the
+ portion of the colormap to show and how many samples to take
+ from it; see the source code and hv.Image documentation for
+ details.
+ """
title = name if cmap else get_aliases(name)
if bounds is None:
bounds = (0, 0, 256, 1)
+ if type(cmap) is tuple:
+ cmap = list(cmap)
+
plot = hv.Image(array, bounds=bounds, group=title)
backends = hv.Store.loaded_backends()
if 'bokeh' in backends:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colorcet-2.0.2/colorcet.egg-info/PKG-INFO new/colorcet-2.0.6/colorcet.egg-info/PKG-INFO
--- old/colorcet-2.0.2/colorcet.egg-info/PKG-INFO 2019-08-28 18:06:51.000000000 +0200
+++ new/colorcet-2.0.6/colorcet.egg-info/PKG-INFO 2021-01-20 00:00:28.000000000 +0100
@@ -1,29 +1,30 @@
Metadata-Version: 2.1
Name: colorcet
-Version: 2.0.2
+Version: 2.0.6
Summary: Collection of perceptually uniform colormaps
-Home-page: https://colorcet.pyviz.org
+Home-page: https://colorcet.holoviz.org
Author: James A. Bednar
Author-email: jbednar(a)anaconda.com
Maintainer: James A. Bednar
Maintainer-email: jbednar(a)anaconda.com
License: CC-BY License
-Project-URL: Bug Tracker, http://github.com/pyviz/colorcet/issues
-Project-URL: Documentation, https://colorcet.pyviz.org
-Project-URL: Source Code, http://github.com/pyviz/colorcet
+Project-URL: Bug Tracker, http://github.com/holoviz/colorcet/issues
+Project-URL: Documentation, https://colorcet.holoviz.org
+Project-URL: Source Code, http://github.com/holoviz/colorcet
Description: README.md
Platform: UNKNOWN
-Classifier: License :: Other/Proprietary License
+Classifier: License :: OSI Approved
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
Classifier: Development Status :: 5 - Production/Stable
Requires-Python: >=2.7
-Provides-Extra: all
+Provides-Extra: tests
+Provides-Extra: examples
Provides-Extra: doc
-Provides-Extra: build
Provides-Extra: tests_extra
-Provides-Extra: examples
-Provides-Extra: tests
+Provides-Extra: build
+Provides-Extra: all
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colorcet-2.0.2/colorcet.egg-info/SOURCES.txt new/colorcet-2.0.6/colorcet.egg-info/SOURCES.txt
--- old/colorcet-2.0.2/colorcet.egg-info/SOURCES.txt 2019-08-28 18:06:51.000000000 +0200
+++ new/colorcet-2.0.6/colorcet.egg-info/SOURCES.txt 2021-01-20 00:00:28.000000000 +0100
@@ -1,6 +1,7 @@
LICENSE.txt
MANIFEST.in
README.md
+pyproject.toml
setup.cfg
setup.py
colorcet/.version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colorcet-2.0.2/colorcet.egg-info/requires.txt new/colorcet-2.0.6/colorcet.egg-info/requires.txt
--- old/colorcet-2.0.2/colorcet.egg-info/requires.txt 2019-08-28 18:06:51.000000000 +0200
+++ new/colorcet-2.0.6/colorcet.egg-info/requires.txt 2021-01-20 00:00:28.000000000 +0100
@@ -6,7 +6,7 @@
flake8
holoviews
matplotlib
-nbsite
+nbsite>=0.6.1
nbsmoke>=0.2.6
numpy
param>=1.7.0
@@ -14,7 +14,7 @@
pytest>=2.8.5
pytest-mpl
setuptools>=30.3.0
-sphinx_ioam_theme
+sphinx_holoviz_theme
wheel
[build]
@@ -28,8 +28,8 @@
holoviews
matplotlib
bokeh
-nbsite
-sphinx_ioam_theme
+nbsite>=0.6.1
+sphinx_holoviz_theme
[examples]
numpy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colorcet-2.0.2/examples/index.ipynb new/colorcet-2.0.6/examples/index.ipynb
--- old/colorcet-2.0.2/examples/index.ipynb 2019-08-28 18:06:12.000000000 +0200
+++ new/colorcet-2.0.6/examples/index.ipynb 2021-01-19 23:59:46.000000000 +0100
@@ -18,7 +18,7 @@
"The [categorical](user_guide/Categorical.ipynb) colormaps are perceptually distinct, but not uniform; each color is meant for a separate category and not as a position on a numerical scale. Here, categorical colormaps of arbitrary length are generated to cover a perceptual space with well-separated samples, using the method from \n",
"[Glasbey, van der Heijden, Toh, & Gray (2007)](https://strathprints.strath.ac.uk/30312/1/colorpaper_2006.pdf).\n",
"\n",
- "See [Getting Started](http://colorcet.pyviz.org/getting_started) for installation info, and the [User Guide](./user_guide/index.ipynb) for more info on what colormaps are available and how to use them.\n",
+ "See [Getting Started](http://colorcet.holoviz.org/getting_started) for installation info, and the [User Guide](./user_guide/index.ipynb) for more info on what colormaps are available and how to use them.\n",
"\n",
"\n",
"## Background\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colorcet-2.0.2/examples/user_guide/index.ipynb new/colorcet-2.0.6/examples/user_guide/index.ipynb
--- old/colorcet-2.0.2/examples/user_guide/index.ipynb 2019-08-28 18:06:12.000000000 +0200
+++ new/colorcet-2.0.6/examples/user_guide/index.ipynb 2021-01-19 23:59:46.000000000 +0100
@@ -80,6 +80,44 @@
"cell_type": "markdown",
"metadata": {},
"source": [
+ "#### Using `colorcet` via `matplotlib.cm.get_cmap`\n",
+ "\n",
+ "The `colorcet` colormaps are all available through `matplotlip.cm.get_cmap` by prepending `cet_`to the colormap name. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from matplotlib.cm import get_cmap\n",
+ "\n",
+ "get_cmap(\"cet_fire\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### Using `colorcet` to visualize custom colormaps using `swatch`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "color_list = ['#000000', '#380000', '#560000', '#760100', '#980300', '#bb0600', '#df0d00', '#f93500', '#fe6800', '#ff9100', '#ffb402', '#ffd407', '#fff324']\n",
+ "\n",
+ "swatch(name='', cmap=color_list)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
"## Complete list\n",
"\n",
"The `swatches` command accepts the optional key word argument `group` to show just the colormaps that fall under a particular group - try 'glasbey', 'circular', or 'diverging'. When no arguments are provided, `swatches` returns all of the colorcet colormaps."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colorcet-2.0.2/pyproject.toml new/colorcet-2.0.6/pyproject.toml
--- old/colorcet-2.0.2/pyproject.toml 1970-01-01 01:00:00.000000000 +0100
+++ new/colorcet-2.0.6/pyproject.toml 2021-01-19 23:59:46.000000000 +0100
@@ -0,0 +1,7 @@
+[build-system]
+requires = [
+ "pyct >=0.4.4",
+ "param >=1.7.0",
+ "setuptools >=30.3.0",
+ "wheel",
+]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/colorcet-2.0.2/setup.py new/colorcet-2.0.6/setup.py
--- old/colorcet-2.0.2/setup.py 2019-08-28 18:06:12.000000000 +0200
+++ new/colorcet-2.0.6/setup.py 2021-01-19 23:59:46.000000000 +0100
@@ -48,8 +48,8 @@
'tests': tests,
'examples': examples,
'doc': examples + [
- 'nbsite',
- 'sphinx_ioam_theme',
+ 'nbsite >=0.6.1',
+ 'sphinx_holoviz_theme',
],
'tests_extra': tests + [
'pytest-mpl' # only available on pip and conda-forge
@@ -75,23 +75,24 @@
license_file='LICENSE.txt',
license='CC-BY License',
classifiers=[
- "License :: Other/Proprietary License",
+ "License :: OSI Approved",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
+ "Programming Language :: Python :: 3.8",
"Development Status :: 5 - Production/Stable",
],
author="James A. Bednar",
author_email="jbednar(a)anaconda.com",
maintainer="James A. Bednar",
maintainer_email="jbednar(a)anaconda.com",
- url="https://colorcet.pyviz.org",
+ url="https://colorcet.holoviz.org",
project_urls = {
- "Bug Tracker": "http://github.com/pyviz/colorcet/issues",
- "Documentation": "https://colorcet.pyviz.org",
- "Source Code": "http://github.com/pyviz/colorcet",
+ "Bug Tracker": "http://github.com/holoviz/colorcet/issues",
+ "Documentation": "https://colorcet.holoviz.org",
+ "Source Code": "http://github.com/holoviz/colorcet",
},
include_package_data=True,
packages=find_packages(),
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libosip2 for openSUSE:Factory checked in at 2021-01-31 16:52:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libosip2 (Old)
and /work/SRC/openSUSE:Factory/.libosip2.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libosip2"
Sun Jan 31 16:52:05 2021 rev:28 rq:867977 version:5.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/libosip2/libosip2.changes 2020-08-29 20:45:17.409538816 +0200
+++ /work/SRC/openSUSE:Factory/.libosip2.new.28504/libosip2.changes 2021-01-31 16:52:07.156711958 +0100
@@ -1,0 +2,8 @@
+Mon Jan 11 21:56:22 UTC 2021 - Dirk Mueller <dmueller(a)suse.com>
+
+- update to 5.2.0:
+ * use localtime_r when __USE_POSIX is available
+ * sync versions with libexosip
+- use https for urls
+
+-------------------------------------------------------------------
Old:
----
libosip2-5.1.1.tar.gz
New:
----
libosip2-5.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libosip2.spec ++++++
--- /var/tmp/diff_new_pack.TDlsFM/_old 2021-01-31 16:52:08.504713906 +0100
+++ /var/tmp/diff_new_pack.TDlsFM/_new 2021-01-31 16:52:08.504713906 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libosip2
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,21 +17,20 @@
%define soname libosip2-12
-
Name: libosip2
-Version: 5.1.1
+Version: 5.2.0
Release: 0
Summary: Implementation of SIP (RFC 3261)
License: LGPL-2.1-or-later
Group: Productivity/Networking/Other
-URL: http://www.fsf.org/software/osip/osip.html
-Source: http://ftp.gnu.org/gnu/osip/%{name}-%{version}.tar.gz
+URL: https://www.gnu.org/software/osip/osip.html
+Source: https://ftp.gnu.org/gnu/osip/libosip2-5.2.0.tar.gz
Patch0: libosip2-5.0.0.patch
BuildRequires: docbook2x
BuildRequires: gcc
BuildRequires: gperf
BuildRequires: libtool
-BuildRequires: pkg-config
+BuildRequires: pkgconfig
%description
This is the GNU oSIP library. It has been designed to provide the
@@ -54,7 +53,7 @@
Group: Development/Libraries/C and C++
Requires: %{soname} = %{version}
Requires: glibc-devel
-Provides: libosip2:/usr/include/osip2/osip.h
+Provides: libosip2:%{_includedir}/osip2/osip.h
%description devel
This is the GNU oSIP library. It has been designed to provide the
@@ -74,14 +73,13 @@
--enable-sysv \
--enable-gperf \
--disable-static
-make %{?_smp_mflags}
+%make_build
%install
%make_install
-rm -f %{buildroot}%{_libdir}/*.la
+find %{buildroot} -type f -name "*.la" -delete -print
%post -n %{soname} -p /sbin/ldconfig
-
%postun -n %{soname} -p /sbin/ldconfig
%files -n %{soname}
++++++ libosip2-5.0.0.patch ++++++
--- /var/tmp/diff_new_pack.TDlsFM/_old 2021-01-31 16:52:08.520713929 +0100
+++ /var/tmp/diff_new_pack.TDlsFM/_new 2021-01-31 16:52:08.520713929 +0100
@@ -2,8 +2,8 @@
===================================================================
--- src/osip2/port_sema.c.orig
+++ src/osip2/port_sema.c
-@@ -300,6 +300,16 @@ osip_sem_trywait (struct osip_sem *_sem)
- #elif defined (HAVE_SYS_SEM_H)
+@@ -284,6 +284,16 @@ int osip_sem_trywait(struct osip_sem *_s
+ #elif defined(HAVE_SYS_SEM_H)
/* support for semctl, semop, semget */
+#ifdef _SEM_SEMUN_UNDEFINED
@@ -18,4 +18,4 @@
+
#define SEM_PERM 0600
- struct osip_sem *
+ struct osip_sem *osip_sem_init(unsigned int value) {
++++++ libosip2-5.1.1.tar.gz -> libosip2-5.2.0.tar.gz ++++++
++++ 42929 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-sortedcollections for openSUSE:Factory checked in at 2021-01-31 16:52:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sortedcollections (Old)
and /work/SRC/openSUSE:Factory/.python-sortedcollections.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-sortedcollections"
Sun Jan 31 16:52:04 2021 rev:6 rq:867972 version:2.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-sortedcollections/python-sortedcollections.changes 2020-07-24 10:04:07.509864287 +0200
+++ /work/SRC/openSUSE:Factory/.python-sortedcollections.new.28504/python-sortedcollections.changes 2021-01-31 16:52:05.908710155 +0100
@@ -1,0 +2,24 @@
+Sat Jan 30 05:20:31 UTC 2021 - John Vandenberg <jayvdb(a)gmail.com>
+
+- Update to v2.1.0
+ * Add NearestDict
+ * Update for Python 3
+ * Fixes for doctest support
+ * Add NearestDict implementation
+ * Update docs to reference NearestDict
+ * Use Python3 defaults for inheritance
+ * Use f-strings
+- from v2.0.0
+ * Remove shims for Python 2
+ * Add support for mypy
+ * Drop need for "gj" from requirements
+ * Load version from __init__.py rather than by import
+ * Add __all__ to __init__.py for flake8
+ * Small fixes/changes for linters/formatters/type-checkers
+- from v1.2.3
+ * Add support for "blue" formatter
+ * Fixes for doctest support
+- from v1.2.2
+ * Add pickle support for IndexableSet
+
+-------------------------------------------------------------------
Old:
----
v1.2.1.tar.gz
New:
----
v2.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-sortedcollections.spec ++++++
--- /var/tmp/diff_new_pack.9CoKD7/_old 2021-01-31 16:52:06.628711195 +0100
+++ /var/tmp/diff_new_pack.9CoKD7/_new 2021-01-31 16:52:06.628711195 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-sortedcollections
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,8 +17,9 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%define skip_python2 1
Name: python-sortedcollections
-Version: 1.2.1
+Version: 2.1.0
Release: 0
Summary: Python Sorted Collections
License: Apache-2.0
@@ -53,7 +54,7 @@
%prep
%setup -q -n python-sortedcollections-%{version}
-%autopatch -p1
+rm tox.ini
%build
%python_build
++++++ v1.2.1.tar.gz -> v2.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/.github/workflows/integration.yml new/python-sortedcollections-2.1.0/.github/workflows/integration.yml
--- old/python-sortedcollections-1.2.1/.github/workflows/integration.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-sortedcollections-2.1.0/.github/workflows/integration.yml 2021-01-18 23:01:45.000000000 +0100
@@ -0,0 +1,52 @@
+name: integration
+
+on: [push]
+
+jobs:
+
+ checks:
+ runs-on: ubuntu-latest
+ strategy:
+ max-parallel: 8
+ matrix:
+ check: [bluecheck, doc8, docs, flake8, isortcheck, mypy, pylint, rstcheck]
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install dependencies
+ run: |
+ pip install --upgrade pip
+ pip install tox
+ - name: Run checks with tox
+ run: |
+ tox -e ${{ matrix.check }}
+
+ tests:
+ needs: checks
+ runs-on: ${{ matrix.os }}
+ strategy:
+ max-parallel: 8
+ matrix:
+ os: [ubuntu-latest, macos-latest, windows-latest, ubuntu-16.04]
+ python-version: [3.6, 3.7, 3.8, 3.9]
+
+ steps:
+ - name: Set up Python ${{ matrix.python-version }} x64
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ architecture: x64
+
+ - uses: actions/checkout@v2
+
+ - name: Install tox
+ run: |
+ pip install --upgrade pip
+ pip install tox
+
+ - name: Test with tox
+ run: tox -e py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/.github/workflows/release.yml new/python-sortedcollections-2.1.0/.github/workflows/release.yml
--- old/python-sortedcollections-1.2.1/.github/workflows/release.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-sortedcollections-2.1.0/.github/workflows/release.yml 2021-01-18 23:01:45.000000000 +0100
@@ -0,0 +1,38 @@
+name: release
+
+on:
+ push:
+ tags:
+ - v*
+
+jobs:
+
+ upload:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+
+ - name: Install dependencies
+ run: |
+ pip install --upgrade pip
+ pip install -r requirements.txt
+
+ - name: Create source dist
+ run: python setup.py sdist
+
+ - name: Create wheel dist
+ run: python setup.py bdist_wheel
+
+ - name: Upload with twine
+ env:
+ TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }}
+ TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
+ run: |
+ ls -l dist/*
+ twine upload dist/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/.gitignore new/python-sortedcollections-2.1.0/.gitignore
--- old/python-sortedcollections-1.2.1/.gitignore 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/.gitignore 2021-01-18 23:01:45.000000000 +0100
@@ -12,5 +12,6 @@
/build/
/dist/
/sortedcollections.egg-info/
+/docs/_build/
.DS_Store
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/.pylintrc new/python-sortedcollections-2.1.0/.pylintrc
--- old/python-sortedcollections-1.2.1/.pylintrc 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/.pylintrc 2021-01-18 23:01:45.000000000 +0100
@@ -138,7 +138,9 @@
xreadlines-attribute,
deprecated-sys-function,
exception-escape,
- comprehension-escape
+ comprehension-escape,
+ super-with-arguments,
+ raise-missing-from
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/.travis.yml new/python-sortedcollections-2.1.0/.travis.yml
--- old/python-sortedcollections-1.2.1/.travis.yml 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/.travis.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-sudo: false
-language: python
-install: pip install tox
-script: tox
-matrix:
- include:
- - python: 2.7
- env: TOXENV=py27
- - python: 3.4
- env: TOXENV=py34
- - python: 3.5
- env: TOXENV=py35
- - python: 3.6
- env: TOXENV=py36
- - python: 3.7
- dist: xenial
- env: TOXENV=py37
- - python: pypy
- env: TOXENV=pypy
- - python: pypy3
- env: TOXENV=pypy3
- - python: 3.7
- dist: xenial
- env: TOXENV=lint
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/LICENSE new/python-sortedcollections-2.1.0/LICENSE
--- old/python-sortedcollections-1.2.1/LICENSE 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/LICENSE 2021-01-18 23:01:45.000000000 +0100
@@ -1,4 +1,4 @@
-Copyright 2015-2019 Grant Jenks
+Copyright 2015-2021 Grant Jenks
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/README.rst new/python-sortedcollections-2.1.0/README.rst
--- old/python-sortedcollections-1.2.1/README.rst 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/README.rst 2021-01-18 23:01:45.000000000 +0100
@@ -11,20 +11,21 @@
<http://www.grantjenks.com/docs/sortedcontainers/>`_ module.
- ValueSortedDict - Dictionary with (key, value) item pairs sorted by value.
- ItemSortedDict - Dictionary with key-function support for item pairs.
+- NearestDict - Dictionary with nearest-key lookup.
- OrderedDict - Ordered dictionary with numeric indexing support.
- OrderedSet - Ordered set with numeric indexing support.
- IndexableDict - Dictionary with numeric indexing support.
- IndexableSet - Set with numeric indexing support.
- SegmentList - List with fast random access insertion and deletion.
- 100% code coverage testing.
-- Developed on Python 3.7
-- Tested on CPython 2.7, 3.4, 3.5, 3.6, 3.7 and PyPy, PyPy3
+- Developed on Python 3.9
+- Tested on CPython 3.6, 3.7, 3.8, and 3.9
-.. image:: https://api.travis-ci.org/grantjenks/python-sortedcollections.svg?branch=ma…
- :target: http://www.grantjenks.com/docs/sortedcollections/
+.. image:: https://github.com/grantjenks/python-sortedcollections/workflows/integratio…
+ :target: https://github.com/grantjenks/python-sortedcollections/actions?query=workfl…
-.. image:: https://ci.appveyor.com/api/projects/status/github/grantjenks/python-sorted…
- :target: http://www.grantjenks.com/docs/sortedcollections/
+.. image:: https://github.com/grantjenks/python-sortedcollections/workflows/release/ba…
+ :target: https://github.com/grantjenks/python-sortedcollections/actions?query=workfl…
Quickstart
----------
@@ -40,7 +41,7 @@
.. code-block:: python
>>> from sortedcollections import ValueSortedDict
- >>> help(ValueSortedDict)
+ >>> help(ValueSortedDict) # doctest: +SKIP
.. _`Sorted Collections`: http://www.grantjenks.com/docs/sortedcollections/
@@ -49,6 +50,7 @@
- `Value Sorted Dictionary Recipe`_
- `Item Sorted Dictionary Recipe`_
+- `Nearest Dictionary Recipe`_
- `Ordered Dictionary Recipe`_
- `Ordered Set Recipe`_
- `Indexable Dictionary Recipe`_
@@ -57,6 +59,7 @@
.. _`Value Sorted Dictionary Recipe`: http://www.grantjenks.com/docs/sortedcollections/valuesorteddict.html
.. _`Item Sorted Dictionary Recipe`: http://www.grantjenks.com/docs/sortedcollections/itemsorteddict.html
+.. _`Nearest Dictionary Recipe`: http://www.grantjenks.com/docs/sortedcollections/nearestdict.html
.. _`Ordered Dictionary Recipe`: http://www.grantjenks.com/docs/sortedcollections/ordereddict.html
.. _`Ordered Set Recipe`: http://www.grantjenks.com/docs/sortedcollections/orderedset.html
.. _`Indexable Dictionary Recipe`: http://www.grantjenks.com/docs/sortedcollections/indexabledict.html
@@ -79,7 +82,7 @@
Sorted Collections License
--------------------------
-Copyright 2015-2019 Grant Jenks
+Copyright 2015-2021 Grant Jenks
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/appveyor.yml new/python-sortedcollections-2.1.0/appveyor.yml
--- old/python-sortedcollections-1.2.1/appveyor.yml 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/appveyor.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-environment:
-
- matrix:
-
- - PYTHON: "C:\\Python27"
- - PYTHON: "C:\\Python35"
- - PYTHON: "C:\\Python36"
- - PYTHON: "C:\\Python37"
- - PYTHON: "C:\\Python27-x64"
- - PYTHON: "C:\\Python35-x64"
- - PYTHON: "C:\\Python36-x64"
- - PYTHON: "C:\\Python37-x64"
-
-install:
-
- - "%PYTHON%\\python.exe -m pip install tox"
-
-build: off
-
-test_script:
-
- - "%PYTHON%\\python.exe -m tox -e py"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/docs/conf.py new/python-sortedcollections-2.1.0/docs/conf.py
--- old/python-sortedcollections-1.2.1/docs/conf.py 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/docs/conf.py 2021-01-18 23:01:45.000000000 +0100
@@ -21,8 +21,8 @@
# -- Project information -----------------------------------------------------
project = 'Sorted Collections'
-copyright = sortedcollections.__copyright__
-author = sortedcollections.__author__
+copyright = 'Apache 2.0'
+author = 'Grant Jenks'
# The short X.Y version
version = sortedcollections.__version__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/docs/index.rst new/python-sortedcollections-2.1.0/docs/index.rst
--- old/python-sortedcollections-1.2.1/docs/index.rst 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/docs/index.rst 2021-01-18 23:01:45.000000000 +0100
@@ -5,6 +5,7 @@
valuesorteddict
itemsorteddict
+ nearestdict
ordereddict
orderedset
indexabledict
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/docs/nearestdict.rst new/python-sortedcollections-2.1.0/docs/nearestdict.rst
--- old/python-sortedcollections-1.2.1/docs/nearestdict.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-sortedcollections-2.1.0/docs/nearestdict.rst 2021-01-18 23:01:45.000000000 +0100
@@ -0,0 +1,6 @@
+Nearest Dictionary Recipe
+=========================
+
+.. autoclass:: sortedcollections.NearestDict
+ :special-members:
+ :members:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/mypy.ini new/python-sortedcollections-2.1.0/mypy.ini
--- old/python-sortedcollections-1.2.1/mypy.ini 1970-01-01 01:00:00.000000000 +0100
+++ new/python-sortedcollections-2.1.0/mypy.ini 2021-01-18 23:01:45.000000000 +0100
@@ -0,0 +1,4 @@
+[mypy]
+
+[mypy-sortedcontainers.*]
+ignore_missing_imports = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/requirements.txt new/python-sortedcollections-2.1.0/requirements.txt
--- old/python-sortedcollections-1.2.1/requirements.txt 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/requirements.txt 2021-01-18 23:01:45.000000000 +0100
@@ -1,11 +1,12 @@
+-e .
+blue
coverage
doc8
-gj
+mypy
pylint
pytest
pytest-cov
rstcheck
-sortedcontainers
sphinx
tox
twine
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/setup.py new/python-sortedcollections-2.1.0/setup.py
--- old/python-sortedcollections-1.2.1/setup.py 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/setup.py 2021-01-18 23:01:45.000000000 +0100
@@ -1,3 +1,6 @@
+import pathlib
+import re
+
from setuptools import setup
from setuptools.command.test import test as TestCommand
@@ -7,8 +10,10 @@
TestCommand.finalize_options(self)
self.test_args = []
self.test_suite = True
+
def run_tests(self):
import tox
+
errno = tox.cmdline(self.test_args)
exit(errno)
@@ -16,9 +21,13 @@
with open('README.rst') as reader:
readme = reader.read()
+init_text = (pathlib.Path('sortedcollections') / '__init__.py').read_text()
+match = re.search(r"^__version__ = '(.+)'$", init_text, re.MULTILINE)
+version = match.group(1)
+
setup(
name='sortedcollections',
- version='1.2.1',
+ version=version,
description='Python Sorted Collections',
long_description=readme,
author='Grant Jenks',
@@ -35,15 +44,10 @@
'License :: OSI Approved :: Apache Software License',
'Natural Language :: English',
'Programming Language :: Python',
- 'Programming Language :: Python :: 2',
- 'Programming Language :: Python :: 2.7',
- 'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.2',
- 'Programming Language :: Python :: 3.3',
- 'Programming Language :: Python :: 3.4',
- 'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
+ 'Programming Language :: Python :: 3.8',
+ 'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy',
),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/sortedcollections/__init__.py new/python-sortedcollections-2.1.0/sortedcollections/__init__.py
--- old/python-sortedcollections-1.2.1/sortedcollections/__init__.py 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/sortedcollections/__init__.py 2021-01-18 23:01:45.000000000 +0100
@@ -2,23 +2,47 @@
SortedCollections is an Apache2 licensed Python sorted collections library.
-:copyright: (c) 2015-2018 by Grant Jenks.
+>>> from sortedcollections import ValueSortedDict
+>>> vsd = ValueSortedDict({'a': 2, 'b': 1, 'c': 3})
+>>> list(vsd.keys())
+['b', 'a', 'c']
+
+:copyright: (c) 2015-2021 by Grant Jenks.
:license: Apache 2.0, see LICENSE for more details.
"""
from sortedcontainers import (
- SortedList, SortedListWithKey, SortedDict, SortedSet
+ SortedDict,
+ SortedList,
+ SortedListWithKey,
+ SortedSet,
)
-from .recipes import IndexableDict, IndexableSet
-from .recipes import ItemSortedDict, ValueSortedDict
-from .recipes import OrderedSet, SegmentList
+from .nearestdict import NearestDict
from .ordereddict import OrderedDict
+from .recipes import (
+ IndexableDict,
+ IndexableSet,
+ ItemSortedDict,
+ OrderedSet,
+ SegmentList,
+ ValueSortedDict,
+)
+
+__all__ = [
+ 'IndexableDict',
+ 'IndexableSet',
+ 'ItemSortedDict',
+ 'NearestDict',
+ 'OrderedDict',
+ 'OrderedSet',
+ 'SegmentList',
+ 'SortedDict',
+ 'SortedList',
+ 'SortedListWithKey',
+ 'SortedSet',
+ 'ValueSortedDict',
+]
-__title__ = 'sortedcollections'
-__version__ = '1.2.1'
-__build__ = 0x010201
-__author__ = 'Grant Jenks'
-__license__ = 'Apache 2.0'
-__copyright__ = 'Copyright 2015-2018 Grant Jenks'
+__version__ = '2.1.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/sortedcollections/nearestdict.py new/python-sortedcollections-2.1.0/sortedcollections/nearestdict.py
--- old/python-sortedcollections-1.2.1/sortedcollections/nearestdict.py 1970-01-01 01:00:00.000000000 +0100
+++ new/python-sortedcollections-2.1.0/sortedcollections/nearestdict.py 2021-01-18 23:01:45.000000000 +0100
@@ -0,0 +1,123 @@
+"""NearestDict implementation.
+
+One primary use case for this data structure is storing data by a
+`datetime.datetime` or `float` key.
+"""
+
+from sortedcontainers import SortedDict
+
+
+class NearestDict(SortedDict):
+ """A dict using nearest-key lookup.
+
+ A :class:`SortedDict` subclass that uses nearest-key lookup instead of
+ exact-key lookup. Optionally, you can specify a rounding mode to return the
+ nearest key less than or equal to or greater than or equal to the provided
+ key.
+
+ When using :attr:`NearestDict.NEAREST` the keys must support subtraction to
+ allow finding the nearest key (by find the key with the smallest difference
+ to the given one).
+
+ Additional methods:
+
+ * :meth:`NearestDict.nearest_key`
+
+ Example usage:
+
+ >>> d = NearestDict({1.0: 'foo'})
+ >>> d[1.0]
+ 'foo'
+ >>> d[0.0]
+ 'foo'
+ >>> d[2.0]
+ 'foo'
+ """
+
+ NEAREST_PREV = -1
+ NEAREST = 0
+ NEAREST_NEXT = 1
+
+ def __init__(self, *args, **kwargs):
+ """Initialize a NearestDict instance.
+
+ Optional `rounding` argument dictates how
+ :meth:`NearestDict.nearest_key` rounds. It must be one of
+ :attr:`NearestDict.NEAREST_NEXT`, :attr:`NearestDict.NEAREST`, or
+ :attr:`NearestDict.NEAREST_PREV`. (Default:
+ :attr:`NearestDict.NEAREST`)
+
+ :params rounding: how to round on nearest-key lookup (optional)
+ :params args: positional arguments for :class:`SortedDict`.
+ :params kwargs: keyword arguments for :class:`SortedDict`.
+ """
+ self.rounding = kwargs.pop('rounding', self.NEAREST)
+ super().__init__(*args, **kwargs)
+
+ def nearest_key(self, request):
+ """Return nearest-key to `request`, respecting `self.rounding`.
+
+ >>> d = NearestDict({1.0: 'foo'})
+ >>> d.nearest_key(0.0)
+ 1.0
+ >>> d.nearest_key(2.0)
+ 1.0
+
+ >>> d = NearestDict({1.0: 'foo'}, rounding=NearestDict.NEAREST_PREV)
+ >>> d.nearest_key(0.0)
+ Traceback (most recent call last):
+ ...
+ KeyError: 'No key below 0.0 found'
+ >>> d.nearest_key(2.0)
+ 1.0
+
+ :param request: nearest-key lookup value
+ :return: key nearest to `request`, respecting `rounding`
+ :raises KeyError: if no appropriate key can be found
+ """
+ key_list = self.keys()
+
+ if not key_list:
+ raise KeyError('NearestDict is empty')
+
+ index = self.bisect_left(request)
+
+ if index >= len(key_list):
+ if self.rounding == self.NEAREST_NEXT:
+ raise KeyError(f'No key above {request!r} found')
+ return key_list[index - 1]
+ if key_list[index] == request:
+ return key_list[index]
+ if index == 0 and self.rounding == self.NEAREST_PREV:
+ raise KeyError(f'No key below {request!r} found')
+ if self.rounding == self.NEAREST_PREV:
+ return key_list[index - 1]
+ if self.rounding == self.NEAREST_NEXT:
+ return key_list[index]
+ if abs(key_list[index - 1] - request) < abs(key_list[index] - request):
+ return key_list[index - 1]
+ return key_list[index]
+
+ def __getitem__(self, request):
+ """Return item corresponding to :meth:`.nearest_key`.
+
+ :param request: nearest-key lookup value
+ :return: item corresponding to key nearest `request`
+ :raises KeyError: if no appropriate item can be found
+
+ >>> d = NearestDict({1.0: 'foo'})
+ >>> d[0.0]
+ 'foo'
+ >>> d[2.0]
+ 'foo'
+
+ >>> d = NearestDict({1.0: 'foo'}, rounding=NearestDict.NEAREST_NEXT)
+ >>> d[0.0]
+ 'foo'
+ >>> d[2.0]
+ Traceback (most recent call last):
+ ...
+ KeyError: 'No key above 2.0 found'
+ """
+ key = self.nearest_key(request)
+ return super().__getitem__(key)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/sortedcollections/ordereddict.py new/python-sortedcollections-2.1.0/sortedcollections/ordereddict.py
--- old/python-sortedcollections-1.2.1/sortedcollections/ordereddict.py 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/sortedcollections/ordereddict.py 2021-01-18 23:01:45.000000000 +0100
@@ -10,25 +10,12 @@
from .recipes import abc
-###############################################################################
-# BEGIN Python 2/3 Shims
-###############################################################################
-
-from sys import hexversion # pylint: disable=wrong-import-order
-
-if hexversion < 0x03000000:
- from itertools import imap as map # pylint: disable=no-name-in-module,redefined-builtin,ungrouped-imports
-
-###############################################################################
-# END Python 2/3 Shims
-###############################################################################
-
NONE = object()
class KeysView(abc.KeysView, abc.Sequence):
"Read-only view of mapping keys."
- # pylint: disable=too-few-public-methods,protected-access,too-many-ancestors
+ # noqa pylint: disable=too-few-public-methods,protected-access,too-many-ancestors
def __getitem__(self, index):
"``keys_view[index]``"
_nums = self._mapping._nums
@@ -40,7 +27,7 @@
class ItemsView(abc.ItemsView, abc.Sequence):
"Read-only view of mapping items."
- # pylint: disable=too-few-public-methods,protected-access,too-many-ancestors
+ # noqa pylint: disable=too-few-public-methods,protected-access,too-many-ancestors
def __getitem__(self, index):
"``items_view[index]``"
_mapping = self._mapping
@@ -56,7 +43,7 @@
class ValuesView(abc.ValuesView, abc.Sequence):
"Read-only view of mapping values."
- # pylint: disable=too-few-public-methods,protected-access,too-many-ancestors
+ # noqa pylint: disable=too-few-public-methods,protected-access,too-many-ancestors
def __getitem__(self, index):
"``items_view[index]``"
_mapping = self._mapping
@@ -85,6 +72,7 @@
The dict views support the sequence abstract base class.
"""
+
# pylint: disable=super-init-not-called
def __init__(self, *args, **kwargs):
self._keys = {}
@@ -178,7 +166,7 @@
@recursive_repr()
def __repr__(self):
"Text representation of mapping."
- return '%s(%r)' % (self.__class__.__name__, list(self.items()))
+ return f'{self.__class__.__name__}({list(self.items())!r})'
__str__ = __repr__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/sortedcollections/recipes.py new/python-sortedcollections-2.1.0/sortedcollections/recipes.py
--- old/python-sortedcollections-1.2.1/sortedcollections/recipes.py 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/sortedcollections/recipes.py 2021-01-18 23:01:45.000000000 +0100
@@ -2,23 +2,12 @@
"""
+from collections import abc
from copy import deepcopy
from itertools import count
-from sortedcontainers import SortedKeyList, SortedDict, SortedSet
-from sortedcontainers.sortedlist import recursive_repr
-###############################################################################
-# BEGIN Python 2/3 Shims
-###############################################################################
-
-try:
- from collections import abc
-except ImportError:
- import collections as abc
-
-###############################################################################
-# END Python 2/3 Shims
-###############################################################################
+from sortedcontainers import SortedDict, SortedKeyList, SortedSet
+from sortedcontainers.sortedlist import recursive_repr
class IndexableDict(SortedDict):
@@ -34,8 +23,9 @@
The dict views support the sequence abstract base class.
"""
+
def __init__(self, *args, **kwargs):
- super(IndexableDict, self).__init__(hash, *args, **kwargs)
+ super().__init__(hash, *args, **kwargs)
class IndexableSet(SortedSet):
@@ -50,9 +40,13 @@
`IndexableSet` implements the sequence abstract base class.
"""
+
# pylint: disable=too-many-ancestors
def __init__(self, *args, **kwargs):
- super(IndexableSet, self).__init__(*args, key=hash, **kwargs)
+ super().__init__(*args, key=hash, **kwargs)
+
+ def __reduce__(self):
+ return self.__class__, (set(self),)
class ItemSortedDict(SortedDict):
@@ -71,15 +65,18 @@
the callable given as the first argument.
"""
+
def __init__(self, *args, **kwargs):
assert args and callable(args[0])
args = list(args)
func = self._func = args[0]
+
def key_func(key):
"Apply key function to (key, value) item pair."
return func(key, self[key])
+
args[0] = key_func
- super(ItemSortedDict, self).__init__(*args, **kwargs)
+ super().__init__(*args, **kwargs)
def __delitem__(self, key):
"``del mapping[key]``"
@@ -134,24 +131,29 @@
``sorted`` function.
"""
+
def __init__(self, *args, **kwargs):
args = list(args)
if args and callable(args[0]):
func = self._func = args[0]
+
def key_func(key):
"Apply key function to ``mapping[value]``."
return func(self[key])
+
args[0] = key_func
else:
self._func = None
+
def key_func(key):
"Return mapping value for key."
return self[key]
+
if args and args[0] is None:
args[0] = key_func
else:
args.insert(0, key_func)
- super(ValueSortedDict, self).__init__(*args, **kwargs)
+ super().__init__(*args, **kwargs)
def __delitem__(self, key):
"``del mapping[key]``"
@@ -183,14 +185,8 @@
@recursive_repr()
def __repr__(self):
- temp = '{0}({1}, {{{2}}})'
- items = ', '.join('{0}: {1}'.format(repr(key), repr(self[key]))
- for key in self._list)
- return temp.format(
- self.__class__.__name__,
- repr(self._func),
- items
- )
+ items = ', '.join(f'{key!r}: {self[key]!r}' for key in self._list)
+ return f'{self.__class__.__name__}({self._func!r}, {{{items}}})'
class OrderedSet(abc.MutableSet, abc.Sequence):
@@ -208,6 +204,7 @@
OrderedSet also implements the collections.Sequence interface.
"""
+
# pylint: disable=too-many-ancestors
def __init__(self, iterable=()):
# pylint: disable=super-init-not-called
@@ -248,7 +245,7 @@
try:
return self._keys[value]
except KeyError:
- raise ValueError('%r is not in %s' % (value, type(self).__name__))
+ raise ValueError(f'{value!r} is not in {type(self).__name__}')
def add(self, value):
"Add element, value, to set."
@@ -265,7 +262,7 @@
def __repr__(self):
"Text representation of set."
- return '%s(%r)' % (type(self).__name__, list(self))
+ return f'{type(self).__name__}({list(self)!r})'
__str__ = __repr__
@@ -278,9 +275,10 @@
implemented for SegmentList.
"""
+
# pylint: disable=too-many-ancestors
def __init__(self, iterable=()):
- super(SegmentList, self).__init__(iterable, self.zero)
+ super().__init__(iterable, self.zero)
@staticmethod
def zero(_):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/tests/test_doctest.py new/python-sortedcollections-2.1.0/tests/test_doctest.py
--- old/python-sortedcollections-1.2.1/tests/test_doctest.py 1970-01-01 01:00:00.000000000 +0100
+++ new/python-sortedcollections-2.1.0/tests/test_doctest.py 2021-01-18 23:01:45.000000000 +0100
@@ -0,0 +1,23 @@
+import doctest
+
+import sortedcollections
+import sortedcollections.ordereddict
+import sortedcollections.recipes
+
+
+def test_sortedcollections():
+ failed, attempted = doctest.testmod(sortedcollections)
+ assert attempted > 0
+ assert failed == 0
+
+
+def test_sortedcollections_ordereddict():
+ failed, attempted = doctest.testmod(sortedcollections.ordereddict)
+ assert attempted > 0
+ assert failed == 0
+
+
+def test_sortedcollections_recipes():
+ failed, attempted = doctest.testmod(sortedcollections.recipes)
+ assert attempted > 0
+ assert failed == 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/tests/test_itemsorteddict.py new/python-sortedcollections-2.1.0/tests/test_itemsorteddict.py
--- old/python-sortedcollections-1.2.1/tests/test_itemsorteddict.py 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/tests/test_itemsorteddict.py 2021-01-18 23:01:45.000000000 +0100
@@ -1,21 +1,28 @@
"Test sortedcollections.ItemSortedDict"
import copy
+
import pytest
+
from sortedcollections import ItemSortedDict
+
def key_func(key, value):
return key
+
def value_func(key, value):
return value
+
alphabet = 'abcdefghijklmnopqrstuvwxyz'
+
def test_init():
temp = ItemSortedDict(key_func)
temp._check()
+
def test_init_args():
temp = ItemSortedDict(key_func, enumerate(alphabet))
assert len(temp) == 26
@@ -24,6 +31,7 @@
assert temp.keys()[4] == 4
temp._check()
+
def test_init_kwargs():
temp = ItemSortedDict(key_func, a=0, b=1, c=2)
assert len(temp) == 3
@@ -31,22 +39,26 @@
assert temp.keys()[0] == 'a'
temp._check()
+
def test_getitem():
temp = ItemSortedDict(value_func, enumerate(reversed(alphabet)))
assert temp[0] == 'z'
assert temp.keys()[0] == 25
assert list(temp) == list(reversed(range(26)))
+
def test_delitem():
temp = ItemSortedDict(value_func, enumerate(reversed(alphabet)))
del temp[25]
assert temp.keys()[0] == 24
+
def test_delitem_error():
temp = ItemSortedDict(value_func, enumerate(reversed(alphabet)))
with pytest.raises(KeyError):
del temp[-1]
+
def test_setitem():
temp = ItemSortedDict(value_func, enumerate(reversed(alphabet)))
temp[25] = '!'
@@ -56,18 +68,21 @@
temp[25] = 'a'
assert iloc[0] == 25
+
def test_copy():
temp = ItemSortedDict(value_func, enumerate(reversed(alphabet)))
that = temp.copy()
assert temp == that
assert temp._key != that._key
+
def test_deepcopy():
temp = ItemSortedDict(value_func, enumerate(reversed(alphabet)))
that = copy.deepcopy(temp)
assert temp == that
assert temp._key != that._key
+
def test_update():
temp = ItemSortedDict(lambda key, value: value)
for index, letter in enumerate(alphabet):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/tests/test_nearestdict.py new/python-sortedcollections-2.1.0/tests/test_nearestdict.py
--- old/python-sortedcollections-1.2.1/tests/test_nearestdict.py 1970-01-01 01:00:00.000000000 +0100
+++ new/python-sortedcollections-2.1.0/tests/test_nearestdict.py 2021-01-18 23:01:45.000000000 +0100
@@ -0,0 +1,72 @@
+import pytest
+
+from sortedcollections import NearestDict
+
+
+def test_basic():
+ d = NearestDict()
+
+ with pytest.raises(KeyError):
+ d[0]
+
+ d[0] = 'a'
+ assert d[0] == 'a'
+ d[0] = 'b'
+ assert d[0] == 'b'
+
+
+def test_iteration():
+ # In sorted order by key
+ exp_items = (
+ (0, 'a'),
+ (1, 'b'),
+ (2, 'c'),
+ )
+
+ d = NearestDict()
+ for k, v in exp_items:
+ d[k] = v
+
+ for act, exp in zip(d.items(), exp_items):
+ assert act == exp
+
+
+def test_nearest():
+ d = NearestDict(rounding=NearestDict.NEAREST)
+
+ d[0] = 'a'
+ d[3] = 'b'
+ assert d[-1] == 'a'
+ assert d[0] == 'a'
+ assert d[1] == 'a'
+ assert d[2] == 'b'
+ assert d[3] == 'b'
+ assert d[4] == 'b'
+
+
+def test_nearest_prev():
+ d = NearestDict(rounding=NearestDict.NEAREST_PREV)
+
+ d[0] = 'a'
+ d[3] = 'b'
+ with pytest.raises(KeyError):
+ d[-1]
+ assert d[0] == 'a'
+ assert d[1] == 'a'
+ assert d[2] == 'a'
+ assert d[3] == 'b'
+ assert d[4] == 'b'
+
+
+def test_nearest_next():
+ d = NearestDict(rounding=NearestDict.NEAREST_NEXT)
+
+ d[0] = 'a'
+ d[3] = 'b'
+ assert d[-1] == 'a'
+ assert d[0] == 'a'
+ assert d[1] == 'b'
+ assert d[2] == 'b'
+ assert d[3] == 'b'
+ with pytest.raises(KeyError):
+ d[4]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/tests/test_ordereddict.py new/python-sortedcollections-2.1.0/tests/test_ordereddict.py
--- old/python-sortedcollections-1.2.1/tests/test_ordereddict.py 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/tests/test_ordereddict.py 2021-01-18 23:01:45.000000000 +0100
@@ -1,11 +1,14 @@
"Test sortedcollections.OrderedDict"
import pickle
+
import pytest
+
from sortedcollections import OrderedDict
pairs = dict(enumerate(range(10)))
+
def test_init():
od = OrderedDict()
assert len(od) == 0
@@ -20,14 +23,18 @@
assert len(od) == 10
od._check()
+
def test_setitem():
od = OrderedDict()
od['alice'] = 0
od['bob'] = 1
od['carol'] = 2
assert len(od) == 3
+ od['carol'] = 2
+ assert len(od) == 3
od._check()
+
def test_delitem():
od = OrderedDict(pairs)
assert len(od) == 10
@@ -36,12 +43,14 @@
assert len(od) == 0
od._check()
+
def test_iter_reversed():
od = OrderedDict([('b', 0), ('a', 1), ('c', 2)])
assert list(od) == ['b', 'a', 'c']
assert list(reversed(od)) == ['c', 'a', 'b']
od._check()
+
def test_clear():
od = OrderedDict(pairs)
assert len(od) == 10
@@ -49,6 +58,7 @@
assert len(od) == 0
od._check()
+
def test_popitem():
od = OrderedDict(enumerate(range(10)))
for num in reversed(range(10)):
@@ -62,12 +72,14 @@
assert num == key == value
od._check()
+
def test_keys():
od = OrderedDict(enumerate(range(10)))
assert list(reversed(od.keys())) == list(reversed(range(10)))
assert od.keys()[:3] == [0, 1, 2]
od._check()
+
def test_items():
items = list(enumerate(range(10)))
od = OrderedDict(enumerate(range(10)))
@@ -75,12 +87,14 @@
assert od.items()[:3] == [(0, 0), (1, 1), (2, 2)]
od._check()
+
def test_values():
od = OrderedDict(enumerate(range(10)))
assert list(reversed(od.values())) == list(reversed(range(10)))
assert od.values()[:3] == [0, 1, 2]
od._check()
+
def test_iloc():
od = OrderedDict(enumerate(range(10)))
iloc = od.keys()
@@ -90,6 +104,7 @@
assert len(iloc) == 10
od._check()
+
def test_pop():
od = OrderedDict(enumerate(range(10)))
for num in range(10):
@@ -99,43 +114,50 @@
assert od.pop(1, default='thing') == 'thing'
od._check()
+
def test_pop_error():
od = OrderedDict()
with pytest.raises(KeyError):
od.pop(0)
+
def test_setdefault():
od = OrderedDict()
od.setdefault(0, False)
- assert od[0] == False
+ assert od[0] is False
od.setdefault(1, default=True)
- assert od[1] == True
+ assert od[1] is True
od.setdefault(2)
- assert od[2] == None
- assert od.setdefault(0) == False
- assert od.setdefault(1) == True
+ assert od[2] is None
+ assert od.setdefault(0) is False
+ assert od.setdefault(1) is True
+
def test_repr():
od = OrderedDict()
assert repr(od) == 'OrderedDict([])'
assert str(od) == 'OrderedDict([])'
+
def test_reduce():
od = OrderedDict(enumerate(range(10)))
data = pickle.dumps(od)
copy = pickle.loads(data)
assert od == copy
+
def test_copy():
od = OrderedDict(enumerate(range(10)))
copy = od.copy()
assert od == copy
+
def test_fromkeys():
od = OrderedDict.fromkeys('abc')
assert od == {'a': None, 'b': None, 'c': None}
od._check()
+
def test_equality():
od = OrderedDict.fromkeys('abc')
assert od == {'a': None, 'b': None, 'c': None}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/tests/test_orderedset.py new/python-sortedcollections-2.1.0/tests/test_orderedset.py
--- old/python-sortedcollections-1.2.1/tests/test_orderedset.py 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/tests/test_orderedset.py 2021-01-18 23:01:45.000000000 +0100
@@ -1,7 +1,9 @@
"Test sortedcollections.OrderedSet."
-import pytest
import random
+
+import pytest
+
from sortedcollections import OrderedSet
@@ -9,6 +11,7 @@
os = OrderedSet()
assert len(os) == 0
+
def test_contains():
os = OrderedSet(range(100))
assert len(os) == 100
@@ -18,6 +21,7 @@
assert -1 not in os
assert 100 not in os
+
def test_iter():
os = OrderedSet(range(100))
assert list(os) == list(range(100))
@@ -25,6 +29,7 @@
os = OrderedSet(names)
assert list(os) == names
+
def test_reversed():
os = OrderedSet(range(100))
assert list(reversed(os)) == list(reversed(range(100)))
@@ -32,6 +37,7 @@
os = OrderedSet(names)
assert list(reversed(os)) == list(reversed(names))
+
def test_getitem():
values = list(range(100))
random.shuffle(values)
@@ -40,6 +46,7 @@
for index in range(len(os)):
assert os[index] == values[index]
+
def test_index():
values = list(range(100))
random.shuffle(values)
@@ -48,25 +55,31 @@
for value in values:
assert values.index(value) == os.index(value)
+
def test_index_error():
os = OrderedSet(range(10))
with pytest.raises(ValueError):
os.index(10)
+
def test_add():
os = OrderedSet()
for value in range(100):
os.add(value)
assert len(os) == 100
+ os.add(0)
+ assert len(os) == 100
for value in range(100):
assert value in os
+
def test_discard():
os = OrderedSet(range(100))
for value in range(200):
os.discard(value)
assert len(os) == 0
+
def test_repr():
os = OrderedSet()
assert repr(os) == 'OrderedSet([])'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/tests/test_recipes.py new/python-sortedcollections-2.1.0/tests/test_recipes.py
--- old/python-sortedcollections-1.2.1/tests/test_recipes.py 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/tests/test_recipes.py 2021-01-18 23:01:45.000000000 +0100
@@ -1,6 +1,9 @@
"Test sortedcollections.recipes"
+import pickle
+
import pytest
+
from sortedcollections import IndexableDict, IndexableSet, SegmentList
@@ -10,11 +13,20 @@
for value in range(10):
assert iloc[value] == value
+
def test_index_set():
set_values = IndexableSet(range(10))
for index in range(10):
assert set_values[index] == index
+
+def test_index_set_pickle():
+ set_values1 = IndexableSet(range(10))
+ data = pickle.dumps(set_values1)
+ set_values2 = pickle.loads(data)
+ assert set_values1 == set_values2
+
+
def test_segment_list():
values = [5, 1, 3, 2, 4, 8, 6, 7, 9, 0]
sl = SegmentList(values)
@@ -35,11 +47,13 @@
sl.insert(6, 'e')
assert list(sl) == [0, 1, 'c', 'd', 3, 4, 'e']
+
def test_segment_list_bisect():
sl = SegmentList()
with pytest.raises(NotImplementedError):
sl.bisect(0)
+
def test_segment_list_setitem_slice():
sl = SegmentList()
with pytest.raises(NotImplementedError):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/tests/test_valuesorteddict.py new/python-sortedcollections-2.1.0/tests/test_valuesorteddict.py
--- old/python-sortedcollections-1.2.1/tests/test_valuesorteddict.py 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/tests/test_valuesorteddict.py 2021-01-18 23:01:45.000000000 +0100
@@ -1,19 +1,24 @@
"Test sortedcollections.ValueSortedDict"
-import copy
import pickle
+
import pytest
+
from sortedcollections import ValueSortedDict
+
def identity(value):
return value
+
alphabet = 'abcdefghijklmnopqrstuvwxyz'
+
def test_init():
temp = ValueSortedDict()
temp._check()
+
def test_init_args():
temp = ValueSortedDict(enumerate(alphabet))
assert len(temp) == 26
@@ -22,6 +27,7 @@
assert temp.keys()[4] == 4
temp._check()
+
def test_init_kwargs():
temp = ValueSortedDict(None, a=0, b=1, c=2)
assert len(temp) == 3
@@ -29,22 +35,26 @@
assert temp.keys()[0] == 'a'
temp._check()
+
def test_getitem():
temp = ValueSortedDict(identity, enumerate(reversed(alphabet)))
assert temp[0] == 'z'
assert temp.keys()[0] == 25
assert list(temp) == list(reversed(range(26)))
+
def test_delitem():
temp = ValueSortedDict(identity, enumerate(reversed(alphabet)))
del temp[25]
assert temp.keys()[0] == 24
+
def test_delitem_error():
temp = ValueSortedDict(identity, enumerate(reversed(alphabet)))
with pytest.raises(KeyError):
del temp[-1]
+
def test_setitem():
temp = ValueSortedDict(identity, enumerate(reversed(alphabet)))
temp[25] = '!'
@@ -53,28 +63,34 @@
temp[25] = 'a'
assert temp.keys()[0] == 25
+
def test_copy():
temp = ValueSortedDict(identity, enumerate(reversed(alphabet)))
that = temp.copy()
assert temp == that
assert temp._key != that._key
+
def test_pickle():
original = ValueSortedDict(identity, enumerate(reversed(alphabet)))
data = pickle.dumps(original)
duplicate = pickle.loads(data)
assert original == duplicate
-class Negater(object):
+
+class Negater:
def __call__(self, value):
return -value
+
def __repr__(self):
return 'negate'
+
def test_repr():
temp = ValueSortedDict(Negater())
assert repr(temp) == 'ValueSortedDict(negate, {})'
+
def test_update():
temp = ValueSortedDict()
for index, letter in enumerate(alphabet):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-sortedcollections-1.2.1/tox.ini new/python-sortedcollections-2.1.0/tox.ini
--- old/python-sortedcollections-1.2.1/tox.ini 2020-06-07 21:53:14.000000000 +0200
+++ new/python-sortedcollections-2.1.0/tox.ini 2021-01-18 23:01:45.000000000 +0100
@@ -1,17 +1,74 @@
[tox]
-envlist=py27,py34,py35,py36,py37,pypy,pypy3,lint
+envlist=bluecheck,doc8,docs,isortcheck,flake8,mypy,pylint,rstcheck,py36,py37,py38,py39
skip_missing_interpreters=True
[testenv]
-deps=pytest
-commands=python -m pytest
+commands=pytest
+deps=
+ pytest
+ pytest-cov
-[pytest]
-addopts=
- --doctest-modules
- --doctest-glob "*.rst"
-testpaths=docs sortedcollections tests
+[testenv:blue]
+commands=blue {toxinidir}/setup.py {toxinidir}/sortedcollections {toxinidir}/tests
+deps=blue
+
+[testenv:bluecheck]
+commands=blue --check {toxinidir}/setup.py {toxinidir}/sortedcollections {toxinidir}/tests
+deps=blue
+
+[testenv:doc8]
+deps=doc8
+commands=doc8 docs
+
+[testenv:docs]
+allowlist_externals=make
+changedir=docs
+commands=make html
+deps=sphinx
+
+[testenv:flake8]
+commands=flake8 {toxinidir}/setup.py {toxinidir}/sortedcollections {toxinidir}/tests
+deps=flake8
+
+[testenv:isort]
+commands=isort {toxinidir}/setup.py {toxinidir}/sortedcollections {toxinidir}/tests
+deps=isort
+
+[testenv:isortcheck]
+commands=isort --check {toxinidir}/setup.py {toxinidir}/sortedcollections {toxinidir}/tests
+deps=isort
-[testenv:lint]
+[testenv:mypy]
+commands=mypy {toxinidir}/sortedcollections
+deps=mypy
+
+[testenv:pylint]
+commands=pylint {toxinidir}/sortedcollections
deps=pylint
-commands=pylint sortedcollections
+
+[testenv:rstcheck]
+commands=rstcheck {toxinidir}/README.rst
+deps=rstcheck
+
+[testenv:uploaddocs]
+allowlist_externals=rsync
+changedir=docs
+commands=
+ rsync -azP --stats --delete _build/html/ \
+ grantjenks.com:/srv/www/www.grantjenks.com/public/docs/sortedcollections/
+
+[isort]
+multi_line_output = 3
+include_trailing_comma = True
+force_grid_wrap = 0
+use_parentheses = True
+ensure_newline_before_comments = True
+line_length = 79
+
+[pytest]
+addopts=
+ --cov-branch
+ --cov-fail-under=100
+ --cov-report=term-missing
+ --cov=sortedcollections
+ --doctest-glob="*.rst"
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package patchinfo.15576 for openSUSE:Leap:15.1:Update checked in at 2021-01-31 16:11:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.1:Update/patchinfo.15576 (Old)
and /work/SRC/openSUSE:Leap:15.1:Update/.patchinfo.15576.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patchinfo.15576"
Sun Jan 31 16:11:47 2021 rev:1 rq:867777 version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_patchinfo
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _patchinfo ++++++
<patchinfo incident="15576">
<packager>hauky</packager>
<rating>moderate</rating>
<category>recommended</category>
<summary>Recommended update for openafs</summary>
<description>This update for openafs fixes the following issues:
update to HEAD of git branch openafs-stable-1_8_x
* fix critical bug described in
https://lists.openafs.org/pipermail/openafs-info/2021-January/043026.html
- add firewalld-configuration files
Update to official 1.8.6.
</description>
</patchinfo>
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openafs for openSUSE:Leap:15.1:Update checked in at 2021-01-31 16:11:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.1:Update/openafs (Old)
and /work/SRC/openSUSE:Leap:15.1:Update/.openafs.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openafs"
Sun Jan 31 16:11:45 2021 rev:2 rq:867777 version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.yLfoiF/_old 2021-01-31 16:11:46.633206633 +0100
+++ /var/tmp/diff_new_pack.yLfoiF/_new 2021-01-31 16:11:46.633206633 +0100
@@ -1 +1 @@
-<link package='openafs.11592' cicount='copy' />
+<link package='openafs.15576' cicount='copy' />
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package patchinfo.11749 for openSUSE:Leap:15.1:Update checked in at 2021-01-31 11:30:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.1:Update/patchinfo.11749 (Old)
and /work/SRC/openSUSE:Leap:15.1:Update/.patchinfo.11749.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patchinfo.11749"
Sun Jan 31 11:30:01 2021 rev:3 rq:764756 version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _patchinfo ++++++
--- /var/tmp/diff_new_pack.jmPa5x/_old 2021-01-31 11:30:02.853794890 +0100
+++ /var/tmp/diff_new_pack.jmPa5x/_new 2021-01-31 11:30:02.853794890 +0100
@@ -1,10 +1,10 @@
<patchinfo incident="11749">
- <category>optional</category>
- <rating>moderate</rating>
+<category>optional</category>
+ <rating>moderate</rating>
<packager>msmeissn</packager>
<summary>Optional update for hello</summary>
<retracted/>
<description>
This update for hello is a test for retracted updates.
- </description>
+</description>
</patchinfo>
1
0