Hi,

Sorry for the delay, my replies are in-line.

On Tue, Nov 15, 2011 at 7:49 PM, Robert Keizer <[email protected]> wrote:

> Greetings,
>
> Utilizing the inspect module and getcmdargspec on constructors I've
> been able to dynamically create a GUI that connects to multiple
> providers, and can act upon the objects. What I'm trying to accomplish
> is a completely introspective product - that is, upgrade the libcloud
> version behind the scenes and the GUI suddenly has more options and
> providers.
>
> I've hit a snag with create_node and deploy_node as defined in
> libcloud.compute.drivers.* and libcloud.compute.base.NodeDriver.
> Because these functions are defined with **kwargs rather than specific
> arguments I cannot continue using getcmdargspec to in part generate a
> GUI.
>
> One solution that I think is possible, although is undeniably a hack,
> is to utilize inspect.getdoc(), and then parse valid options with
> pydoc.
>
> I'm asking 2 questions to the dev list:
>
> 1) Am I missing something? Is there a helper function in some location
> to get a valid list of arguments for create_node and deploy_node that
> includes provider specific entries?
>

Nope, currently there is no method which returns valid arguments for
create_node / deploy_node with includes provider specific arguments.

I can see that having some kind of utility function which does that could
be handy though.


> 2) Can you think of a better way then parsing documentation to generate an
> equivalent of getcmdargspec?


Hm, I can't think of a better solution. We use pydoctor (
http://codespeak.net/~mwh/pydoctor/) for generating API documentation so
you could probably use it to get just the argument names and types from the
docstrings.


>
> All the best,
> Rob
>

Reply via email to