Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
7ea8421
feat: Add allOf support for model definitions BNCH-18722 (#12)
packyg Dec 8, 2020
70cb4bb
feat: Add setup.py support BNCH-18722 (#11)
packyg Dec 4, 2020
ce30b4c
fix: require setuptools >50 in pyproject.toml
packyg Dec 9, 2020
0b9a99a
fix: Fix bug parsing `allOf` in nested keys BNCH-20174 (#29)
forest-benchling Jan 14, 2021
f49d0bc
fix: Fix optional model properties BNCH-20284 (#35)
forest-benchling Jan 27, 2021
b0109cd
feat: Serialize model query parameters with `style=form, explode=true…
forest-benchling Jan 27, 2021
f469553
Cherry-pick optional params
forest-benchling Jan 27, 2021
a5d09f4
Regenerate tests
forest-benchling Jan 27, 2021
b33df4d
Undo diffs
forest-benchling Jan 27, 2021
97063d5
Fix tests
forest-benchling Jan 27, 2021
67bce41
Regen
forest-benchling Jan 27, 2021
f02e943
Add tests for union
forest-benchling Jan 27, 2021
f9788d7
Make progress toward fixing it
forest-benchling Jan 28, 2021
55e16f3
feat: Change optional Open API query parameters to allow `None (#40)
forest-benchling Jan 28, 2021
2ad1051
Fix tests
forest-benchling Jan 28, 2021
8e88fa4
Refactor
forest-benchling Jan 28, 2021
915d7c3
Check type
forest-benchling Jan 28, 2021
9c00256
Revert changes to Unset
forest-benchling Jan 28, 2021
64c31ce
Regenerate tests
forest-benchling Jan 28, 2021
eece180
fix: Handle Unset Enums when deserializing (#306)
bowenwr Jan 22, 2021
981fade
fix: Lower version requirements for python-dateutil in generated clie…
bowenwr Jan 14, 2021
6b665b7
Change model from_dict from staticmethod to classmethod
forest-benchling Jan 11, 2021
f4becc3
fix: Handle Unset Enums when deserializing (#306)
bowenwr Jan 22, 2021
248d566
Cherry-pick a755ed9dc77b7d7e394057159831fbfa327be113 (#54)
forest-benchling Apr 6, 2021
0e1afa8
fix: Generate parameters to generated client without adding None BNCH…
GitOnUp Jul 8, 2021
e22c235
feat: Add description to Property definitions BNCH-29178
GitOnUp Sep 23, 2021
6c40881
feat: Implement discriminators knowledge in code generation BNCH-3044…
GitOnUp Sep 25, 2021
800bf60
fix: null in openapi enums breaks client generation BNCH-32257 (#95)
GitOnUp Oct 14, 2021
cef60fe
attrs dependencies (#105)
straz Feb 11, 2022
57f732b
fix: Support discriminators that map multiple keys to the same schema…
rweinberger Feb 17, 2022
e01b09e
bumped importlib_metadata version to >=4.4 to fix a conflict with Sph…
Apr 4, 2022
65510b5
trivial: fix typo "ommitted" -> "omitted"
straz Apr 5, 2022
d5085e4
Remove unintended updates (#114)
Apr 5, 2022
53ba39c
fix: Upgraded Jinja2 version to 3.x.x CEPLAT-477 (#113)
Apr 5, 2022
c197208
chore: Loosen httpx dependency BNCH-38599 (#115)
daniel-deutsch-benchling Apr 8, 2022
a73037d
chore: Bump up httpx in template / generated pyproject.yaml BNCH-3859…
daniel-deutsch-benchling Apr 8, 2022
5fe002c
chore: Bump up httpx in template / generated pyproject.yaml BNCH-3859…
daniel-deutsch-benchling Apr 11, 2022
97f3908
feat: Added support for text/yaml in OpenAPI to be used in benchling-…
Apr 22, 2022
50ee795
fix: Fixed parsing logic for yaml files to use PyYaml instead of ruam…
Apr 28, 2022
c286ac9
chore: Ran gen-setuppy to update openapi setup.py BNCH-42828 (#127)
May 19, 2022
6606024
chore: Upgrade project dependencies for generated client BNCH-43401 (…
bowenwr Sep 7, 2022
8cfef65
chore: Update setup.py with new version info for publishing BNCH-4340…
bowenwr Sep 8, 2022
4fdbe26
chore: Fix sed expression and restore setup.py package name BNCH-4340…
bowenwr Sep 8, 2022
351b9fe
chore: Revert Python version changes to attempt to fix packaging issu…
bowenwr Sep 9, 2022
46e4d85
fix: Allow __version__ to be ignored for package mismatch BNCH-43401 …
bowenwr Sep 13, 2022
cebe643
Feat/detect discriminator bnch 49688 (#143)
straz Oct 6, 2022
469f25c
bump version (#155)
straz Oct 10, 2022
c380c1e
dedupe union typestrings (#157)
straz Oct 11, 2022
8d504f6
feat: Rev attrs package CUST-3710
GitOnUp Oct 18, 2022
fadd74b
Bump Version to 1.0.6
GitOnUp Oct 25, 2022
1a092e9
chore(deps): bump importlib-metadata from 5.0.0 to 6.7.0
dependabot[bot] Jun 19, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
chore: Revert Python version changes to attempt to fix packaging issu…
…e BNCH-43401 (#142)
  • Loading branch information
bowenwr authored Sep 9, 2022
commit 351b9fed233b69ab188b4415b6ee16d777304849
4 changes: 2 additions & 2 deletions openapi_python_client/templates/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ include = ["CHANGELOG.md", "{{ package_name }}/py.typed"]


[tool.poetry.dependencies]
python = "^3.7"
python = "^3.6"
httpx = ">=0.23.0"
attrs = ">=20.1.0, <22.0"
python-dateutil = "^2.8.0"

[tool.black]
line-length = 120
target_version = ['py37', 'py38', 'py39']
target_version = ['py36', 'py37', 'py38']
exclude = '''
(
/(
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "openapi-python-client"
# Our versions have diverged and have no relation to upstream code changes
# Henceforth, openapi-python-package will be maintained internally
version = "1.0.1"
version = "1.0.2"
description = "Generate modern Python clients from OpenAPI"
repository = "https://github.com/triaxtec/openapi-python-client"
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@

setup_kwargs = {
"name": "benchling-openapi-python-client",
"version": "1.0.1",
"version": "1.0.2",
"description": "Generate modern Python clients from OpenAPI",
"long_description": '[![triaxtec](https://circleci.com/gh/triaxtec/openapi-python-client.svg?style=svg)](https://circleci.com/gh/triaxtec/openapi-python-client)\n[![codecov](https://codecov.io/gh/triaxtec/openapi-python-client/branch/main/graph/badge.svg)](https://codecov.io/gh/triaxtec/openapi-python-client)\n[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)\n[![Generic badge](https://img.shields.io/badge/type_checked-mypy-informational.svg)](https://mypy.readthedocs.io/en/stable/introduction.html)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n[![PyPI version shields.io](https://img.shields.io/pypi/v/openapi-python-client.svg)](https://pypi.python.org/pypi/openapi-python-client/)\n[![Downloads](https://static.pepy.tech/personalized-badge/openapi-python-client?period=total&units=international_system&left_color=blue&right_color=green&left_text=Downloads)](https://pepy.tech/project/openapi-python-client)\n\n# openapi-python-client\n\nGenerate modern Python clients from OpenAPI 3.x documents.\n\n_This generator does not support OpenAPI 2.x FKA Swagger. If you need to use an older document, try upgrading it to\nversion 3 first with one of many available converters._\n\n**This project is still in development and does not support all OpenAPI features**\n\n## Why This?\n\nThe Python clients generated by openapi-generator support Python 2 and therefore come with a lot of baggage. This tool\naims to generate clients which:\n\n1. Use all the latest and greatest Python features like type annotations and dataclasses\n1. Don\'t carry around a bunch of compatibility code for older version of Python (e.g. the `six` package)\n1. Have better documentation and more obvious usage instructions\n\nAdditionally, because this generator is written in Python, it should be more accessible to contribution by the people\nusing it (Python developers).\n\n## Installation\n\nI recommend you install with [pipx](https://pipxproject.github.io/pipx/) so you don\'t conflict with any other packages\nyou might have: `pipx install openapi-python-client`.\n\nBetter yet, use `pipx run openapi-python-client <normal params / options>` to always use the latest version of the generator.\n\nYou can install with normal pip if you want to though: `pip install openapi-python-client`\n\nThen, if you want tab completion: `openapi-python-client --install-completion`\n\n## Usage\n\n### Create a new client\n\n`openapi-python-client generate --url https://my.api.com/openapi.json`\n\nThis will generate a new client library named based on the title in your OpenAPI spec. For example, if the title\nof your API is "My API", the expected output will be "my-api-client". If a folder already exists by that name, you\'ll\nget an error.\n\n### Update an existing client\n\n`openapi-python-client update --url https://my.api.com/openapi.json`\n\n> For more usage details run `openapi-python-client --help` or read [usage](usage.md)\n\n### Using custom templates\n\nThis feature leverages Jinja2\'s [ChoiceLoader](https://jinja.palletsprojects.com/en/2.11.x/api/#jinja2.ChoiceLoader) and [FileSystemLoader](https://jinja.palletsprojects.com/en/2.11.x/api/#jinja2.FileSystemLoader). This means you do _not_ need to customize every template. Simply copy the template(s) you want to customize from [the default template directory](openapi_python_client/templates) to your own custom template directory (file names _must_ match exactly) and pass the template directory through the `custom-template-path` flag to the `generate` and `update` commands. For instance,\n\n```\nopenapi-python-client update \\\n --url https://my.api.com/openapi.json \\\n --custom-template-path=relative/path/to/mytemplates\n```\n\n_Be forewarned, this is a beta-level feature in the sense that the API exposed in the templates is undocumented and unstable._\n\n## What You Get\n\n1. A `pyproject.toml` file with some basic metadata intended to be used with [Poetry].\n1. A `README.md` you\'ll most definitely need to update with your project\'s details\n1. A Python module named just like the auto-generated project name (e.g. "my_api_client") which contains:\n 1. A `client` module which will have both a `Client` class and an `AuthenticatedClient` class. You\'ll need these\n for calling the functions in the `api` module.\n 1. An `api` module which will contain one module for each tag in your OpenAPI spec, as well as a `default` module\n for endpoints without a tag. Each of these modules in turn contains one function for calling each endpoint.\n 1. A `models` module which has all the classes defined by the various schemas in your OpenAPI spec\n\nFor a full example you can look at the `end_to_end_tests` directory which has an `openapi.json` file.\n"golden-record" in that same directory is the generated client from that OpenAPI document.\n\n## OpenAPI features supported\n\n1. All HTTP Methods\n1. JSON and form bodies, path and query parameters\n1. File uploads with multipart/form-data bodies\n1. float, string, int, date, datetime, string enums, and custom schemas or lists containing any of those\n1. html/text or application/json responses containing any of the previous types\n1. Bearer token security\n\n## Configuration\n\nYou can pass a YAML (or JSON) file to openapi-python-client with the `--config` option in order to change some behavior.\nThe following parameters are supported:\n\n### class_overrides\n\nUsed to change the name of generated model classes. This param should be a mapping of existing class name\n(usually a key in the "schemas" section of your OpenAPI document) to class_name and module_name. As an example, if the\nname of the a model in OpenAPI (and therefore the generated class name) was something like "\\_PrivateInternalLongName"\nand you want the generated client\'s model to be called "ShortName" in a module called "short_name" you could do this:\n\nExample:\n\n```yaml\nclass_overrides:\n _PrivateInternalLongName:\n class_name: ShortName\n module_name: short_name\n```\n\nThe easiest way to find what needs to be overridden is probably to generate your client and go look at everything in the\nmodels folder.\n\n### project_name_override and package_name_override\n\nUsed to change the name of generated client library project/package. If the project name is changed but an override for the package name\nisn\'t provided, the package name will be converted from the project name using the standard convention (replacing `-`\'s with `_`\'s).\n\nExample:\n\n```yaml\nproject_name_override: my-special-project-name\npackage_name_override: my_extra_special_package_name\n```\n\n### field_prefix\n\nWhen generating properties, the `name` attribute of the OpenAPI schema will be used. When the `name` is not a valid\nPython identifier (e.g. begins with a number) this string will be prepended. Defaults to "field\\_".\n\nExample:\n\n```yaml\nfield_prefix: attr_\n```\n\n### package_version_override\n\nSpecify the package version of the generated client. If unset, the client will use the version of the OpenAPI spec.\n\nExample:\n\n```yaml\npackage_version_override: 1.2.3\n```\n\n## How to publish changes\nQuip doc that highlights how to pull the dependency to Aurelia and publish using a buildkite pipeline can be found [here](https://benchling.quip.com/PgytA283Rlyo/2022-02-16-Guide-for-Publishing-a-Package)\n\nAfter changes are made to this package, to publish a new version of this package:\n* Bump the version on pyproject.toml\n* Install `gnu-sed` (assuming that you\'re running on a mac) by running `brew install gnu-sed`\n * macOS uses BSD sed, which is similar to Linux\'s GNU sed but cannot explicitly edit files in place i.e. cannot utilize `-i` tag\n* Set GNU sed PATH by running `brew info gnu-sed` to check for PATH\n* Run `poetry run task gen-setuppy` which updates setup.py\n* Kick off a buildkite pipeline build as highlighted in the quip doc (would need to designate the branch of which to check for publish)\n\n\n[changelog.md]: CHANGELOG.md\n[poetry]: https://python-poetry.org/\n',
"author": "Dylan Anthony",
Expand Down