async def pop(self, name, init=False):
        '''
        Remove a property from a node and return the value
        '''
        prop = self.form.prop(name)
        if prop is None:
            if self.snap.strict:
                raise s_exc.NoSuchProp(name=name)
            await self.snap.warn(f'No Such Property: {name}')
            return False

        if self.isrunt:
            if prop.info.get('ro'):
                raise s_exc.IsRuntForm(mesg='Cannot delete read-only props on runt nodes',
                                       form=self.form.full, prop=name)
            return await self.snap.core.runRuntPropDel(self, prop)

        if not init:

            if prop.info.get('ro'):
                if self.snap.strict:
                    raise s_exc.ReadOnlyProp(name=name)
                await self.snap.warn(f'Property is read-only: {name}')
                return False

        curv = self.props.pop(name, s_common.novalu)
        if curv is s_common.novalu:
            return False

        sops = prop.getDelOps(self.buid)
        splice = self.snap.splice('prop:del', ndef=self.ndef, prop=prop.name, valu=curv)
        await self.snap.stor(sops, [splice])

        await prop.wasDel(self, curv)
async def pop ( self , name , init = False ) : prop = self . form . prop ( name ) if prop is None : if self . snap . strict : raise s_exc . NoSuchProp ( name = name ) await self . snap . warn ( f'No Such Property: {name}' ) return False if self . isrunt : if prop . info . get ( 'ro' ) : raise s_exc . IsRuntForm ( mesg = 'Cannot delete read-only props on runt nodes' , form = self . form . full , prop = name ) return await self . snap . core . runRuntPropDel ( self , prop ) if not init : if prop . info . get ( 'ro' ) : if self . snap . strict : raise s_exc . ReadOnlyProp ( name = name ) await self . snap . warn ( f'Property is read-only: {name}' ) return False curv = self . props . pop ( name , s_common . novalu ) if curv is s_common . novalu : return False sops = prop . getDelOps ( self . buid ) splice = self . snap . splice ( 'prop:del' , ndef = self . ndef , prop = prop . name , valu = curv ) await self . snap . stor ( sops , [ splice ] ) await prop . wasDel ( self , curv )
Remove a property from a node and return the value