openapi-generators / openapi-generators/openapi-python-client
Generates SyntaxError if a path parameter without a default value follows another that has a default value
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Python
- Estrelas
- 2k
- Forks
- 293
- Merge médio
- 34min
- PRs com merge (30d)
- 1
Descrição
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.
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Reproduza o problema com a especificação OpenAPI mínima do relatório e inspecione o caminho do gerador que cria a assinatura _get_kwargs gerada para parâmetros de caminho. Confirme a correção gerando um cliente com sucesso e verificando que parâmetros de caminho obrigatórios podem seguir parâmetros com valores padrão sem causar um Python SyntaxError.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- openapi, python
- Domínio
- api, tooling
- Tipo de issue
- Bug
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Estagnada
- Clareza
- Claramente especificada
- Facilidade para iniciantes
- 50/100