File: types.py

package info (click to toggle)
strawberry-graphql-django 0.62.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,968 kB
  • sloc: python: 27,530; sh: 17; makefile: 16
file content (129 lines) | stat: -rw-r--r-- 2,536 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
from __future__ import annotations

from django.conf import settings
from strawberry import auto

import strawberry_django

from . import models


@strawberry_django.type(models.Fruit)
class Fruit:
    id: auto
    name: auto
    color: Color | None
    types: list[FruitType]
    picture: auto
    sweetness: auto


@strawberry_django.type(models.Color)
class Color:
    id: auto
    name: auto
    fruits: list[Fruit]


@strawberry_django.type(models.FruitType)
class FruitType:
    id: auto
    name: auto
    fruits: list[Fruit]


@strawberry_django.type(models.Vegetable)
class Vegetable:
    id: auto
    name: auto


@strawberry_django.type(models.TomatoWithRequiredPicture, fields="__all__")
class TomatoWithRequiredPictureType:
    pass


if settings.GEOS_IMPORTED:

    @strawberry_django.type(models.GeosFieldsModel)
    class GeoField:
        id: auto
        point: auto
        line_string: auto
        polygon: auto
        multi_point: auto
        multi_line_string: auto
        multi_polygon: auto

    @strawberry_django.input(models.GeosFieldsModel)
    class GeoFieldInput(GeoField):
        pass

    @strawberry_django.input(models.GeosFieldsModel, partial=True)
    class GeoFieldPartialInput(GeoField):
        pass


@strawberry_django.input(models.Fruit)
class FruitInput(Fruit):
    types: list[FruitTypeInput] | None  # type: ignore


@strawberry_django.input(models.TomatoWithRequiredPicture)
class TomatoWithRequiredPictureInput:
    id: auto
    name: auto


@strawberry_django.input(models.Color)
class ColorInput(Color):
    pass


@strawberry_django.input(models.FruitType)
class FruitTypeInput(FruitType):
    pass


@strawberry_django.input(models.Fruit, partial=True)
class FruitPartialInput(FruitInput):
    types: list[FruitTypePartialInput] | None  # type: ignore


@strawberry_django.partial(models.TomatoWithRequiredPicture, fields="__all__")
class TomatoWithRequiredPicturePartialInput(TomatoWithRequiredPictureType):
    pass


@strawberry_django.input(models.Color, partial=True)
class ColorPartialInput(ColorInput):
    pass


@strawberry_django.input(models.FruitType, partial=True)
class FruitTypePartialInput(FruitTypeInput):
    pass


@strawberry_django.type(models.User)
class User:
    id: auto
    name: auto
    group: Group
    tag: Tag


@strawberry_django.type(models.Group)
class Group:
    id: auto
    name: auto
    tags: list[Tag]
    users: list[User]


@strawberry_django.type(models.Tag)
class Tag:
    id: auto
    name: auto
    groups: list[Group]
    user: User