Python graphene.types.utils.yank_fields_from_attrs() Examples
The following are 8
code examples of graphene.types.utils.yank_fields_from_attrs().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
graphene.types.utils
, or try the search function
.
Example #1
Source File: types.py From graphene-mongo with MIT License | 6 votes |
def rescan_fields(cls): """Attempts to rescan fields and will insert any not converted initially""" converted_fields, self_referenced = construct_fields( cls._meta.model, cls._meta.registry, cls._meta.only_fields, cls._meta.exclude_fields, ) mongoengine_fields = yank_fields_from_attrs( converted_fields, _as=graphene.Field ) # The initial scan should take precedence for field in mongoengine_fields: if field not in cls._meta.fields: cls._meta.fields.update({field: mongoengine_fields[field]}) # Self-referenced fields can't change between scans!
Example #2
Source File: mutation.py From graphene-django with MIT License | 6 votes |
def __init_subclass_with_meta__( cls, form_class=None, only_fields=(), exclude_fields=(), **options ): if not form_class: raise Exception("form_class is required for DjangoFormMutation") form = form_class() input_fields = fields_for_form(form, only_fields, exclude_fields) output_fields = fields_for_form(form, only_fields, exclude_fields) _meta = DjangoFormMutationOptions(cls) _meta.form_class = form_class _meta.fields = yank_fields_from_attrs(output_fields, _as=Field) input_fields = yank_fields_from_attrs(input_fields, _as=InputField) super(DjangoFormMutation, cls).__init_subclass_with_meta__( _meta=_meta, input_fields=input_fields, **options )
Example #3
Source File: utils.py From graphene-django-plus with MIT License | 5 votes |
def _get_input_attrs(object_type): new = {} for attr, value in object_type.__dict__.items(): if not isinstance(value, (MountedType, UnmountedType)): continue if isinstance(value, Structure) and issubclass(value.of_type, graphene.ObjectType): value = type(value)(_input_registry[value.of_type]) elif isinstance(value, graphene.ObjectType): value = _input_registry[value.of_type] new[attr] = value return yank_fields_from_attrs(new, _as=graphene.InputField)
Example #4
Source File: mutations.py From graphene-django-plus with MIT License | 5 votes |
def __init_subclass_with_meta__(cls, model=None, object_permissions=None, object_permissions_any=True, return_field_name=None, required_fields=None, exclude_fields=None, only_fields=None, _meta=None, **kwargs): if not model: # pragma: no cover raise ImproperlyConfigured("model is required for ModelMutation") if not _meta: _meta = ModelMutationOptions(cls) exclude_fields = exclude_fields or [] only_fields = only_fields or [] if not return_field_name: return_field_name = _get_model_name(model) input_fields = _get_fields(model, only_fields, exclude_fields, required_fields) input_fields = yank_fields_from_attrs(input_fields, _as=graphene.InputField) fields = _get_output_fields(model, return_field_name) _meta.model = model _meta.object_permissions = object_permissions or [] _meta.object_permissions_any = object_permissions_any _meta.return_field_name = return_field_name _meta.exclude_fields = exclude_fields _meta.only_fields = only_fields _meta.required_fields = required_fields super().__init_subclass_with_meta__( _meta=_meta, input_fields=input_fields, **kwargs, ) cls._meta.fields.update(fields)
Example #5
Source File: types.py From graphene-gae with BSD 3-Clause "New" or "Revised" License | 4 votes |
def __init_subclass_with_meta__(cls, model=None, registry=None, skip_registry=False, only_fields=(), exclude_fields=(), connection=None, use_connection=None, interfaces=(), **options): if not model: raise Exception(( 'NdbObjectType {name} must have a model in the Meta class attr' ).format(name=cls.__name__)) if not inspect.isclass(model) or not issubclass(model, ndb.Model): raise Exception(( 'Provided model in {name} is not an NDB model' ).format(name=cls.__name__)) if not registry: registry = get_global_registry() assert isinstance(registry, Registry), ( 'The attribute registry in {} needs to be an instance of ' 'Registry, received "{}".' ).format(cls.__name__, registry) ndb_fields = fields_for_ndb_model(model, registry, only_fields, exclude_fields) ndb_fields = yank_fields_from_attrs( ndb_fields, _as=Field, ) if use_connection is None and interfaces: use_connection = any((issubclass(interface, Node) for interface in interfaces)) if use_connection and not connection: # We create the connection automatically connection = Connection.create_type('{}Connection'.format(cls.__name__), node=cls) if connection is not None: assert issubclass(connection, Connection), ( "The connection must be a Connection. Received {}" ).format(connection.__name__) _meta = NdbObjectTypeOptions(cls) _meta.model = model _meta.registry = registry _meta.fields = ndb_fields _meta.connection = connection super(NdbObjectType, cls).__init_subclass_with_meta__(_meta=_meta, interfaces=interfaces, **options) if not skip_registry: registry.register(cls)
Example #6
Source File: types.py From graphene-django-extras with MIT License | 4 votes |
def __init_subclass_with_meta__( cls, model=None, registry=None, skip_registry=False, only_fields=(), exclude_fields=(), include_fields=(), filter_fields=None, interfaces=(), filterset_class=None, **options, ): assert is_valid_django_model(model), ( 'You need to pass a valid Django Model in {}.Meta, received "{}".' ).format(cls.__name__, model) if not registry: registry = get_global_registry() assert isinstance(registry, Registry), ( "The attribute registry in {} needs to be an instance of " 'Registry, received "{}".' ).format(cls.__name__, registry) if not DJANGO_FILTER_INSTALLED and (filter_fields or filterset_class): raise Exception( "Can only set filter_fields or filterset_class if Django-Filter is installed" ) django_fields = yank_fields_from_attrs( construct_fields( model, registry, only_fields, include_fields, exclude_fields ), _as=Field, ) _meta = DjangoObjectOptions(cls) _meta.model = model _meta.registry = registry _meta.filter_fields = filter_fields _meta.fields = django_fields _meta.filterset_class = filterset_class super(DjangoObjectType, cls).__init_subclass_with_meta__( _meta=_meta, interfaces=interfaces, **options ) if not skip_registry: registry.register(cls)
Example #7
Source File: types.py From graphql-pynamodb with MIT License | 4 votes |
def __init_subclass_with_meta__(cls, model=None, registry=None, skip_registry=False, only_fields=(), exclude_fields=(), connection=None, use_connection=None, interfaces=(), id=None, **options): assert model and isclass(model) and issubclass(model, Model), ( 'You need to pass a valid PynamoDB Model in ' '{}.Meta, received "{}".' ).format(cls.__name__, model) if not registry: registry = get_global_registry() assert isinstance(registry, Registry), ( 'The attribute registry in {} needs to be an instance of ' 'Registry, received "{}".' ).format(cls.__name__, registry) pynamo_fields = yank_fields_from_attrs( construct_fields(model, registry, only_fields, exclude_fields), _as=Field, ) if use_connection is None and interfaces: use_connection = any((issubclass(interface, Node) for interface in interfaces)) if use_connection and not connection: # We create the connection automatically connection = Connection.create_type('{}Connection'.format(cls.__name__), node=cls) if connection is not None: assert issubclass(connection, Connection), ( "The connection must be a Connection. Received {}" ).format(connection.__name__) _meta = PynamoObjectTypeOptions(cls) _meta.model = model _meta.registry = registry _meta.fields = pynamo_fields _meta.connection = connection _meta.id = id or 'id' super(PynamoObjectType, cls).__init_subclass_with_meta__(_meta=_meta, interfaces=interfaces, **options) if not skip_registry: registry.register(cls)
Example #8
Source File: mutation.py From graphene-django with MIT License | 4 votes |
def __init_subclass_with_meta__( cls, form_class=None, model=None, return_field_name=None, only_fields=(), exclude_fields=(), **options ): if not form_class: raise Exception("form_class is required for DjangoModelFormMutation") if not model: model = form_class._meta.model if not model: raise Exception("model is required for DjangoModelFormMutation") form = form_class() input_fields = fields_for_form(form, only_fields, exclude_fields) if "id" not in exclude_fields: input_fields["id"] = graphene.ID() registry = get_global_registry() model_type = registry.get_type_for_model(model) if not model_type: raise Exception("No type registered for model: {}".format(model.__name__)) if not return_field_name: model_name = model.__name__ return_field_name = model_name[:1].lower() + model_name[1:] output_fields = OrderedDict() output_fields[return_field_name] = graphene.Field(model_type) _meta = DjangoModelDjangoFormMutationOptions(cls) _meta.form_class = form_class _meta.model = model _meta.return_field_name = return_field_name _meta.fields = yank_fields_from_attrs(output_fields, _as=Field) input_fields = yank_fields_from_attrs(input_fields, _as=InputField) super(DjangoModelFormMutation, cls).__init_subclass_with_meta__( _meta=_meta, input_fields=input_fields, **options )