Re: [galaxy-dev] find UUID of current history in tool XML wrapper?

2015-05-05 Thread Dooley, Damion
About
   1. find UUID of current history in tool XML wrapper? (Ben Bimber)
   2. Re: find UUID of current history in tool XML wrapper?
  (John Chilton)

I think this will work for you, I've simplified the code.  I was able to do 
this somewhat circuitously (=bonfire of time) for my upcoming Versioned Data 
tool.  In your tool XML definition file:

param name=history_id display=radio type=drill_down 
dynamic_options=vdb_init_tool_user(__trans__) /
...
code file=versioned_data_form.py /

Not sure if making history_id a hidden field would work (I seemed to recall 
__trans__ variable only exposed to select param).

And in a script named versioned_data_form.py we have:

def vdb_init_tool_user(trans):

...
ALSO: squeezing history_id in this way since no other way to pass it.
trans is provided only by tool form presentation via code 
file=... 
...

history_id = str(trans.security.encode_id(trans.history.id))

items = [ { 'name': 'think of something to say here', 'value': 
history_id, 'options':[], 'selected': True } ]

return items
___
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/mailinglists/

Re: [galaxy-dev] find UUID of current history in tool XML wrapper?

2015-05-05 Thread Ben Bimber
Hi Damion,

Possibly a dumb question, but I thought I'd ask: if i understand your
example, you're basically end-running galaxy due to the fact that for
dynamic options you can execute code.  When this is called, galaxy passes
in an object that lets you access the current history ID.

In other contexts, I have seen code within configfile or similar blocks
that seems to essentially be calling native python code as well.  Can a
similar approach be used to accomplish what you're doing more directly?
For example, the other day John Chilton posted this example for the API key:

#from galaxy.managers import api_keys#
${api_keys.ApiKeyManager( $__app__ ).get_or_create_api_key( $__user__ )}

If I'm already using non-public APIs to get the current history ID, can it
be done more directly using something analogous to the above?

Thanks,
Ben


On Tue, May 5, 2015 at 10:33 AM, Dooley, Damion damion.doo...@bccdc.ca
wrote:

 About
1. find UUID of current history in tool XML wrapper? (Ben Bimber)
2. Re: find UUID of current history in tool XML wrapper?
   (John Chilton)

 I think this will work for you, I've simplified the code.  I was able to
 do this somewhat circuitously (=bonfire of time) for my upcoming Versioned
 Data tool.  In your tool XML definition file:

 param name=history_id display=radio type=drill_down
 dynamic_options=vdb_init_tool_user(__trans__) /
 ...
 code file=versioned_data_form.py /

 Not sure if making history_id a hidden field would work (I seemed to
 recall __trans__ variable only exposed to select param).

 And in a script named versioned_data_form.py we have:

 def vdb_init_tool_user(trans):
 
 ...
 ALSO: squeezing history_id in this way since no other way to pass
 it.
 trans is provided only by tool form presentation via code
 file=...
 ...
 
 history_id = str(trans.security.encode_id(trans.history.id))

 items = [ { 'name': 'think of something to say here', 'value':
 history_id, 'options':[], 'selected': True } ]

 return items
 ___
 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/mailinglists/

___
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/mailinglists/

Re: [galaxy-dev] find UUID of current history in tool XML wrapper?

2015-05-05 Thread Dooley, Damion
P.s. I tried using BioBlend and(or) the Galaxy API to get a given user's 
current history but found there was no way to do so.  

Seems like there is occasionally a tension between plaform by design (reduced 
instruction set, occasionally with security in mind, or dev resource 
limitations) and platform for creativity (everything exposed in case someone 
might find use for it).

d.

Hsiao lab, BC Public Health Microbiology  Reference Laboratory, BC Centre for 
Disease Control
655 West 12th Avenue, Vancouver, British Columbia, V5Z 4R4 Canada

From: Ben Bimber [bbim...@gmail.com]
...

If I'm already using non-public APIs to get the current history ID, can it be 
done more directly using something analogous to the above?

Thanks,
Ben
___
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/mailinglists/

Re: [galaxy-dev] find UUID of current history in tool XML wrapper?

2015-05-05 Thread John Chilton
On Tue, May 5, 2015 at 3:40 PM, Ben Bimber bbim...@gmail.com wrote:
 Thanks to all of you for the comments and code help.  John's example is
 grabbing the target history for the output, which is actually perfect for
 us.  i get that 'current history' doesnt really mean anything, and the
 target history for the output file is a far more reliable option.  I
 simplified the example to:

 $__tool_directory__/import_datasets_by_uuid.py -A $script_file -H
 ${output.creating_job.history.name} -f ${output}

 which is working perfectly.

Wonderful!


 I think my use cases and the example a few days ago from doug king all fall
 under the header of 'attempting to use the bioblend API from within a tool
 wrapper, executed via galaxy'.  in those cases, being able to pass in some
 context about the current execution are required to get a reliable result.
 I get why it isnt support well right now, but I would argue that sort of
 application isnt inherently a misuse of galaxy.

Agreed entirely!

