33 lines
809 B
Python
33 lines
809 B
Python
|
# coding: utf-8
|
||
|
|
||
|
import sys
|
||
|
|
||
|
if sys.version_info < (3, 7):
|
||
|
import typing
|
||
|
|
||
|
def is_generic(klass):
|
||
|
""" Determine whether klass is a generic class """
|
||
|
return type(klass) == typing.GenericMeta
|
||
|
|
||
|
def is_dict(klass):
|
||
|
""" Determine whether klass is a Dict """
|
||
|
return klass.__extra__ == dict
|
||
|
|
||
|
def is_list(klass):
|
||
|
""" Determine whether klass is a List """
|
||
|
return klass.__extra__ == list
|
||
|
|
||
|
else:
|
||
|
|
||
|
def is_generic(klass):
|
||
|
""" Determine whether klass is a generic class """
|
||
|
return hasattr(klass, '__origin__')
|
||
|
|
||
|
def is_dict(klass):
|
||
|
""" Determine whether klass is a Dict """
|
||
|
return klass.__origin__ == dict
|
||
|
|
||
|
def is_list(klass):
|
||
|
""" Determine whether klass is a List """
|
||
|
return klass.__origin__ == list
|