Hello community,

here is the log from the commit of package python-typed-ast for 
openSUSE:Factory checked in at 2019-01-26 22:18:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-typed-ast (Old)
 and      /work/SRC/openSUSE:Factory/.python-typed-ast.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-typed-ast"

Sat Jan 26 22:18:35 2019 rev:4 rq:667870 version:1.2.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-typed-ast/python-typed-ast.changes        
2018-09-24 13:12:06.765827771 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-typed-ast.new.28833/python-typed-ast.changes 
    2019-01-26 22:18:38.615039034 +0100
@@ -1,0 +2,21 @@
+Tue Jan 15 20:35:06 UTC 2019 - Sebastian Wagner <sebix+novell....@sebix.at>
+
+- Update to version 1.2.0:
+ * Fix conversions.py2to3 on unicode strings (#67)
+ * Fix remaining calls to Str without a kind (#68)
+ * Add "Python :: 3.7" to the classifiers list
+ * Some docs updates (#73)
+
+-------------------------------------------------------------------
+Wed Jan  2 09:48:30 UTC 2019 - Sebastian Wagner <sebix+novell....@sebix.at>
+
+- Update to version 1.1.1:
+ * Add __version__ string and tweak versioning scheme
+ * Point to the Python 3.6 commits as examples of how to update typed_ast (
+ * Add section on development philosophy
+ * Add information about the release process.
+ * Document Google Cloud Storage artifact deployment
+ * Preserve string kind modifiers
+ * Add docs for Str.kind
+
+-------------------------------------------------------------------

Old:
----
  typed-ast-1.1.0.tar.gz

New:
----
  typed-ast-1.2.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-typed-ast.spec ++++++
--- /var/tmp/diff_new_pack.LPgd2G/_old  2019-01-26 22:18:39.055038677 +0100
+++ /var/tmp/diff_new_pack.LPgd2G/_new  2019-01-26 22:18:39.055038677 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-typed-ast
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define skip_python2 1
 Name:           python-typed-ast
-Version:        1.1.0
+Version:        1.2.0
 Release:        0
 Summary:        A fork of Python 2 and 3 ast modules with type comment support
 License:        Apache-2.0

++++++ typed-ast-1.1.0.tar.gz -> typed-ast-1.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/PKG-INFO new/typed-ast-1.2.0/PKG-INFO
--- old/typed-ast-1.1.0/PKG-INFO        2017-07-18 23:30:05.000000000 +0200
+++ new/typed-ast-1.2.0/PKG-INFO        2019-01-14 23:53:26.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: typed-ast
-Version: 1.1.0
+Version: 1.2.0
 Summary: a fork of Python 2 and 3 ast modules with type comment support
 Home-page: https://github.com/python/typed_ast
 Author: David Fisher
@@ -23,4 +23,5 @@
 Classifier: Programming Language :: Python :: 3.4
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
 Classifier: Topic :: Software Development
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/README.md 
new/typed-ast-1.2.0/README.md
--- old/typed-ast-1.1.0/README.md       1970-01-01 01:00:00.000000000 +0100
+++ new/typed-ast-1.2.0/README.md       2019-01-14 23:38:36.000000000 +0100
@@ -0,0 +1,69 @@
+# Typed AST
+
+[![Build 
Status](https://travis-ci.org/python/typed_ast.svg?branch=master)](https://travis-ci.org/python/typed_ast)
+[![Chat at 
https://gitter.im/python/typed_ast](https://badges.gitter.im/python/typed_ast.svg)](https://gitter.im/python/typed_ast)
+
+`typed_ast` is a Python 3 package that provides a Python 2.7 and Python 3
+parser similar to the standard `ast` library.  Unlike `ast`, the parsers in
+`typed_ast` include [PEP 484](https://www.python.org/dev/peps/pep-0484/) type
+comments and are independent of the version of Python under which they are run.
+The `typed_ast` parsers produce the standard Python AST (plus type comments),
+and are both fast and correct, as they are based on the CPython 2.7 and 3.6
+parsers.  `typed_ast` runs on Python 3.3-3.7 on Linux, OS X and Windows.
+
+## Development Philosophy
+
+This project is a (mostly) drop-in replacement for the builtin `ast` module.  
It is
+intended to be bug-for-bug compatible and behave identically, except for the
+presence of a few additional fields on the returned classes and a few
+additional optional arguments to the `parse` call.  Therefore, `typed_ast` will
+not accept any bugfixes for bugs in `ast` -- they should be fixed upstream
+instead.  To avoid feature bloat, any new features for `typed_ast` should have
+the potential to be broadly useful and not be built just for one niche usecase
+or in a manner such that only one project can use them.
+
+### Incompatabilities
+
+For the purposes of *consuming* syntax trees, this should be a drop-in 
replacement.
+It is not a drop-in replacement for users that wish to create or transform 
ASTs,
+as a number of syntax tree classes have additional fields that must be 
populated
+when constructing them.
+
+### Python 3.7
+
+`typed_ast` has not yet been updated to be based on the Python 3.7
+parser. The main consequence of this that `await` and `async` are
+not treated as keywords.
+
+## Submodules
+### ast3
+The `ast3` parser produces the AST from a recent version of Python 3
+(currently Python 3.6).  When new versions of Python 3 are released, it will be
+updated to match any changes in their AST.  (For rationale and technical
+details, see [here](update_process.md).)  The AST it currently produces is 
described in
+[ast3/Parser/Python.asdl](ast3/Parser/Python.asdl).  If you wish to limit
+parsing to older versions of Python 3, `ast3` can be configured to to give a
+SyntaxError for new syntax features introduced beyond a given Python version.
+For more information, see the module docstring in
+[typed\_ast/ast3.py](typed_ast/ast3.py).
+
+### ast27
+The `ast27` parser tracks the standard Python 2.7 AST, which is expected to
+never receive further updates. The AST it produces is described in
+[ast27/Parser/Python.asdl](ast27/Parser/Python.asdl).  For more information,
+see the module docstring in [typed\_ast/ast27.py](typed_ast/ast27.py).
+
+### conversions
+`typed_ast` also provides a `conversions` module which converts `ast27` ASTs
+into `ast3` ASTs.  This functionality is somewhat experimental, however.  For
+more information, see the `py2to3` docstring in
+[typed\_ast/conversions](typed_ast/conversions.py).
+
+
+Note: as these parsers consider type comments part of the grammar, incorrectly
+placed type comments are considered syntax errors.
+
+## Updates and Releases
+To update `typed_ast` for new major Python releases, see 
[`update_process.md`](update_process.md).
+
+To make a new `typed_ast` release, see 
[`release_process.md`](release_process.md).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/ast27/Include/Python-ast.h 
new/typed-ast-1.2.0/ast27/Include/Python-ast.h
--- old/typed-ast-1.1.0/ast27/Include/Python-ast.h      2017-02-13 
03:44:53.000000000 +0100
+++ new/typed-ast-1.2.0/ast27/Include/Python-ast.h      2019-01-08 
22:00:51.000000000 +0100
@@ -286,7 +286,7 @@
                 
                 struct {
                         string s;
-                        int has_b;
+                        string kind;
                 } Str;
                 
                 struct {
@@ -505,7 +505,7 @@
 #define Num(a0, a1, a2, a3) _Ta27_Num(a0, a1, a2, a3)
 expr_ty _Ta27_Num(object n, int lineno, int col_offset, PyArena *arena);
 #define Str(a0, a1, a2, a3, a4) _Ta27_Str(a0, a1, a2, a3, a4)
-expr_ty _Ta27_Str(string s, int has_b, int lineno, int col_offset, PyArena 
*arena);
+expr_ty _Ta27_Str(string s, string kind, int lineno, int col_offset, PyArena 
*arena);
 #define Attribute(a0, a1, a2, a3, a4, a5) _Ta27_Attribute(a0, a1, a2, a3, a4, 
a5)
 expr_ty _Ta27_Attribute(expr_ty value, identifier attr, expr_context_ty ctx, 
int lineno, int
                         col_offset, PyArena *arena);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/ast27/Python/Python-ast.c 
new/typed-ast-1.2.0/ast27/Python/Python-ast.c
--- old/typed-ast-1.1.0/ast27/Python/Python-ast.c       2017-02-13 
03:44:53.000000000 +0100
+++ new/typed-ast-1.2.0/ast27/Python/Python-ast.c       2019-01-08 
22:00:51.000000000 +0100
@@ -252,7 +252,7 @@
 static PyTypeObject *Str_type;
 static char *Str_fields[]={
         "s",
-        "has_b",
+        "kind",
 };
 static PyTypeObject *Attribute_type;
 static char *Attribute_fields[]={
@@ -1850,7 +1850,7 @@
 }
 
 expr_ty
-Str(string s, int has_b, int lineno, int col_offset, PyArena *arena)
+Str(string s, string kind, int lineno, int col_offset, PyArena *arena)
 {
         expr_ty p;
         if (!s) {
@@ -1858,12 +1858,17 @@
                                 "field s is required for Str");
                 return NULL;
         }
+        if (!kind) {
+                PyErr_SetString(PyExc_ValueError,
+                                "field kind is required for Str");
+                return NULL;
+        }
         p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
         if (!p)
                 return NULL;
         p->kind = Str_kind;
         p->v.Str.s = s;
-        p->v.Str.has_b = has_b;
+        p->v.Str.kind = kind;
         p->lineno = lineno;
         p->col_offset = col_offset;
         return p;
@@ -2889,9 +2894,9 @@
                 if (PyObject_SetAttrString(result, "s", value) == -1)
                         goto failed;
                 Py_DECREF(value);
-                value = ast2obj_int(o->v.Str.has_b);
+                value = ast2obj_string(o->v.Str.kind);
                 if (!value) goto failed;
-                if (PyObject_SetAttrString(result, "has_b", value) == -1)
+                if (PyObject_SetAttrString(result, "kind", value) == -1)
                         goto failed;
                 Py_DECREF(value);
                 break;
@@ -5714,7 +5719,7 @@
         }
         if (isinstance) {
                 string s;
-                int has_b;
+                string kind;
 
                 if (PyObject_HasAttrString(obj, "s")) {
                         int res;
@@ -5728,18 +5733,19 @@
                         PyErr_SetString(PyExc_TypeError, "required field \"s\" 
missing from Str");
                         return 1;
                 }
-                if (PyObject_HasAttrString(obj, "has_b")) {
+                if (PyObject_HasAttrString(obj, "kind")) {
                         int res;
-                        tmp = PyObject_GetAttrString(obj, "has_b");
+                        tmp = PyObject_GetAttrString(obj, "kind");
                         if (tmp == NULL) goto failed;
-                        res = obj2ast_int(tmp, &has_b, arena);
+                        res = obj2ast_string(tmp, &kind, arena);
                         if (res != 0) goto failed;
                         Py_XDECREF(tmp);
                         tmp = NULL;
                 } else {
-                        has_b = 0;
+                        PyErr_SetString(PyExc_TypeError, "required field 
\"kind\" missing from Str");
+                        return 1;
                 }
-                *out = Str(s, has_b, lineno, col_offset, arena);
+                *out = Str(s, kind, lineno, col_offset, arena);
                 if (*out == NULL) goto failed;
                 return 0;
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/ast27/Python/ast.c 
new/typed-ast-1.2.0/ast27/Python/ast.c
--- old/typed-ast-1.1.0/ast27/Python/ast.c      2017-07-18 23:12:27.000000000 
+0200
+++ new/typed-ast-1.2.0/ast27/Python/ast.c      2019-01-08 22:00:51.000000000 
+0100
@@ -1498,10 +1498,20 @@
         return Name(name, Load, LINENO(n), n->n_col_offset, c->c_arena);
     }
     case STRING: {
-        PyObject *str = parsestrplus(c, n);
-        const char *s = STR(CHILD(n, 0));
+        PyObject *kind, *str = parsestrplus(c, n);
+        const char *raw, *s = STR(CHILD(n, 0));
         int quote = Py_CHARMASK(*s);
-        int has_b = 0;
+        /* currently Python allows up to 2 string modifiers */
+        char *ch, s_kind[3] = {0, 0, 0};
+        ch = s_kind;
+        raw = s;
+        while (*raw && *raw != '\'' && *raw != '"') {
+            *ch++ = *raw++;
+        }
+        kind = PyUnicode_FromString(s_kind);
+        if (!kind) {
+            return NULL;
+        }
         if (!str) {
 #ifdef Py_USING_UNICODE
             if (PyErr_ExceptionMatches(PyExc_UnicodeError)){
@@ -1526,10 +1536,7 @@
             return NULL;
         }
         PyArena_AddPyObject(c->c_arena, str);
-        if (quote == 'b' || quote == 'B') {
-            has_b = 1;
-        }
-        return Str(str, has_b, LINENO(n), n->n_col_offset, c->c_arena);
+        return Str(str, kind, LINENO(n), n->n_col_offset, c->c_arena);
     }
     case NUMBER: {
         PyObject *pynum = parsenumber(c, STR(ch));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/ast3/Include/Python-ast.h 
new/typed-ast-1.2.0/ast3/Include/Python-ast.h
--- old/typed-ast-1.1.0/ast3/Include/Python-ast.h       2017-02-13 
03:03:59.000000000 +0100
+++ new/typed-ast-1.2.0/ast3/Include/Python-ast.h       2019-01-12 
01:00:24.000000000 +0100
@@ -318,6 +318,7 @@
         
         struct {
             string s;
+            string kind;
         } Str;
         
         struct {
@@ -601,8 +602,9 @@
                   lineno, int col_offset, PyArena *arena);
 #define Num(a0, a1, a2, a3) _Ta3_Num(a0, a1, a2, a3)
 expr_ty _Ta3_Num(object n, int lineno, int col_offset, PyArena *arena);
-#define Str(a0, a1, a2, a3) _Ta3_Str(a0, a1, a2, a3)
-expr_ty _Ta3_Str(string s, int lineno, int col_offset, PyArena *arena);
+#define Str(a0, a1, a2, a3, a4) _Ta3_Str(a0, a1, a2, a3, a4)
+expr_ty _Ta3_Str(string s, string kind, int lineno, int col_offset, PyArena
+                 *arena);
 #define FormattedValue(a0, a1, a2, a3, a4, a5) _Ta3_FormattedValue(a0, a1, a2, 
a3, a4, a5)
 expr_ty _Ta3_FormattedValue(expr_ty value, int conversion, expr_ty format_spec,
                             int lineno, int col_offset, PyArena *arena);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/ast3/Python/Python-ast.c 
new/typed-ast-1.2.0/ast3/Python/Python-ast.c
--- old/typed-ast-1.1.0/ast3/Python/Python-ast.c        2017-02-13 
03:03:59.000000000 +0100
+++ new/typed-ast-1.2.0/ast3/Python/Python-ast.c        2019-01-12 
01:09:27.000000000 +0100
@@ -307,8 +307,10 @@
 };
 static PyTypeObject *Str_type;
 _Py_IDENTIFIER(s);
+_Py_IDENTIFIER(kind);
 static char *Str_fields[]={
     "s",
+    "kind",
 };
 static PyTypeObject *FormattedValue_type;
 _Py_IDENTIFIER(conversion);
@@ -983,7 +985,7 @@
     if (!Call_type) return 0;
     Num_type = make_type("Num", expr_type, Num_fields, 1);
     if (!Num_type) return 0;
-    Str_type = make_type("Str", expr_type, Str_fields, 1);
+    Str_type = make_type("Str", expr_type, Str_fields, 2);
     if (!Str_type) return 0;
     FormattedValue_type = make_type("FormattedValue", expr_type,
                                     FormattedValue_fields, 3);
@@ -2181,7 +2183,7 @@
 }
 
 expr_ty
-Str(string s, int lineno, int col_offset, PyArena *arena)
+Str(string s, string kind, int lineno, int col_offset, PyArena *arena)
 {
     expr_ty p;
     if (!s) {
@@ -2189,11 +2191,17 @@
                         "field s is required for Str");
         return NULL;
     }
+    if (!kind) {
+        PyErr_SetString(PyExc_ValueError,
+                        "field kind is required for Str");
+        return NULL;
+    }
     p = (expr_ty)PyArena_Malloc(arena, sizeof(*p));
     if (!p)
         return NULL;
     p->kind = Str_kind;
     p->v.Str.s = s;
+    p->v.Str.kind = kind;
     p->lineno = lineno;
     p->col_offset = col_offset;
     return p;
@@ -3448,6 +3456,11 @@
         if (_PyObject_SetAttrId(result, &PyId_s, value) == -1)
             goto failed;
         Py_DECREF(value);
+        value = ast2obj_string(o->v.Str.kind);
+        if (!value) goto failed;
+        if (_PyObject_SetAttrId(result, &PyId_kind, value) == -1)
+            goto failed;
+        Py_DECREF(value);
         break;
     case FormattedValue_kind:
         result = PyType_GenericNew(FormattedValue_type, NULL, NULL);
@@ -6766,6 +6779,7 @@
     }
     if (isinstance) {
         string s;
+        string kind;
 
         if (_PyObject_HasAttrId(obj, &PyId_s)) {
             int res;
@@ -6778,7 +6792,18 @@
             PyErr_SetString(PyExc_TypeError, "required field \"s\" missing 
from Str");
             return 1;
         }
-        *out = Str(s, lineno, col_offset, arena);
+        if (_PyObject_HasAttrId(obj, &PyId_kind)) {
+            int res;
+            tmp = _PyObject_GetAttrId(obj, &PyId_kind);
+            if (tmp == NULL) goto failed;
+            res = obj2ast_string(tmp, &kind, arena);
+            if (res != 0) goto failed;
+            Py_CLEAR(tmp);
+        } else {
+            PyErr_SetString(PyExc_TypeError, "required field \"kind\" missing 
from Str");
+            return 1;
+        }
+        *out = Str(s, kind, lineno, col_offset, arena);
         if (*out == NULL) goto failed;
         return 0;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/ast3/Python/ast.c 
new/typed-ast-1.2.0/ast3/Python/ast.c
--- old/typed-ast-1.1.0/ast3/Python/ast.c       2017-07-18 23:12:27.000000000 
+0200
+++ new/typed-ast-1.2.0/ast3/Python/ast.c       2019-01-08 22:00:51.000000000 
+0100
@@ -4971,14 +4971,25 @@
 static expr_ty
 make_str_node_and_del(PyObject **str, struct compiling *c, const node* n)
 {
-    PyObject *s = *str;
+    PyObject *kind, *s = *str;
+    const char *raw = STR(CHILD(n, 0));
+    /* currently Python allows up to 2 string modifiers */
+    char *ch, s_kind[3] = {0, 0, 0};
+    ch = s_kind;
+    while (*raw && *raw != '\'' && *raw != '"') {
+        *ch++ = *raw++;
+    }
+    kind = PyUnicode_FromString(s_kind);
+    if (!kind) {
+        return NULL;
+    }
     *str = NULL;
     assert(PyUnicode_CheckExact(s));
     if (PyArena_AddPyObject(c->c_arena, s) < 0) {
         Py_DECREF(s);
         return NULL;
     }
-    return Str(s, LINENO(n), n->n_col_offset, c->c_arena);
+    return Str(s, kind, LINENO(n), n->n_col_offset, c->c_arena);
 }
 
 /* Add a non-f-string (that is, a regular literal string). str is
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/setup.py new/typed-ast-1.2.0/setup.py
--- old/typed-ast-1.1.0/setup.py        2017-07-18 23:23:52.000000000 +0200
+++ new/typed-ast-1.2.0/setup.py        2019-01-14 23:38:36.000000000 +0100
@@ -1,3 +1,5 @@
+import ast
+import re
 import sys
 if sys.version_info[0] < 3 or sys.version_info[1] < 3:
     sys.exit('Error: typed_ast only runs on Python 3.3 and above.')
@@ -86,8 +88,14 @@
 based on the CPython 2.7 and 3.6 parsers.
 """.strip()
 
+_version_re = re.compile(r'__version__\s+=\s+(?P<version>.*)')
+
+with open('typed_ast/__init__.py', 'r', encoding='utf8') as f:
+    version = _version_re.search(f.read()).group('version')
+    version = str(ast.literal_eval(version))
+
 setup (name = 'typed-ast',
-       version = '1.1.0',
+       version = version,
        description = 'a fork of Python 2 and 3 ast modules with type comment 
support',
        long_description = long_description,
        author = 'David Fisher',
@@ -105,6 +113,7 @@
            'Programming Language :: Python :: 3.4',
            'Programming Language :: Python :: 3.5',
            'Programming Language :: Python :: 3.6',
+           'Programming Language :: Python :: 3.7',
            'Topic :: Software Development',
        ],
        packages = ['typed_ast'],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/typed_ast/__init__.py 
new/typed-ast-1.2.0/typed_ast/__init__.py
--- old/typed-ast-1.1.0/typed_ast/__init__.py   2017-02-13 03:04:00.000000000 
+0100
+++ new/typed-ast-1.2.0/typed_ast/__init__.py   2019-01-14 23:38:36.000000000 
+0100
@@ -1 +1 @@
-
+__version__ = "1.2.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/typed_ast/ast27.py 
new/typed-ast-1.2.0/typed_ast/ast27.py
--- old/typed-ast-1.1.0/typed_ast/ast27.py      2017-02-13 03:44:53.000000000 
+0100
+++ new/typed-ast-1.2.0/typed_ast/ast27.py      2019-01-14 20:27:57.000000000 
+0100
@@ -19,9 +19,8 @@
       called with `mode=func_type`.
     - `Module` has a `type_ignores` field which contains a list of
       lines which have been `# type: ignore`d.
-    - `Str` has a `has_b` boolean field which indicates if the string is
-      explicitly prefixed with a `b`. (This is deprecated and may be removed in
-      future versions.)
+    - `Str` has a `kind` string field which preserves the original string
+      prefix, so that `ast27.parse('br"test"').body[0].value.kind == 'br'`.
 
     An abstract syntax tree can be generated by using the `parse()`
     function from this module.  The result will be a tree of objects whose
@@ -284,7 +283,7 @@
            def visit_Name(self, node):
                return copy_location(Subscript(
                    value=Name(id='data', ctx=Load()),
-                   slice=Index(value=Str(s=node.id)),
+                   slice=Index(value=Str(s=node.id, kind='')),
                    ctx=node.ctx
                ), node)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/typed_ast/ast3.py 
new/typed-ast-1.2.0/typed_ast/ast3.py
--- old/typed-ast-1.1.0/typed_ast/ast3.py       2017-06-14 02:18:32.000000000 
+0200
+++ new/typed-ast-1.2.0/typed_ast/ast3.py       2019-01-14 20:27:57.000000000 
+0100
@@ -21,6 +21,8 @@
       newer Python syntax features.
     - `Module` has a `type_ignores` field which contains a list of
       lines which have been `# type: ignore`d.
+    - `Str` has a `kind` string field which preserves the original string
+      prefix, so that `ast3.parse('u"test"').body[0].value.kind == 'u'`.
 
     An abstract syntax tree can be generated by using the `parse()`
     function from this module.  The result will be a tree of objects whose
@@ -51,8 +53,8 @@
     fully supported for Python 3.5+ with partial support for Python 3.4.
     So, feature_version=3 or less are all equivalent to feature_version=4.
 
-    When feature_version=4, the parser will forbid the use of the async/await 
-    keywords and the '@' operator, but will not forbid the use of PEP 448 
+    When feature_version=4, the parser will forbid the use of the async/await
+    keywords and the '@' operator, but will not forbid the use of PEP 448
     additional unpacking generalizations, which were also added in Python 3.5.
     """
     return _ast3._parse(source, filename, mode, feature_version)
@@ -304,7 +306,7 @@
            def visit_Name(self, node):
                return copy_location(Subscript(
                    value=Name(id='data', ctx=Load()),
-                   slice=Index(value=Str(s=node.id)),
+                   slice=Index(value=Str(s=node.id, kind='')),
                    ctx=node.ctx
                ), node)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/typed_ast/conversions.py 
new/typed-ast-1.2.0/typed_ast/conversions.py
--- old/typed-ast-1.1.0/typed_ast/conversions.py        2017-02-13 
03:44:53.000000000 +0100
+++ new/typed-ast-1.2.0/typed_ast/conversions.py        2019-01-14 
20:27:57.000000000 +0100
@@ -106,7 +106,8 @@
             keywords.append(ast3.keyword("file", self.visit(n.dest)))
 
         if not n.nl:
-            keywords.append(ast3.keyword("end", ast3.Str(" ", lineno=n.lineno, 
col_offset=-1)))
+            keywords.append(ast3.keyword("end",
+                                         ast3.Str(s=" ", kind='', 
lineno=n.lineno, col_offset=-1)))
 
         return ast3.Expr(ast3.Call(ast3.Name("print", ast3.Load(), 
lineno=n.lineno, col_offset=-1),
                                    self.visit(n.values),
@@ -218,7 +219,7 @@
         if isinstance(s.s, bytes):
             return ast3.Bytes(s.s)
         else:
-            return ast3.Str(s.s)
+            return ast3.Str(s.s, s.kind)
 
     def visit_Num(self, n):
         new = self.generic_visit(n)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/typed_ast.egg-info/PKG-INFO 
new/typed-ast-1.2.0/typed_ast.egg-info/PKG-INFO
--- old/typed-ast-1.1.0/typed_ast.egg-info/PKG-INFO     2017-07-18 
23:30:05.000000000 +0200
+++ new/typed-ast-1.2.0/typed_ast.egg-info/PKG-INFO     2019-01-14 
23:53:26.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: typed-ast
-Version: 1.1.0
+Version: 1.2.0
 Summary: a fork of Python 2 and 3 ast modules with type comment support
 Home-page: https://github.com/python/typed_ast
 Author: David Fisher
@@ -23,4 +23,5 @@
 Classifier: Programming Language :: Python :: 3.4
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
 Classifier: Topic :: Software Development
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typed-ast-1.1.0/typed_ast.egg-info/SOURCES.txt 
new/typed-ast-1.2.0/typed_ast.egg-info/SOURCES.txt
--- old/typed-ast-1.1.0/typed_ast.egg-info/SOURCES.txt  2017-07-18 
23:30:05.000000000 +0200
+++ new/typed-ast-1.2.0/typed_ast.egg-info/SOURCES.txt  2019-01-14 
23:53:26.000000000 +0100
@@ -1,5 +1,6 @@
 LICENSE
 MANIFEST.in
+README.md
 setup.py
 ast27/Custom/typed_ast.c
 ast27/Include/Python-ast.h


Reply via email to