コード例 #1
0
    def if_cond( me, cond):
        attrs = me.attrs
        orcond = cond.split( '||' )
        lorcond = len( orcond)>1
        if lorcond: yield '( //||'
        for l,orc in enumerate( orcond):
            if l: yield ') || ('

            for n,c in enumerate( orc.split( '&&')):
                if n: yield ' &&'

                mc = re_cond.match( c.strip() )
                assert mc
                d = DictAttr( mc.groupdict())

                for a in '',1,2,3:
                    a = 'attr'+str(a)
                    attr = d.get( a)
                    if attr:
                        dattr = d[a] = dd( attr)
                        attrs[ attr] = dattr #'Object %(dattr)s = doc.get( "%(attr)s");' % locals()

                if d.attr:
                    yield me.exist_attr( d.attr, d['not'])
                elif d.attr1:
                    yield me.eq_attr2str( d.attr1, d.str, d.op1 == '!=')
                elif d.attr2:
                    yield me.eq_attr2attr( d.attr2, d.attr3, d.op2 == '!=')
        if lorcond: yield ') //||'
コード例 #2
0
def popylni_opis( opis0, ot_ime):
    log( bez_localz= 1)

    srezove = None
    opis = opis0
    if isinstance( opis, dict) and len(opis)>1:
        opis = DictAttr( opis)
        srezove = dai_srezove( opis)
    if not srezove:
        srezove = opis0
        opis = DictAttr()

    for k,kk in dict( ime= 'ime име', avtori= 'avtor автор').items():
        if not ot_ime.get(k): continue
        kk = kk or k
        for ko in kk.split():
            if opis.get(ko): break
        else:
            opis[ ko] = ot_ime[ k]

    etiketi = []
    for k,v in dict( zagolemi= 'възрастни', dok= 'док').items():
        if ot_ime.get( k):
            etiketi.append( v)
    if etiketi: opis[ 'етикети'] = ' '.join( etiketi )

    opis[ 'издание' ] = 'радио'
    otkyde = ' '.join( x for x in [
                            ot_ime.get( 'rubrika') or optz.rubrika or '',
                            ot_ime.data
                        ] if x)
    if otkyde.isdigit(): otkyde = int( otkyde)

    if ot_ime.get( 'nomer'):
        tova = { 'част': ot_ime.nomer, cyr.otkyde: otkyde }
        if srezove: tova[ cyr.srezove] = srezove
        opis[ cyr.parcheta ] = { fime: tova }
    elif srezove:
        opis[ cyr.srezove ] = srezove
        opis[ cyr.otkyde ] = otkyde

    return opis, srezove