This is a file that is going into the new version of python-stdout-colors <br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">project location:<br>
<a href="http://code.google.com/p/python-stdout-colors/">http://code.google.com/p/python-stdout-colors/</a></blockquote><div> </div>-Alex Goretoy<br><a href="http://www.goretoy.com">http://www.goretoy.com</a><br><br>
<br><br><div class="gmail_quote">On Sat, Mar 14, 2009 at 10:45 AM, alex goretoy <span dir="ltr"><<a href="mailto:aleksandr.goretoy@gmail.com">aleksandr.goretoy@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
My new class I've been working on might help you. It does what you are asking without eval (I'm still working on it) Anyone have any ideas aswell along with the OP, thank you<br><br>#!/usr/bin env python<br>#<br># -*- coding: UTF-8 -*-<br>

#<br># PyNutButter BETA Version 0.1.0.1<br>#<br># Copyright 2009 - Infinity by Alex Goretoy, All Rights Reserved.<br>#<br># Permission to use, copy, modify, and distribute this software and its<br># documentation for any purpose and without fee is hereby granted,<br>

# provided that the above copyright notice appear in all copies and that<br># both that copyright notice and this permission notice appear in<br># supporting documentation, and that the name of Vinay Sajip<br># not be used in advertising or publicity pertaining to distribution<br>

# of the software without specific, written prior permission.<br># VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING<br># ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL<br>

# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR<br># ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER<br># IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT<br>

# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.<br>#<br># SEE ALSO LICENSE FILE IN PROJECT ROOT DIRECTORY<br>#<br>__author__  = "Aleksandr Ilyich Goretoy <<a href="mailto:agoretoy@gmail.com" target="_blank">agoretoy@gmail.com</a>>"<br>

__status__  = "beta"<br>__version__ = "0.1.0.1"<br>__date__    = "14 March 2009"<br><br>import sys, os<br><br><br>from colors import colors as _ck<br>from has_colors import _has_colors as _ha<br>

from logg import _brush as _ers<br>            <br>class colors(object):<br>    def __init__(self,colors_active=1,output_caller=1,caller_color="red",default=1,<br>                    show_lineno_write=1,show_lineno_caller=1,break_all=1,<br>

                    logging=1,log_type="INFO",depth=10):<br>        """<br>        stdout colorization class - prints messages in color to stdout<br><br>        colors_active - output to stdout in color? 1 or 0<br>

        output_caller - print output when control enters this class/functions ,output caller and called function<br>        caller_color - color to use to output caller only if output_caller is 1<br>        """<br>

        <br>        self.caller_color = caller_color #stdout_colors function caller called output color<br>        self.output_caller = output_caller # output caller and called function<br>        self.colors_active = colors_active #active colors for output<br>

        <br>        self.has_colors = _ha(sys.stdout)<br>        self.colors = _ck<br>        crack=_ers(logger="simpleExample",level="INFO",<br>                    log_file=log_file=os.environ["PWD"]+"/logs/eggo",spc=1,brk=1,slk=1,fn=1)<br>

          <br>        #Thanks Gabriel Genellina, no crack was smoked while making crack like this<br>        #list( ( self.__setattr__(x.replace("b_",""),getattr(B,x))  for x in dir(B) if x.startswith("b_") ) )<br>

        for smoke in dir(crack):<br>            if smoke.startswith("b_"):<br>                setattr(self, smoke[2:], getattr(crack, smoke))<br>        <br>        """<br>        these colors may not be correct: depending on how you have your terminal configured<br>

        """<br>        <br>        #if self.output_caller:<br>            #self.me_him(['ENTER COLORS',__name__],self.caller_color)<br><br>        <br>        """<br>        color and value<br>

        """<br>        self.color="default"#display color<br>        self.value=""#used to store displayed message<br><br>        <br>    def w(self,value,color="red",level="INFO"):<br>

        self.write(value,color,level)<br>    def write(self,value,color="red",level="INFO"):<br>        """<br>        write - output message,take value string or list,color=""<br>

        """<br>        self._hero(value,color,level)<br><br>        <br>    def h(self,color="red",level="DEBUG"):<br>        self.him(color,level)<br>    def him(self,color="red",level="DEBUG"):<br>

        """<br>        him - determines caller function name, takes color=""<br>        """<br>        <br>        if self.output_caller:<br>            value=sys._getframe(2).f_code.co_name#+inspect.currentframe().f_back.f_lineno<br>

            self._hero(value,color,level)<br><br>    def m_h(self,value,color="purple",level="DEBUG"):<br>        self.me_him(value,color,level)<br>    def me_him(self,value,color="purple",log_type="DEBUG"):<br>

        """<br>        me_him - determines current function prepends class name and displays caller function<br>        """<br>        if self.output_caller:<br>            <br><br>            value="".join(value)+"."+sys._getframe(1).f_code.co_name+self.colors['default']+sys._getframe(2).f_code.co_name+"\x1b[00m"<br>

<br>            self._hero(value,color,level)<br><br>    def m(self,value,color="blue",level="DEBUG"):<br>        self.me(value,color,level)<br>    def me(self,value,color="blue",level="DEBUG"):<br>

        """<br>        me - determines current function prepends class name, takes value=__name__,color=""<br>        """<br>#        self.frames()<br>        value="".join(str(value)) + "." + "".join(sys._getframe(1).f_code.co_name)<br>

        self._hero(value,color,level)<br>        <br>    def _hero(self,value,color,level="INFO"):<br>        if self.colors_active:<br>            try:<br>                if self.colors[color] and self.has_colors != None:<br>

                    self.reaper(value,self.colors[color],level)<br>                    self.spacer()<br>                else:<br>                    self.reaper(value,self.colors["default"],level)<br>                    self.spacer()<br>

            except (KeyError):<br>                self.reaper(value,self.colors['default'],"ERROR")<br>                self.space()<br>        else:<br>            self.grow(self.log(value,level))<br clear="all">
<font color="#888888">
-Alex Goretoy<br><a href="http://www.goretoy.com" target="_blank">http://www.goretoy.com</a></font><div><div></div><div class="h5"><br><br>
<br><br><div class="gmail_quote">On Fri, Mar 13, 2009 at 4:45 PM, Aaron Brady <span dir="ltr"><<a href="mailto:castironpi@gmail.com" target="_blank">castironpi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div>On Mar 13, 3:21 pm, Paul McGuire <<a href="mailto:pt...@austin.rr.com" target="_blank">pt...@austin.rr.com</a>> wrote:<br>
> On Mar 13, 11:46 am, Aaron Brady <<a href="mailto:castiro...@gmail.com" target="_blank">castiro...@gmail.com</a>> wrote:<br>
><br>
><br>
><br>
> > On Mar 13, 2:52 am, koranthala <<a href="mailto:koranth...@gmail.com" target="_blank">koranth...@gmail.com</a>> wrote:<br>
><br>
> > > Hi,<br>
> > >     Is it possible to convert a string to a function parameter?<br>
> > > Ex:<br>
> > > str = 'True, type=rect, sizes=[3, 4]'<br>
> > > and I should be able to use it as:<br>
> > > test(convert(str)) and the behaviour should be same as calling test<br>
> > > with those values :<br>
> > > i.e. test(True, type=rect, sizes=[3, 4])<br>
><br>
> > > I tried eval, but it did not work. And any other mechanism I think<br>
> > > turns out to be creating a full fledged python parser.<br>
><br>
> > > Is there any mechanism with which we can do this straight away?<br>
><br>
> > I heard 'pyparsing' was good.  ...Not that I've even been to its<br>
> > webpage.<br>
><br>
> Did someone say 'pyparsing'? :)  Here is a first cut (partially lifted<br>
> from a previous post):<br>
</div>snip 40 lines<br>
<div>> Prints:<br>
><br>
> Args: [True]<br>
> Kwargs: {'coords': ([1, 2], [3, 4]), 'type': 'rect', 'sizes': [3, 4]}<br>
<br>
</div>Ha, ok, out of my league.  It's a bit heavyweight I accede.  The OP<br>
didn't say what s/he knew about his/er data prior, what fault<br>
tolerance s/he needed, what complexity and nesting of data in the<br>
string, etc.<br>
<br>
Hmmm..., just thinking.  Could the strings come from a python file:<br>
test1= fargs(True, type=rect, sizes=[3, 4])<br>
test2= fargs(...)<br>
?<br>
<div><div></div><div>--<br>
<a href="http://mail.python.org/mailman/listinfo/python-list" target="_blank">http://mail.python.org/mailman/listinfo/python-list</a><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>