Next / Previous / Contents / TCC Help System / NM Tech homepage

10.16. hist.cgi: updateCompoundAbbrs

hist.cgi
# - - -   u p d a t e C o m p o u n d A b b r s

def updateCompoundAbbrs(c, txny):
    '''Replace codes in a compound form with modern equivalents.

      [ (c is a pycbc.Census instance with c.rel!=abbrMod.REL_SIMPLE) and
        (txny is an xnomo3.Txny instance) ->
          if c contains any outdate codes with modern equivalents
          in txny ->
            return a new pycbc.Census instance representing c but with
            either or both codes replaced by modern equivalents
          else -> return c
    '''
    #-- 1
    # [ if c.form has a modern equivalent in txny ->
    #     newForm  :=  that code in standard form
    #   else ->
    #     newForm  :=  None ]
    newForm = fixOldAbbr(c.form, txny)

    #-- 2
    # [ if c.alt_form has a modern equivalent in txny ->
    #     newAltForm  :=  that code in standard form
    #   else ->
    #     newAltForm  :=  None ]
    newAltForm = fixOldAbbr(c.alt_form, txny)

At this point, if both lookups resulted in None, we don't need to build a new Census instance; we can just return the old one. Otherwise we check each of the two values and, if either one is None, we reinstate the original value.

hist.cgi
    #-- 3
    # [ if (newForm is None) and (newAltForm is None) ->
    #     return c
    #   else if newForm is None ->
    #     newForm  :=  c.form
    #   else ->
    #     newAltForm  :=  c.alt_form ]
    if (newForm is None) and (newAltForm is None):
        return c
    elif newForm is None:
        newForm = c.form
    else:
        newAltForm = c.alt_form

    #-- 4
    # [ return a new pycbc.Census instance representing c, except with
    #   c.form replaced by newForm and c.alt_form by newAltForm ]
    return lib.pycbc.CBCData.Census(c.lat, c.lon, c.year_no, c.year_key,
        c.seq_no, newForm, c.rel, newAltForm, c.age, c.sex,
        c.plus, c.q, c.census)