orientechnologies / pyorient

OrientDB driver for Python that uses the binary protocol.
Apache License 2.0
119 stars 38 forks source link

groovy.py parsing depends on sre internals and does not work for Python 3.6 #28

Open myukselen opened 6 years ago

myukselen commented 6 years ago

Used functionality is not exposed by sre_parse. As a work around version based implementation might be done in Scanner._get_group_pattern() function such as

        for phrase, action in self.lexicon:
            if sys.version_info >= (3, 6):  # internal representation changed in 3.6, add_flags del_flags are given 0
                patterns.append(sre_parse.SubPattern(sub_pattern, [
                    (SUBPATTERN, (len(patterns) + 1, 0, 0, sre_parse.parse(phrase, flags))), ]))
            else:
                patterns.append(sre_parse.SubPattern(sub_pattern, [
                    (SUBPATTERN, (len(patterns) + 1
                                  , sre_parse.parse(phrase, flags))),
                ]))