28 lines
1.0 KiB
Diff
28 lines
1.0 KiB
Diff
|
From 4b82eae46164afb468bb8995d87cbc643dc9e7a6 Mon Sep 17 00:00:00 2001
|
||
|
From: Pablo Galindo <pablogsal@gmail.com>
|
||
|
Date: Fri, 9 Jun 2023 11:22:20 +0100
|
||
|
Subject: [PATCH 1/4] Fix factorial parsing for Python 3.12
|
||
|
|
||
|
Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
|
||
|
---
|
||
|
.mailmap | 1 +
|
||
|
sympy/parsing/sympy_parser.py | 5 ++++-
|
||
|
2 files changed, 5 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/sympy/parsing/sympy_parser.py b/sympy/parsing/sympy_parser.py
|
||
|
index 7e3a0e8067ce..1c89f0d25b9a 100644
|
||
|
--- a/sympy/parsing/sympy_parser.py
|
||
|
+++ b/sympy/parsing/sympy_parser.py
|
||
|
@@ -627,7 +627,10 @@ def factorial_notation(tokens: List[TOKEN], local_dict: DICT, global_dict: DICT)
|
||
|
result: List[TOKEN] = []
|
||
|
nfactorial = 0
|
||
|
for toknum, tokval in tokens:
|
||
|
- if toknum == ERRORTOKEN:
|
||
|
+ if toknum == OP and tokval == "!":
|
||
|
+ # In Python 3.12 "!" are OP instead of ERRORTOKEN
|
||
|
+ nfactorial += 1
|
||
|
+ elif toknum == ERRORTOKEN:
|
||
|
op = tokval
|
||
|
if op == '!':
|
||
|
nfactorial += 1
|