fitnr/SublimeDataConverter

converting CSV to Python Dictionary

Closed this issue · 2 comments

while I was trying to convert this CSV to Python Dictionary, I got the below error:

Name,id,name2,id2,name3,char,uniqnumber,data,data2,,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_3,1,INVOICE_DATE,A,118941,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_4,1,CREATION_DATE,A,85211,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_2,1,INVOICE_NUM,A,39964277,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_5,1,INVOICE_AMOUNT,A,3074175,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_6,1,PAY_GROUP_LOOKUP_CODE,A,27021,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_7,1,vendor_id,A,951530,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_8,1,WFAPPROVAL_STATUS,A,4304,NULL,NULL,,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_9,1,ORG_ID,A,18683,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_10,1,type,A,24089,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_11,1,vendor_id,A,868788,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_11,2,INVOICE_DATE,A,39964277,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_13,1,INVOICE_AMOUNT,A,2497767,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_13,2,WFAPPROVAL_STATUS,A,4995534,NULL,NULL,,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_14,1,vendor_id,A,2664285,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_14,2,INVOICE_AMOUNT,A,39964277,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_15,1,INVOICE_NUM,A,39964277,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_15,2,vendor_id,A,39964277,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_16,1,PAY_GROUP_LOOKUP_CODE,A,16011,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_16,2,WFAPPROVAL_STATUS,A,39490,NULL,NULL,,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_17,1,VENDOR_SITE_ID,A,689039,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_17,2,INVOICE_DATE,A,9991069,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_18,1,vendor_id,A,1537087,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_18,2,WFAPPROVAL_STATUS,A,1903060,NULL,NULL,,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_19,1,WFAPPROVAL_STATUS,NULL,39964277,NULL,NULL,,FULLTEXT,,
DataConverter: using sniffed dialect with delimiter: ,
DataConverter: using dialect sniffed
DataConverter: CSV Sniffer found headers
DataConverter found these fields and types: [<class 'str'>, <class 'int'>, <class 'str'>, <class 'int'>, <class 'str'>, <class 'str'>, <class 'int'>, <class 'str'>, <class 'str'>, <class 'str'>, <class 'str'>, <class 'str'>, <class 'str'>]
Unable to set syntax.
Traceback (most recent call last):
  File "/opt/sublime_text/sublime_plugin.py", line 812, in run_
    return self.run(edit, **args)
  File "DataConverter in /home/local/ANT/elshenha/.config/sublime-text-3/Installed Packages/DataConverter.sublime-package", line 219, in run
  File "DataConverter in /home/local/ANT/elshenha/.config/sublime-text-3/Installed Packages/DataConverter.sublime-package", line 668, in python_dict
TypeError: list indices must be integers, not str

This happened to be in this class:

class TextCommand(Command):
    def __init__(self, view):
        self.view = view

    def run_(self, edit_token, args):
        args = self.filter_args(args)
        if args:
            edit = self.view.begin_edit(edit_token, self.name(), args)
            try:
                return self.run(edit, **args)
            finally:
                self.view.end_edit(edit)
        else:
            edit = self.view.begin_edit(edit_token, self.name())
            try:
                return self.run(edit)
            finally:
                self.view.end_edit(edit)

    def run(self, edit):
        pass

exactly at this line

                return self.run(edit, **args)

Even when I fixed the CSV to the below I had the same error:

Name,id,name2,id2,name3,char,uniqnumber,data,data2,test,BTREE,tests,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_3,1,INVOICE_DATE,A,118941,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_4,1,CREATION_DATE,A,85211,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_2,1,INVOICE_NUM,A,39964277,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_5,1,INVOICE_AMOUNT,A,3074175,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_6,1,PAY_GROUP_LOOKUP_CODE,A,27021,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_7,1,vendor_id,A,951530,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_8,1,WFAPPROVAL_STATUS,A,4304,NULL,NULL,,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_9,1,ORG_ID,A,18683,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_10,1,type,A,24089,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_11,1,vendor_id,A,868788,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_11,2,INVOICE_DATE,A,39964277,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_13,1,INVOICE_AMOUNT,A,2497767,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_13,2,WFAPPROVAL_STATUS,A,4995534,NULL,NULL,,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_14,1,vendor_id,A,2664285,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_14,2,INVOICE_AMOUNT,A,39964277,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_15,1,INVOICE_NUM,A,39964277,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_15,2,vendor_id,A,39964277,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_16,1,PAY_GROUP_LOOKUP_CODE,A,16011,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_16,2,WFAPPROVAL_STATUS,A,39490,NULL,NULL,,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_17,1,VENDOR_SITE_ID,A,689039,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_17,2,INVOICE_DATE,A,9991069,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_18,1,vendor_id,A,1537087,NULL,NULL,YES,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_18,2,WFAPPROVAL_STATUS,A,1903060,NULL,NULL,,BTREE,,
AP_INVOICES_ALL_COPY,1,IX_AP_INVOICES_ALL_COPY_19,1,WFAPPROVAL_STATUS,NULL,39964277,NULL,NULL,,FULLTEXT,,
fitnr commented

I've pushed a fix. If you use Package Manager, it won't be available until I publish the next update later this week. In the meantime you can download the package and install directly.