Skip to content

Client generation doesn't handle multiline strings in the queries file #423

@vashek

Description

@vashek

Using version 0.17.2 (because of #422 in 0.18.0).
My queries_path file includes:

query GetSalesAndViewNumbers {
  sessions_by_landing_page: shopifyqlQuery(query: """FROM sessions
  SHOW sessions, bounce_rate
  WHERE landing_page_type = 'Product'
  GROUP BY landing_page_path WITH TOTALS
  SINCE startOfDay(-30d) UNTIL today
  ORDER BY sessions DESC""") {
    parseErrors
    tableData {
      rows
      columns {
        dataType
        displayName
        name
        subType
      }
    }
  }

  product_sales: shopifyqlQuery(query: """FROM sales
  SHOW orders
  GROUP BY product_id, product_title
  SINCE startOfDay(-30d) UNTIL today
  ORDER BY orders DESC""") {
    parseErrors
    tableData {
      rows
      columns {
        dataType
        displayName
        name
        subType
      }
    }
  }
}

(I'm not a GraphQL expert but I think that's supposed to work?)

Running ariadne-codegen client fails with:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\devel\shop\.venv\Scripts\ariadne-codegen.EXE\__main__.py", line 7, in <module>
  File "C:\devel\shop\.venv\Lib\site-packages\click\core.py", line 1485, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\devel\shop\.venv\Lib\site-packages\click\core.py", line 1406, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "C:\devel\shop\.venv\Lib\site-packages\click\core.py", line 1269, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\devel\shop\.venv\Lib\site-packages\click\core.py", line 824, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\devel\shop\.venv\Lib\site-packages\ariadne_codegen\main.py", line 37, in main
    client(config_dict)
  File "C:\devel\shop\.venv\Lib\site-packages\ariadne_codegen\main.py", line 82, in client
    generated_files = package_generator.generate()
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\devel\shop\.venv\Lib\site-packages\ariadne_codegen\client_generators\package.py", line 177, in generate
    self._generate_init()
  File "C:\devel\shop\.venv\Lib\site-packages\ariadne_codegen\client_generators\package.py", line 380, in _generate_init
    init_module = self.init_generator.generate()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\devel\shop\.venv\Lib\site-packages\ariadne_codegen\client_generators\init_file.py", line 45, in generate
    module = self.plugin_manager.generate_init_module(module)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\devel\shop\.venv\Lib\site-packages\ariadne_codegen\plugins\manager.py", line 43, in generate_init_module
    return self._apply_plugins_on_object("generate_init_module", module)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\devel\shop\.venv\Lib\site-packages\ariadne_codegen\plugins\manager.py", line 39, in _apply_plugins_on_object
    modified_obj = method(modified_obj, *args, **kwargs)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\devel\shop\.venv\Lib\site-packages\ariadne_codegen\contrib\extract_operations.py", line 64, in generate_init_module
    self._generate_operations_module()
  File "C:\devel\shop\.venv\Lib\site-packages\ariadne_codegen\contrib\extract_operations.py", line 117, in _generate_operations_module
    code = self._module_to_str(module)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\devel\shop\.venv\Lib\site-packages\ariadne_codegen\contrib\extract_operations.py", line 155, in _module_to_str
    formatted_code = format_str(
                     ^^^^^^^^^^^
  File "src\black\__init__.py", line 1244, in format_str
  File "src\black\__init__.py", line 1264, in _format_str_once
  File "src\black\parsing.py", line 98, in lib2to3_parse
black.parsing.InvalidInput: Cannot parse: 381:0:     FROM sessions

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions