This is a file that is going into the new version of python-stdout-colors > project location: > http://code.google.com/p/python-stdout-colors/
-Alex Goretoy http://www.goretoy.com On Sat, Mar 14, 2009 at 10:45 AM, alex goretoy <aleksandr.gore...@gmail.com>wrote: > 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 > > #!/usr/bin env python > # > # -*- coding: UTF-8 -*- > # > # PyNutButter BETA Version 0.1.0.1 > # > # Copyright 2009 - Infinity by Alex Goretoy, All Rights Reserved. > # > # Permission to use, copy, modify, and distribute this software and its > # documentation for any purpose and without fee is hereby granted, > # provided that the above copyright notice appear in all copies and that > # both that copyright notice and this permission notice appear in > # supporting documentation, and that the name of Vinay Sajip > # not be used in advertising or publicity pertaining to distribution > # of the software without specific, written prior permission. > # VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, > INCLUDING > # ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL > # VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES > OR > # ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, > WHETHER > # IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING > OUT > # OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. > # > # SEE ALSO LICENSE FILE IN PROJECT ROOT DIRECTORY > # > __author__ = "Aleksandr Ilyich Goretoy <agore...@gmail.com>" > __status__ = "beta" > __version__ = "0.1.0.1" > __date__ = "14 March 2009" > > import sys, os > > > from colors import colors as _ck > from has_colors import _has_colors as _ha > from logg import _brush as _ers > > class colors(object): > def > __init__(self,colors_active=1,output_caller=1,caller_color="red",default=1, > show_lineno_write=1,show_lineno_caller=1,break_all=1, > logging=1,log_type="INFO",depth=10): > """ > stdout colorization class - prints messages in color to stdout > > colors_active - output to stdout in color? 1 or 0 > output_caller - print output when control enters this > class/functions ,output caller and called function > caller_color - color to use to output caller only if output_caller > is 1 > """ > > self.caller_color = caller_color #stdout_colors function caller > called output color > self.output_caller = output_caller # output caller and called > function > self.colors_active = colors_active #active colors for output > > self.has_colors = _ha(sys.stdout) > self.colors = _ck > crack=_ers(logger="simpleExample",level="INFO", > > log_file=log_file=os.environ["PWD"]+"/logs/eggo",spc=1,brk=1,slk=1,fn=1) > > #Thanks Gabriel Genellina, no crack was smoked while making crack > like this > #list( ( self.__setattr__(x.replace("b_",""),getattr(B,x)) for x > in dir(B) if x.startswith("b_") ) ) > for smoke in dir(crack): > if smoke.startswith("b_"): > setattr(self, smoke[2:], getattr(crack, smoke)) > > """ > these colors may not be correct: depending on how you have your > terminal configured > """ > > #if self.output_caller: > #self.me_him(['ENTER COLORS',__name__],self.caller_color) > > > """ > color and value > """ > self.color="default"#display color > self.value=""#used to store displayed message > > > def w(self,value,color="red",level="INFO"): > self.write(value,color,level) > def write(self,value,color="red",level="INFO"): > """ > write - output message,take value string or list,color="" > """ > self._hero(value,color,level) > > > def h(self,color="red",level="DEBUG"): > self.him(color,level) > def him(self,color="red",level="DEBUG"): > """ > him - determines caller function name, takes color="" > """ > > if self.output_caller: > > value=sys._getframe(2).f_code.co_name#+inspect.currentframe().f_back.f_lineno > self._hero(value,color,level) > > def m_h(self,value,color="purple",level="DEBUG"): > self.me_him(value,color,level) > def me_him(self,value,color="purple",log_type="DEBUG"): > """ > me_him - determines current function prepends class name and > displays caller function > """ > if self.output_caller: > > > > value="".join(value)+"."+sys._getframe(1).f_code.co_name+self.colors['default']+sys._getframe(2).f_code.co_name+"\x1b[00m" > > self._hero(value,color,level) > > def m(self,value,color="blue",level="DEBUG"): > self.me(value,color,level) > def me(self,value,color="blue",level="DEBUG"): > """ > me - determines current function prepends class name, takes > value=__name__,color="" > """ > # self.frames() > value="".join(str(value)) + "." + > "".join(sys._getframe(1).f_code.co_name) > self._hero(value,color,level) > > def _hero(self,value,color,level="INFO"): > if self.colors_active: > try: > if self.colors[color] and self.has_colors != None: > self.reaper(value,self.colors[color],level) > self.spacer() > else: > self.reaper(value,self.colors["default"],level) > self.spacer() > except (KeyError): > self.reaper(value,self.colors['default'],"ERROR") > self.space() > else: > self.grow(self.log(value,level)) > -Alex Goretoy > http://www.goretoy.com > > > > > On Fri, Mar 13, 2009 at 4:45 PM, Aaron Brady <castiro...@gmail.com> wrote: > >> On Mar 13, 3:21 pm, Paul McGuire <pt...@austin.rr.com> wrote: >> > On Mar 13, 11:46 am, Aaron Brady <castiro...@gmail.com> wrote: >> > >> > >> > >> > > On Mar 13, 2:52 am, koranthala <koranth...@gmail.com> wrote: >> > >> > > > Hi, >> > > > Is it possible to convert a string to a function parameter? >> > > > Ex: >> > > > str = 'True, type=rect, sizes=[3, 4]' >> > > > and I should be able to use it as: >> > > > test(convert(str)) and the behaviour should be same as calling test >> > > > with those values : >> > > > i.e. test(True, type=rect, sizes=[3, 4]) >> > >> > > > I tried eval, but it did not work. And any other mechanism I think >> > > > turns out to be creating a full fledged python parser. >> > >> > > > Is there any mechanism with which we can do this straight away? >> > >> > > I heard 'pyparsing' was good. ...Not that I've even been to its >> > > webpage. >> > >> > Did someone say 'pyparsing'? :) Here is a first cut (partially lifted >> > from a previous post): >> snip 40 lines >> > Prints: >> > >> > Args: [True] >> > Kwargs: {'coords': ([1, 2], [3, 4]), 'type': 'rect', 'sizes': [3, 4]} >> >> Ha, ok, out of my league. It's a bit heavyweight I accede. The OP >> didn't say what s/he knew about his/er data prior, what fault >> tolerance s/he needed, what complexity and nesting of data in the >> string, etc. >> >> Hmmm..., just thinking. Could the strings come from a python file: >> test1= fargs(True, type=rect, sizes=[3, 4]) >> test2= fargs(...) >> ? >> -- >> http://mail.python.org/mailman/listinfo/python-list >> > >
-- http://mail.python.org/mailman/listinfo/python-list