You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2023/01/20 21:28:27 UTC
[cassandra] 01/05: Accommodate python 3.11
This is an automated email from the ASF dual-hosted git repository.
brandonwilliams pushed a commit to branch cassandra-4.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit 0b5248d8c3ef743a8dda42f7be5dadb70e373b51
Author: Brandon Williams <br...@apache.org>
AuthorDate: Sun Dec 4 13:05:19 2022 -0600
Accommodate python 3.11
Patch by brandonwilliams; reviewed by bereng for CASSANDRA-18088
---
CHANGES.txt | 1 +
pylib/cqlshlib/saferscanner.py | 26 ++++++++++++++++++++++++--
2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index d51e991e34..8794ae533a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
4.0.8
+ * Add support for python 3.11 (CASSANDRA-18088)
* Fix formatting of duration in cqlsh (CASSANDRA-18141)
* Fix sstable loading of keyspaces named snapshots or backups (CASSANDRA-14013)
* Avoid ConcurrentModificationException in STCS/DTCS/TWCS.getSSTables (CASSANDRA-17977)
diff --git a/pylib/cqlshlib/saferscanner.py b/pylib/cqlshlib/saferscanner.py
index 8949321dff..6d7ba571af 100644
--- a/pylib/cqlshlib/saferscanner.py
+++ b/pylib/cqlshlib/saferscanner.py
@@ -20,7 +20,10 @@
import re
import six
-from sre_constants import BRANCH, SUBPATTERN, GROUPREF, GROUPREF_IGNORE, GROUPREF_EXISTS
+try:
+ from sre_constants import BRANCH, SUBPATTERN, GROUPREF, GROUPREF_IGNORE, GROUPREF_EXISTS
+except ImportError:
+ from re._constants import BRANCH, SUBPATTERN, GROUPREF, GROUPREF_IGNORE, GROUPREF_EXISTS
from sys import version_info
@@ -99,5 +102,24 @@ class Py38SaferScanner(SaferScannerBase):
self.scanner = re.sre_compile.compile(p)
+class Py311SaferScanner(SaferScannerBase):
+
+ def __init__(self, lexicon, flags=0):
+ self.lexicon = lexicon
+ p = []
+ s = re._parser.State()
+ s.flags = flags
+ for phrase, action in lexicon:
+ gid = s.opengroup()
+ p.append(re._parser.SubPattern(s, [(SUBPATTERN, (gid, 0, 0, re._parser.parse(phrase, flags))), ]))
+ s.closegroup(gid, p[-1])
+ p = re._parser.SubPattern(s, [(BRANCH, (None, p))])
+ self.p = p
+ self.scanner = re._compiler.compile(p)
+
+
SaferScanner = Py36SaferScanner if six.PY3 else Py2SaferScanner
-SaferScanner = Py38SaferScanner if version_info >= (3, 8) else SaferScanner
+if version_info >= (3, 11):
+ SaferScanner = Py311SaferScanner
+elif version_info >= (3, 8):
+ SaferScanner = Py38SaferScanner
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org