openapi-generators / openapi-generators/openapi-python-client

Quotes in Content-Type cause syntax errors

Aperta
#1,350 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Python
Stelle
2k
Fork
293
Merge medio
34m
PR unite (30g)
1

Descrizione

Describe the bug
Running openapi-python-client generate --path api.yml on the input file below fails with:

Generating /tmp/example-client
Error(s) encountered while generating, client was not created

ruff failed

example_client/api/default/put_object.py:34:62: SyntaxError: Simple statements must be separated by newlines or semicolons
   |
33 |     _kwargs["json"] = _body
34 |     headers["Content-Type"] = "application/ld+json; profile="https://www.w3.org/ns/activitystreams""
   |                                                              ^
35 |
36 |     _kwargs["headers"] = headers
   |
[...]

Quotes in the Content-Type should be escaped so that the generated result is legal Python code.

OpenAPI Spec File

openapi: "3.0.0"

info:
  version: 0.0.1
  title: example

paths:
  /object:
    put:
      requestBody:
        content:
          "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"":
            schema:
              type: string
      responses:
        '200':
          description: OK

Desktop (please complete the following information):

  • OS: Debian 13
  • Python Version: 3.12.11
  • openapi-python-client version: 0.24.3

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Riproduci il problema con openapi-python-client generate --path api.yml utilizzando l’esempio OpenAPI nell’issue, quindi segui il punto in cui il valore Content-Type diventa l’assegnazione generata di headers. Il lavoro è completato quando i parametri Content-Type tra virgolette producono Python valido e la generazione termina senza l’errore di sintassi di Ruff segnalato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
tooling
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.