Date: Tuesday, February 19, 2019 @ 19:38:23 Author: felixonmars Revision: 434583
archrelease: copy trunk to community-any Added: python-astor/repos/community-any/PKGBUILD (from rev 434582, python-astor/trunk/PKGBUILD) python-astor/repos/community-any/string-newline.patch (from rev 434582, python-astor/trunk/string-newline.patch) Deleted: python-astor/repos/community-any/PKGBUILD ----------------------+ PKGBUILD | 88 ++++++++++++++++++++----------------------------- string-newline.patch | 56 +++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 52 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2019-02-19 19:38:05 UTC (rev 434582) +++ PKGBUILD 2019-02-19 19:38:23 UTC (rev 434583) @@ -1,52 +0,0 @@ -# $Id$ -# Maintainer: Felix Yan <felixonm...@archlinux.org> - -pkgbase=python-astor -pkgname=('python-astor' 'python2-astor') -pkgver=0.7.1 -pkgrel=1 -pkgdesc="Read/rewrite/write Python ASTs" -arch=('any') -license=('BSD') -url="http://astor.rtfd.org/" -makedepends=('python-setuptools' 'python2-setuptools') -checkdepends=('python-nose' 'python2-nose' 'python2-unittest2') -source=("$pkgbase-$pkgver.tar.gz::https://github.com/berkerpeksag/astor/archive/$pkgver.tar.gz") -sha512sums=('02764e5751e4c4b0ffa83da262b87e0a6bf027461529a99d3ca01a415db0896754f2b3f278e8a28f9bce4972ee7a75eec4eec5ac47d1064e6d6656a007b38a64') - -prepare() { - cp -a astor-$pkgver{,-py2} -} - -build() { - cd "$srcdir"/astor-$pkgver - python setup.py build - - cd "$srcdir"/astor-$pkgver-py2 - python2 setup.py build -} - -check() { - # https://github.com/berkerpeksag/astor/issues/89 - cd "$srcdir"/astor-$pkgver - nosetests3 || warning "Tests failed" - - cd "$srcdir"/astor-$pkgver-py2 - nosetests2 -} - -package_python-astor() { - depends=('python') - - cd astor-$pkgver - python setup.py install --root="$pkgdir" --optimize=1 - install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE -} - -package_python2-astor() { - depends=('python2') - - cd astor-$pkgver-py2 - python2 setup.py install --root="$pkgdir" --optimize=1 - install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE -} Copied: python-astor/repos/community-any/PKGBUILD (from rev 434582, python-astor/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2019-02-19 19:38:23 UTC (rev 434583) @@ -0,0 +1,36 @@ +# Maintainer: Felix Yan <felixonm...@archlinux.org> + +pkgname=python-astor +pkgver=0.7.1 +pkgrel=2 +pkgdesc="Read/rewrite/write Python ASTs" +arch=('any') +license=('BSD') +url="http://astor.rtfd.org/" +depends=('python') +makedepends=('python-setuptools') +checkdepends=('python-nose') +source=("$pkgname-$pkgver.tar.gz::https://github.com/berkerpeksag/astor/archive/$pkgver.tar.gz" + string-newline.patch) +sha512sums=('02764e5751e4c4b0ffa83da262b87e0a6bf027461529a99d3ca01a415db0896754f2b3f278e8a28f9bce4972ee7a75eec4eec5ac47d1064e6d6656a007b38a64' + 'ad977606c1b0374dccece65a9743e875e250e86d923c987eee7babb09f1209a874a7b447f253e1666364da32e309579d261ac70cf32b3d909c9fe78501b19cb8') + +prepare() { + patch -d astor-$pkgver -p1 -i ../string-newline.patch +} + +build() { + cd astor-$pkgver + python setup.py build +} + +check() { + cd astor-$pkgver + nosetests3 || warning "https://github.com/berkerpeksag/astor/issues/124" +} + +package() { + cd astor-$pkgver + python setup.py install --root="$pkgdir" --optimize=1 + install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE +} Copied: python-astor/repos/community-any/string-newline.patch (from rev 434582, python-astor/trunk/string-newline.patch) =================================================================== --- string-newline.patch (rev 0) +++ string-newline.patch 2019-02-19 19:38:23 UTC (rev 434583) @@ -0,0 +1,56 @@ +commit 33f0e57bc84f0cd5cdf994127d81c99f2a23f659 +Author: Felix Yan <felixonm...@archlinux.org> +Date: Wed Feb 20 01:56:35 2019 +0800 + + Fix string parsing with newline + + When looping over a joined str, if a node is ast.Str and the value is + just a newline "\n", the write() function adds an additional indentation + after it, which fails to represent the original string. By calling + self.result.append() here directly the issue is resolved. + + The added test could show the issue. With code_gen unmodifed, it fails + with the following error: + + ``` + AssertionError: "if 1:\n x = f'{host}\\n\\t{port}\\n '" != "if + 1:\n x = f'{host}\\n\\t{port}\\n'" + if 1: + - x = f'{host}\n\t{port}\n '? + ---- + + x = f'{host}\n\t{port}\n' + ``` + + Which is exactly the problem. + + This fixes parsing issues with many of Python 3.7's stdlib. + +diff --git a/astor/code_gen.py b/astor/code_gen.py +index 157d2cc..453d108 100644 +--- a/astor/code_gen.py ++++ b/astor/code_gen.py +@@ -566,7 +566,7 @@ class SourceGenerator(ExplicitNodeVisitor): + def recurse(node): + for value in node.values: + if isinstance(value, ast.Str): +- self.write(value.s) ++ self.result.append(value.s) + elif isinstance(value, ast.FormattedValue): + with self.delimit('{}'): + self.visit(value.value) +diff --git a/tests/test_code_gen.py b/tests/test_code_gen.py +index 3a8be7b..0db4279 100644 +--- a/tests/test_code_gen.py ++++ b/tests/test_code_gen.py +@@ -516,6 +516,11 @@ class CodegenTestCase(unittest.TestCase, Comparisons): + x = f"""{host}\n\t{port}\n""" + ''' + self.assertSrcRoundtripsGtVer(source, (3, 6)) ++ source = ''' ++ if 1: ++ x = f'{host}\\n\\t{port}\\n' ++ ''' ++ self.assertSrcRoundtripsGtVer(source, (3, 6)) + + def test_docstring_function(self): + source = '''