May I suggest the far easier mechanism of using an object factory? It's more general than the incomplete snippet presented, and we have lots of experience using it for Java integration:

http://jythonpodcast.hostjava.net/jythonbook/chapter10.html#object-factories

An alternative would be to use JSR223, also documented in chapter 10.

- Jim

On Thu, Nov 5, 2009 at 9:36 AM, <john.m.baker@nomura.com> wrote:
Hi,

If I want to do:

Import mypackage.mymodule
Mypackage.mymodule.mymethod('a', 123)

Then how do I do it like this:

               PyModule module = ... ?
           PyObject result = module.invoke("mymethod",
                 new PyObject[] {
                    new PyString('a'),
                    new PyInteger(123)
                       }
               )

I don't know how to get a reference to module - the reason I ask is I'd like to implement this slightly more strictly than running PythonInterpreter.exec for each method call.

Thanks,


john

> -----Original Message-----
> From: Alex Grönholm [mailto:alex.gronholm@nextday.fi]
> Sent: 04 November 2009 17:27
> To: jython-users@lists.sourceforge.net
> Subject: Re: [Jython-users] Invoking a function on a module
>
> john.m.baker@nomura.com kirjoitti:
> >
> > Hello,
> >
> > I've looked at the Python API docs but feel that a few common
> examples
> > would be of use. For example, I can pass a String to
> PythonInterpreter
> > and execute it, but how can I invoke the method 'test' on the module
> > 'mymodule.py', which is in the classpath? Or even better, if my
> > classpath contains a directory 'mypackage', and the module lives
> > inside it, how do I do:
> >
> > import mypackage.mymodule
> >
> > mypackage.mymodule.test('params')
> >
> > through the Python API?
> >
> Just exec() those statements one after another. Shouldn't be that
> difficult to figure out :)
> >
> > Thanks,
> >
> >
> > John
> >
> >
> >
> > This e-mail (including any attachments) is confidential, may contain
> > proprietary or privileged information and is intended for the named
> > recipient(s) only. Unintended recipients are prohibited from taking
> > action
> > on the basis of information in this e-mail and must delete all copies.
> > Nomura will not accept responsibility or liability for the accuracy
> or
> > completeness of, or the presence of any virus or disabling code in,
> this
> > e-mail. If verification is sought please request a hard copy. Any
> > reference
> > to the terms of executed transactions should be treated as
> preliminary
> > only
> > and subject to formal written confirmation by Nomura. Nomura reserves
> the
> > right to monitor e-mail communications through its networks (in
> > accordance
> > with applicable laws). No confidentiality or privilege is waived or
> > lost by
> > Nomura by any mistransmission of this e-mail. Any reference to
> > "Nomura" is
> > a reference to any entity in the Nomura Holdings, Inc. group. Please
> read
> > our Electronic Communications Legal Notice which forms part of this
> > e-mail:
> > http://www.Nomura.com/email_disclaimer.htm
> > ---------------------------------------------------------------------
> ---
> >
> > ---------------------------------------------------------------------
> ---------
> > Let Crystal Reports handle the reporting - Free Crystal Reports 2008
> 30-Day
> > trial. Simplify your report design, integration and deployment - and
> focus on
> > what you do best, core application coding. Discover what's new with
> > Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> > ---------------------------------------------------------------------
> ---
> >
> > _______________________________________________
> > Jython-users mailing list
> > Jython-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/jython-users
> >
>
>
> -----------------------------------------------------------------------
> -------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008
> 30-Day
> trial. Simplify your report design, integration and deployment - and
> focus on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> Jython-users mailing list
> Jython-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jython-users



This e-mail (including any attachments) is confidential, may contain
proprietary or privileged information and is intended for the named
recipient(s) only. Unintended recipients are prohibited from taking action
on the basis of information in this e-mail and must delete all copies.
Nomura will not accept responsibility or liability for the accuracy or
completeness of, or the presence of any virus or disabling code in, this
e-mail. If verification is sought please request a hard copy. Any reference
to the terms of executed transactions should be treated as preliminary only
and subject to formal written confirmation by Nomura. Nomura reserves the
right to monitor e-mail communications through its networks (in accordance
with applicable laws). No confidentiality or privilege is waived or lost by
Nomura by any mistransmission of this e-mail. Any reference to "Nomura" is
a reference to any entity in the Nomura Holdings, Inc. group. Please read
our Electronic Communications Legal Notice which forms part of this e-mail:
http://www.Nomura.com/email_disclaimer.htm


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Jython-users mailing list
Jython-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jython-users



--
Jim Baker
jbaker@zyasoft.com