macros.py

来自「Harvestman-最新版本」· Python 代码 · 共 186 行

PY
186
字号
# -- coding: utf-8"""macros.py - Defining macro variables for use by othermodules.Created Anand B Pillai <abpillai at gmail dot com> Oct 5 2007Copyright (C) 2007, Anand B Pillai."""class HarvestManMacroVariable(type):    """ A metaclass for HarvestMan macro variables """        PIDX = 0    NIDX = 0    macrodict = {}        def __new__(cls, name, bases=(), dct={}):        val = dct.get('value')        if val != None:            dct['index'] = val                    elif dct.get('negate'):            cls.NIDX -= 1            dct['index'] = cls.NIDX        else:            cls.PIDX += 1            dct['index'] = cls.PIDX                    item = type.__new__(cls, name, bases, dct)        cls.macrodict[name] = item        return item    def __init__(cls, name, bases=(), dct={}):	pass    def __str__(self):        return '%d' % (self.index)    def __eq__(self, number):        # Makes it easy to do things like        # THREAD_IDLE == 0 in code.        return self.index == number    def __lt__(self, number):        return self.index < number    def __gt__(self, number):        return self.index > number    def __le__(self, number):        return self.index <= number    def __ge__(self, number):        return self.index >= number        def DEFINE_MACRO(name, val=None):    """ A factory function for defining macros """    if val != None:        globals()[name] = HarvestManMacroVariable(name, dct={'value': val})    else:        globals()[name] = HarvestManMacroVariable(name)def DEFINE_NEGATIVE_MACRO(name, val=None):    """ A factory function for defining macros with negative values """    if val != None:        globals()[name] = HarvestManMacroVariable(name, dct={'value': val,'negate': True})    else:        globals()[name] = HarvestManMacroVariable(name, dct={'negate': True})def SUCCESS(status):    return (status > 0)    DEFINE_ERROR_MACRO = DEFINE_NEGATIVE_MACRO# Special (predefined) macrosDEFINE_MACRO("HARVESTMAN_OK", 1)DEFINE_MACRO("HARVESTMAN_FAIL", -1)DEFINE_MACRO("OPTION_TURN_OFF", 0)DEFINE_MACRO("OPTION_TURN_ON", 1)DEFINE_MACRO("CONNECTOR_DATA_MODE_FLUSH", 0)DEFINE_MACRO("CONNECTOR_DATA_MODE_INMEM", 1)# Success macrosDEFINE_MACRO("RESTORE_STATE_OK")DEFINE_MACRO("SAVE_STATE_OK")DEFINE_MACRO("CONFIG_FILE_EXISTS")DEFINE_MACRO("CONFIG_FILE_PARSE_OK")DEFINE_MACRO("CONFIG_OPTION_SET")DEFINE_MACRO("CONFIG_ITEM_SKIPPED")DEFINE_MACRO("CONFIG_OPTION_NOT_DEFINED")DEFINE_MACRO("CONFIG_ARGUMENT_OK")DEFINE_MACRO("CONFIG_ARGUMENTS_OK")DEFINE_MACRO("PROJECT_FILE_EXISTS", 0)DEFINE_MACRO("CONFIGURE_PROTOCOL_OK")DEFINE_MACRO("CONNECT_MULTIPART_DOWNLOAD")DEFINE_MACRO("CONNECT_NO_UPTODATE")DEFINE_MACRO("CONNECT_YES_DOWNLOADED")DEFINE_MACRO("DOWNLOAD_YES_WITH_MODIFICATION")DEFINE_MACRO("DOWNLOAD_NO_UPTODATE")DEFINE_MACRO("DOWNLOAD_NO_CACHE_SYNCED")DEFINE_MACRO("DOWNLOAD_YES_OK")DEFINE_MACRO("URL_PUSHED_TO_POOL")DEFINE_MACRO("CREATE_DIRECTORY_OK")DEFINE_MACRO("URL_DOWNLOAD_OK")DEFINE_MACRO("DATA_ALREADY_PRESENT")DEFINE_MACRO("FILE_WRITE_OK")DEFINE_MACRO("WRITE_URL_OK")DEFINE_MACRO("DUMP_URL_OK")DEFINE_MACRO("PROJECT_FILE_READ_OK")DEFINE_MACRO("PROJECT_FILE_WRITE_OK")DEFINE_MACRO("WRITE_URL_HEADERS_OK")DEFINE_MACRO("BROWSE_FILE_WRITE_OK")DEFINE_MACRO("LINK_FILTERED")DEFINE_MACRO("LINK_NOT_FILTERED")DEFINE_MACRO("LINK_EMPTY")DEFINE_MACRO("ANCHOR_LINK_FOUND")DEFINE_MACRO("SET_STATE_OK")DEFINE_MACRO("THREAD_MIGRATION_OK")DEFINE_MACRO("MULTIPART_DOWNLOAD_QUEUED")DEFINE_MACRO("MULTIPART_DOWNLOAD_COMPLETED")DEFINE_MACRO("MULTIPART_DOWNLOAD_STATUS_UNKNOWN")DEFINE_MACRO("HGET_DOWNLOAD_OK")# Error macrosDEFINE_ERROR_MACRO("SAVE_STATE_NOT_OK")DEFINE_ERROR_MACRO("RESTORE_STATE_NOT_OK")DEFINE_ERROR_MACRO("CONFIG_FILE_DOES_NOT_EXIST")DEFINE_ERROR_MACRO("CONFIG_FILE_PARSE_ERROR")DEFINE_ERROR_MACRO("CONFIG_VALUE_EMPTY")DEFINE_ERROR_MACRO("CONFIG_VALUE_MISMATCH")DEFINE_ERROR_MACRO("CONFIG_OPTION_NOT_SET")DEFINE_ERROR_MACRO("CONFIG_OPTION_ASSIGN_ERROR")DEFINE_ERROR_MACRO("CONFIG_INVALID_ARGUMENT")DEFINE_ERROR_MACRO("CONFIG_ARGUMENT_ERROR")DEFINE_ERROR_MACRO("CONNECT_NO_RULES_VIOLATION")DEFINE_ERROR_MACRO("CONNECT_NO_FILTERED")DEFINE_ERROR_MACRO("CONNECT_NO_ERROR")DEFINE_ERROR_MACRO("CONNECT_DOWNLOAD_ABORTED")DEFINE_ERROR_MACRO("DOWNLOAD_NO_ERROR")DEFINE_ERROR_MACRO("DOWNLOAD_NO_WRITE_FILTERED")DEFINE_ERROR_MACRO("DOWNLOAD_NO_RULE_VIOLATION")DEFINE_ERROR_MACRO("DOWNLOAD_NO_CACHE_SYNC_FAILED")DEFINE_ERROR_MACRO("CREATE_DIRECTORY_NOT_OK")DEFINE_ERROR_MACRO("URL_DOWNLOAD_FAILED")DEFINE_ERROR_MACRO("DATA_DOWNLOAD_ERROR")DEFINE_ERROR_MACRO("DATA_EMPTY_ERROR")DEFINE_ERROR_MACRO("FILE_WRITE_ERROR")DEFINE_ERROR_MACRO("WRITE_URL_FAILED")DEFINE_ERROR_MACRO("NULL_URLOBJECT_ERROR")DEFINE_ERROR_MACRO("INVALID_ARCHIVE_FORMAT")DEFINE_ERROR_MACRO("FILE_TRUNCATE_ERROR")DEFINE_ERROR_MACRO("DUMP_URL_ERROR")DEFINE_ERROR_MACRO("PROJECT_FILE_READ_ERROR")DEFINE_ERROR_MACRO("PROJECT_FILE_WRITE_ERROR")DEFINE_ERROR_MACRO("PROJECT_FILE_REMOVE_ERROR")DEFINE_ERROR_MACRO("WRITE_URL_HEADERS_ERROR")DEFINE_ERROR_MACRO("BROWSE_FILE_NOT_FOUND")DEFINE_ERROR_MACRO("BROWSE_FILE_READ_ERROR")DEFINE_ERROR_MACRO("BROWSE_FILE_EMPTY")DEFINE_ERROR_MACRO("BROWSE_FILE_INVALID")DEFINE_ERROR_MACRO("BROWSE_FILE_WRITE_ERROR")DEFINE_ERROR_MACRO("ANCHOR_LINK_NOT_FOUND")DEFINE_ERROR_MACRO("SET_STATE_ERROR")DEFINE_ERROR_MACRO("THREAD_MIGRATION_ERROR")DEFINE_ERROR_MACRO("MULTIPART_DOWNLOAD_ERROR")DEFINE_ERROR_MACRO("HGET_FATAL_ERROR")DEFINE_ERROR_MACRO("HGET_KEYBOARD_INTERRUPT")DEFINE_ERROR_MACRO("HGET_DOWNLOAD_ERROR")DEFINE_ERROR_MACRO("MIRRORS_NOT_FOUND")DEFINE_ERROR_MACRO("WRITE_URL_FILTERED")DEFINE_ERROR_MACRO("WRITE_URL_BLOCKED")DEFINE_ERROR_MACRO("CONTROLLER_EXIT")if __name__ == "__main__":    for key, val in HarvestManMacroVariable.macrodict.iteritems():        print key,'=>',val.index

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?