def as_inherited_ref_ast(cls, schema, context, name, parent): refctx = cls.get_referrer_context(context) astnode_cls = cls.referenced_astnode if sn.Name.is_qualified(name): nref = qlast.ObjectRef( name=name.name, module=name.module, ) else: nref = qlast.ObjectRef( name=name, module=refctx.op.classname.module, ) args = [] parent_args = parent.get_args(schema) if parent_args: for arg_expr in parent.get_args(schema): arg = edgeql.parse_fragment(arg_expr.text) args.append(arg) subj_expr = parent.get_subjectexpr(schema) if subj_expr is not None: subj_expr_ql = edgeql.parse_fragment(subj_expr.text) else: subj_expr_ql = None astnode = astnode_cls(name=nref, args=args, subjectexpr=subj_expr_ql) return astnode
def as_inherited_ref_ast( cls, schema: s_schema.Schema, context: sd.CommandContext, name: str, parent: so.Object, ) -> qlast.ObjectDDL: assert isinstance(parent, Constraint) astnode_cls = cls.referenced_astnode nref = cls.get_inherited_ref_name(schema, context, parent, name) args = [] parent_args = parent.get_args(schema) if parent_args: parent_args = parent.get_args(schema) assert parent_args is not None for arg_expr in parent_args: arg = edgeql.parse_fragment(arg_expr.text) args.append(arg) subj_expr = parent.get_subjectexpr(schema) if subj_expr is not None: subj_expr_ql = edgeql.parse_fragment(subj_expr.text) else: subj_expr_ql = None astnode = astnode_cls(name=nref, args=args, subjectexpr=subj_expr_ql) return astnode
def as_inherited_ref_ast( cls, schema: s_schema.Schema, context: sd.CommandContext, name: sn.Name, parent: so.Object, ) -> qlast.ObjectDDL: assert isinstance(parent, Constraint) astnode_cls = cls.referenced_astnode nref = cls.get_inherited_ref_name(schema, context, parent, name) args = [] parent_args = parent.get_args(schema) if parent_args: parent_args = parent.get_args(schema) assert parent_args is not None for arg_expr in parent_args: arg = edgeql.parse_fragment(arg_expr.text) args.append(arg) subj_expr = parent.get_subjectexpr(schema) if (subj_expr is None # Don't include subjectexpr if it was inherited from an # abstract constraint. (Constraints will view it as # not-inherited if it was copied from an implicit base.) or 'subjectexpr' in parent.get_inherited_fields(schema)): subj_expr_ql = None else: subj_expr_ql = edgeql.parse_fragment(subj_expr.text) astnode = astnode_cls(name=nref, args=args, subjectexpr=subj_expr_ql) return astnode
def as_inherited_ref_ast( cls, schema: s_schema.Schema, context: sd.CommandContext, name: sn.Name, parent: so.Object, ) -> qlast.ObjectDDL: assert isinstance(parent, Constraint) astnode_cls = cls.referenced_astnode # type: ignore nref = cls.get_inherited_ref_name(schema, context, parent, name) args = [] parent_args = parent.get_args(schema) if parent_args: parent_args = parent.get_args(schema) assert parent_args is not None for arg_expr in parent_args: arg = edgeql.parse_fragment(arg_expr.text) args.append(arg) subj_expr = parent.get_subjectexpr(schema) if (subj_expr is None # Don't include subjectexpr if it was inherited from an # abstract constraint. or parent.get_nearest_generic_parent(schema).get_subjectexpr( schema) is not None): subj_expr_ql = None else: subj_expr_ql = edgeql.parse_fragment(subj_expr.text) astnode = astnode_cls(name=nref, args=args, subjectexpr=subj_expr_ql) return cast(qlast.ObjectDDL, astnode)
def as_inherited_ref_ast(cls, schema, context, name, parent): astnode_cls = cls.referenced_astnode nref = cls.get_inherited_ref_name(schema, context, parent, name) args = [] parent_args = parent.get_args(schema) if parent_args: for arg_expr in parent.get_args(schema): arg = edgeql.parse_fragment(arg_expr.text) args.append(arg) subj_expr = parent.get_subjectexpr(schema) if subj_expr is not None: subj_expr_ql = edgeql.parse_fragment(subj_expr.text) else: subj_expr_ql = None astnode = astnode_cls(name=nref, args=args, subjectexpr=subj_expr_ql) return astnode
def as_inherited_ref_ast(cls, schema, context, name, parent): nref = cls.get_inherited_ref_name(schema, context, parent, name) astnode_cls = cls.referenced_astnode expr = parent.get_expr(schema) if expr is not None: expr_ql = edgeql.parse_fragment(expr.origtext) else: expr_ql = None return astnode_cls( name=nref, expr=expr_ql, )
def as_inherited_ref_ast(cls, schema, context, name, parent): astnode_cls = cls.referenced_astnode expr = parent.get_expr(schema) if expr is not None: expr_ql = edgeql.parse_fragment(expr.origtext) else: expr_ql = None return astnode_cls( name=qlast.ObjectRef( name=name, module=parent.get_shortname(schema).module, ), expr=expr_ql, )
def as_inherited_ref_ast( cls, schema: s_schema.Schema, context: sd.CommandContext, name: sn.Name, parent: referencing.ReferencedObject, ) -> qlast.ObjectDDL: assert isinstance(parent, Index) astnode_cls = cls.referenced_astnode expr = parent.get_expr(schema) if expr is None: expr_ql = None else: expr_ql = edgeql.parse_fragment(expr.text) return astnode_cls(name=qlast.ObjectRef(name='idx'), expr=expr_ql)
def as_inherited_ref_ast( cls, schema: s_schema.Schema, context: sd.CommandContext, name: str, parent: referencing.ReferencedObject, ) -> qlast.ObjectDDL: assert isinstance(parent, Index) nref = cls.get_inherited_ref_name(schema, context, parent, name) astnode_cls = cls.referenced_astnode expr = parent.get_expr(schema) if expr is not None: expr_ql = edgeql.parse_fragment(expr.origtext) else: expr_ql = None return astnode_cls( name=nref, expr=expr_ql, )