Generates SyntaxError if a path parameter without a default value follows another that has a default value
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 50/100
Piste de recherche
Reproduisez le problème avec la spécification OpenAPI minimale du rapport et inspectez le chemin du générateur qui construit la signature _get_kwargs générée pour les paramètres de chemin. Confirmez la correction en générant un client avec succès et en vérifiant que des paramètres de chemin obligatoires peuvent suivre des paramètres avec des valeurs par défaut sans provoquer de Python SyntaxError.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Describe the bug
Fails to generate client when a path parameter without a default value follows another one that has a default value.
Message:
Error(s) encountered while generating, client was not created
ruff failed
SyntaxError: Parameter without a default cannot follow a parameter with a default
OpenAPI Spec File
Motivating api: https://avaandmed.keskkonnaportaal.ee/swagger/index.html ("File of document")
Minimum example:
openapi: 3.0.0
info:
title: Minimal Repro for Parameter Order Bug
version: 1.0.0
paths:
/test/{has_default}/{no_default}:
get:
summary: Test endpoint with required path params, some with defaults
parameters:
- name: has_default
in: path
required: true
schema:
type: string
default: default_value
description: Required path param with default
- name: no_default
in: path
required: true
schema:
type: integer
description: Required path param, no default
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
result:
type: string
Desktop (please complete the following information):
- OS: Ubuntu 22.04.5 LTS
- Python Version: 3.10.12
- openapi-python-client version 0.25.2
Additional context
The generated function signature for _get_kwargs looks like this:
def _get_kwargs(
has_default: str = 'default_value',
no_default: int,
) -> dict[str, Any]:
The issue does not occur for query parameters, as the generator emits keyword-only arguments (*) for them. It only occurs for path parameters, which are emitted as positional-or-keyword arguments.
- Langage dominant
- Python
- Étoiles
- 2k
- Forks
- 293
- Merge moyen
- 34 min
- PR mergées (30 j)
- 1
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de openapi-generators/openapi-python-client
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 72/100
openapi-generators/openapi-python-client#1451 · 1 commentaire ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 52/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 64/100
openapi-generators/openapi-python-client#1435 · 1 commentaire ·
Toutes les issues de openapi-generators/openapi-python-client
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
anthropics/skills#1811 · 1 commentaire ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
speaches-ai/speaches#678 ·
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
datalayer/mcp-compose#42 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
conda-forge/spacy-feedstock#177 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
UKGovernmentBEIS/inspect_evals#2523 ·