Skip to content

Instantly share code, notes, and snippets.

@mictadlo
Created August 3, 2015 02:44
Show Gist options
  • Save mictadlo/05d09b7a5c2161864bfe to your computer and use it in GitHub Desktop.
Save mictadlo/05d09b7a5c2161864bfe to your computer and use it in GitHub Desktop.
TypeError: string indices must be integers with XMLtoDict
Traceback (most recent call last):
File "importTools2Galaxy.py", line 12, in <module>
tool_section_name = section['@name']
TypeError: string indices must be integers
<?xml version="1.0"?>
<toolbox tool_path="/galaxy/main/shed_tools">
<section id="snpeff" name="snpEff" version="">
<tool file="toolshed.g2.bx.psu.edu/repos/pcingola/snpeff/c052639fa666/snpeff/snpEff_2_1a/snpEff_2_1a/galaxy/snpSift_filter.xml" guid="toolshed.g2.bx.psu.edu/repos/pcingola/snpeff/snpSift_filter/1.0">
<tool_shed>toolshed.g2.bx.psu.edu</tool_shed>
<repository_name>snpeff</repository_name>
<repository_owner>pcingola</repository_owner>
<installed_changeset_revision>c052639fa666</installed_changeset_revision>
<id>toolshed.g2.bx.psu.edu/repos/pcingola/snpeff/snpSift_filter/1.0</id>
<version>1.0</version>
</tool>
<tool file="toolshed.g2.bx.psu.edu/repos/pcingola/snpeff/c052639fa666/snpeff/snpEff_2_1a/snpEff_2_1a/galaxy/snpEff.xml" guid="toolshed.g2.bx.psu.edu/repos/pcingola/snpeff/snpEff/1.0">
<tool_shed>toolshed.g2.bx.psu.edu</tool_shed>
<repository_name>snpeff</repository_name>
<repository_owner>pcingola</repository_owner>
<installed_changeset_revision>c052639fa666</installed_changeset_revision>
<id>toolshed.g2.bx.psu.edu/repos/pcingola/snpeff/snpEff/1.0</id>
<version>1.0</version>
</tool>
<tool file="toolshed.g2.bx.psu.edu/repos/gregory-minevich/check_snpeff_candidates/22c8c4f8d11c/check_snpeff_candidates/checkSnpEffCandidates.xml" guid="toolshed.g2.bx.psu.edu/repos/gregory-minevich/check_snpeff_candidates/check_snpeff_candidates/1.0.0">
<tool_shed>toolshed.g2.bx.psu.edu</tool_shed>
<repository_name>check_snpeff_candidates</repository_name>
<repository_owner>gregory-minevich</repository_owner>
<installed_changeset_revision>22c8c4f8d11c</installed_changeset_revision>
<id>toolshed.g2.bx.psu.edu/repos/gregory-minevich/check_snpeff_candidates/check_snpeff_candidates/1.0.0</id>
<version>1.0.0</version>
</tool>
</section>
</toolbox>
import xmltodict
# wget -c https://raw.githubusercontent.com/galaxyproject/usegalaxy-playbook/c55aa042825fe02ef4a02d958eb811adba8ea45f/files/galaxy/usegalaxy.org/var/shed_tool_conf.xml
if __name__ == '__main__':
with open('tests/shed_tool_conf.xml') as fd:
doc = xmltodict.parse(fd.read())
for section in doc['toolbox']['section']:
tool_section_name = section['@name']
print "1", tool_section_name
for tool in section['tool']:
print tool
print "2", tool['tool_shed']
print "3", tool['repository_owner']
print tool['@file']
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment