openapi-generators / openapi-generators/openapi-python-client

black posthook throws `ImportError: cannot import name 'izip_longest' from 'pathspec.compat'`

Open
#613 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

🐞bug
Dominant language
Python
Stars
2k
Forks
293
Avg merge
34m
Merged PRs (30d)
1

Description

Describe the bug
During the black . post hook, openapi-python-client throws :

openapi-python-client update --url someurl.com/openapi.json

Updating my_project
Error(s) encountered while generating, client was not created
black failed
Traceback (most recent call last):
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, 
in _run_code
    exec(code, run_globals)
  File "C:\Users\x\code\my_project\venv\Scripts\black.exe\__main__.py", line 4, in <module>
  File "src\black\__init__.py", line 12, in <module>
  File "C:\Users\x\code\my_project\venv\lib\site-packages\pathspec\__init__.py", line 26, in <module>
    from .pathspec import PathSpec
  File "C:\Users\x\code\my_project\venv\lib\site-packages\pathspec\pathspec.py", line 27, in <module>
    from .compat import (
ImportError: cannot import name 'izip_longest' from 'pathspec.compat' (C:\Users\x\code\my_project\venv\lib\site-packages\pathspec\compat.py)

In a fresh environment, running black . on my own works originally. Then, running openapi-python-client update fails at the black step. Then, the strange thing is that this error persists when running black . on my own afterwards.

To Reproduce
Steps to reproduce the behavior:

  1. Install dependencies as listed in Desktop section, using poetry
  2. Run openapi-python-client update
  3. See error during black post hook.

Expected behavior
I expect the black . to complete without errors.

OpenAPI Spec File
Unfortunately this is under NDA. However, the package is generated without issue, the problem comes from the black post hook.

Desktop (please complete the following information):

  • OS: Windows 10 Business 19044.1645

[tool.poetry.dependencies]
python = "3.9"
httpx = "0.22.0"
attrs = "21.4.0"
python-dateutil = "2.8.2"
azure-identity = "1.10.0"
exdir = "0.4.2"

[tool.poetry.dev-dependencies]
flake8 = "4.0.1"
mypy = "0.950"
pytest = "7.1.2"
black = "22.3.0"
aiounittest = "1.4.1"
openapi-python-client= "0.11.1"

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the Poetry environment from the listed Python 3.9 dependencies and running openapi-python-client update followed by black .. Inspect the dependency resolution and the Black/pathspec import failure; done means the post hook and subsequent standalone black . complete without errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
openapi, python
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.