Source code for grader_labextension.api.typing_utils

# 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:

[docs] def is_generic(klass): """ Determine whether klass is a generic class """ return hasattr(klass, '__origin__')
[docs] def is_dict(klass): """ Determine whether klass is a Dict """ return klass.__origin__ == dict
[docs] def is_list(klass): """ Determine whether klass is a List """ return klass.__origin__ == list