Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generation of Shopify GraphQL schema fails #1909

Open
mairas opened this issue Apr 9, 2024 · 0 comments
Open

Generation of Shopify GraphQL schema fails #1909

mairas opened this issue Apr 9, 2024 · 0 comments

Comments

@mairas
Copy link

mairas commented Apr 9, 2024

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:

  • OS: MacOS Sonoma 14.2.1
  • Python version: 3.12.2 (Installed using Conda)
  • datamodel-code-generator version: 0.25.5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant