Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

API client generator template uses deprecated syntax for regular expressions

Offen
#143 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
52/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
api, tooling

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

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus CyberSource/cybersource-rest-client-python

Alle Issues in CyberSource/cybersource-rest-client-python

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.