Edit Python code programmatically

Guilherme Polo ggpolo at gmail.com
Sat Feb 9 09:22:01 EST 2008


2008/2/9, Alex <noname9968 at gmail.com>:
> Guilherme Polo wrote:
>  > 2008/2/9, Arnaud Delobelle <arnodel at googlemail.com>:
>  >
>  >> On Feb 9, 12:32 pm, "Guilherme Polo" <ggp... at gmail.com> wrote:
>  >>  > 2008/2/9, Alex <noname9... at gmail.com>:
>  >>  >
>  >>  > > Guilherme Polo wrote:
>  >>  > >  > 2008/2/9, Alex <noname9... at gmail.com>:
>  >>
>  >>
>  >>  > >  >> Which library could you recommend to perform simple editing of Python
>  >>  > >  >>  code (from Python program)? For example, open *.py file, find specific
>  >>  > >  >>  function definition, add another function call inside, find existing
>  >>  > >  >>  call and change parameter value, etc.
>  >>  > >  > You are after inspect, it is included with python.
>  >>  >
>  >>  > > Yes, I forgot to mention - I'm new to Python. I didn't necessary mention
>  >>  > >  3rd party library. Simply such wasn't mentioned in library review and
>  >>  > >  tutorials, so I didn't know of it. What's the module's name?
>  >>  >
>  >>
>  >>
>  >>> inspect is a module, inspect is the name. It is not a module for
>  >>>
>  >>  > editing Python code per se, but it will help with the other part.
>  >>
>  >>
>  >> I don't think the OP wants to edit python code *objects*, rather he
>  >>  wants to edit python *source* code programmatically.  Inspect is not
>  >>  the tool for this.
>  >>
>  >
>  > I didn't tell him to use inspect to edit python code, I said it was
>  > useful for the other part. The other part, as he mentioned on his
>  > email is: "find specific
>  > function definition, add another function call inside, find existing
>  > call".
>
> Sorry but I said "in *.py file", meaning that file isn't executed to
>  edit objects in memory. It's instead saved in modified form, possibly to
>  be edited by user. Guess it's a common task for visual GUI editors and
>  any visual programming tools.
>

By visual GUI editors I will assume GUI designer tools. These tend to
not generate  direct python code, glade-2 used to but glade-3 doesn't
anymore. Other tools like XRCed generates xrc, wxGlade has an option
to generate .xrc too, Qt Designer generates .ui and .qrc, Glade-3
generates .glade file, Gazpacho generates .glade, or a gazpacho format
or gtkbuilder format. In all these, it is recommended to use something
to work with the generated code, like libglade, wx.xrc and PyQt has
tools to convert .ui and .qrc to python modules but they don't affect
your custom code (it is also possible to load .ui using uic module).

With this we come back to my first email, where I told you it is not
recommended to generate direct python code, especially if you are
doing the kind of things you just mentioned. If you still want to
generate python code, from some other source, inspect can be helpful.

> --
>
> http://mail.python.org/mailman/listinfo/python-list
>


-- 
-- Guilherme H. Polo Goncalves



More information about the Python-list mailing list