API client generator template uses deprecated syntax for regular expressions
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 52/100
Rechercherichtung
Beginnen Sie in generator/cybersource-python-template/api_client.mustache bei den referenzierten Zeilen 424 und 429 und suchen Sie dann in der Vorlage nach anderen regulären Ausdrücken, die Nicht-Raw-Strings verwenden. Generieren Sie den Client neu, falls der Projekt-Workflow dies zulässt, und führen Sie pytest unter Python 3.12 oder 3.13 aus; als erledigt gilt dies, wenn der generierte Client diese SyntaxWarnings oder damit zusammenhängende Fehler nicht mehr ausgibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Description
Using the REST Client library in a project with Python >= 3.12 results in chattery SyntaxWarning messages, and sometimes pytest failures.
Starting in Python 3.6, strings that contain invalid escape sequences raise a DeprecationWarning. This includes regular strings that are used for regex expressions, as regex uses backslashed characters to denote operators/classes/etc. and those don't match up with escape sequences. DeprecationWarning is usually silent, but in 3.12 this was changed so that these now emit a SyntaxWarning, which isn't silent.
Compounding the issue is that pytest treats these as a failure when using Python 3.13.
More Info
The change is noted in the What's New for 3.12 here: https://docs.python.org/3/whatsnew/3.12.html#other-language-changes
See also the discussion here: https://github.com/python/cpython/issues/98401
I created a very simple test case that demonstrates the issue. It is available here: https://github.com/jkachel/cybersource-rest-error
The pytest error output is in a comment below to keep this issue from being too long.
Potential Fix
Regular expressions should use raw strings.
The main offenders seem to be here: https://github.com/CyberSource/cybersource-rest-client-python/blob/9d057e3bf85f9c8085394ec319bb2c74e843ffc7/generator/cybersource-python-template/api_client.mustache#L424
and in line 429 in the same file. The fix should be as simple as adding r to the start of those regex strings. I don't have a workflow set up for regenerating this client, and there may be other instances where this should be fixed that I don't know about, so I haven't tried to fix it.
Workaround
Client code can use the warnings library to filter SyntaxWarning when importing the CyberSource API client. Ex:
import warnings
with warnings.catch_warnings():
warnings.filterwarnings("ignore", category=SyntaxWarning)
from CyberSource import ApiClient, OrdersApi
This resolves the issue in the short term but these should be fixed - as noted in the change, Python will (eventually) start emitting SyntaxError for these issues.
- Vorherrschende Sprache
- Python
- Sterne
- 24
- Forks
- 42
- Ø Merge
- 3 T. 18 Std.
- Gemergte PRs (30 T.)
- 1
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus CyberSource/cybersource-rest-client-python
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
loading configuration issueEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
CyberSource/cybersource-rest-client-python#177 · 1 Kommentar ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
CyberSource/cybersource-rest-client-python#168 · 2 Kommentare ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
CyberSource/cybersource-rest-client-python#156 · 1 Kommentar ·
Alle Issues in CyberSource/cybersource-rest-client-python
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
microsoft/agent-lightning#661 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
area/profiles comp/cli P3 type/feature
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
NousResearch/hermes-agent#146372 ·
Maintainer antworten meist innerhalb von 1 Tag
-
[BUG] OpenAI-compatible embedding model alias breaks embedder constructionEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
Maintainer antworten meist innerhalb von 1 Tag
-
[oblt-aw][autodoc] Document obs-aw-automerge contract and fix automerge doc inconsistenciesEvtl. vergeben @github-actions hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
GeoSeries scale and skew tests fail with pytest 9.2.0Evtl. vergeben @jiayuasu hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag