By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
448,804 Members | 1,576 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 448,804 IT Pros & Developers. It's quick & easy.

Do you know of a much simpler way of writing a program that writes aprogram?

P: n/a
Here is asample program that writes a program and then executes it.
Do you knowof a much simpler way of writing a program that writes a program?

"""
-----------------------------------------------------------------------------
Name: _writePythonCode.py
Purpose: This script writes Python code and thentransfers control to it.

Author: MCSEJUNG

Created: 2008/05/01
RCS-ID: $Id: _writePythonCode.py $
Copyright: (c) 2008
Licence: GPL
This program is free software; you canredistribute it and/or modify
it under the terms of the GNU General PublicLicense as published by
the Free Software Foundation; either version2 of the License
(at your option) any later version.

This program is distributed in the hope thatit will be useful,
but WITHOUT ANY WARRANTY; without even theimplied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULARPURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNUGeneral Public License
along with this program; if not, write tothe Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Maintenance:MCSEJUNG 2008/05/01 This script writes Python code and then transfers controlto it.
-----------------------------------------------------------------------------
"""
__version__= "$Revision: 80101 $"
# $Source$

# Rememberto document each paragraph with a purposeful short description

#if__name__ == "__main__":

#Print thestart time of this process
import time
start =time.localtime(time.time())
year,month, day, hour, minute, second, weekday, yearday, daylight = start
print"Process Started", "%02d:%02d:%02d" % (hour, minute,second)

header1 ="""
-----------------------------------------------------------------------------
Name: _generatedPython.py
Purpose: This script was built by_writePythonCode.py

Author: MCSEJUNG

Created: 2008/05/01
RCS-ID: $Id: _generatedPython.py $
Copyright: (c) 2008
Licence: GPL
This program is free software; you canredistribute it and/or modify
it under the terms of the GNU General PublicLicense as published by
the Free Software Foundation; either version2 of the License
(at your option) any later version.

This program is distributed in the hope thatit will be useful,
but WITHOUT ANY WARRANTY; without even theimplied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULARPURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNUGeneral Public License
along with this program; if not, write tothe Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Maintenance:MCSEJUNG 2008/05/01 This script was built by _writePythonCode.py
-----------------------------------------------------------------------------
"""

header2 ="""
# $Source$

# Rememberto document each paragraph with a purposeful short description

#if__name__ == "__main__":

#Print thestart time of this process
"""

filePathName= 'C:\\Python25\\Lib\\_myStuff'
fileInName= '_generatedPython.py'
filegTName= filePathName + '\\' +fileInName
gT =open(filegTName, 'w')

