Describe the bug
I have downloaded the latest GraphQL schema of our Shopify store with the following commands:
npm install -g get-graphql-schema
get-graphql-schema -h 'X-Shopify-Access-Token=REDACTED' https://hat-labs.myshopify.com/admin/api/2024-04/graphql.json > shopify_schema_2024-04.graphql
The downloaded schema is attached below.
I am attempting to use the following command to generate data models for it:
datamodel-codegen --output shopify_gql_schema.py --input shopify_schema_2024-04.graphql --input-file-type graphql --target-python-version 3.11
This results in the following stack trace and error:
Traceback (most recent call last):
File "/opt/homebrew/Caskroom/mambaforge/base/lib/python3.12/site-packages/datamodel_code_generator/__main__.py", line 428, in main
generate(
File "/opt/homebrew/Caskroom/mambaforge/base/lib/python3.12/site-packages/datamodel_code_generator/__init__.py", line 462, in generate
results = parser.parse()
^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/mambaforge/base/lib/python3.12/site-packages/datamodel_code_generator/parser/base.py", line 1289, in parse
body = code_formatter.format_code(body)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/mambaforge/base/lib/python3.12/site-packages/datamodel_code_generator/format.py", line 226, in format_code
code = self.apply_black(code)
^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/mambaforge/base/lib/python3.12/site-packages/datamodel_code_generator/format.py", line 234, in apply_black
return black.format_str(
^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/mambaforge/base/lib/python3.12/site-packages/black/__init__.py", line 1232, in format_str
dst_contents = _format_str_once(src_contents, mode=mode, lines=lines)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/mambaforge/base/lib/python3.12/site-packages/black/__init__.py", line 1246, in _format_str_once
src_node = lib2to3_parse(src_contents.lstrip(), mode.target_versions)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Caskroom/mambaforge/base/lib/python3.12/site-packages/black/parsing.py", line 90, in lib2to3_parse
raise exc from None
black.parsing.InvalidInput: Cannot parse: 28209:4: The concrete type can be `AppRecurringPricing` for recurring billing or `AppUsagePricing` for usage-based billing.
To Reproduce
Example schema:
Renamed to .txt to allow uploading: shopify_schema_2024-04.txt
Used commandline:
$ datamodel-codegen --output shopify_gql_schema.py --input shopify_schema_2024-04.graphql --input-file-type graphql --target-python-version 3.11
Expected behavior
I assumed I'd get a Pydantic schema definition in the output file. This is my first time trying to use datamode-codegen
, so my expectations were quite vague. :-)
Version:
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too