예제 #1
0
def get_name_from_types(types: Iterable[Union[Type, StrawberryUnion]]):
    names = []

    for type_ in types:
        if isinstance(type_, StrawberryUnion):
            return type_.name
        elif hasattr(type_, "_type_definition"):
            name = capitalize_first(type_._type_definition.name)
        else:
            name = capitalize_first(type_.__name__)

        names.append(name)

    return "".join(names)
예제 #2
0
    def get_from_type(self, type_: Union[StrawberryType, type]) -> str:
        from strawberry.union import StrawberryUnion

        if isinstance(type_, LazyType):
            name = type_.type_name
        elif isinstance(type_, EnumDefinition):
            name = type_.name
        elif isinstance(type_, StrawberryUnion):
            # TODO: test Generics with unnamed unions
            assert type_.graphql_name

            name = type_.graphql_name
        elif isinstance(type_, StrawberryList):
            name = self.get_from_type(type_.of_type) + "List"
        elif isinstance(type_, StrawberryOptional):
            name = self.get_from_type(type_.of_type) + "Optional"
        elif hasattr(type_, "_scalar_definition"):
            strawberry_type = type_._scalar_definition  # type: ignore

            name = strawberry_type.name
        elif hasattr(type_, "_type_definition"):
            strawberry_type = type_._type_definition  # type: ignore

            if strawberry_type.is_generic:
                types = type_.__args__  # type: ignore
                name = self.from_generic(strawberry_type, types)
            else:
                name = strawberry_type.name
        else:
            name = type_.__name__  # type: ignore

        return capitalize_first(name)
예제 #3
0
파일: types.py 프로젝트: estyxx/strawberry
    def get_name_from_types(
            self, types: Iterable[Union[StrawberryType, type]]) -> str:
        from strawberry.union import StrawberryUnion

        names: List[str] = []

        for type_ in types:
            if isinstance(type_, LazyType):
                name = type_.type_name
            elif isinstance(type_, EnumDefinition):
                name = type_.name
            elif isinstance(type_, StrawberryUnion):
                name = type_.name
            elif hasattr(type_, "_type_definition"):
                field_type = type_._type_definition  # type: ignore

                name = capitalize_first(field_type.name)
            else:
                name = capitalize_first(type_.__name__)  # type: ignore

            names.append(name)

        return "".join(names) + self.name
예제 #4
0
def get_name_from_types(types: Iterable[Type]):
    return "".join([capitalize_first(type.__name__) for type in types])