gT.write('"""'+ header1 + '"""' + '\n')
gT.write('__version__= "$Revision: 80101 $"'+ '\n')
gT.write('"""'+ header2 + '"""' + '\n')
gT.write('importtime'+'\n')
gT.write('start= time.localtime(time.time())'+'\n')
gT.write('year,month, day, hour, minute, second, weekday, yearday, daylight = start'+'\n')
gT.write('print"Generated Process Started", "%02d:%02d:%02d" % (hour,minute, second)'+'\n')
#-----------
gT.write('print"start"'+'\n')
gT.write('fori in [0,4,8,12,16,12,8,12,8,12,16,12,8,4,8,12,16,12,8,4, 0]:'+'\n')
gT.write(' print "-"*i'+'\n')
gT.write('print"end"'+'\n')
#-----------
gT.write('#Calculatethe processes duration; format and print the start time, stop time, andduration'+'\n')
gT.write('stop= time.localtime(time.time())'+'\n')
gT.write('syear,smonth, sday, shour, sminute, ssecond, sweekday, syearday, sdaylight =stop'+'\n')
gT.write(''+'\n')
gT.write('thour = shour'+'\n')
gT.write('tminute = sminute'+'\n')
gT.write('tsecond= ssecond'+'\n')
gT.write(''+'\n')
gT.write('iftsecond < second:'+'\n')
gT.write(' tminute = tminute - 1'+'\n')
gT.write(' dursecond = 60 + tsecond - second'+'\n')
gT.write('else:'+'\n')
gT.write(' dursecond = tsecond - second'+'\n')
gT.write(''+'\n')
gT.write('iftminute < minute:'+'\n')
gT.write(' thour = thour - 1'+'\n')
gT.write('
durminute = 60 + tminute - minute'+'\n')
gT.write('else:'+'\n')
gT.write('
durminute = tminute - minute'+'\n')
gT.write(''+'\n')
gT.write('ifthour < hour:'+'\n')
gT.write(' xday = 1'+'\n')
gT.write(' durhour = hour - thour'+'\n')
gT.write('else:'+'\n')
gT.write(' xday = 0'+'\n')
gT.write(' durhour = thour - hour'+'\n')
gT.write(''+'\n')
gT.write('ifxday == 0:'+'\n')
gT.write(' print "Generated Process Completed--", "start:", "%02d:%02d:%02d" % (hour, minute,second), "stop:", "%02d:%02d:%02d" % (shour, sminute,ssecond), "duration:", "%02d:%02d:%02d" % (durhour,durminute, dursecond);'+'\n')
gT.write('else:'+'\n')
gT.write(' print "Generated Process Completed--", "start:", "%02d:%02d:%02d" % (hour, minute,second), "stop:", "%02d:%02d:%02d" % (shour, sminute,ssecond), "duration:", "%02d:%02d:%02d" % (durhour,durminute, dursecond), "and one day";'+'\n')

gT.flush()
gT.close()

execfile("_generatedPython.py")

#Calculatethe processes duration; format and print the start time, stop time, andduration
stop =time.localtime(time.time())
syear,smonth, sday, shour, sminute, ssecond, sweekday, syearday, sdaylight = stop

thour = shour
tminute =sminute
tsecond =ssecond

if tsecond< second:
tminute = tminute - 1
dursecond = 60 + tsecond - second
else:
dursecond = tsecond - second

if tminute< minute:
thour = thour - 1
durminute = 60 + tminute - minute
else:
durminute =tminute - minute

if thour< hour:
xday = 1
durhour = hour - thour
else:
xday = 0
durhour = thour - hour

if xday ==0:
print "Process Completed --",'start:', "%02d:%02d:%02d" % (hour, minute, second), 'stop:',"%02d:%02d:%02d" % (shour, sminute, ssecond), 'duration:',"%02d:%02d:%02d" % (durhour, durminute, dursecond);
else:
print "Process Completed --",'start:', "%02d:%02d:%02d" % (hour, minute, second), 'stop:',"%02d:%02d:%02d" % (shour, sminute, ssecond), 'duration:',"%02d:%02d:%02d" % (durhour, durminute, dursecond), 'and one day';


__________________________________________________ __________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i...Dypao8Wcj9tAcJ
Jun 27 '08 #1
Share this Question
Share on Google+
6 Replies


P: n/a
On May 2, 3:50 pm, mcse jung <mcsej...@yahoo.comwrote:
Here is asample program that writes a program and then executes it.
Do you knowof a much simpler way of writing a program that writes a program?
Use a templating engine, such as Cheetah: http://www.cheetahtemplate.org/

Cheers,
Nicola Musatti
Jun 27 '08 #2

P: n/a
mcse jung wrote:
Here is asample program that writes a program and then executes it.
Do you knowof a much simpler way of writing a program that writes a program?
I'm not quite sure what you are trying to achieve here, but I bet there is a
simpler way to do it than by generating a script. You might want to look into
functions.

http://docs.python.org/tut/node6.htm...00000000000000

Stefan
Jun 27 '08 #3

P: n/a
mcse jung wrote:
Here is asample program that writes a program and then executes it.
Do you knowof a much simpler way of writing a program that writes a program?
It looks like you have a program which is more printed text than program
logic. In which case, the usual solution is to use a templating system,
where most of the text is unmodified and you only set out the specific
areas where you want to insert logic.

EmPy is one:

http://www.alcyone.com/software/empy/

--
Erik Max Francis && ma*@alcyone.com && http://www.alcyone.com/max/
San Jose, CA, USA && 37 18 N 121 57 W && AIM, Y!M erikmaxfrancis
Jun 27 '08 #4

P: n/a
On May 2, 10:40 am, Stefan Behnel <stefan...@behnel.dewrote:
mcse jung wrote:
Here is asample program that writes a program and then executes it.
Do you knowof a much simpler way of writing a program that writes a program?

I'm not quite sure what you are trying to achieve here, but I bet there is a
simpler way to do it than by generating a script. You might want to look into
functions.

http://docs.python.org/tut/node6.htm...00000000000000
Seriously, this looks like a DailyWTF entry.

George
Jun 27 '08 #5

P: n/a
Use lisp?
Jun 27 '08 #6

P: n/a
In article <28**********************************@w74g2000hsh. googlegroups.com>,
Jeff <je******@gmail.comwrote:
>
Use lisp?
:-)))))))
--
Aahz (aa**@pythoncraft.com) <* http://www.pythoncraft.com/

Help a hearing-impaired person: http://rule6.info/hearing.html
Jun 27 '08 #7

This discussion thread is closed

Replies have been disabled for this discussion.