A day or two ago when sfb fixed some code up for me, he asked me what strArgs was. strArgs wasn't a problem until now, it seems that nothing is creating it. Here is some of the code in VB6, maybe this will clarify some things.
Code:
Private Sub Parse2(ByVal strData As String)
On Error Resume Next
    'This subroutine does the actual parsing. It gets called
    'by the ParseData subroutine. There is no need to call it
    'from outside.
    
    Dim strData1, strData2, i
    Dim strArgs() As String
    
    'Sometimes, Battle.net puts a LineFeed character at the
    'beginning of strings. We need to trim it.
    If Left(strData, 1) = Chr(10) Then
        strData = Right(strData, Len(strData) - 1)
    End If
    
    'Check whether this is normal text, or an event
    If Val(Left(strData, 4)) < 1001 Or Val(Left(strData, 4)) > 3000 Then
        Event_Unknown strData
        Exit Sub
    End If
    
    'If this is an event, then we separate the arguments, and quoted text
    i = InStr(1, strData, Chr(34), vbBinaryCompare)
    If i <> 0 Then
        strData1 = Left(strData, i - 2)
        strData2 = Mid(strData, i + 1, Len(strData) - i - 1)
    Else
        strData1 = strData
        strData2 = ""
    End If
    SplitStr strData1, strArgs(), " "
    
    'Call Appropriate Event based on ID
    Select Case Val(strArgs(1))
        Case 1001: Event_User strArgs(3), strArgs(4), strArgs(5)
        Case 1002: Event_Join strArgs(3), strArgs(4), strArgs(5)
        Case 1003: Event_Leave strArgs(3), strArgs(4)
        Case 1004: Event_RecvWhisper strArgs(3), strArgs(4), strData2
        Case 1005: Event_Talk strArgs(3), strArgs(4), strData2
        Case 1006: Event_Broadcast strData2
        Case 1007: Event_Channel strData2
        Case 1009: Event_Flags strArgs(3), strArgs(4)
        Case 1010: Event_SendWhisper strArgs(3), strArgs(4), strData2
        Case 1013: Event_ChannelFull strData2
        Case 1014: Event_ChannelNotExist strData2
        Case 1015: Event_ChannelRestricted strData2
        Case 1016: Event_Info strData2
        Case 1018: Event_Info strData2
        Case 1019: Event_Error strData2
        Case 1023: Event_Emote strArgs(3), strArgs(4), strData2
        Case 2010: Event_Name strArgs(3)
        Case 3000: Event_Info strData2
    End Select
End Sub

Public Function SplitStr(ByVal OriginalString As String, ByRef ReturnArray() As String, ByVal Delimiter As String) As Long
    'Used to split a string by delimiters, into a dynamic array, and returns
    'the ubound of the array, i use this since vb5 doesnt have the split() function
    
    Dim sItem, lArrCnt
    Dim lLen, lPos
    
    lArrCnt = 0
    lLen = Len(OriginalString)

    Do
        lPos = InStr(1, OriginalString, Delimiter, vbTextCompare)
        If lPos <> 0 Then
            sItem = Left$(OriginalString, lPos - 1)
            OriginalString = Mid$(OriginalString, lPos + 1)
            If sItem <> "" Then
                lArrCnt = lArrCnt + 1
                If lArrCnt = 1 Then
                    ReDim ReturnArray(1 To lArrCnt) As String
                Else
                    ReDim Preserve ReturnArray(1 To lArrCnt) As String
                End If
                ReturnArray(lArrCnt) = sItem
            End If
        End If
    Loop While lPos <> 0

    If OriginalString <> "" Then
        lArrCnt = lArrCnt + 1
        ReDim Preserve ReturnArray(1 To lArrCnt) As String
        ReturnArray(lArrCnt) = OriginalString
    End If
    
    SplitStr = lArrCnt
End Function
I already have the correct SplitStr code in Python, and I have the correct Parse2 code written in Python. The problem I have is where strArgs is comnig from. I noticed that strArgs() is declared as a string. Can anyone tell me how this is made in Python?