def makePredicateInfoObject():
    if INFO_OBJECT:
        return
    for key in MACHINE.keys():
        INFO_OBJECT[key] = MACHINE[key]
    # use our start time for "current" date (if we have it)
    # and add the timezone offset to it so we can compare
    # UTC dates as though they were local dates.
    INFO_OBJECT['date'] = addTimeZoneOffsetToDate(
        NSDate.dateWithString_(
            munkicommon.report.get('StartTime', munkicommon.format_time())))
    os_vers = MACHINE['os_vers']
    os_vers = os_vers + '.0.0'
    INFO_OBJECT['os_vers_major'] = int(os_vers.split('.')[0])
    INFO_OBJECT['os_vers_minor'] = int(os_vers.split('.')[1])
    INFO_OBJECT['os_vers_patch'] = int(os_vers.split('.')[2])
    if 'Book' in MACHINE.get('machine_model', ''):
        INFO_OBJECT['machine_type'] = 'laptop'
    else:
        INFO_OBJECT['machine_type'] = 'desktop'
    for key in CONDITIONS.keys():
        INFO_OBJECT[key] = CONDITIONS[key]
Builds our info object used for predicate comparisons
dataset/ETHPy150Open munki/munki/code/client/munkilib/updatecheck.py/makePredicateInfoObject