Hi Helena,
yep, separate xml files would be fine. I was first thinking about a
single xml file having a select in the begin that allows to choose which
of the functionalities to use (eg one option per subparser). But I guess
the xml file might become quite large and unhandy.
Cheers,
Matthias
On 28.05.2018 11:12, H. Rasche wrote:
Hi Matthias,
On 2018-05-28, Matthias Bernt wrote:
> Hi Helena,
>
> got it running, but I struggling with subparsers (the tools that I try to
> wrap basically only uses subparsers .. a lot of them). I adapted the
> example.py in your repo to include a subparser which seems to be excluded
> from the xml.
>
> I call `python example.py --generate_galaxy_xml`
>
> since `python example.py sub --generate_galaxy_xml` seems not to work.
Yeah, I never implemented support for subparsers. What sort of XML would
you expect that to output? I think, to me, it feels like it should
output multiple tool XMLs, one for each subparser.
> Any suggestions?
>
> Best,
> Matthias
>
>
> On 28.05.2018 10:02, H. Rasche wrote:
>> Hey Matthias,
>>
>> And let me know if you have any questions or bugs!
>>
>> There are a couple of things it won't do, but if you're looking to get
>> 90% of the way from python script to tool interface, it will do that. It
>> won't get you the last 10% of nice repeat blocks and sections and all of
>> the things that help make galaxy tools more user-friendly. But this can
>> still be a huge time savings
>>
>> Cheers,
>> Helena (@erasche)
>>
>> On 2018-05-28, Björn Grüning wrote:
>>> Hi Matthias,
>>>
>>> check this one out:
https://github.com/erasche/argparse2tool
>>>
>>> Cheers,
>>> Bjoern
>>>
>>> Am 28.05.2018 um 09:43 schrieb Matthias Bernt:
>>>> Dear list,
>>>>
>>>> just a question for advice: I plan to wrap a python script (with lots of
>>>> options) which uses the argparse library. I was wondering if somebody
has
>>>> an idea to generate the tool xml (semi-)automatically? For instance, by
>>>> subclassing the formatter, parsing the python code, or parsing the
command
>>>> line...
>>>>
>>>> Cheers,
>>>> Matthias
>>>>
>>> ___________________________________________________________
>>> Please keep all replies on the list by using "reply all"
>>> in your mail client. To manage your subscriptions to this
>>> and other Galaxy lists, please use the interface at:
>>>
https://lists.galaxyproject.org/
>>>
>>> To search Galaxy mailing lists use the unified search at:
>>>
http://galaxyproject.org/search/
>
> --
>
> -------------------------------------------
> Matthias Bernt
> Bioinformatics Service
> Molekulare Systembiologie (MOLSYB)
> Helmholtz-Zentrum für Umweltforschung GmbH - UFZ/
> Helmholtz Centre for Environmental Research GmbH - UFZ
> Permoserstraße 15, 04318 Leipzig, Germany
> Phone +49 341 235 482296,
> m.bernt(a)ufz.de,
www.ufz.de
>
> Sitz der Gesellschaft/Registered Office: Leipzig
> Registergericht/Registration Office: Amtsgericht Leipzig
> Handelsregister Nr./Trade Register Nr.: B 4703
> Vorsitzender des Aufsichtsrats/Chairman of the Supervisory Board: MinDirig
> Wilfried Kraus
> Wissenschaftlicher Geschäftsführer/Scientific Managing Director:
> Prof. Dr. Dr. h.c. Georg Teutsch
> Administrative Geschäftsführerin/ Administrative Managing Director:
> Prof. Dr. Heike Graßmann
> -------------------------------------------
> # /usr/bin/python3
> import argparse
>
> parser = argparse.ArgumentParser(description='Process some integers.',
prefix_chars='-+', epilog="here's some epilog text",
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
> parser.add_argument('keyword', metavar='Q', type=str, nargs=1,
help='action keyword')
>
> parser.add_argument('integers', metavar='N', type=int,
nargs='+',
> help='an integer for the accumulator')
>
> parser.add_argument('--sum', '-s', dest='accumulate',
action='store_const',
> const=sum, default=max, help='sum the integers (default:
find the max)')
>
> parser.add_argument('--foo', nargs='?', help='foo help')
> parser.add_argument('--bar', nargs='*', default=[1, 2, 3],
help='BAR!')
> parser.add_argument('--true', action='store_true', help='Store a
true')
> parser.add_argument('--false', action='store_false', help='Store
a false')
> parser.add_argument('--append', action='append', help='Append a
value')
>
> parser.add_argument('--nargs2', nargs=2, help='nargs2')
>
> parser.add_argument('--mode', choices=['rock', 'paper',
'scissors'], default='scissors')
>
>
> parser.add_argument('--version', action='version',
version='2.0')
>
> subparsers = parser.add_subparsers()
> subparser = subparsers.add_parser('sub', help='test subparser')
> subparser.add_argument('keyword', type=str)
> subparser.add_argument('--subtrue', action='store_true',
help='Store a true')
>
> args = parser.parse_args()
--
-------------------------------------------
Matthias Bernt
Bioinformatics Service
Molekulare Systembiologie (MOLSYB)
Helmholtz-Zentrum für Umweltforschung GmbH - UFZ/
Helmholtz Centre for Environmental Research GmbH - UFZ
Permoserstraße 15, 04318 Leipzig, Germany
Phone +49 341 235 482296,
m.bernt(a)ufz.de,
Sitz der Gesellschaft/Registered Office: Leipzig
Registergericht/Registration Office: Amtsgericht Leipzig
Handelsregister Nr./Trade Register Nr.: B 4703
Vorsitzender des Aufsichtsrats/Chairman of the Supervisory Board:
MinDirig Wilfried Kraus
Wissenschaftlicher Geschäftsführer/Scientific Managing Director:
Prof. Dr. Dr. h.c. Georg Teutsch
Administrative Geschäftsführerin/ Administrative Managing Director:
Prof. Dr. Heike Graßmann
-------------------------------------------