Skip to content

Conversation

theorm
Copy link

@theorm theorm commented Jul 19, 2024

Generating literal types alongside string and int Enums. We really need it in our code so have this in our custom templates. I thought there are others who would like to have it in the default template.

Replaces the original PR. This PR adds tests.

@dbanty dbanty added the ✨ enhancement New feature or improvement label Aug 25, 2024
@knope-bot knope-bot bot mentioned this pull request Oct 20, 2024
github-merge-queue bot pushed a commit that referenced this pull request Oct 20, 2024
> [!IMPORTANT]
> Merging this pull request will create this release

## Features

- update Ruff to >=0.2,<0.8 (#1137)
- Add UUID string format. Thanks @estyrke! (#1140)
- Support OpenAPI 3.1 prefixItems property for arrays. Thanks @estyrke!
(#1141)

### Add `literal_enums` config setting

Instead of the default `Enum` classes for enums, you can now generate
`Literal` sets wherever `enum` appears in the OpenAPI spec by setting
`literal_enums: true` in your config file.

```yaml
literal_enums: true
```

Thanks to @emosenkis for PR #1114 closes #587, #725, #1076, and probably
many more.
Thanks also to @eli-bl, @expobrain, @theorm, @chrisguillory, and anyone
else who helped getting to this design!

## Fixes

- Typo in docstring (#1128)

### Use literal value instead of `HTTPStatus` enum when checking
response statuses

Python 3.13 renamed some of the `HTTPStatus` enum members, which means
clients generated with Python 3.13 may not work
with older versions of Python. This change stops using the `HTTPStatus`
enum directly when checking response statuses.

Statuses will still be checked for validity at generation time, and
transformed into `HTTPStatus` _after_ being checked
at runtime.

This may cause some linters to complain.

Co-authored-by: knope-bot[bot] <152252888+knope-bot[bot]@users.noreply.github.com>
@dbanty
Copy link
Collaborator

dbanty commented Oct 20, 2024

Superceded by #1114. Thanks for helping on this journey!

@dbanty dbanty closed this Oct 20, 2024
micha91 pushed a commit to micha91/openapi-python-client that referenced this pull request May 13, 2025
> [!IMPORTANT]
> Merging this pull request will create this release

## Features

- update Ruff to >=0.2,<0.8 (openapi-generators#1137)
- Add UUID string format. Thanks @estyrke! (openapi-generators#1140)
- Support OpenAPI 3.1 prefixItems property for arrays. Thanks @estyrke!
(openapi-generators#1141)

### Add `literal_enums` config setting

Instead of the default `Enum` classes for enums, you can now generate
`Literal` sets wherever `enum` appears in the OpenAPI spec by setting
`literal_enums: true` in your config file.

```yaml
literal_enums: true
```

Thanks to @emosenkis for PR openapi-generators#1114 closes openapi-generators#587, openapi-generators#725, openapi-generators#1076, and probably
many more.
Thanks also to @eli-bl, @expobrain, @theorm, @chrisguillory, and anyone
else who helped getting to this design!

## Fixes

- Typo in docstring (openapi-generators#1128)

### Use literal value instead of `HTTPStatus` enum when checking
response statuses

Python 3.13 renamed some of the `HTTPStatus` enum members, which means
clients generated with Python 3.13 may not work
with older versions of Python. This change stops using the `HTTPStatus`
enum directly when checking response statuses.

Statuses will still be checked for validity at generation time, and
transformed into `HTTPStatus` _after_ being checked
at runtime.

This may cause some linters to complain.

Co-authored-by: knope-bot[bot] <152252888+knope-bot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ enhancement New feature or improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants