Beispiel #1
0
        def say(self,
                info,
                name: typing.Optional[str] = UNSET) -> str:  # type: ignore
            if is_unset(name):
                return "Name is unset"

            return f"Hello {name}!"
Beispiel #2
0
        def say(self, info, input: Input) -> str:
            data = dataclasses.asdict(input)

            if is_unset(data["name"]):
                return "Hello ­Ъце"

            return f"Hello {data['name']}!"
Beispiel #3
0
        def say(self, first_name: typing.Optional[str] = UNSET) -> str:  # type: ignore
            if is_unset(first_name):
                return "Name is unset"

            if first_name == "":
                return "Hello Empty!"

            return f"Hello {first_name}!"
Beispiel #4
0
def get_default_factory_for_field(
        field: ModelField) -> Union[NoArgAnyCallable, _Unset]:
    """
    Gets the default factory for a pydantic field.

    Handles mutable defaults when making the dataclass by using pydantic's smart_deepcopy

    Returns optionally a NoArgAnyCallable representing a default_factory parameter
    """
    default_factory = field.default_factory
    default = field.default

    has_factory = default_factory is not None and not is_unset(default_factory)
    has_default = default is not None and not is_unset(default)

    # defining both default and default_factory is not supported

    if has_factory and has_default:
        default_factory = cast(NoArgAnyCallable, default_factory)

        raise BothDefaultAndDefaultFactoryDefinedError(
            default=default, default_factory=default_factory)

    # if we have a default_factory, we should return it

    if has_factory:
        default_factory = cast(NoArgAnyCallable, default_factory)

        return default_factory

    # if we have a default, we should return it

    if has_default:
        return lambda: smart_deepcopy(default)

    # if we don't have default or default_factory, but the field is not required,
    # we should return a factory that returns None

    if not field.required:
        return lambda: None

    return UNSET
Beispiel #5
0
    def from_input_field(self, field: StrawberryField) -> GraphQLInputField:
        field_type: GraphQLType

        if isinstance(field.type, StrawberryOptional):
            field_type = self.from_optional(field.type)
        else:
            field_type = self.from_non_optional(field.type)

        default_value: object

        if is_unset(field.default_value):
            default_value = Undefined
        else:
            default_value = field.default_value

        return GraphQLInputField(
            type_=field_type,
            default_value=default_value,
            description=field.description,
        )
Beispiel #6
0
        def say_age(self, info, input: InputExample) -> str:
            age = "unset" if is_unset(input.age) else input.age

            return f"Hello {input.name} of age {age}!"
Beispiel #7
0
        def say_age(self, info, input: InputExample) -> str:
            age = "unset" if is_unset(input.age) else input.age
            age = "empty" if age == "" else age

            return f"Hello {input.first_name} of age {age}!"
Beispiel #8
0
 def hello(self, input: TestInput) -> str:
     if is_unset(input.name):
         return "Hi there"
     return f"Hi {input.name}"
Beispiel #9
0
 def hello(self,
           name: Optional[str] = UNSET,
           age: Optional[int] = UNSET) -> str:
     if is_unset(name):
         return "Hi there"
     return f"Hi {name}"