argparse -> tool xml advice

classic Classic list List threaded Threaded
9 messages Options
| Threaded
Open this post in threaded view
|

argparse -> tool xml advice

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

--

-------------------------------------------
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,
[hidden email], 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
-------------------------------------------
___________________________________________________________
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/
| Threaded
Open this post in threaded view
|

Re: argparse -> tool xml advice

Björn Grüning-3
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/
| Threaded
Open this post in threaded view
|

Re: argparse -> tool xml advice

Matthias Bernt
Cool :) Thanks.

Matthias

On 28.05.2018 09:52, 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
>>

--

-------------------------------------------
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,
[hidden email], 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
-------------------------------------------
___________________________________________________________
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/
| Threaded
Open this post in threaded view
|

Re: argparse -> tool xml advice

E. Rasche
In reply to this post by Björn Grüning-3
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/
___________________________________________________________
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/
| Threaded
Open this post in threaded view
|

Re: argparse -> tool xml advice

Matthias Bernt
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.

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,
[hidden email], 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
-------------------------------------------

___________________________________________________________
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/

example.py (1K) Download Attachment
| Threaded
Open this post in threaded view
|

Re: argparse -> tool xml advice

E. Rasche
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,
> [hidden email], 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()
___________________________________________________________
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/
| Threaded
Open this post in threaded view
|

Re: argparse -> tool xml advice

Matthias Bernt
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,
>> [hidden email], 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,
[hidden email], 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
-------------------------------------------
___________________________________________________________
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/
| Threaded
Open this post in threaded view
|

Re: argparse -> tool xml advice

E. Rasche
In reply to this post by Matthias Bernt
I've published version 0.4.4 which should fix that. Please upgrade and
let me know.

For now all of the output will be in a single (invalid, no single root
element) XML file that will have multiple tools concatenated together.

Cheers,
Helena

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.
>
> 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,
> [hidden email], 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()
___________________________________________________________
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/
| Threaded
Open this post in threaded view
|

Re: argparse -> tool xml advice

Matthias Bernt
Hi Helena,

Thanks for your efforts.

Seems to work (somehow it worked only after resetting my venv).

I also tested it for the tool I want to wrap :)

Just an idea: making

`python examples/example-sub.py foo --generate_galaxy_xml`
`python examples/example-sub.py bar --generate_galaxy_xml` ...

work, could be handy to create xml files for each subparser.

Anyway, thanks a lot.

Best,
Matthias



On 28.05.2018 18:23, H. Rasche wrote:

> I've published version 0.4.4 which should fix that. Please upgrade and
> let me know.
>
> For now all of the output will be in a single (invalid, no single root
> element) XML file that will have multiple tools concatenated together.
>
> Cheers,
> Helena
>
> 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.
>>
>> 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,
>> [hidden email], 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,
[hidden email], 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
-------------------------------------------
___________________________________________________________
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/