-John


 -Ben

 On Tue, May 5, 2015 at 12:14 PM, Dannon Baker dannon.ba...@gmail.com
 wrote:

 Galaxy's API goal is to be intentionally stateless, and methods that
 operate on a history accept that as a parameter and don't recognize the
 notion of 'current'.  State like that is to be maintained in the client,
 whatever that is -- whether a webpage, cron job, etc.  I think this approach
 is probably *more* flexible in that we don't box ourselves into relying on
 the notion of a 'current' history, though some few methods might currently
 rely on it.

 It's worth noting that this argument has conspicuous parallels to the
 argument against allowing tools to understand the 'current' history as well.

 On Tue, May 5, 2015 at 3:11 PM Dooley, Damion damion.doo...@bccdc.ca
 wrote:

 P.s. I tried using BioBlend and(or) the Galaxy API to get a given user's
 current history but found there was no way to do so.

 Seems like there is occasionally a tension between plaform by design
 (reduced instruction set, occasionally with security in mind, or dev
 resource limitations) and platform for creativity (everything exposed in
 case someone might find use for it).

 d.

 Hsiao lab, BC Public Health Microbiology  Reference Laboratory, BC
 Centre for Disease Control
 655 West 12th Avenue, Vancouver, British Columbia, V5Z 4R4 Canada
 
 From: Ben Bimber [bbim...@gmail.com]
 ...

 If I'm already using non-public APIs to get the current history ID, can
 it be done more directly using something analogous to the above?

 Thanks,
 Ben
 ___
 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/mailinglists/



 ___
 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/mailinglists/
___
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/mailinglists/

Re: [galaxy-dev] find UUID of current history in tool XML wrapper?

2015-05-05 Thread Ben Bimber
Thanks to all of you for the comments and code help.  John's example is
grabbing the target history for the output, which is actually perfect for
us.  i get that 'current history' doesnt really mean anything, and the
target history for the output file is a far more reliable option.  I
simplified the example to:

$__tool_directory__/import_datasets_by_uuid.py -A $script_file -H ${
output.creating_job.history.name} -f ${output}

which is working perfectly.

I think my use cases and the example a few days ago from doug king all fall
under the header of 'attempting to use the bioblend API from within a tool
wrapper, executed via galaxy'.  in those cases, being able to pass in some
context about the current execution are required to get a reliable result.
I get why it isnt support well right now, but I would argue that sort of
application isnt inherently a misuse of galaxy.

-Ben

On Tue, May 5, 2015 at 12:14 PM, Dannon Baker dannon.ba...@gmail.com
wrote:

 Galaxy's API goal is to be intentionally stateless, and methods that
 operate on a history accept that as a parameter and don't recognize the
 notion of 'current'.  State like that is to be maintained in the client,
 whatever that is -- whether a webpage, cron job, etc.  I think this
 approach is probably *more* flexible in that we don't box ourselves into
 relying on the notion of a 'current' history, though some few methods might
 currently rely on it.

 It's worth noting that this argument has conspicuous parallels to the
 argument against allowing tools to understand the 'current' history as well.

 On Tue, May 5, 2015 at 3:11 PM Dooley, Damion damion.doo...@bccdc.ca
 wrote:

 P.s. I tried using BioBlend and(or) the Galaxy API to get a given user's
 current history but found there was no way to do so.

 Seems like there is occasionally a tension between plaform by design
 (reduced instruction set, occasionally with security in mind, or dev
 resource limitations) and platform for creativity (everything exposed in
 case someone might find use for it).

 d.

 Hsiao lab, BC Public Health Microbiology  Reference Laboratory, BC
 Centre for Disease Control
 655 West 12th Avenue, Vancouver, British Columbia, V5Z 4R4 Canada
 
 From: Ben Bimber [bbim...@gmail.com]
 ...

 If I'm already using non-public APIs to get the current history ID, can
 it be done more directly using something analogous to the above?

 Thanks,
 Ben
 ___
 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/mailinglists/


___
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/mailinglists/

Re: [galaxy-dev] find UUID of current history in tool XML wrapper?

2015-05-05 Thread Dooley, Damion
First, John, that $output_dataset.creating_job.history.id looks great! 

Ok, Dannon, I see various merits of stateless design - always providing server 
processes with the entire input array (files, params) in which no server state 
memory is referenced for a given user/agent task (aside from user state 
permissions).  

So I'm thinking John's solution is copacetic because it expresses that we're 
after a piece of information about the current process - where it is delivering 
its output - since we have other immediate processes that need to contribute to 
that work.

Thanks for your attention in revisiting this matter!

d.

Hsiao lab, BC Public Health Microbiology  Reference Laboratory, BC Centre for 
Disease Control
655 West 12th Avenue, Vancouver, British Columbia, V5Z 4R4 Canada

From: Dannon Baker [dannon.ba...@gmail.com]
...
Subject: Re: [galaxy-dev] find UUID of current history in tool XML wrapper?

Galaxy's API goal is to be intentionally stateless, and methods that operate on 
a history accept that as a parameter and don't recognize the notion of 
'current'.  State like that is to be maintained in the client, whatever that is 
-- whether a webpage, cron job, etc.  I think this approach is probably *more* 
flexible in that we don't box ourselves into relying on the notion of a 
'current' history, though some few methods might currently rely on it.

It's worth noting that this argument has conspicuous parallels to the argument 
against allowing tools to understand the 'current' history as well.
___
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/mailinglists/

Re: [galaxy-dev] find UUID of current history in tool XML wrapper?

2015-05-04 Thread John Chilton
There is some discussion of this here -
https://biostar.usegalaxy.org/p/11972/#12000. The community clearly
wants this functionality but there was unfortunate resistance to
adding history context information to the tool evaluation framework in
the past.

-John

On Mon, May 4, 2015 at 2:28 PM, Ben Bimber bbim...@gmail.com wrote:
 Hello,

 I am trying to pass the UUID or name of the current history to a script as
 part of a tool XML wrapper.  I was hoping some substitution like
 ${output.hid}, ${history_id} or similar would give this, but have not had
 luck.  Is there an approach to do this?

 On a related note: does anyone have debugging tips or pointers to code that
 would help me figure out which substitutions galaxy will support?  The tool
 wrapper docs list some; however, this isnt complete.

 Thanks in advance,
 Ben

 ___
 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/mailinglists/
___
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/mailinglists/