Chris,<br><br>Both a list and dict are both iterable.  I get a python dictionary object of both iterables.;) It is nice... but I don't know if this is good form? Should I be asking the duck question here?<br>>>> print helo.__dict__<br>
{'keylist': [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 999], 'd': {0: 'CMD_NONE', 1: 'CMD_ADD_HOST_COMMENT', 2: 'CMD_DEL_HOST_COMMENT', 3: 'CMD_ADD_SVC_COMMENT', 4: 'CMD_DEL_SVC_COMMENT', 5: 'CMD_ENABLE_SVC_CHECK', 6: 'CMD_DISABLE_SVC_CHECK', 7: 'CMD_SCHEDULE_SVC_CHECK', 9: 'CMD_DELAY_SVC_NOTIFICATION', 10: 'CMD_DELAY_HOST_NOTIFICATION', 11: 'CMD_DISABLE_NOTIFICATIONS', 12: 'CMD_ENABLE_NOTIFICATIONS', 13: 'CMD_RESTART_PROCESS', 14: 'CMD_SHUTDOWN_PROCESS', 15: 'CMD_ENABLE_HOST_SVC_CHECKS', 16: 'CMD_DISABLE_HOST_SVC_CHECKS', 17: 'CMD_SCHEDULE_HOST_SVC_CHECKS', 20: 'CMD_DEL_ALL_HOST_COMMENTS', 21: 'CMD_DEL_ALL_SVC_COMMENTS', 22: 'CMD_ENABLE_SVC_NOTIFICATIONS', 23: 'CMD_DISABLE_SVC_NOTIFICATIONS', 24: 'CMD_ENABLE_HOST_NOTIFICATIONS', 25: 'CMD_DISABLE_HOST_NOTIFICATIONS', 26: 'CMD_ENABLE_ALL_NOTIFICATIONS_BEYOND_HOST', 27: 'CMD_DISABLE_ALL_NOTIFICATIONS_BEYOND_HOST', 28: 'CMD_ENABLE_HOST_SVC_NOTIFICATIONS', 29: 'CMD_DISABLE_HOST_SVC_NOTIFICATIONS', 30: 'CMD_PROCESS_SERVICE_CHECK_RESULT', 31: 'CMD_SAVE_STATE_INFORMATION', 32: 'CMD_READ_STATE_INFORMATION', 33: 'CMD_ACKNOWLEDGE_HOST_PROBLEM', 34: 'CMD_ACKNOWLEDGE_SVC_PROBLEM', 35: 'CMD_START_EXECUTING_SVC_CHECKS', 36: 'CMD_STOP_EXECUTING_SVC_CHECKS', 37: 'CMD_START_ACCEPTING_PASSIVE_SVC_CHECKS', 38: 'CMD_STOP_ACCEPTING_PASSIVE_SVC_CHECKS', 39: 'CMD_ENABLE_PASSIVE_SVC_CHECKS', 40: 'CMD_DISABLE_PASSIVE_SVC_CHECKS', 41: 'CMD_ENABLE_EVENT_HANDLERS', 42: 'CMD_DISABLE_EVENT_HANDLERS', 43: 'CMD_ENABLE_HOST_EVENT_HANDLER', 44: 'CMD_DISABLE_HOST_EVENT_HANDLER', 45: 'CMD_ENABLE_SVC_EVENT_HANDLER', 46: 'CMD_DISABLE_SVC_EVENT_HANDLER', 47: 'CMD_ENABLE_HOST_CHECK', 48: 'CMD_DISABLE_HOST_CHECK', 49: 'CMD_START_OBSESSING_OVER_SVC_CHECKS', 50: 'CMD_STOP_OBSESSING_OVER_SVC_CHECKS', 51: 'CMD_REMOVE_HOST_ACKNOWLEDGEMENT', 52: 'CMD_REMOVE_SVC_ACKNOWLEDGEMENT', 53: 'CMD_SCHEDULE_FORCED_HOST_SVC_CHECKS', 54: 'CMD_SCHEDULE_FORCED_SVC_CHECK', 55: 'CMD_SCHEDULE_HOST_DOWNTIME', 56: 'CMD_SCHEDULE_SVC_DOWNTIME', 57: 'CMD_ENABLE_HOST_FLAP_DETECTION', 58: 'CMD_DISABLE_HOST_FLAP_DETECTION', 59: 'CMD_ENABLE_SVC_FLAP_DETECTION', 60: 'CMD_DISABLE_SVC_FLAP_DETECTION', 61: 'CMD_ENABLE_FLAP_DETECTION', 62: 'CMD_DISABLE_FLAP_DETECTION', 63: 'CMD_ENABLE_HOSTGROUP_SVC_NOTIFICATIONS', 64: 'CMD_DISABLE_HOSTGROUP_SVC_NOTIFICATIONS', 65: 'CMD_ENABLE_HOSTGROUP_HOST_NOTIFICATIONS', 66: 'CMD_DISABLE_HOSTGROUP_HOST_NOTIFICATIONS', 67: 'CMD_ENABLE_HOSTGROUP_SVC_CHECKS', 68: 'CMD_DISABLE_HOSTGROUP_SVC_CHECKS', 77: 'CMD_FLUSH_PENDING_COMMANDS', 78: 'CMD_DEL_HOST_DOWNTIME', 79: 'CMD_DEL_SVC_DOWNTIME', 80: 'CMD_ENABLE_FAILURE_PREDICTION', 81: 'CMD_DISABLE_FAILURE_PREDICTION', 82: 'CMD_ENABLE_PERFORMANCE_DATA', 83: 'CMD_DISABLE_PERFORMANCE_DATA', 84: 'CMD_SCHEDULE_HOSTGROUP_HOST_DOWNTIME', 85: 'CMD_SCHEDULE_HOSTGROUP_SVC_DOWNTIME', 86: 'CMD_SCHEDULE_HOST_SVC_DOWNTIME', 87: 'CMD_PROCESS_HOST_CHECK_RESULT', 88: 'CMD_START_EXECUTING_HOST_CHECKS', 89: 'CMD_STOP_EXECUTING_HOST_CHECKS', 90: 'CMD_START_ACCEPTING_PASSIVE_HOST_CHECKS', 91: 'CMD_STOP_ACCEPTING_PASSIVE_HOST_CHECKS', 92: 'CMD_ENABLE_PASSIVE_HOST_CHECKS', 93: 'CMD_DISABLE_PASSIVE_HOST_CHECKS', 94: 'CMD_START_OBSESSING_OVER_HOST_CHECKS', 95: 'CMD_STOP_OBSESSING_OVER_HOST_CHECKS', 96: 'CMD_SCHEDULE_HOST_CHECK', 98: 'CMD_SCHEDULE_FORCED_HOST_CHECK', 99: 'CMD_START_OBSESSING_OVER_SVC', 100: 'CMD_STOP_OBSESSING_OVER_SVC', 101: 'CMD_START_OBSESSING_OVER_HOST', 102: 'CMD_STOP_OBSESSING_OVER_HOST', 103: 'CMD_ENABLE_HOSTGROUP_HOST_CHECKS', 104: 'CMD_DISABLE_HOSTGROUP_HOST_CHECKS', 105: 'CMD_ENABLE_HOSTGROUP_PASSIVE_SVC_CHECKS', 106: 'CMD_DISABLE_HOSTGROUP_PASSIVE_SVC_CHECKS', 107: 'CMD_ENABLE_HOSTGROUP_PASSIVE_HOST_CHECKS', 108: 'CMD_DISABLE_HOSTGROUP_PASSIVE_HOST_CHECKS', 109: 'CMD_ENABLE_SERVICEGROUP_SVC_NOTIFICATIONS', 110: 'CMD_DISABLE_SERVICEGROUP_SVC_NOTIFICATIONS', 111: 'CMD_ENABLE_SERVICEGROUP_HOST_NOTIFICATIONS', 112: 'CMD_DISABLE_SERVICEGROUP_HOST_NOTIFICATIONS', 113: 'CMD_ENABLE_SERVICEGROUP_SVC_CHECKS', 114: 'CMD_DISABLE_SERVICEGROUP_SVC_CHECKS', 115: 'CMD_ENABLE_SERVICEGROUP_HOST_CHECKS', 116: 'CMD_DISABLE_SERVICEGROUP_HOST_CHECKS', 117: 'CMD_ENABLE_SERVICEGROUP_PASSIVE_SVC_CHECKS', 118: 'CMD_DISABLE_SERVICEGROUP_PASSIVE_SVC_CHECKS', 119: 'CMD_ENABLE_SERVICEGROUP_PASSIVE_HOST_CHECKS', 120: 'CMD_DISABLE_SERVICEGROUP_PASSIVE_HOST_CHECKS', 121: 'CMD_SCHEDULE_SERVICEGROUP_HOST_DOWNTIME', 122: 'CMD_SCHEDULE_SERVICEGROUP_SVC_DOWNTIME', 123: 'CMD_CHANGE_GLOBAL_HOST_EVENT_HANDLER', 124: 'CMD_CHANGE_GLOBAL_SVC_EVENT_HANDLER', 125: 'CMD_CHANGE_HOST_EVENT_HANDLER', 126: 'CMD_CHANGE_SVC_EVENT_HANDLER', 127: 'CMD_CHANGE_HOST_CHECK_COMMAND', 128: 'CMD_CHANGE_SVC_CHECK_COMMAND', 129: 'CMD_CHANGE_NORMAL_HOST_CHECK_INTERVAL', 130: 'CMD_CHANGE_NORMAL_SVC_CHECK_INTERVAL', 131: 'CMD_CHANGE_RETRY_SVC_CHECK_INTERVAL', 132: 'CMD_CHANGE_MAX_HOST_CHECK_ATTEMPTS', 133: 'CMD_CHANGE_MAX_SVC_CHECK_ATTEMPTS', 134: 'CMD_SCHEDULE_AND_PROPAGATE_TRIGGERED_HOST_DOWNTIME', 135: 'CMD_ENABLE_HOST_AND_CHILD_NOTIFICATIONS', 136: 'CMD_DISABLE_HOST_AND_CHILD_NOTIFICATIONS', 137: 'CMD_SCHEDULE_AND_PROPAGATE_HOST_DOWNTIME', 138: 'CMD_ENABLE_SERVICE_FRESHNESS_CHECKS', 139: 'CMD_DISABLE_SERVICE_FRESHNESS_CHECKS', 140: 'CMD_ENABLE_HOST_FRESHNESS_CHECKS', 141: 'CMD_DISABLE_HOST_FRESHNESS_CHECKS', 142: 'CMD_SET_HOST_NOTIFICATION_NUMBER', 143: 'CMD_SET_SVC_NOTIFICATION_NUMBER', 144: 'CMD_CHANGE_HOST_CHECK_TIMEPERIOD', 145: 'CMD_CHANGE_SVC_CHECK_TIMEPERIOD', 146: 'CMD_PROCESS_FILE', 147: 'CMD_CHANGE_CUSTOM_HOST_VAR', 148: 'CMD_CHANGE_CUSTOM_SVC_VAR', 149: 'CMD_CHANGE_CUSTOM_CONTACT_VAR', 150: 'CMD_ENABLE_CONTACT_HOST_NOTIFICATIONS', 151: 'CMD_DISABLE_CONTACT_HOST_NOTIFICATIONS', 152: 'CMD_ENABLE_CONTACT_SVC_NOTIFICATIONS', 153: 'CMD_DISABLE_CONTACT_SVC_NOTIFICATIONS', 154: 'CMD_ENABLE_CONTACTGROUP_HOST_NOTIFICATIONS', 155: 'CMD_DISABLE_CONTACTGROUP_HOST_NOTIFICATIONS', 156: 'CMD_ENABLE_CONTACTGROUP_SVC_NOTIFICATIONS', 157: 'CMD_DISABLE_CONTACTGROUP_SVC_NOTIFICATIONS', 158: 'CMD_CHANGE_RETRY_HOST_CHECK_INTERVAL', 159: 'CMD_SEND_CUSTOM_HOST_NOTIFICATION', 160: 'CMD_SEND_CUSTOM_SVC_NOTIFICATION', 161: 'CMD_CHANGE_HOST_NOTIFICATION_TIMEPERIOD', 162: 'CMD_CHANGE_SVC_NOTIFICATION_TIMEPERIOD', 163: 'CMD_CHANGE_CONTACT_HOST_NOTIFICATION_TIMEPERIOD', 164: 'CMD_CHANGE_CONTACT_SVC_NOTIFICATION_TIMEPERIOD', 165: 'CMD_CHANGE_HOST_MODATTR', 166: 'CMD_CHANGE_SVC_MODATTR', 167: 'CMD_CHANGE_CONTACT_MODATTR', 168: 'CMD_CHANGE_CONTACT_MODHATTR', 169: 'CMD_CHANGE_CONTACT_MODSATTR', 170: 'CMD_DEL_DOWNTIME_BY_HOST_NAME', 171: 'CMD_DEL_DOWNTIME_BY_HOSTGROUP_NAME', 172: 'CMD_DEL_DOWNTIME_BY_START_TIME_COMMENT', 999: 'CMD_CUSTOM_COMMAND'}}<br>
<br><div class="gmail_quote">On Mon, Jan 9, 2012 at 3:17 PM, Chris Rebert <span dir="ltr"><<a href="mailto:clp2@rebertia.com">clp2@rebertia.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
On Mon, Jan 9, 2012 at 2:51 PM, <a href="mailto:david.garvey@gmail.com">david.garvey@gmail.com</a><br>
<<a href="mailto:david.garvey@gmail.com">david.garvey@gmail.com</a>> wrote:<br>
<snip><br>
<div class="im">>>>> class Parse_Nagios_Header:<br>
> ...     def __init__(self):<br>
> ...         self.keylist = []<br>
> ...         self.d = {}<br>
</div><snip><br>
<div class="im">> ...     def __iter__(self):<br>
> ...         return iter(self.keylist, self.d)<br>
<br>
</div>No idea what you're expecting this __iter__() to do, but it doesn't work at all.<br>
Relevant docs:<br>
<a href="http://docs.python.org/library/functions.html#iter" target="_blank">http://docs.python.org/library/functions.html#iter</a><br>
<a href="http://docs.python.org/reference/datamodel.html#object.__iter__" target="_blank">http://docs.python.org/reference/datamodel.html#object.__iter__</a><br>
<br>
Cheers,<br>
Chris<br>
</blockquote></div><br><br clear="all"><br>-- <br>David Garvey<br>