Edit Python code programmatically

Guilherme Polo ggpolo at gmail.com
Sat Feb 9 17:10:00 CET 2008


2008/2/9, Alex <noname9968 at gmail.com>:
> Guilherme Polo wrote:
>  > 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.
>
> Thank you for detailed reply... but I still want to generate python
>  code. By the way, Python Package Index references code generators able
>  to generate Python code
>  (http://pypi.python.org/pypi?:action=browse&show=all&c=409), which I'll
>  inspect later (especially their ability to *edit* code). Inspect might
>  be useful too.
>

Depending on what you want to generate, it may be good to generate
python code I won't try to change your mind on this. One of those code
generators there is mine, but it doesn't have an option to edit the
code neither it is in active development at all (got bored), and it
generates direct python code and other language to complement the
generated python code. But if I was going to add a possible code
editing/updating I would probably use inspect for the reasons
mentioned before.

My only intention with this email was to tell that it is pretty hard
to know what you are thinking, so it gets hard to point tools to use.
If you advance in your code generation tool, you may have a better
idea of what you want then you will get better answers too.

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


-- 
-- Guilherme H. Polo Goncalves



More information about the Python-list mailing list