Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-blockdiag for
openSUSE:Factory checked in at 2022-08-05 19:51:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-blockdiag (Old)
and /work/SRC/openSUSE:Factory/.python-blockdiag.new.1521 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-blockdiag"
Fri Aug 5 19:51:09 2022 rev:8 rq:993149 version:3.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-blockdiag/python-blockdiag.changes
2021-09-03 21:25:28.150122854 +0200
+++
/work/SRC/openSUSE:Factory/.python-blockdiag.new.1521/python-blockdiag.changes
2022-08-05 19:52:08.717632954 +0200
@@ -1,0 +2,11 @@
+Thu Aug 4 19:43:01 UTC 2022 - Ben Greiner <[email protected]>
+
+- Update to 3.0.0
+ * Drop python3.6 support
+ * Use funcparserlib-1.0.0a0 or newer to support new python
+ versions
+ * Allow to write multiline string via triple quotes (""" ... """)
+ * Fix #147: file existence disclosure using svg renderer
+- Refresh python-blockdiag-nose-to-pytest.patch
+
+-------------------------------------------------------------------
Old:
----
blockdiag-2.0.1.tar.gz
New:
----
blockdiag-3.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-blockdiag.spec ++++++
--- /var/tmp/diff_new_pack.lwTcBl/_old 2022-08-05 19:52:09.345634576 +0200
+++ /var/tmp/diff_new_pack.lwTcBl/_new 2022-08-05 19:52:09.361634617 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-blockdiag
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,38 +16,37 @@
#
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%define skip_python2 1
Name: python-blockdiag
-Version: 2.0.1
+Version: 3.0.0
Release: 0
Summary: Program to generate block-diagram images from text
License: Apache-2.0
Group: Development/Languages/Python
URL: http://blockdiag.com/
Source:
https://files.pythonhosted.org/packages/source/b/blockdiag/blockdiag-%{version}.tar.gz
-# https://github.com/blockdiag/blockdiag/pull/131
+# PATCH-FIX-UPSTREAM python-blockdiag-nose-to-pytest.patch
gh#blockdiag/blockdiag#131 [email protected]
+# Remove the last silly dependency on nose
Patch0: python-blockdiag-nose-to-pytest.patch
-BuildRequires: %{python_module Pillow >= 2.2.1}
-BuildRequires: %{python_module funcparserlib >= 0.3.6}
-BuildRequires: %{python_module reportlab}
+BuildRequires: %{python_module Pillow >= 3}
+BuildRequires: %{python_module base >= 3.7}
+BuildRequires: %{python_module funcparserlib >= 1.0.0~a0}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module webcolors}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-Pillow >= 2.2.1
-Requires: python-funcparserlib >= 0.3.6
+Requires: python-Pillow >= 3
+Requires: python-funcparserlib >= 1.0.0~a0
+Requires: python-setuptools
Requires: python-webcolors
Requires(post): update-alternatives
Requires(preun):update-alternatives
BuildArch: noarch
# SECTION test requirements
+BuildRequires: %{python_module reportlab}
BuildRequires: %{python_module docutils}
-BuildRequires: %{python_module pep8 >= 1.3}
-BuildRequires: %{python_module pip >= 1.4.1}
BuildRequires: %{python_module pytest}
# /SECTION
-%if 0%{?suse_version} >= 1000 || 0%{?fedora_version} >= 24
+%if 0%{?suse_version} || 0%{?fedora_version} >= 24
Recommends: ghostscript
Recommends: python-Wand
Recommends: python-reportlab
@@ -59,8 +58,7 @@
from spec-text files.
%prep
-%setup -q -n blockdiag-%{version}
-%patch0 -p1
+%autosetup -p1 -n blockdiag-%{version}
%build
%python_build
@@ -73,7 +71,7 @@
%post
%python_install_alternative blockdiag
-%preun
+%postun
%python_uninstall_alternative blockdiag
%check
@@ -89,6 +87,7 @@
%license LICENSE
%doc CHANGES.rst README.rst
%python_alternative %{_bindir}/blockdiag
-%{python_sitelib}/*
+%{python_sitelib}/blockdiag
+%{python_sitelib}/blockdiag-%{version}*-info
%changelog
++++++ blockdiag-2.0.1.tar.gz -> blockdiag-3.0.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/CHANGES.rst
new/blockdiag-3.0.0/CHANGES.rst
--- old/blockdiag-2.0.1/CHANGES.rst 2020-02-01 11:12:31.000000000 +0100
+++ new/blockdiag-3.0.0/CHANGES.rst 2021-12-06 17:43:47.000000000 +0100
@@ -1,6 +1,15 @@
Changelog
=========
+3.0.0 (2021-12-06)
+------------------
+* Drop python3.6 support
+* Use funcparserlib-1.0.0a0 or newer to support new python versions
+* Allow to write multiline string via triple quotes (""" ... """)
+* Fix a bug
+
+ - Fix #147: file existence disclosure using svg renderer
+
2.0.0 (2020-02-01)
------------------
* Fix a bug
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/PKG-INFO new/blockdiag-3.0.0/PKG-INFO
--- old/blockdiag-2.0.1/PKG-INFO 2020-02-01 11:12:53.149483700 +0100
+++ new/blockdiag-3.0.0/PKG-INFO 2021-12-06 17:43:51.665107500 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: blockdiag
-Version: 2.0.1
+Version: 3.0.0
Summary: blockdiag generates block-diagram image from text
Home-page: http://blockdiag.com/
Author: Takeshi Komiya
@@ -9,137 +9,139 @@
Download-URL: http://pypi.python.org/pypi/blockdiag
Project-URL: Code, https://github.com/blockdiag/blockdiag
Project-URL: Issue tracker, https://github.com/blockdiag/blockdiag/issues
-Description: `blockdiag` generate block-diagram image file from spec-text file.
-
- .. image::
https://drone.io/bitbucket.org/blockdiag/blockdiag/status.png
- :target: https://drone.io/bitbucket.org/blockdiag/blockdiag
- :alt: drone.io CI build status
-
- .. image:: https://pypip.in/v/blockdiag/badge.png
- :target: https://pypi.python.org/pypi/blockdiag/
- :alt: Latest PyPI version
-
- .. image:: https://pypip.in/d/blockdiag/badge.png
- :target: https://pypi.python.org/pypi/blockdiag/
- :alt: Number of PyPI downloads
-
-
- Features
- ========
- * Generate block-diagram from dot like text (basic feature).
- * Multilingualization for node-label (utf-8 only).
-
- You can get some examples and generated images on
- `blockdiag.com <http://blockdiag.com/en/blockdiag/examples.html>`_ .
-
- Setup
- =====
-
- Use pip::
-
- $ sudo pip install blockdiag
-
- If you want to export as PDF format, give pdf arguments::
-
- $ sudo pip install "blockdiag[pdf]"
-
-
- Copy and modify ini file. example::
-
- $ cp <blockdiag installed path>/blockdiag/examples/simple.diag .
- $ vi simple.diag
-
- Please refer to `spec-text setting sample`_ section for the format of
the
- `simpla.diag` configuration file.
-
- spec-text setting sample
- ========================
- Few examples are available.
- You can get more examples at
- `blockdiag.com`_ .
-
- simple.diag
- ------------
- simple.diag is simply define nodes and transitions by dot-like text
format::
-
- diagram admin {
- top_page -> config -> config_edit -> config_confirm -> top_page;
- }
-
- screen.diag
- ------------
- screen.diag is more complexly sample. diaglam nodes have a alternative
label
- and some transitions::
-
- diagram admin {
- top_page [label = "Top page"];
-
- foo_index [label = "List of FOOs"];
- foo_detail [label = "Detail FOO"];
- foo_add [label = "Add FOO"];
- foo_add_confirm [label = "Add FOO (confirm)"];
- foo_edit [label = "Edit FOO"];
- foo_edit_confirm [label = "Edit FOO (confirm)"];
- foo_delete_confirm [label = "Delete FOO (confirm)"];
-
- bar_detail [label = "Detail of BAR"];
- bar_edit [label = "Edit BAR"];
- bar_edit_confirm [label = "Edit BAR (confirm)"];
-
- logout;
-
- top_page -> foo_index;
- top_page -> bar_detail;
-
- foo_index -> foo_detail;
- foo_detail -> foo_edit;
- foo_detail -> foo_delete_confirm;
- foo_index -> foo_add -> foo_add_confirm -> foo_index;
- foo_index -> foo_edit -> foo_edit_confirm -> foo_index;
- foo_index -> foo_delete_confirm -> foo_index;
-
- bar_detail -> bar_edit -> bar_edit_confirm -> bar_detail;
- }
-
-
- Usage
- =====
- Execute blockdiag command::
-
- $ blockdiag simple.diag
- $ ls simple.png
- simple.png
-
-
- Requirements
- ============
- * Python 3.5 or later
- * Pillow 3.0 or later
- * funcparserlib 0.3.6 or later
- * reportlab (optional)
- * wand and imagemagick (optional)
- * setuptools
-
-
- License
- =======
- Apache License 2.0
-
Keywords: diagram,generator
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Documentation
Classifier: Topic :: Text Processing :: Markup
-Requires-Python: >=3.5
+Requires-Python: >=3.7
Description-Content-Type: text/x-rst
Provides-Extra: pdf
Provides-Extra: rst
Provides-Extra: testing
+License-File: LICENSE
+
+`blockdiag` generate block-diagram image file from spec-text file.
+
+.. image::
https://github.com/blockdiag/blockdiag/actions/workflows/main.yml/badge.svg
+ :target: https://github.com/blockdiag/blockdiag/actions/workflows/main.yml
+ :alt: GitHub Action CI build status
+
+.. image:: https://img.shields.io/pypi/v/blockdiag
+ :target: https://pypi.python.org/pypi/blockdiag/
+ :alt: Latest PyPI version
+
+.. image:: https://img.shields.io/pypi/dm/blockdiag
+ :target: https://pypi.python.org/pypi/blockdiag/
+ :alt: Number of PyPI downloads
+
+
+Features
+========
+* Generate block-diagram from dot like text (basic feature).
+* Multilingualization for node-label (utf-8 only).
+
+You can get some examples and generated images on
+`blockdiag.com <http://blockdiag.com/en/blockdiag/examples.html>`_ .
+
+Setup
+=====
+
+Use pip::
+
+ $ sudo pip install blockdiag
+
+If you want to export as PDF format, give pdf arguments::
+
+ $ sudo pip install "blockdiag[pdf]"
+
+
+Copy and modify ini file. example::
+
+ $ cp <blockdiag installed path>/blockdiag/examples/simple.diag .
+ $ vi simple.diag
+
+Please refer to `spec-text setting sample`_ section for the format of the
+`simpla.diag` configuration file.
+
+spec-text setting sample
+========================
+Few examples are available.
+You can get more examples at
+`blockdiag.com`_ .
+
+simple.diag
+------------
+simple.diag is simply define nodes and transitions by dot-like text format::
+
+ diagram admin {
+ top_page -> config -> config_edit -> config_confirm -> top_page;
+ }
+
+screen.diag
+------------
+screen.diag is more complexly sample. diaglam nodes have a alternative label
+and some transitions::
+
+ diagram admin {
+ top_page [label = "Top page"];
+
+ foo_index [label = "List of FOOs"];
+ foo_detail [label = "Detail FOO"];
+ foo_add [label = "Add FOO"];
+ foo_add_confirm [label = "Add FOO (confirm)"];
+ foo_edit [label = "Edit FOO"];
+ foo_edit_confirm [label = "Edit FOO (confirm)"];
+ foo_delete_confirm [label = "Delete FOO (confirm)"];
+
+ bar_detail [label = "Detail of BAR"];
+ bar_edit [label = "Edit BAR"];
+ bar_edit_confirm [label = "Edit BAR (confirm)"];
+
+ logout;
+
+ top_page -> foo_index;
+ top_page -> bar_detail;
+
+ foo_index -> foo_detail;
+ foo_detail -> foo_edit;
+ foo_detail -> foo_delete_confirm;
+ foo_index -> foo_add -> foo_add_confirm -> foo_index;
+ foo_index -> foo_edit -> foo_edit_confirm -> foo_index;
+ foo_index -> foo_delete_confirm -> foo_index;
+
+ bar_detail -> bar_edit -> bar_edit_confirm -> bar_detail;
+ }
+
+
+Usage
+=====
+Execute blockdiag command::
+
+ $ blockdiag simple.diag
+ $ ls simple.png
+ simple.png
+
+
+Requirements
+============
+* Python 3.7 or later
+* Pillow 3.0 or later
+* funcparserlib 1.0.0a0 or later
+* reportlab (optional)
+* wand and imagemagick (optional)
+* setuptools
+
+
+License
+=======
+Apache License 2.0
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/README.rst
new/blockdiag-3.0.0/README.rst
--- old/blockdiag-2.0.1/README.rst 2020-01-13 10:55:52.000000000 +0100
+++ new/blockdiag-3.0.0/README.rst 2021-12-06 17:43:47.000000000 +0100
@@ -1,14 +1,14 @@
`blockdiag` generate block-diagram image file from spec-text file.
-.. image:: https://drone.io/bitbucket.org/blockdiag/blockdiag/status.png
- :target: https://drone.io/bitbucket.org/blockdiag/blockdiag
- :alt: drone.io CI build status
+.. image::
https://github.com/blockdiag/blockdiag/actions/workflows/main.yml/badge.svg
+ :target: https://github.com/blockdiag/blockdiag/actions/workflows/main.yml
+ :alt: GitHub Action CI build status
-.. image:: https://pypip.in/v/blockdiag/badge.png
+.. image:: https://img.shields.io/pypi/v/blockdiag
:target: https://pypi.python.org/pypi/blockdiag/
:alt: Latest PyPI version
-.. image:: https://pypip.in/d/blockdiag/badge.png
+.. image:: https://img.shields.io/pypi/dm/blockdiag
:target: https://pypi.python.org/pypi/blockdiag/
:alt: Number of PyPI downloads
@@ -102,9 +102,9 @@
Requirements
============
-* Python 3.5 or later
+* Python 3.7 or later
* Pillow 3.0 or later
-* funcparserlib 0.3.6 or later
+* funcparserlib 1.0.0a0 or later
* reportlab (optional)
* wand and imagemagick (optional)
* setuptools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/setup.py new/blockdiag-3.0.0/setup.py
--- old/blockdiag-2.0.1/setup.py 2020-01-26 06:48:27.000000000 +0100
+++ new/blockdiag-3.0.0/setup.py 2021-12-06 17:43:47.000000000 +0100
@@ -9,10 +9,9 @@
"Intended Audience :: System Administrators",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python",
- "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",
"Topic :: Software Development",
"Topic :: Software Development :: Documentation",
"Topic :: Text Processing :: Markup",
@@ -48,14 +47,13 @@
"Issue tracker": "https://github.com/blockdiag/blockdiag/issues",
},
license='Apache License 2.0',
- py_modules=['blockdiag_sphinxhelper'],
packages=find_packages('src'),
package_dir={'': 'src'},
include_package_data=True,
- python_requires=">=3.5",
+ python_requires=">=3.7",
install_requires=[
'setuptools',
- 'funcparserlib',
+ 'funcparserlib>=1.0.0a0',
'Pillow > 3.0',
'webcolors',
],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/src/blockdiag/__init__.py
new/blockdiag-3.0.0/src/blockdiag/__init__.py
--- old/blockdiag-2.0.1/src/blockdiag/__init__.py 2020-02-01
11:12:19.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag/__init__.py 2021-12-06
17:43:47.000000000 +0100
@@ -13,4 +13,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-__version__ = '2.0.1'
+__version__ = '3.0.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/blockdiag-2.0.1/src/blockdiag/imagedraw/filters/linejump.py
new/blockdiag-3.0.0/src/blockdiag/imagedraw/filters/linejump.py
--- old/blockdiag-2.0.1/src/blockdiag/imagedraw/filters/linejump.py
2020-01-13 10:55:52.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag/imagedraw/filters/linejump.py
2021-12-06 17:43:47.000000000 +0100
@@ -162,7 +162,7 @@
def save(self, *args, **kwargs):
# Search crosspoints
- from bisect import insort, bisect_left, bisect_right
+ from bisect import bisect_left, bisect_right, insort
xtree = []
for y, _, ((x1, y1), (x2, y2)) in self.ytree:
if x2 < x1:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/src/blockdiag/imagedraw/svg.py
new/blockdiag-3.0.0/src/blockdiag/imagedraw/svg.py
--- old/blockdiag-2.0.1/src/blockdiag/imagedraw/svg.py 2020-01-13
10:55:52.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag/imagedraw/svg.py 2021-12-06
17:43:47.000000000 +0100
@@ -247,7 +247,7 @@
stream = images.open(url, mode='png')
url = "data:;base64," + str(b64encode(stream.read()))
except IOError:
- pass
+ url = None
finally:
if stream:
stream.close()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/src/blockdiag/parser.py
new/blockdiag-3.0.0/src/blockdiag/parser.py
--- old/blockdiag-2.0.1/src/blockdiag/parser.py 2020-01-13 10:55:52.000000000
+0100
+++ new/blockdiag-3.0.0/src/blockdiag/parser.py 2021-12-06 17:43:47.000000000
+0100
@@ -70,7 +70,7 @@
'[A-Za-z_\\-.0-9\u0080-\uffff]*',)),
# NOQA
('Op', (r'[{};,=\[\]]|(<->)|(<-)|(--)|(->)|(>-<)|(-<)|(>-)',)),
# NOQA
('Number', (r'-?(\.[0-9]+)|([0-9]+(\.[0-9]*)?)',)),
# NOQA
- ('String', (r'(?P<quote>"|\').*?(?<!\\)(?P=quote)', DOTALL)),
# NOQA
+ ('String', (r'(?P<quote>(""")|(\'\'\')|"|\').*?(?<!\\)(?P=quote)',
DOTALL)), # NOQA
]
useless = ['Comment', 'NL', 'Space']
t = make_tokenizer(specs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/blockdiag-2.0.1/src/blockdiag/tests/diagrams/background_url_local.diag
new/blockdiag-3.0.0/src/blockdiag/tests/diagrams/background_url_local.diag
--- old/blockdiag-2.0.1/src/blockdiag/tests/diagrams/background_url_local.diag
1970-01-01 01:00:00.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag/tests/diagrams/background_url_local.diag
2021-12-06 17:43:47.000000000 +0100
@@ -0,0 +1,5 @@
+{
+ A [background = "src/blockdiag/tests/diagrams/white.gif"];
+ B [background = "src/blockdiag/tests/diagrams/invalid.txt"];
+ Z;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/blockdiag-2.0.1/src/blockdiag/tests/diagrams/edge_label.diag
new/blockdiag-3.0.0/src/blockdiag/tests/diagrams/edge_label.diag
--- old/blockdiag-2.0.1/src/blockdiag/tests/diagrams/edge_label.diag
2020-01-13 10:55:52.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag/tests/diagrams/edge_label.diag
2021-12-06 17:43:47.000000000 +0100
@@ -1,3 +1,6 @@
{
A -> B [label = "test label"];
+ A -> B [label = 'test label'];
+ A -> B [label = """test' "label"""];
+ A -> B [label = '''test' "label'''];
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/blockdiag-2.0.1/src/blockdiag/tests/diagrams/node_has_block_label.diag
new/blockdiag-3.0.0/src/blockdiag/tests/diagrams/node_has_block_label.diag
--- old/blockdiag-2.0.1/src/blockdiag/tests/diagrams/node_has_block_label.diag
1970-01-01 01:00:00.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag/tests/diagrams/node_has_block_label.diag
2021-12-06 17:43:47.000000000 +0100
@@ -0,0 +1,8 @@
+diagram {
+ A [label = """A
+block
+string"""];
+ B [label = '''Another
+block
+string with different quotes'''];
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/blockdiag-2.0.1/src/blockdiag/tests/rst/test_blockdiag_directives.py
new/blockdiag-3.0.0/src/blockdiag/tests/rst/test_blockdiag_directives.py
--- old/blockdiag-2.0.1/src/blockdiag/tests/rst/test_blockdiag_directives.py
2020-01-13 10:55:52.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag/tests/rst/test_blockdiag_directives.py
2021-12-06 17:43:47.000000000 +0100
@@ -21,6 +21,7 @@
from docutils.core import publish_doctree
from docutils.parsers.rst import directives as docutils
+from blockdiag.tests.test_generate_diagram import TESTDIR, get_fontpath
from blockdiag.tests.utils import TemporaryDirectory, capture_stderr, with_pil
from blockdiag.utils.rst import directives
@@ -178,7 +179,9 @@
self.assertEqual(nodes.image, type(doctree[0]))
def test_setup_inline_svg_is_true_with_multibytes(self):
- directives.setup(format='SVG', outputdir=self.tmpdir)
+ # multibyte characters aren't support for default font, set a own font
+ directives.setup(format='SVG', outputdir=self.tmpdir,
+ fontpath=get_fontpath(TESTDIR))
text = (".. blockdiag::\n"
"\n"
" ??? -> ???")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/blockdiag-2.0.1/src/blockdiag/tests/test_generate_diagram.py
new/blockdiag-3.0.0/src/blockdiag/tests/test_generate_diagram.py
--- old/blockdiag-2.0.1/src/blockdiag/tests/test_generate_diagram.py
2020-01-13 10:55:52.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag/tests/test_generate_diagram.py
2021-12-06 17:43:47.000000000 +0100
@@ -17,6 +17,7 @@
import re
import sys
import unittest
+from xml.etree import ElementTree
from nose.tools import nottest
@@ -37,7 +38,7 @@
diagramsdir = os.path.join(testdir, 'diagrams')
skipped = ['README', 'debian-logo-256color-palettealpha.png',
- 'errors', 'white.gif']
+ 'errors', 'invalid.txt', 'white.gif']
for file in os.listdir(diagramsdir):
if file in skipped:
pass
@@ -158,8 +159,6 @@
@capture_stderr
def svg_includes_source_code_tag_test():
- from xml.etree import ElementTree
-
testdir = os.path.dirname(__file__)
diagpath = os.path.join(testdir, 'diagrams', 'single_edge.diag')
@@ -182,3 +181,27 @@
assert source_code == embeded
finally:
tmpdir.clean()
+
+
+@capture_stderr
+def svg_sanitizes_url_on_error_test():
+ testdir = os.path.dirname(__file__)
+ diagpath = os.path.join(testdir, 'diagrams', 'background_url_local.diag')
+
+ try:
+ tmpdir = TemporaryDirectory()
+ fd, tmpfile = tmpdir.mkstemp()
+ os.close(fd)
+
+ args = ['-T', 'SVG', '-o', tmpfile, diagpath]
+ ret = blockdiag.command.main(args)
+ tree = ElementTree.parse(tmpfile)
+ images = tree.findall('{http://www.w3.org/2000/svg}image')
+ valid_url, invalid_url =
[image.attrib.get('{http://www.w3.org/1999/xlink}href') for image in images]
+
+ assert valid_url
+ assert not invalid_url
+ assert 'unknown image type:' in sys.stderr.getvalue()
+ assert ret == 0
+ finally:
+ tmpdir.clean()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/src/blockdiag/tests/test_parser.py
new/blockdiag-3.0.0/src/blockdiag/tests/test_parser.py
--- old/blockdiag-2.0.1/src/blockdiag/tests/test_parser.py 2020-01-13
10:55:52.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag/tests/test_parser.py 2021-12-06
17:43:47.000000000 +0100
@@ -70,17 +70,35 @@
A;
B [label = "foobar"];
C [color = "red"];
+ D [label = 'foobar'];
+ E [color = 'red'];
+ F [label = \"\"\"foobar\"\"\"];
+ G [label = \'\'\'foobar\'\'\'];
+ H [label = \"\"\"foo"bar\"\"\"];
+ I [label = \'\'\'foo'bar\'\'\'];
}
"""
tree = parse_string(code)
self.assertIsInstance(tree, Diagram)
- self.assertEqual(3, len(tree.stmts))
+ self.assertEqual(9, len(tree.stmts))
self.assertIsInstance(tree.stmts[0], Statements)
self.assertIsInstance(tree.stmts[0].stmts[0], Node)
self.assertIsInstance(tree.stmts[1], Statements)
self.assertIsInstance(tree.stmts[1].stmts[0], Node)
self.assertIsInstance(tree.stmts[2], Statements)
self.assertIsInstance(tree.stmts[2].stmts[0], Node)
+ self.assertIsInstance(tree.stmts[3], Statements)
+ self.assertIsInstance(tree.stmts[3].stmts[0], Node)
+ self.assertIsInstance(tree.stmts[4], Statements)
+ self.assertIsInstance(tree.stmts[4].stmts[0], Node)
+ self.assertIsInstance(tree.stmts[5], Statements)
+ self.assertIsInstance(tree.stmts[5].stmts[0], Node)
+ self.assertIsInstance(tree.stmts[6], Statements)
+ self.assertIsInstance(tree.stmts[6].stmts[0], Node)
+ self.assertIsInstance(tree.stmts[7], Statements)
+ self.assertIsInstance(tree.stmts[7].stmts[0], Node)
+ self.assertIsInstance(tree.stmts[8], Statements)
+ self.assertIsInstance(tree.stmts[8].stmts[0], Node)
def test_diagram_includes_edges(self):
code = """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/src/blockdiag/utils/__init__.py
new/blockdiag-3.0.0/src/blockdiag/utils/__init__.py
--- old/blockdiag-2.0.1/src/blockdiag/utils/__init__.py 2020-01-13
10:55:52.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag/utils/__init__.py 2021-12-06
17:43:47.000000000 +0100
@@ -170,6 +170,8 @@
def unquote(string):
""" Remove quotas from string """
if string:
+ string = string.replace('"""', '').replace("'''", '')
+
m = re.match(r'\A(?P<quote>"|\')((.|\s)*)(?P=quote)\Z', string, re.M)
if m:
return re.sub("\\\\" + m.group(1), m.group(1), m.group(2))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/src/blockdiag.egg-info/PKG-INFO
new/blockdiag-3.0.0/src/blockdiag.egg-info/PKG-INFO
--- old/blockdiag-2.0.1/src/blockdiag.egg-info/PKG-INFO 2020-02-01
11:12:52.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag.egg-info/PKG-INFO 2021-12-06
17:43:51.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: blockdiag
-Version: 2.0.1
+Version: 3.0.0
Summary: blockdiag generates block-diagram image from text
Home-page: http://blockdiag.com/
Author: Takeshi Komiya
@@ -9,137 +9,139 @@
Download-URL: http://pypi.python.org/pypi/blockdiag
Project-URL: Code, https://github.com/blockdiag/blockdiag
Project-URL: Issue tracker, https://github.com/blockdiag/blockdiag/issues
-Description: `blockdiag` generate block-diagram image file from spec-text file.
-
- .. image::
https://drone.io/bitbucket.org/blockdiag/blockdiag/status.png
- :target: https://drone.io/bitbucket.org/blockdiag/blockdiag
- :alt: drone.io CI build status
-
- .. image:: https://pypip.in/v/blockdiag/badge.png
- :target: https://pypi.python.org/pypi/blockdiag/
- :alt: Latest PyPI version
-
- .. image:: https://pypip.in/d/blockdiag/badge.png
- :target: https://pypi.python.org/pypi/blockdiag/
- :alt: Number of PyPI downloads
-
-
- Features
- ========
- * Generate block-diagram from dot like text (basic feature).
- * Multilingualization for node-label (utf-8 only).
-
- You can get some examples and generated images on
- `blockdiag.com <http://blockdiag.com/en/blockdiag/examples.html>`_ .
-
- Setup
- =====
-
- Use pip::
-
- $ sudo pip install blockdiag
-
- If you want to export as PDF format, give pdf arguments::
-
- $ sudo pip install "blockdiag[pdf]"
-
-
- Copy and modify ini file. example::
-
- $ cp <blockdiag installed path>/blockdiag/examples/simple.diag .
- $ vi simple.diag
-
- Please refer to `spec-text setting sample`_ section for the format of
the
- `simpla.diag` configuration file.
-
- spec-text setting sample
- ========================
- Few examples are available.
- You can get more examples at
- `blockdiag.com`_ .
-
- simple.diag
- ------------
- simple.diag is simply define nodes and transitions by dot-like text
format::
-
- diagram admin {
- top_page -> config -> config_edit -> config_confirm -> top_page;
- }
-
- screen.diag
- ------------
- screen.diag is more complexly sample. diaglam nodes have a alternative
label
- and some transitions::
-
- diagram admin {
- top_page [label = "Top page"];
-
- foo_index [label = "List of FOOs"];
- foo_detail [label = "Detail FOO"];
- foo_add [label = "Add FOO"];
- foo_add_confirm [label = "Add FOO (confirm)"];
- foo_edit [label = "Edit FOO"];
- foo_edit_confirm [label = "Edit FOO (confirm)"];
- foo_delete_confirm [label = "Delete FOO (confirm)"];
-
- bar_detail [label = "Detail of BAR"];
- bar_edit [label = "Edit BAR"];
- bar_edit_confirm [label = "Edit BAR (confirm)"];
-
- logout;
-
- top_page -> foo_index;
- top_page -> bar_detail;
-
- foo_index -> foo_detail;
- foo_detail -> foo_edit;
- foo_detail -> foo_delete_confirm;
- foo_index -> foo_add -> foo_add_confirm -> foo_index;
- foo_index -> foo_edit -> foo_edit_confirm -> foo_index;
- foo_index -> foo_delete_confirm -> foo_index;
-
- bar_detail -> bar_edit -> bar_edit_confirm -> bar_detail;
- }
-
-
- Usage
- =====
- Execute blockdiag command::
-
- $ blockdiag simple.diag
- $ ls simple.png
- simple.png
-
-
- Requirements
- ============
- * Python 3.5 or later
- * Pillow 3.0 or later
- * funcparserlib 0.3.6 or later
- * reportlab (optional)
- * wand and imagemagick (optional)
- * setuptools
-
-
- License
- =======
- Apache License 2.0
-
Keywords: diagram,generator
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Documentation
Classifier: Topic :: Text Processing :: Markup
-Requires-Python: >=3.5
+Requires-Python: >=3.7
Description-Content-Type: text/x-rst
Provides-Extra: pdf
Provides-Extra: rst
Provides-Extra: testing
+License-File: LICENSE
+
+`blockdiag` generate block-diagram image file from spec-text file.
+
+.. image::
https://github.com/blockdiag/blockdiag/actions/workflows/main.yml/badge.svg
+ :target: https://github.com/blockdiag/blockdiag/actions/workflows/main.yml
+ :alt: GitHub Action CI build status
+
+.. image:: https://img.shields.io/pypi/v/blockdiag
+ :target: https://pypi.python.org/pypi/blockdiag/
+ :alt: Latest PyPI version
+
+.. image:: https://img.shields.io/pypi/dm/blockdiag
+ :target: https://pypi.python.org/pypi/blockdiag/
+ :alt: Number of PyPI downloads
+
+
+Features
+========
+* Generate block-diagram from dot like text (basic feature).
+* Multilingualization for node-label (utf-8 only).
+
+You can get some examples and generated images on
+`blockdiag.com <http://blockdiag.com/en/blockdiag/examples.html>`_ .
+
+Setup
+=====
+
+Use pip::
+
+ $ sudo pip install blockdiag
+
+If you want to export as PDF format, give pdf arguments::
+
+ $ sudo pip install "blockdiag[pdf]"
+
+
+Copy and modify ini file. example::
+
+ $ cp <blockdiag installed path>/blockdiag/examples/simple.diag .
+ $ vi simple.diag
+
+Please refer to `spec-text setting sample`_ section for the format of the
+`simpla.diag` configuration file.
+
+spec-text setting sample
+========================
+Few examples are available.
+You can get more examples at
+`blockdiag.com`_ .
+
+simple.diag
+------------
+simple.diag is simply define nodes and transitions by dot-like text format::
+
+ diagram admin {
+ top_page -> config -> config_edit -> config_confirm -> top_page;
+ }
+
+screen.diag
+------------
+screen.diag is more complexly sample. diaglam nodes have a alternative label
+and some transitions::
+
+ diagram admin {
+ top_page [label = "Top page"];
+
+ foo_index [label = "List of FOOs"];
+ foo_detail [label = "Detail FOO"];
+ foo_add [label = "Add FOO"];
+ foo_add_confirm [label = "Add FOO (confirm)"];
+ foo_edit [label = "Edit FOO"];
+ foo_edit_confirm [label = "Edit FOO (confirm)"];
+ foo_delete_confirm [label = "Delete FOO (confirm)"];
+
+ bar_detail [label = "Detail of BAR"];
+ bar_edit [label = "Edit BAR"];
+ bar_edit_confirm [label = "Edit BAR (confirm)"];
+
+ logout;
+
+ top_page -> foo_index;
+ top_page -> bar_detail;
+
+ foo_index -> foo_detail;
+ foo_detail -> foo_edit;
+ foo_detail -> foo_delete_confirm;
+ foo_index -> foo_add -> foo_add_confirm -> foo_index;
+ foo_index -> foo_edit -> foo_edit_confirm -> foo_index;
+ foo_index -> foo_delete_confirm -> foo_index;
+
+ bar_detail -> bar_edit -> bar_edit_confirm -> bar_detail;
+ }
+
+
+Usage
+=====
+Execute blockdiag command::
+
+ $ blockdiag simple.diag
+ $ ls simple.png
+ simple.png
+
+
+Requirements
+============
+* Python 3.7 or later
+* Pillow 3.0 or later
+* funcparserlib 1.0.0a0 or later
+* reportlab (optional)
+* wand and imagemagick (optional)
+* setuptools
+
+
+License
+=======
+Apache License 2.0
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/src/blockdiag.egg-info/SOURCES.txt
new/blockdiag-3.0.0/src/blockdiag.egg-info/SOURCES.txt
--- old/blockdiag-2.0.1/src/blockdiag.egg-info/SOURCES.txt 2020-02-01
11:12:52.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag.egg-info/SOURCES.txt 2021-12-06
17:43:51.000000000 +0100
@@ -22,7 +22,6 @@
examples/simple.diag
examples/simple.png
examples/simple.svg
-src/blockdiag_sphinxhelper.py
src/blockdiag/__init__.py
src/blockdiag/builder.py
src/blockdiag/command.py
@@ -98,6 +97,7 @@
src/blockdiag/tests/diagrams/README
src/blockdiag/tests/diagrams/auto_jumping_edge.diag
src/blockdiag/tests/diagrams/background_url_image.diag
+src/blockdiag/tests/diagrams/background_url_local.diag
src/blockdiag/tests/diagrams/beginpoint_color.diag
src/blockdiag/tests/diagrams/branched.diag
src/blockdiag/tests/diagrams/circular_ref.diag
@@ -158,6 +158,7 @@
src/blockdiag/tests/diagrams/nested_skipped_circular.diag
src/blockdiag/tests/diagrams/node_attribute.diag
src/blockdiag/tests/diagrams/node_attribute_and_group.diag
+src/blockdiag/tests/diagrams/node_has_block_label.diag
src/blockdiag/tests/diagrams/node_has_multilined_label.diag
src/blockdiag/tests/diagrams/node_height.diag
src/blockdiag/tests/diagrams/node_icon.diag
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/src/blockdiag.egg-info/requires.txt
new/blockdiag-3.0.0/src/blockdiag.egg-info/requires.txt
--- old/blockdiag-2.0.1/src/blockdiag.egg-info/requires.txt 2020-02-01
11:12:52.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag.egg-info/requires.txt 2021-12-06
17:43:51.000000000 +0100
@@ -1,5 +1,5 @@
setuptools
-funcparserlib
+funcparserlib>=1.0.0a0
Pillow>3.0
webcolors
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/src/blockdiag.egg-info/top_level.txt
new/blockdiag-3.0.0/src/blockdiag.egg-info/top_level.txt
--- old/blockdiag-2.0.1/src/blockdiag.egg-info/top_level.txt 2020-02-01
11:12:52.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag.egg-info/top_level.txt 2021-12-06
17:43:51.000000000 +0100
@@ -1,2 +1 @@
blockdiag
-blockdiag_sphinxhelper
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/src/blockdiag_sphinxhelper.py
new/blockdiag-3.0.0/src/blockdiag_sphinxhelper.py
--- old/blockdiag-2.0.1/src/blockdiag_sphinxhelper.py 2020-01-13
10:55:52.000000000 +0100
+++ new/blockdiag-3.0.0/src/blockdiag_sphinxhelper.py 1970-01-01
01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright 2011 Takeshi KOMIYA
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import blockdiag.builder
-import blockdiag.drawer
-import blockdiag.parser
-import blockdiag.utils.bootstrap
-import blockdiag.utils.compat
-import blockdiag.utils.fontmap
-import blockdiag.utils.rst.directives
-import blockdiag.utils.rst.nodes
-
-__all__ = [
- 'core', 'utils'
-]
-
-core = blockdiag
-utils = blockdiag.utils
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/blockdiag-2.0.1/tox.ini new/blockdiag-3.0.0/tox.ini
--- old/blockdiag-2.0.1/tox.ini 2020-01-13 10:55:52.000000000 +0100
+++ new/blockdiag-3.0.0/tox.ini 2021-12-06 17:43:47.000000000 +0100
@@ -1,5 +1,5 @@
[tox]
-envlist=py{35,36,37},pillow{3.x,4.x,5.x,6.x,7.x}
+envlist=py{37,38,39},pillow{3.x,4.x,5.x,6.x,7.x},flake8
[testenv]
usedevelop = True
@@ -19,4 +19,11 @@
ALL_TESTS
commands =
nosetests
+
+[testenv:flake8]
+description =
+ Run style checks.
+extras =
+ testing
+commands =
flake8 src
++++++ python-blockdiag-nose-to-pytest.patch ++++++
--- /var/tmp/diff_new_pack.lwTcBl/_old 2022-08-05 19:52:09.633635319 +0200
+++ /var/tmp/diff_new_pack.lwTcBl/_new 2022-08-05 19:52:09.637635330 +0200
@@ -1,8 +1,8 @@
-diff --git a/setup.py b/setup.py
-index 116434d..7da66c2 100644
---- a/setup.py
-+++ b/setup.py
-@@ -67,7 +67,7 @@ def get_version():
+Index: blockdiag-3.0.0/setup.py
+===================================================================
+--- blockdiag-3.0.0.orig/setup.py
++++ blockdiag-3.0.0/setup.py
+@@ -65,7 +65,7 @@ setup(
'docutils'
],
'testing': [
@@ -11,7 +11,7 @@
'flake8',
'flake8-coding',
'flake8-copyright',
-@@ -76,7 +76,6 @@ def get_version():
+@@ -74,7 +74,6 @@ setup(
'docutils',
],
},
@@ -19,43 +19,20 @@
entry_points="""
[console_scripts]
blockdiag = blockdiag.command:main
-diff --git a/src/blockdiag/tests/rst/test_blockdiag_directives.py
b/src/blockdiag/tests/rst/test_blockdiag_directives.py
-index 0b86583..72ed086 100644
---- a/src/blockdiag/tests/rst/test_blockdiag_directives.py
-+++ b/src/blockdiag/tests/rst/test_blockdiag_directives.py
-@@ -24,6 +24,9 @@
- from blockdiag.tests.utils import TemporaryDirectory, capture_stderr, with_pil
- from blockdiag.utils.rst import directives
-
-+TESTDIR = os.path.dirname(__file__)
-+FONTPATH = os.path.join(TESTDIR, '..', 'VLGothic', 'VL-Gothic-Regular.ttf')
-+
-
- class TestRstDirectives(unittest.TestCase):
- def setUp(self):
-@@ -178,7 +181,7 @@ def
test_setup_inline_svg_is_true_but_format_isnt_svg(self):
- self.assertEqual(nodes.image, type(doctree[0]))
-
- def test_setup_inline_svg_is_true_with_multibytes(self):
-- directives.setup(format='SVG', outputdir=self.tmpdir)
-+ directives.setup(format='SVG', outputdir=self.tmpdir,
fontpath=FONTPATH)
- text = (".. blockdiag::\n"
- "\n"
- " ??? -> ???")
-diff --git a/src/blockdiag/tests/test_generate_diagram.py
b/src/blockdiag/tests/test_generate_diagram.py
-index 361c86f..6b9a773 100644
---- a/src/blockdiag/tests/test_generate_diagram.py
-+++ b/src/blockdiag/tests/test_generate_diagram.py
-@@ -18,8 +18,6 @@
- import sys
+Index: blockdiag-3.0.0/src/blockdiag/tests/test_generate_diagram.py
+===================================================================
+--- blockdiag-3.0.0.orig/src/blockdiag/tests/test_generate_diagram.py
++++ blockdiag-3.0.0/src/blockdiag/tests/test_generate_diagram.py
+@@ -19,8 +19,6 @@ import sys
import unittest
+ from xml.etree import ElementTree
-from nose.tools import nottest
-
import blockdiag
import blockdiag.command
from blockdiag.tests.utils import (TemporaryDirectory, capture_stderr,
-@@ -51,7 +49,7 @@ def test_generate():
+@@ -52,7 +50,7 @@ def test_generate():
files = get_diagram_files(basepath)
options = []
@@ -64,7 +41,7 @@
yield testcase
-@@ -62,12 +60,11 @@ def test_generate_with_separate():
+@@ -63,12 +61,11 @@ def test_generate_with_separate():
filtered = (f for f in files if re.search('separate', f))
options = ['--separate']
@@ -79,16 +56,17 @@
fontpath = get_fontpath(basepath)
options = options + ['-f', fontpath]
-diff --git a/tox.ini b/tox.ini
-index 3912471..48b0c85 100644
---- a/tox.ini
-+++ b/tox.ini
-@@ -18,5 +18,5 @@ deps =
+Index: blockdiag-3.0.0/tox.ini
+===================================================================
+--- blockdiag-3.0.0.orig/tox.ini
++++ blockdiag-3.0.0/tox.ini
+@@ -18,7 +18,7 @@ deps =
passenv =
ALL_TESTS
commands =
- nosetests
+ pytest
- flake8 src
-
+
+ [testenv:flake8]
+ description =