OpenAPITools / openapi-generator

OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
https://openapi-generator.tech
Apache License 2.0
21.35k stars 6.46k forks source link

[BUG][Python3.7][openapi-generator-cli] ImportError: cannot import name 'GenericMeta' from 'typing' #7010

Open Song2017 opened 4 years ago

Song2017 commented 4 years ago

Description

When running python client package in python 3.7 runtime, it raised error ImportError: cannot import name 'GenericMeta' from 'typing'

Steps to reproduce

Traceback (most recent call last):
  File "/***/python37_lab/test.py", line 3, in <module>
    import nomad_envoy_cli
  File "/***/.virtualenvs/py37/lib/python3.7/site-packages/nomad_envoy_cli/__init__.py", line 21, in <module>
    from nomad_envoy_cli.api.customs_api import CustomsApi
  File "/***/.virtualenvs/py37/lib/python3.7/site-packages/nomad_envoy_cli/api/__init__.py", line 6, in <module>
    from nomad_envoy_cli.api.customs_api import CustomsApi
  File "/***/.virtualenvs/py37/lib/python3.7/site-packages/nomad_envoy_cli/api/customs_api.py", line 21, in <module>
    from nomad_envoy_cli.api_client import ApiClient
  File "/***/.virtualenvs/py37/lib/python3.7/site-packages/nomad_envoy_cli/api_client.py", line 681, in <module>
    from .swagger_validator import SwaggerValidator
  File "/***/.virtualenvs/py37/lib/python3.7/site-packages/nomad_envoy_cli/swagger_validator.py", line 4, in <module>
    from typing import List, AnyStr, Any, Type, GenericMeta, Dict
ImportError: cannot import name 'GenericMeta' from 'typing' (/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/typing.py)

Related issues/PRs

https://github.com/OpenAPITools/openapi-generator/issues/2022

Suggest a fix

error version:

import importlib
import json
from datetime import date, datetime
from typing import List, AnyStr, Any, Type, GenericMeta, Dict

class SwaggerValidator(object):

fixed:

import importlib
import json
from datetime import date, datetime
from typing import List, AnyStr, Any, Type, GenericMeta, Dict
try:
    from typing import GenericMeta  # python 3.6
except ImportError:
    # in 3.7, genericmeta doesn't exist but we don't need it
    class GenericMeta(type): pass

class SwaggerValidator(object):
spacether commented 3 years ago

This issue applies to: