Exemplo n.º 1
0
from django.utils.encoding import force_text
from graphene import (Field, ID, Boolean, Dynamic, Enum, Float, Int, List,
                      NonNull, String, UUID)
from graphene.types.datetime import DateTime, Time
from graphene.types.json import JSONString
from graphene.utils.str_converters import to_camel_case, to_const
from graphene_django.compat import ArrayField, HStoreField, RangeField, JSONField
from graphene_django.fields import DjangoListField
from graphene_django.utils import import_single_dispatch
from rest_framework.compat import get_related_model

from .fields import DjangoFilterListField
from .utils import is_required, get_model_fields
from .base_types import Date, GenericForeignKeyType, GenericForeignKeyInputType

singledispatch = import_single_dispatch()

NAME_PATTERN = r'^[_a-zA-Z][_a-zA-Z0-9]*$'
COMPILED_NAME_PATTERN = re.compile(NAME_PATTERN)


def assert_valid_name(name):
    """ Helper to assert that provided names are valid. """
    assert COMPILED_NAME_PATTERN.match(
        name), 'Names must match /{}/ but "{}" does not.'.format(
            NAME_PATTERN, name)


def convert_choice_name(name):
    name = to_const(force_text(name))
    try:
Exemplo n.º 2
0
from graphene import (
    Field, ID, Boolean, Dynamic, Enum, Float, Int, List, NonNull, String, UUID
)
from graphene.types.json import JSONString
from graphene.utils.str_converters import to_camel_case, to_const
from graphene_django.compat import ArrayField, HStoreField, RangeField, JSONField
from graphene_django.fields import DjangoListField
from graphene_django.utils import import_single_dispatch

from .base_types import (
    GenericForeignKeyType, GenericForeignKeyInputType, CustomDateTime, CustomTime, CustomDate, Binary
)
from .fields import DjangoFilterListField
from .utils import is_required, get_model_fields, get_related_model

singledispatch = import_single_dispatch()


NAME_PATTERN = r'^[_a-zA-Z][_a-zA-Z0-9]*$'
COMPILED_NAME_PATTERN = re.compile(NAME_PATTERN)


def assert_valid_name(name):
    """ Helper to assert that provided names are valid. """
    assert COMPILED_NAME_PATTERN.match(name), 'Names must match /{}/ but "{}" does not.'.format(NAME_PATTERN, name)


def convert_choice_name(name):
    name = to_const(force_text(name))
    try:
        assert_valid_name(name)