Re: [Tutor] How to use function from specific module and then switch to other module

2008-11-07 Thread Ertl, John C CIV 63134
Classification: UNCLASSIFIED 
Caveat (s): FOUO

Kent,

Thanks for the lead.  I eventually did something like the Strategy Pattern you 
sent.  It was so much simpler when I just inherited the functions.  I think I 
need to redesign the code but for now it works and my boss will be happy.

Thanks again.

John Ertl
Meteorologist

FNMOC
7 Grace Hopper Ave.
Monterey, CA 93943
(831) 656-5704
[EMAIL PROTECTED]

Classification: UNCLASSIFIED 
Caveat (s): FOUO



From: Kent Johnson
Sent: Thu 11/6/2008 7:36 PM
To: Ertl, John C CIV 63134
Cc: tutor@python.org
Subject: Re: [Tutor] How to use function from specific module and then switch 
to other module


On Thu, Nov 6, 2008 at 5:54 PM, Ertl, John C CIV 63134
[EMAIL PROTECTED] wrote:
 Classification: UNCLASSIFIED
 Caveat (s): FOUO

 I have a program that collects weather data from weather models.  I
 originally had a module that contained a bunch of function that I used.  So
 I just added it to the init of the class I was using and inherited the
 functions.  That worked great but now I have two different models that I can
 get weather from.   Each Module A and B have the exact same function names
 in them but they both do slightly different things.

It might help to see a working example of what you did for one model.

 The idea is as I step through a list I want to use a different function
 (same name but from a different module) for each element in the list.  How
 do I have a generic way to do this.

 for example for point 1 I want to use the rain function from Module A and
 then for point 2 I want to use the rain function from Module B.   At first
 though I would just init the class from either A or B for each point but I
 need the function from A or B to be able to use function from my main
 program...that is why the inheritance thing worked great for just one
 module.

Don't try to make the model A and B into base classes of the forecast.
Just pass the forecast object to the model. So your rain() method will
look more like this:
 def rain(self, fc):
   fc.calTime() # this function is in the main forecast class
   fc.rain = do stuff for model A

where fc will be the forecast instance.

You might also be able to use simple functions rather than classes:
 def rain(fc):
   fc.calTime() # this function is in the main forecast class
   fc.rain = do stuff for model A

then just call moduleA.rain(self) or moduleB.rain(self).

You might want to read about the Strategy pattern, that is what you
are doing. Here is a Python example of a class-based Strategy.
http://mail.python.org/pipermail/python-list/2006-April/379188.html

This example passes the strategy to the constructor but you can set it
in your pointInfo() method if you like. I would just make one function
to handle each point though:
for each in x.pointList:
   x.handlePoint(each)

where
def handlePoint(self, point):
   pointStrategy = ...
   pointStrategy.rain(self, point)

Kent

Kent
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] How to use function from specific module and then switch to other module

2008-11-06 Thread Ertl, John C CIV 63134



Classification: UNCLASSIFIED Caveat (s):FOUO

I have a program that collects weather data from weather models. I originally had a module that contained a bunch of function that I used. So I just added it to the init of the class I was using and inherited the functions. That worked great but now I have two different models that I can get weather from. Each Module A and B have the exact same function names in them but they both do slightly different things.

The idea is as I step through a list I want to use a different function (same name but from a different module) for each element in the list. How do I have a generic way to do this.

for example for point 1 I want to use therain function from Module A and then for point 2 I want to use therain function from Module B. At first though I would just init the class from either A or B for each point but I need the function from A or B to be able to use function from my main program...that is why the inheritance thing worked great forjust one module. 

I have tried to make a very simple and not syntactically correct mockup of the code to help illustrate my problem.

class forecast:
 def __init__(self)

 def calcTime(self):
 #calculate some time and date stuff.
 x.day = time stuff
 x.time = time stuff

 def cloths2Wear(self):
 self.rain() # I wan to make this simple call but somewhere along the line have set which module

 def getPoint(self):
 self.pointList = 1,2,3,4,5,6

 def pointInfo(self):
 # get info about the point say which model to use
 x.model = A or B

x = forecast()
x.getPoint()
for each in x.pointList:
 x.pointInfo(each)
 x.rain() # I want to call the correct function based on what was set in pointInfo.
 
 

module A

class A:
 def __init__(self):
 self.model=A

 def rain(self):
 self.calTime() # this function is in the main forecast class
 self. rain = do stuff for model A
 

module B

class B:
 def __init__(self):
 self.model=B

 def rain(self):
 self.calTime() # this function is in the main forecast class
 self. rain = do stuff for model B


Thanks for any ideas you might have.


John Ertl
Meteorologist

FNMOC
7 Grace Hopper Ave.
Monterey, CA 93943
(831) 656-5704
[EMAIL PROTECTED]


Classification: UNCLASSIFIED Caveat (s): FOUO

___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] threading not working how about fork?

2008-10-22 Thread Ertl, John C CIV 63134
Classification: UNCLASSIFIED 
Caveat (s): FOUO

Thanks for the help and I am looking into the pyprocessing but threading is 
causing too many headaches (I may have to rewrite things).  Lets say I have 
something as simple as below:

def takeTime(a):
 print Started %s % a
 time.sleep(10)
 print Ended %s % a

for each in [1,2,3,4,5]:
   pid = os.fork()
   takeTime(each)

Each time the function is called it waits 10 seconds.  And if I run it as above 
it does the first and waits 10 seconds then the second and waits ten 
seconds...etc.

Wow could I get it to run through all 5 forks without waiting for the 
previous one to complete?  That was all five would be done in about 10 seconds.

This is simpler than my real problem but I can not even figure this one out. 

Thanks for the help.

John Ertl
Meteorologist

FNMOC
7 Grace Hopper Ave.
Monterey, CA 93943
(831) 656-5704
[EMAIL PROTECTED]

Classification: UNCLASSIFIED 
Caveat (s): FOUO

 
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] Python 2.4 threading

2008-10-21 Thread Ertl, John C CIV 63134
Classification: UNCLASSIFIED 
Caveat (s): FOUO

All,

I have a program that basically loops through two loops and I wanted to speedup 
the stuff inside the second loop so I thought threading would be a good idea 
but I am having a hard time getting it to work.  All of the examples I have 
seen that use a Queu have had the threaded stuff inside its own class.  I have 
tired that but I am not getting it.

Could anyone give me some hints on how I might set this up.  Below is an 
outline of my current program.  What do I need to do to thread the inside loop.

Many of the functions depicted below inherit function from other modules.

class weather(a bunch of stuff)

 def 1

 def 2

 def3

 defetc


weax = weather()

.stuff.

for each in outsideloop:

def1
defn

for each in insideloop:

def1
def2
defn


I have tried to take the inside loop and make it a class but there are so many 
functions , some inherited that are used on the inside and outside loop that I 
am getting errors all over the place.  Is it possible to thread without it 
being its own class?  

Thanks for the ideas and help.


John Ertl
Meteorologist

FNMOC
7 Grace Hopper Ave.
Monterey, CA 93943
(831) 656-5704
[EMAIL PROTECTED]

Classification: UNCLASSIFIED 
Caveat (s): FOUO
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] how to return an error from a CGI

2008-05-12 Thread Ertl, John C CIV 63134
Classification: UNCLASSIFIED 
Caveat (s): FOUO

All,

I have been writing simple cgi scripts for a long time but have never worried 
about the error codes.  Now I have been asked to return a specific error and I 
have no idea how to do this.  I do not even know if I should be returning an 
HTTP or URL error.  If I understand correctly, I am supposed to return 
something similar to say a 500 error.  I think this is a HTTP error and I tried 
a few things but no luck. 

Thanks for the ideas.

John Ertl
Meteorologist

FNMOC
7 Grace Hopper Ave.
Monterey, CA 93943
(831) 656-5704
[EMAIL PROTECTED]

Classification: UNCLASSIFIED 
Caveat (s): FOUO
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] Best way to POST XML to CGI

2007-06-07 Thread Ertl, John C CIV 63134
All,

I have a Python program that makes images of data and I want to be able to make 
these via a web interface.  I want to keep it simple so I thought I would send 
an XML file to a cgi program (XML is what I am supposed to use).  I have the 
parsing of the XML all figured out but the way I am sending the XML and 
receiving it does not look like they are the best ways.

I have an HTML form that I use to collect input on what kind of image.   I then 
take that form input and make it into an XML string.  I then take that XML 
string and POST it to a CGI script.

I am using cgi to retrieve the XML string.  Once I have the string I get the 
needed info and make an image.  The Part that just does not look right to me is 
using form = cgi.FieldStorage()

Of someone else wanted to just post an XML string they would have to have the 
same form name XMLhttp that is not very user friendly.   My guess is I am 
missing something about how cgi can work.

I bet Python has a simple way to receive a XML post so I do not have to look 
for a specific form name?

Any help would be appreciated.

Thanks,

John 

 

Web page code to post XML in a text area

form action=http:///cgi-bin/parsXML2.py; target=text/xml method=post
TEXTAREA cols=60 name=XMLhttp rows=20 wrap=Real

?xml version=1.0 ?

StatRequest requestID=user-20070531-Time 

/StatRequest


/TEXTAREA INPUT type=submit value=Submit Query
/FORM

Code that receives the XML POST

form = cgi.FieldStorage()
if not (form.has_key(XMLhttp)):
print content-type: text/html\n\n
print H1Error/H1


   else:
xmlString = form[XMLhttp].value
print content-type: text/html\n\n
req = ParseXML()


___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] problem with mmap

2007-05-30 Thread Ertl, John C CIV 63134
All,
 
I am trying to work an example that I found at 
http://bitworking.org/news/132/REST-Tips-URI-space-is-infinite
 
When I try the code below I get an error and I am not able to figure it out. 
 
Thanks for any and all help.  I have two png and a text file (sortzip.txt) in 
the same dir as this code but I do not even get to that part...the mmap call is 
bad.  I have never used mmap before so this is new to me. I am running python 
2.4 
 
John
# code
from mmap import mmap
import os
from bisect import bisect_left
import sys
class Zipcodes(object):
Use mmap to treat the sorted file of zipcodes
as an array
def __init__(self):
self.f = open(sortzips.txt, r+)
self.size = os.path.getsize(sortzips.txt)
self.m = mmap(self.f.fileno(), self.size)
def __getitem__(self, i):
self.m.seek(6*i)
return self.m.read(5)
def __del__(self):
self.m.close()
self.f.close()
def __len__(self):
return self.size / 6
zipcodes = Zipcodes()
target = os.environ.get('PATH_INFO', '/')[1:]
found = ( zipcodes[bisect_left(zipcodes, target)] == target )
print Status:  + ( found and 200 Ok or 404 Not Found )
print Cache-control: max-age=172800
print Content-type: image/png
print 
file = open(found and good.png or bad.png, r)
png = file.read()
file.close()
sys.stdout.write(png)
##
error message when I try to run this.
 
Traceback (most recent call last):
  File ./zipcode.cgi, line 23, in ?
zipcodes = Zipcodes()
  File ./zipcode.cgi, line 14, in __init__
self.m = mmap(self.f.fileno(), self.size)
EnvironmentError: [Errno 22] Invalid argument
Exception exceptions.AttributeError: 'Zipcodes' object has no attribute 'm' 
in bound method Zipcodes.__del__ of __main__.Zipcodes object at 0xbdf080cc 
ignored

###
 
John Ertl
Meteorologist
 
FNMOC
7 Grace Hopper Ave.
Monterey, CA 93943
(831) 656-5704
[EMAIL PROTECTED]
 
 
winmail.dat___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] trouble with re

2006-05-08 Thread Ertl, John
I have a file with 10,000 + lines and it has a coma delimited string on each
line.

The file should look like:

DFRE,ship name,1234567
FGDE,ship 2,
,sdfsf

The ,sdfsf  line is bad data


Some of the lines are messed up...I want to find all lines that do not end
in a comma or seven digits and do some work on them.  I can do the search
for just the last seven digits but I can not do the seven digits or the
comma at the end in the same search.

Any ideas


import re
import sys
import os

p = re.compile('\d{7}$ | [,]$')   # this is the line that I can not get
correct I an trying to find lines that end in a comma or 7 digits
newFile = open(newFile.txt,'w')
oldFile = open(shipData.txt,'r')

for line in oldFile:
if p.search(line):
   newFile.write(line)
else:
   newFile.write(*BAD DATA  + line)

newFile.close()
oldFile.close() 
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] trouble with re

2006-05-08 Thread Ertl, John
Kent,

Thanks for the nock on the head,  that has bitten me before.  Taking out the
spaces worked great.

Thanks again,

John Ertl 

 -Original Message-
From:   [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]  On
Behalf Of Kent Johnson
Sent:   Monday, May 08, 2006 10:53 AM
Cc: tutor@python.org
Subject:Re: [Tutor] trouble with re

Ertl, John wrote:
 I have a file with 10,000 + lines and it has a coma delimited string on
each
 line.
 
 The file should look like:
 
 DFRE,ship name,1234567
 FGDE,ship 2,
 ,sdfsf
 
 The ,sdfsf  line is bad data
 
 p = re.compile('\d{7}$ | [,]$')   # this is the line that I can not get
 correct I an trying to find lines that end in a comma or 7 digits

Spaces are significant in regular expressions unless you compile them 
with the re.VERBOSE flag. Also you don't need to make a group for a 
single character. Try
p = re.compile('\d{7}$|,$')
or maybe
p = re.compile('(\d{7}|,)$')

Actually since the seven digits are preceded by the comma you could just 
make the digits optional:
p = re.compile(',(\d{7})?$')

Kent

___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Halting execution

2006-05-03 Thread Ertl, John

For this case, just wanting to stop the code for testing, using a short
statement as the arg is not only OK it is an example in the doc.

exit(   [arg])
Exit from Python. ..  In particular, sys.exit(some error message) is a
quick way to exit a program when an error occurs. 

I agree I should be a bit more careful about giving examples that are quick
fixes as opposed to best practice.

John 
 -Original Message-
From:   [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]  On
Behalf Of Hugo González Monteverde
Sent:   Wednesday, May 03, 2006 12:05 PM
To: tutor@python.org
Subject:Re: [Tutor] Halting execution

It would be similar to Perl's die() commmand. But no, in Python the 
argument is the error status of your script.

You'd have to do something like

def exitnow(arg):
 print arg
 #maybe sys has not been imported
 import sys
 sys.exit(1)

Hugo

Ertl, John wrote:
 Matthew,
 
 Not sure if ipython is different but have you tried sys.exit(stoping
now)
 
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] question about run time

2006-05-02 Thread Ertl, John

I have been using python for sometime...and occasionally I noticed
significant delay before the code would run but unitl now I have been able
to write it off to other things.  Now I have a short script that I wrote to
check some files and print out a few lines.

I have noticed that usually the first time I fire it up in the morning or
after a long time of not running it, it takes 10-15 seconds to run and the
output to the screen is very slow...maybe 1 second per line.  If I run it
soon after that it runs and the output is on the screen in less then a
second.  I would think this has to do with compiling but I am not sure.  Any
ideas how to speed this up?  

I am running python 2.4 on a RHE3.0 cluster. 

Thanks,

John Ertl
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] question about run time

2006-05-02 Thread Ertl, John
Kent,

The files are very small (a few hundred lines).  Maybe it is a network
issue? But then why is it always slow the first time in the morning?  I
don't know network stuff but that seams a bit strange.

Thanks,

John Ertl 

 -Original Message-
From:   Kent Johnson [mailto:[EMAIL PROTECTED] 
Sent:   Tuesday, May 02, 2006 12:06 PM
To: Ertl, John
Cc: tutor@python.org
Subject:Re: [Tutor] question about run time

Ertl, John wrote:
 I have been using python for sometime...and occasionally I noticed
 significant delay before the code would run but unitl now I have been able
 to write it off to other things.  Now I have a short script that I wrote
to
 check some files and print out a few lines.
 
 I have noticed that usually the first time I fire it up in the morning or
 after a long time of not running it, it takes 10-15 seconds to run and the
 output to the screen is very slow...maybe 1 second per line.  If I run it
 soon after that it runs and the output is on the screen in less then a
 second.  I would think this has to do with compiling but I am not sure.
Any
 ideas how to speed this up?  

Compiling is not that slow. Are you files huge? Possibly they are in the 
disk cache after the first run.

Kent

___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] question about run time

2006-05-02 Thread Ertl, John
Kent,

I will check with the systems guys...and the Perl guys down the hall to see
if they have the same problem.  

Thanks for the help.

John Ertl 


 -Original Message-
From:   [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]  On
Behalf Of Kent Johnson
Sent:   Tuesday, May 02, 2006 12:27 PM
Cc: tutor@python.org
Subject:Re: [Tutor] question about run time

Ertl, John wrote:
 Kent,
 
 The files are very small (a few hundred lines).  Maybe it is a network
 issue? But then why is it always slow the first time in the morning?  I
 don't know network stuff but that seams a bit strange.

Maybe the network access is slow and the files are cached locally after 
the first access? I think Windows does this...

Some things you might want to try:
- Open one of the files in a text editor. Close it and open it again. Is 
it faster the second time?
- Write a simple python program to open one of the files and read it. Is 
it faster the second time you run it?

HTH, I'm guessing here. I have definitely seen scripts that run faster 
the second time and attribute it to file caching somewhere...though I 
haven't seen such a significant difference as you.

Kent

 
 Thanks,
 
 John Ertl 
 
  -Original Message-
 From: Kent Johnson [mailto:[EMAIL PROTECTED] 
 Sent: Tuesday, May 02, 2006 12:06 PM
 To:   Ertl, John
 Cc:   tutor@python.org
 Subject:  Re: [Tutor] question about run time
 
 Ertl, John wrote:
 I have been using python for sometime...and occasionally I noticed
 significant delay before the code would run but unitl now I have been
able
 to write it off to other things.  Now I have a short script that I wrote
 to
 check some files and print out a few lines.

 I have noticed that usually the first time I fire it up in the morning or
 after a long time of not running it, it takes 10-15 seconds to run and
the
 output to the screen is very slow...maybe 1 second per line.  If I run it
 soon after that it runs and the output is on the screen in less then a
 second.  I would think this has to do with compiling but I am not sure.
 Any
 ideas how to speed this up?  
 
 Compiling is not that slow. Are you files huge? Possibly they are in the 
 disk cache after the first run.
 
 Kent
 
 
 


___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] question about run time

2006-05-02 Thread Ertl, John
) = myUse.extractUserData()
myUse.add(memAmount,inodeAmount)

print Your memory usage is %s KB and your inode usage is %s %
(myUse.memTotal,myUse.inodeTotal)
print Your memory limit is %s KB and your inode limit is %s %
(myUse.memLimit, myUse.inodeLimit)

if myUse.memLimit  myUse.memTotal or myUse.inodeLimit 
myUse.inodeTotal:
print You have excedded your limit
myUse.sendEmail(%s memory/inode limit reached on gpfs  %
myUse.userName)


 -Original Message-
From:   Danny Yoo [mailto:[EMAIL PROTECTED] 
Sent:   Tuesday, May 02, 2006 1:32 PM
To: Ertl, John
Cc: tutor@python.org
Subject:Re: [Tutor] question about run time



 I have been using python for sometime...and occasionally I noticed 
 significant delay before the code would run but unitl now I have been 
 able to write it off to other things.  Now I have a short script that I 
 wrote to check some files and print out a few lines.

 I have noticed that usually the first time I fire it up in the morning 
 or after a long time of not running it, it takes 10-15 seconds to run 
 and the output to the screen is very slow...maybe 1 second per line. 
 If I run it soon after that it runs and the output is on the screen in 
 less then a second.  I would think this has to do with compiling but I 
 am not sure.  Any ideas how to speed this up?

 I am running python 2.4 on a RHE3.0 cluster.
^^

Hi John,

One thing to check is to see if the program is spending the majority of 
its time doing input and output (I/O Bound), or if it's really doing heavy 
computations (CPU bound).  Knowing this might provide clues as to why 
you're seeing this kind of jerky performance.

Also, you may want to check with your cluster folks on the possible 
effects the cluster's architecture may have on program startup.  You're 
running on a slightly specialized platform, so I wouldn't be surprised if 
the cluster architecture is contributing something special.

Finally, if you want to share that script for people to comment on, that 
might help.


Good luck!
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] launching and monitor from make

2005-10-12 Thread Ertl, John
All,

I have a very simple python program that reads one file and overwrites
anouther text file.  This workes great from the command line and it has
error checking but just outputs messages and the like to the screen.

The CM team here would like to have the script run each week as part of the
automated rebuilds.  The suggestion was to make the execution of the scritp
part of the bigger programs make file.  How would I handel errors when the
program is run from a makefile?  I hate make so I have not done a lot of
playing with what make can do in this respect but can python get an error
message to make?

Thanks,

John Ertl

___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] launching and monitor from make

2005-10-12 Thread Ertl, John
Ewald,

That easy...If you know.  Thanks for the example and the help.  Now lets see
if I can modify the make file without upsetting the make god.

Thanks again.

John Ertl 

 -Original Message-
From:   Ewald Ertl [mailto:[EMAIL PROTECTED] 
Sent:   Wednesday, October 12, 2005 7:40 AM
To: Ertl, John
Subject:Re: [Tutor] launching and monitor from make

Hi John

Ertl, John wrote:
 All,
 
 I have a very simple python program that reads one file and overwrites
 anouther text file.  This workes great from the command line and it has
 error checking but just outputs messages and the like to the screen.
 
 The CM team here would like to have the script run each week as part of
the
 automated rebuilds.  The suggestion was to make the execution of the
scritp
 part of the bigger programs make file.  How would I handel errors when the
 program is run from a makefile?  I hate make so I have not done a lot of
 playing with what make can do in this respect but can python get an error
 message to make?


I think your Python-Script is an executeable Shell-Script with
#!/usr/bin/env python ... 
So you can just insert your script in the makefile

When the exit-Code of the script is 0, than make assumes that everything is
ok,
otherwise an error occured.


Here's a short example with ls

Here the mkfile want's to list the file hugo which does not exist

mkfile:
all:
ls -l hugo
--
#gmake -f mkfile
ls -l hugo
hugo: Datei oder Verzeichnis nicht gefunden
gmake: *** [all] Error 2



Here the mkfile itself is listed with ls
mkfile:
all:
ls -l mkfile
--
#gmake -f mkfile
ls -l mkfile
-rw-rw-r--   1 ewer entw  19 Okt 12 16:35 mkfile


HTH
Ewald Ertl
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] launching and monitor from make

2005-10-12 Thread Ertl, John
Alan,

Thanks,  just as you and Ewald said it works great.  Almost too
easy...I have this feeling something will turn around a bite me once it goes
to ops.

Thanks again

John Ertl 

 -Original Message-
From:   Alan Gauld [mailto:[EMAIL PROTECTED] 
Sent:   Wednesday, October 12, 2005 10:01 AM
To: Ertl, John; tutor@python.org
Subject:Re: [Tutor] launching and monitor from make

 The CM team here would like to have the script run each week as part of 
 the
 automated rebuilds.  The suggestion was to make the execution of the 
 scritp
 part of the bigger programs make file.  How would I handel errors when the
 program is run from a makefile?  I hate make so I have not done a lot of
 playing with what make can do in this respect but can python get an error
 message to make?

You can write the errors to stderr instead of stdout.
You can also exit with an error code using sys.exit().
make should detect the non standard error code because it uses standard
shell processing..

Alan G 
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] how to extract number of files from directory

2005-10-12 Thread Ertl, John
Marc,

You can do most system type stuff in Python and it makes it much easier.  
import glob
jpgList = glob.glob(*.jpg) # the glob allows you to use wild cards in the
search
jpgCount = len(jpgList)
This gives you a list of all files that end in .jpg.  You can then do a
len(jpgList) to get the number of files
John


 -Original Message-
From:   Marc Buehler [mailto:[EMAIL PROTECTED] 
Sent:   Wednesday, October 12, 2005 11:10 AM
To: tutor@python.org
Subject:[Tutor] how to extract number of files from directory

hi.

i'm new to Python ...

i would like to extract the number of JPG files
from the current directory and use that number
as a parameter in my python script.
i tried:
 a = os.system('ls *JPG | wc -l')
when i do:
 print a
i get '0'.

what am i missing?

marc


---
The apocalyptic vision of a criminally insane charismatic cult leader 

   http://www.marcbuehler.net





__ 
Yahoo! Music Unlimited 
Access over 1 million songs. Try it free.
http://music.yahoo.com/unlimited/
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] Finding difference in two .gif

2005-09-30 Thread Ertl, John
 
All,

I have two gif images that should be exactly the same...one static and the
other recreated from the same data. For months this has been working great
but yesterday the new image that I made was slightly different.  The image
size is 4 bytes different.  When I look at the image side by side I can not
see the difference.  I have very limited image manipulation software and I
was trying to isolate the image difference using PIL but all I get are black
images. I know nothing about how the imaging works so it could be as easy as
reseting the scale but I tried with no luck. 

Does anyone know how to isolate (hopefully small) image differences using
PIL?

Thank you,

John Ertl

Python 2.4, PIL 1.1.5
The simple code I have tried:

import Image
import ImageChops

file1 = Image.open(/home/PT04_RH.2005072300.gif)

file2 = Image.open(/home/PT04_RH.2005093000.gif)

#diffImage = ImageChops.difference(file1,file2)

diffImage = ImageChops.subtract(file1,file2)



diffImage.save(diffOut.gif)
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Finding difference in two .gif

2005-09-30 Thread Ertl, John

All,

Well I found the answer...getbox() gave me the bounding box and then I could
just plot that portion of the two images.
 
Python 2.4, PIL 1.1.5
The simple code I have tried:

import Image
import ImageChops

file1 = Image.open(/home/PT04_RH.2005072300.gif)

file2 = Image.open(/home/PT04_RH.2005093000.gif)

diffbox = ImageChops.difference(file1,file2).getbbox()
diffImage = file1.crop(diffbox)

diffImage.save(diffOut.gif)
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Generate 8 digit random number

2005-08-26 Thread Ertl, John
Alberto

If you don't mind having leading 0 then you could just do the random like
you did then format it to 9 digits.

You could give this a try

num = random.randrange(,)
num8 = %09i % num

John Ertl 


 -Original Message-
From:   Byron [mailto:[EMAIL PROTECTED] 
Sent:   Friday, August 26, 2005 1:50 PM
To: Alberto Troiano; tutor@python.org
Subject:Re: [Tutor] Generate 8 digit random number

Hi Alberto,

Here's how to do it:

---

import random

def generateKey():
nums = 0123456789
strNumber = 
count = 0
while (count  8):
strNumber += nums[random.randrange(len(nums))]
count += 1
print strNumber

# A quick test...
count = 0
while (count  1):
generateKey()
count += 1


---

Byron  :-)

---


Alberto Troiano wrote:
 Hi everyone
 
 I need to generate a password..It has to be an 8 digit number and it has
to 
 be random
 
 The code I've been trying is the following:
 
 
 import random
 random.randrange(,)
 
 The code works but sometimes it picks a number with 7 digits. Is there any

 way that I can tell him to select always a random number with 8 digits?
 
 Thanks in advanced
 
 Alberto
 
 
 ___
 Tutor maillist  -  Tutor@python.org
 http://mail.python.org/mailman/listinfo/tutor
 


___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Generate 8 digit random number

2005-08-26 Thread Ertl, John
Sorry for that you will have to change the %09 to a %08 to get 8 digits.   I
got a bit to fixated on the 

John Ertl  

 -Original Message-
From:   Ertl, John  
Sent:   Friday, August 26, 2005 2:23 PM
To: Alberto Troiano; tutor@python.org
Subject:RE: [Tutor] Generate 8 digit random number

Alberto

If you don't mind having leading 0 then you could just do the random like
you did then format it to 9 digits.

You could give this a try

num = random.randrange(,)
num8 = %09i % num

John Ertl 


 -Original Message-
From:   Byron [mailto:[EMAIL PROTECTED] 
Sent:   Friday, August 26, 2005 1:50 PM
To: Alberto Troiano; tutor@python.org
Subject:Re: [Tutor] Generate 8 digit random number

Hi Alberto,

Here's how to do it:

---

import random

def generateKey():
nums = 0123456789
strNumber = 
count = 0
while (count  8):
strNumber += nums[random.randrange(len(nums))]
count += 1
print strNumber

# A quick test...
count = 0
while (count  1):
generateKey()
count += 1


---

Byron  :-)

---


Alberto Troiano wrote:
 Hi everyone
 
 I need to generate a password..It has to be an 8 digit number and it has
to 
 be random
 
 The code I've been trying is the following:
 
 
 import random
 random.randrange(,)
 
 The code works but sometimes it picks a number with 7 digits. Is there any

 way that I can tell him to select always a random number with 8 digits?
 
 Thanks in advanced
 
 Alberto
 
 
 ___
 Tutor maillist  -  Tutor@python.org
 http://mail.python.org/mailman/listinfo/tutor
 


___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] would pickle or cpickle help?

2005-06-30 Thread Ertl, John
All,

I have a text file that contains several thousand lines of space delimited
text that contain a ship ID and a ship name.  This file is updated every few
months.

I have another file that contains the ship ID and some other info but not
the ship name.  I have to append the ship name to the end of the line.  Easy
enough.

I currently make a dictionary of the shipID(key) and ship name(value) and
use this to append the ship name to the end of the line that contains the
ship ID.

Could I use something like cpickle to store the dictionary once it is made
so I would not have to make it each time?  I have never tried to use pickle
so I am bit fuzzy on what it can store and what it can't.  Also would it
really buy me anything...it only takes a second or two to make the
dictionary? There is a chance the file that I use to make the dictionary
will eventually grow to be 10,000 lines or more.

Thanks for the ideas.

John Ertl
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Just a Python formatting question

2005-06-08 Thread Ertl, John
Kristiano,

It is sometimes hard to tell the indentions in an email but it looks like
your last line

 print Just right

has a space in front of it.  Python does not know what logical block the
indented part belongs to.

John Ertl 

-Original Message-
From: Kristiano Ang [mailto:[EMAIL PROTECTED]
Sent: Wednesday, June 08, 2005 09:49
To: tutor@python.org
Subject: [Tutor] Just a Python formatting question

Hey guys,
  I'm pretty new to Python (using Mac Python 2.4.1) and have a
question with formatting that I hope you can help me with.

  Sometimes, when I write code with Python (copied off tuts.), I get
error messages and highlights of the word else. Take for example:

#plays the guessing game higher or lower

#originally written by Josh Cogliati, improved by Quique and copied by
Kristiano Ang

number=78
guess=0

while guess != number:
guess=input (Guess a number:)
if guess  number:
print Too High
elif guess  number:
print Too low

 print Just right


I just can't get it to run and I get some indentation error.

  I'm pretty new to this so I'm sorry if this question(s) sound(s)
amateurish. Do help.

Thanks.
-Kristiano Ang
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] read() question

2005-05-11 Thread Ertl, John
John,

The 'r' is the mode and is used to indicate you are reading the file.  You
could also use 'w' for only writing.  See the attached link for more.  

http://www.python.org/doc/current/tut/node9.html#SECTION0092
0 

John
-Original Message-
From: John Carmona [mailto:[EMAIL PROTECTED]
Sent: Wednesday, May 11, 2005 09:51
To: tutor@python.org
Subject: [Tutor] read() question

MyText = open('The_text.txt','r').read()

In the above line could someone tell me what the 'r' stand for. Many thanks

JC


___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


RE: [Tutor] using TK to view an image and then close the window

2005-04-26 Thread Ertl, John
Michael,

Thanks for the understanding and help,  It works kind of.  I was getting
this error with one of my iterations of the code as well.   Do you know what
might be causing this?  Since your code also produced this I figured Oh-Well
and I just put in a try and this at least keeps the error from printing to
the screen.  I will keep trying...a guick google gave me an idea but not
sure.  

Thanks again for the help

Traceback (most recent call last):
  File ./eraseLauncher.py, line 19, in ?
TK.TKview(newIm,mainTitle=image)
  File /gpfs3/home/ertlj/BATCH/meteogram/new/test/TKviewTest.py, line 22,
in TKview
canvas.create_image(0,0,anchor='nw',image=p)
  File /home/ertlj/ertljVersion/lib/python2.4/lib-tk/Tkinter.py, line
2086, in create_image
return self._create('image', args, kw)
  File /home/ertlj/ertljVersion/lib/python2.4/lib-tk/Tkinter.py, line
2075, in _create
return getint(self.tk.call(
_tkinter.TclError: image pyimage2 doesn't exist

-Original Message-
From: Michael Lange [mailto:[EMAIL PROTECTED]
Sent: Tuesday, April 26, 2005 01:58
To: Ertl, John
Subject: Re: [Tutor] using TK to view an image and then close the window

On Mon, 25 Apr 2005 14:09:17 -0700
Ertl, John [EMAIL PROTECTED] wrote:

 Michael,

 I got the TK code from an old post...I really do not know much about how
it
 is supposed to work.  I just thought I seamed so close that it should be
 simple to fix.  I was trying to use self and what not but I still could
not
 get the window to close down.  I guess I will just have to learn a bit
more
 about Tkinter.

 Thanks,

 John Ertl

John,

you are right, it was quite close. It just could be done a little simpler,
like this:

def TKview(img,mainTitle=image):
   
top = Tkinter.Tk()

top.protocol(WM_DELETE_WINDOW, top.quit)# not really necessary if
you don't want to do any cleanup on exit
top.bind(q,lambda event : top.quit)# use lambda here to catch
the event that gets passed by bind()
 
canvas = Tkinter.Canvas(top)
canvas.pack()

p = ImageTk.PhotoImage(img)

canvas['width'] = img.size[0]
canvas['height'] = img.size[1]

canvas.create_image(0,0,anchor='nw',image=p)

top.mainloop()

I didn't test this, but I think it should do pretty much the same as you
expected from the code you posted.

Calling top.destroy() is not really necessary, because python should do this
for you when you quit
the mainloop. However it seems to be cleaner to call destroy() explicitely
with a construction like
this (pseudo code):

top = Tkinter.Tk()
top.protocol(WM_DELETE_WINDOW, top.quit)
top.mainloop()
top.destroy()

Using the protocol() method is necessary here, because otherwise clicking
the Close button in the window's title bar
would destroy the window, so calling top.destroy() would raise an error.
The last line of this code is only reached, after the mainloop was
interrupted by calling quit() .
What's nice about this construction is, that you can put some
cleanup-on-exit stuff before top.destroy()
that's performed automatically when the window is closed; in a more complex
application with several modules it's
also nice that you can use any (child) Tk widget's quit() method to stop the
mainloop, so
it's not necessary to have a reference to the main Tk() instance in every
module.

Best regards

Michael
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] using TK to view an image and then close the window

2005-04-25 Thread Ertl, John
All,

I have been struggling with being able to view an image and most things have
not worked for one reason or another so I am trying to fall back on a way I
used to do it in PERL.  Use TK to show the image.  I do not know TKInter but
I have two scripts one that gets a list of images and anouther that displays
them using Tkinter.   This is basically how I would like to use it...I am
going to be using PIL to manipulate the image (and show() does not work) so
I just want a quick view to see how it looks.  I can get the image to show
up and minimize and maximize but I can not get the window to close and then
display the next image.  

I have tired several things but no luck. 

Any help on getting the TK window to shutdown cleanly would be appreciated.
Thanks

John Ertl 

code # this is supposed to display an image in a TK window but the close
(X) does not work.
import Image
import Tkinter,ImageTk

def TKview(img,mainTitle=image):

app = Tkinter.Tk()
app.withdraw()

top = Tkinter.Toplevel(app,visual=truecolor,colormap=new)
top.title(mainTitle)
top.protocol(WM_DELETE_WINDOW, quit)
top.bind(q,quit)
top.bind(Q,quit)

canvas = Tkinter.Canvas(top)
canvas.pack()

p = ImageTk.PhotoImage(img)

canvas['width'] = img.size[0]
canvas['height'] = img.size[1]

canvas.create_image(0,0,anchor='nw',image=p)

top.mainloop()

def quit(event=None):
top.destroy()
top.quit()
/CODE

CODE# this code gets the images opens them and calls the TK code above to
display them

import glob
import thread
import Image

import TKviewTest # the module to view the images

   
gifList = glob.glob(./*.gif)
print gifList
for image in gifList:
   image = image[2:] # glob leaves ./ in file name

   newIm= Image.open(image)

   TK = TKviewTest
   thread.start_new_thread(TK.TKview(newIm,mainTitle=image))

/CODE
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] trouble setting the environment

2005-04-21 Thread Ertl, John
All,

I have program and init I want to source a .ksh file to set some
environment variables and then use those variables in my program.

Is this possible? I vaguely remember something about the system env and the
interpreters env being separate after the interpreter starts up.

For instance if I have a .ksh file called envSet.ksh:

#!/bin/ksh

unset OPSBIN

export OPSBIN=/u/ops/bin 

---end --

Then 
 
 os.system(. envSet.ksh)
0
 os.getenv(OPSBIN)


What is the 0.  I know that I can set the env using Python but all of the
correct env are in the .ksh files maintained by others.  I would hate to
have to take the .ksh and tread each line and if it is an export turn that
into a python  os.environ statement.

Any ideas.

Thanks 

John 
   
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


RE: [Tutor] trouble setting the environment

2005-04-21 Thread Ertl, John
Kent,

Good idea except that the environment that needs to be set depends on the
answers to some of the input that I get in the Python program.   Nothing is
ever easy here.

Thanks for the ideas.

John Ertl 

-Original Message-
From: Kent Johnson [mailto:[EMAIL PROTECTED]
Sent: Thursday, April 21, 2005 13:20
Cc: tutor@python.org
Subject: Re: [Tutor] trouble setting the environment

Ertl, John wrote:
 All,

 I have program and init I want to source a .ksh file to set some
 environment variables and then use those variables in my program.

 Is this possible? I vaguely remember something about the system env and
the
 interpreters env being separate after the interpreter starts up.

What about making a shell file that sources your ksh file, then starts
python?

Kent


 For instance if I have a .ksh file called envSet.ksh:

 #!/bin/ksh

 unset OPSBIN

 export OPSBIN=/u/ops/bin

 ---end --

 Then
 

os.system(. envSet.ksh)

 0

os.getenv(OPSBIN)



 What is the 0.  I know that I can set the env using Python but all of the
 correct env are in the .ksh files maintained by others.  I would hate to
 have to take the .ksh and tread each line and if it is an export turn that
 into a python  os.environ statement.

 Any ideas.

 Thanks

 John
   
 ___
 Tutor maillist  -  Tutor@python.org
 http://mail.python.org/mailman/listinfo/tutor


___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


FW: [Tutor] Trying to d0 HTTP GET

2005-04-19 Thread Ertl, John
All,

I have figured out a bit more.  I can get the binary values from the service
but I think they come back as a single string.  How do I read that into an
array?  The code below will read the first number into the array and print
it out but how would I read the whole thing into an array...I would like to
skip the step of putting the raw binary numbers into a variable and instead
read it directly into the binvalues array.

I have tried things like  binvalues.read(rawData.read(4,size of array)) and
a few other things but none of them work.  I was hoping for a fromstream but
no luck no that either.
Thanks for any help.
CODE
binvalues = array.array('f')

rawData =
urllib2.urlopen(http://dsd1u:7003/GRID:U:NOGAPS:2005041800:global_360x181:a
ir_temp:ht_sfc:0002::fcst_ops:0240)


binvalues.fromstring(rawData.read(4))  # 4 byte float

binvalues.byteswap()

print binvalues

/CODE

-Original Message-
From: Kent Johnson
Cc: tutor@python.org
Sent: 4/18/05 1:10 PM
Subject: Re: [Tutor] Trying to d0 HTTP GET

Ertl, John wrote:
 All,

 I am trying to get some binary data from a web service.  None of the
tech
 guys are around so I am hoping you might be able to shed some light on
what
 might be happening.

I would think that
f = urllib.urlopen(...)
data = f.read()

would work. You could try urllib2.urlopen() and see if it is any better.

How big is the data you are expecting?

Kent


 Here is part of the email that explained what I needed to do.

 - clip ---

 If you can do an http get from Python, you'll be set.
 

http://dsd1u:7003/GRID:U:WW3_GLOBAL:2005041512:global_360x181:max_wav_ht
:sur
 face:::fcst_ops:0480

 It returns an http header like the following (if the grid exists),
 followed by the grid data in big-endian, IEEE format.

  HTTP/1.1 200 OK\r\n
  Server: ISIS/4.0\r\n
  Content-type: application/x-grid\r\n
  Content-length: 261234\r\n\r\n

 - end-

 The grid data is in Binary.  How would I get to this?  I would imagine
that
 since f (the object) exists the call to the web service worked. Now I
need
 to read the grid...eventually I need to put it into a Numeric array
but not
 sure how to get just the grid from f.

 As a simple starting point I tried. 


import urllib
f =


urllib.urlopen(http://dsd1u:7003/GRID:U:WW3_GLOBAL:2005041800:global_36
0x18
 1:max_wav_ht:surface:::fcst_ops:0240)

f.info()

 httplib.HTTPMessage instance at 0xb9255f6c

f.readlines()


 I tried read(), readLines() and some other stuff using scipy and
Numeric.

 The prompt has moved to the next line but nothing else has happened
for 30
 min or so (I have tried several times).  When I try to close IDLE it
says
 the program is still running.  How should I be getting this data is it
 trying to read the binary and that is why it is stalled? 

 Thanks,

 John Ertl

 ___
 Tutor maillist  -  Tutor@python.org
 http://mail.python.org/mailman/listinfo/tutor


___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] Trying to d0 HTTP GET

2005-04-18 Thread Ertl, John
All,

I am trying to get some binary data from a web service.  None of the tech
guys are around so I am hoping you might be able to shed some light on what
might be happening.

Here is part of the email that explained what I needed to do.

- clip ---

If you can do an http get from Python, you'll be set.
 
http://dsd1u:7003/GRID:U:WW3_GLOBAL:2005041512:global_360x181:max_wav_ht:sur
face:::fcst_ops:0480

It returns an http header like the following (if the grid exists), 
followed by the grid data in big-endian, IEEE format.

 HTTP/1.1 200 OK\r\n
 Server: ISIS/4.0\r\n
 Content-type: application/x-grid\r\n
 Content-length: 261234\r\n\r\n

- end-

The grid data is in Binary.  How would I get to this?  I would imagine that
since f (the object) exists the call to the web service worked. Now I need
to read the grid...eventually I need to put it into a Numeric array but not
sure how to get just the grid from f.

As a simple starting point I tried.  

 import urllib
 f =
urllib.urlopen(http://dsd1u:7003/GRID:U:WW3_GLOBAL:2005041800:global_360x18
1:max_wav_ht:surface:::fcst_ops:0240)
 f.info()
httplib.HTTPMessage instance at 0xb9255f6c
 f.readlines()

I tried read(), readLines() and some other stuff using scipy and Numeric.

The prompt has moved to the next line but nothing else has happened for 30
min or so (I have tried several times).  When I try to close IDLE it says
the program is still running.  How should I be getting this data is it
trying to read the binary and that is why it is stalled?  

Thanks,

John Ertl 

___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


RE: [Tutor] Trying to d0 HTTP GET

2005-04-18 Thread Ertl, John
This data set is 65160 bytes.  I am having a bit more success with urllib2
but still not there yet...byte swapping and such.  But now I think the
server is having problems.

Thanks for your help.

-Original Message-
From: Kent Johnson [mailto:[EMAIL PROTECTED]
Sent: Monday, April 18, 2005 13:10
Cc: tutor@python.org
Subject: Re: [Tutor] Trying to d0 HTTP GET

Ertl, John wrote:
 All,

 I am trying to get some binary data from a web service.  None of the tech
 guys are around so I am hoping you might be able to shed some light on
what
 might be happening.

I would think that
f = urllib.urlopen(...)
data = f.read()

would work. You could try urllib2.urlopen() and see if it is any better.

How big is the data you are expecting?

Kent


 Here is part of the email that explained what I needed to do.

 - clip ---

 If you can do an http get from Python, you'll be set.
 

http://dsd1u:7003/GRID:U:WW3_GLOBAL:2005041512:global_360x181:max_wav_ht:sur
 face:::fcst_ops:0480

 It returns an http header like the following (if the grid exists),
 followed by the grid data in big-endian, IEEE format.

  HTTP/1.1 200 OK\r\n
  Server: ISIS/4.0\r\n
  Content-type: application/x-grid\r\n
  Content-length: 261234\r\n\r\n

 - end-

 The grid data is in Binary.  How would I get to this?  I would imagine
that
 since f (the object) exists the call to the web service worked. Now I need
 to read the grid...eventually I need to put it into a Numeric array but
not
 sure how to get just the grid from f.

 As a simple starting point I tried. 


import urllib
f =


urllib.urlopen(http://dsd1u:7003/GRID:U:WW3_GLOBAL:2005041800:global_360x18
 1:max_wav_ht:surface:::fcst_ops:0240)

f.info()

 httplib.HTTPMessage instance at 0xb9255f6c

f.readlines()


 I tried read(), readLines() and some other stuff using scipy and Numeric.

 The prompt has moved to the next line but nothing else has happened for 30
 min or so (I have tried several times).  When I try to close IDLE it says
 the program is still running.  How should I be getting this data is it
 trying to read the binary and that is why it is stalled? 

 Thanks,

 John Ertl

 ___
 Tutor maillist  -  Tutor@python.org
 http://mail.python.org/mailman/listinfo/tutor


___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] how to display an image using python

2005-04-14 Thread Ertl, John
All,

I have asked this question before, but one more time most have commented
about manipulation but displaying the image has become the big issue.  I
want to display png and gif images on a Linux machine using python.  I am
using PyNGL to make the images and PIL to manipulate them but I cannot load
xv on the machines and PIL uses xv to display.  I have looked at
PythonMagick but I could not even get past installing it.  It does not have
a setup.py and uses boost.  I am hoping for a more straightforward Python
way.  

Thanks,

John Ertl 
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


RE: [Tutor] how to display an image using python

2005-04-14 Thread Ertl, John
Danny,

Pygame.org...I would not have thought to look there.  In my google it did
not pop up.  I will definitely take a look and thanks for the example. 

John Ertl 

-Original Message-
From: Danny Yoo [mailto:[EMAIL PROTECTED]
Sent: Thursday, April 14, 2005 12:25
To: Ertl, John
Cc: Tutor
Subject: Re: [Tutor] how to display an image using python


 xv on the machines and PIL uses xv to display.  I have looked at
 PythonMagick but I could not even get past installing it.  It does not
have
 a setup.py and uses boost.  I am hoping for a more straightforward Python
 way.

Hi John,


You may want to try PyGame:

http://www.pygame.org/

Although it's mainly for game development, it provides a simple graphics
API that we can use to display images.  If you're running Linux, it's
likely that you have the Simple DirectMedia Layer (SDL) library installed.


I'm not too familiar with the API, but I was able to get some kind of
working example.  We can first construct an image surface:

http://www.pygame.org/docs/ref/pygame_image.html

by loading one from our file:

##
 import pygame.image
 picture = pygame.image.load(na-cat.gif)

 picture.get_size()
(256, 48)
##


At this point, 'picture' contains a surface:

http://www.pygame.org/docs/ref/Surface.html

We can copy ('blit') this surface onto our main screen:


##
 import pygame.display
 pygame.display.set_mode(picture.get_size())
Surface(256x48x16 SW)
 main_surface = pygame.display.get_surface()
 main_surface.blit(picture, (0, 0))
 pygame.display.update()
##


I hope this helps!
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] viewing gif png ?

2005-04-07 Thread Ertl, John
I need to manipulate and view gif and png images.  I have PIL installed so I
can do the manipulation but PIL does not let me view the images, because I
do not have xv.   What is the recommended python module for viewing gif and
png?

Thanks for the recommendation.

John Ertl 
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] re question

2005-03-24 Thread Ertl, John
All

I have a string that has a bunch of numbers with the units attached to them.
I want to strip off the units.  I am using a regular expression and sub to
do this.  This works great for almost all of the cases.  

These are the type of lines:

SigWind:  857hPa,  ,  21.0C,  20.1C, 210 @  9kts
SigWind:  850hPa±, ,   ,   , 205 @ 11kts
Std Lvl:  850hPa, 1503m,  16.8C,  15.7C, 205 @ 11kts

I am using the following cleanstring = re.compile( '(hPa|hPa\xb1|m|C|kts)'
).  And then the cleanstring.sub(,line).  I have tried using numerous \ to
escape the \xb1.

I also tried replacing all non numeric characters that are part of a
number-character string but I could not make that work. The idea was replace
all non-number characters in a word that is made up of numbers followed by
numbers.

I then split the line at the commas so in the current thinking I need the
commas for the split.  How do I deal with the hPa±?  When I print it out it
looks like it is a hexadecimal escape character (\xb1) but I am note sure
how to deal with this.

Any ideas?

Thanks
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] Image manipulation

2005-03-16 Thread Ertl, John

All,

I have an image with a bunch of white space that I need to crop.  I would
like to automate the process using python and I was wondering what is the
best module for image manipulation?  I have seen PIL and Python magic what
is recommended?

John Ertl 
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] What is in the traceback object

2005-02-08 Thread Ertl, John








I have a bit of code that uses
a module and I am trying to get more info on the error.



I am using this bit of code:



 try:

 rhfill =
Ngl.contour(wks,rhisobar,rh_res)

 except:

 execType,value,tracebak
= sys.exc_info()[:3]

 print execType

 print value

 print tracebak



In the log file I get this:



exceptions.SystemError

error return without
exception set

traceback object at
0xb6cf2c84



How do I get the actual
traceback so I can read it?



Thanks,



John Ertl 








___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


RE: [Tutor] What is in the traceback object

2005-02-08 Thread Ertl, John
Danny,

That is great...every time I have a problem someone has already solved
it...the other problem is finding that solution...Thanks again.

John Ertl
-Original Message-
From: Danny Yoo [mailto:[EMAIL PROTECTED]
Sent: Tuesday, February 08, 2005 10:39
To: Ertl, John
Cc: 'tutor@python.org'
Subject: Re: [Tutor] What is in the traceback object


On Tue, 8 Feb 2005, Ertl, John wrote:

 I have a bit of code that uses a module and I am trying to get more info
 on the error.

 I am using this bit of code:

 try:
 rhfill= Ngl.contour(wks,rhisobar,rh_res)
 except:
 execType,value,tracebak = sys.exc_info()[:3]
 print execType
 print value
 print tracebak

 In the log file I get this:

 exceptions.SystemError
 error return without exception set
 traceback object at 0xb6cf2c84

 How do I get the actual traceback so I can read it?


Hi John,


You can use the 'traceback' module:

http://www.python.org/doc/lib/module-traceback.html

Use the traceback.print_exc() function within the except block: it'll
automatically pull information from sys.exc_info() for you:

##
try:
rhfill= Ngl.contour(wks,rhisobar,rh_res)
except:
traceback.print_exc()
##


Best of wishes to you!
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


RE: [Tutor] Diffing two files.

2005-01-31 Thread Ertl, John
Thanks,

So simple...DAA just do an equivalency on the list...no need to do sets
or step through each line. 

John 

-Original Message-
From: Kent Johnson [mailto:[EMAIL PROTECTED]
Sent: Saturday, January 29, 2005 06:05
Cc: Tutor@python.org
Subject: Re: [Tutor] Diffing two files.

OK, that is clear. diffutils is probably overkill. A simple loop to
accumulate the lines of interest
should work. Here is some untested (!) code that may do what you want :-)

def getCommonPart(filePath):
   ''' Get a list containing all the lines of a file that fall between the
start and end lines.
   The returned list does not include the actual start and end lines.
   If start is not found, returns None.
   If end is not found, returns the lines after start.
   '''
   start = '-Beginning flag\n'
   end = '-Ending flag\n'
   common = None  # This will be the list of lines, also a flag of whether
start has been seen
   for line in open(filePath):
 if common is None and line == start:
   common = []
 elif line == end:
   break
 else:
   common.append(line)
   return common

# Now it's easy to compare the two files:
lines1 = getCommonPart(file1)
lines2 = getCommonPart(file2)

if lines1 != lines2:
   # Do what you need to do in case of a mismatch...
   # If you want details of the differences then you might want to use
difflib here

Kent


Ertl, John wrote:
 Kent

 What I need to do is find what should be common and see if it really is.
I
 have two output files...The output files will have a bunch of systems
stuff
 then the text of interest and then a bunch more systems stuff.  The
systems
 stuff may be different for each file but the text of interest will always
 have a fixed line in front of it and behind it. 

 The idea is to get the text of interest (using the known beginning and
 ending flags in the text) from each file and then check to make sure the
 text of interest is the same in both files.

 I have not done much text stuff so this is new territory for me.  I will
 take a look at difflib.

 Thanks again

 John Ertl

 Simplified example of a text files.

 Sldfsdf
 Sdfsdfsf
 Sdfsdfsdfwefs
 Sdcfasdsgerg
 Vsadgfasgdbgdfgsdf
 -Beginning flag
 This
 Text
 Should be
 The
 Same in the other file.
 -Ending flag
 Sdfsdfsdfsd
 Sdfsdfsdfasd
 Sdfsadfsdf
 Sdfsadfasdf
 Sdfsdfasd
 Sdfasdf
 s


 -Original Message-
 From: Kent Johnson [mailto:[EMAIL PROTECTED]
 Sent: Friday, January 28, 2005 15:23
 Cc: Tutor@python.org
 Subject: Re: [Tutor] Diffing two files.

 You don't really say what you are trying to accomplish. Do you want to
 identify the common text, or
 find the pieces that differ?

 If the common text is always the same and you know it ahead of time, you
can
 just search the lines
 of each file to find it.

 If you need to identify the common part, difflib might be useful. There is
 an example on this page
 of finding matching blocks of two sequences:
 http://docs.python.org/lib/sequencematcher-examples.html

 In your case the sequences will be lists of lines rather than strings
(which
 are sequences of
 characters)

 Kent

 Ertl, John wrote:

All,

I have two text files that should contain a section of text that is the
same.  Luckily the section of text has a defined beginning and end.  It
looks like the most straightforward thing would be to read the targeted

 text

from each file (only 50 lines or so) into lists and then compare the

 lists.

I would think I could use sets to find a unique list (hopefully there

 would

not be anything)...or I could do line by line comparison.  Any advise on
what is the better method.  Should I avoid the list comparison

 approach...is

there a built in way of comparing entire files instead of dealing

 explicitly

with the lines?

Thanks,

John Ertl
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor



 ___
 Tutor maillist  -  Tutor@python.org
 http://mail.python.org/mailman/listinfo/tutor


___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


RE: [Tutor] Diffing two files.

2005-01-28 Thread Ertl, John
Kent

What I need to do is find what should be common and see if it really is.  I
have two output files...The output files will have a bunch of systems stuff
then the text of interest and then a bunch more systems stuff.  The systems
stuff may be different for each file but the text of interest will always
have a fixed line in front of it and behind it.  

The idea is to get the text of interest (using the known beginning and
ending flags in the text) from each file and then check to make sure the
text of interest is the same in both files. 

I have not done much text stuff so this is new territory for me.  I will
take a look at difflib.

Thanks again

John Ertl

Simplified example of a text files.

Sldfsdf
Sdfsdfsf
Sdfsdfsdfwefs
Sdcfasdsgerg
Vsadgfasgdbgdfgsdf
-Beginning flag
This
Text
Should be
The
Same in the other file.
-Ending flag
Sdfsdfsdfsd
Sdfsdfsdfasd
Sdfsadfsdf
Sdfsadfasdf
Sdfsdfasd
Sdfasdf
s


-Original Message-
From: Kent Johnson [mailto:[EMAIL PROTECTED]
Sent: Friday, January 28, 2005 15:23
Cc: Tutor@python.org
Subject: Re: [Tutor] Diffing two files.

You don't really say what you are trying to accomplish. Do you want to
identify the common text, or
find the pieces that differ?

If the common text is always the same and you know it ahead of time, you can
just search the lines
of each file to find it.

If you need to identify the common part, difflib might be useful. There is
an example on this page
of finding matching blocks of two sequences:
http://docs.python.org/lib/sequencematcher-examples.html

In your case the sequences will be lists of lines rather than strings (which
are sequences of
characters)

Kent

Ertl, John wrote:
 All,

 I have two text files that should contain a section of text that is the
 same.  Luckily the section of text has a defined beginning and end.  It
 looks like the most straightforward thing would be to read the targeted
text
 from each file (only 50 lines or so) into lists and then compare the
lists.
 I would think I could use sets to find a unique list (hopefully there
would
 not be anything)...or I could do line by line comparison.  Any advise on
 what is the better method.  Should I avoid the list comparison
approach...is
 there a built in way of comparing entire files instead of dealing
explicitly
 with the lines?

 Thanks,

 John Ertl
 ___
 Tutor maillist  -  Tutor@python.org
 http://mail.python.org/mailman/listinfo/tutor


___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] Popen and sending output to a file

2005-01-19 Thread Ertl, John
I am using the subprocess.Popen from 2.4.  I can launch a job from python
and the output from the job goes to the screen but now I would like to have
the output go to a file.  I could do the crude 

subprocess.Popen(dtg | cat  job.out, shell=True)

But I would think there is a better way built into Popen but I could not
figure out the documentation.

Any help would be appreciated.

John
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] Is there a better way to do this?

2004-12-22 Thread Ertl, John
I am trying to do the usual thing of asking for an input and then checking
it to see if it is valid.  If the entry is not valid then ask again until
you get the correct answer.

I have come up with this class.  I am trying to make a transition from
procedural programming to object oriented.   Is this a good approach for
such a check?  It seems to me this is more work then needed. (I can put in a
counter also to break out if you try too many times).

Please comment if you have the time. 

class greating:

def __init__(self):
self.OK = False
self.lowValue = 1
self.highValue = 6

def opening(self):
print 
Please choose from the following options.
1) - Normal Unit test with static data.
2) - Normal Unit test with missing data.
3) - Integration test with current DTG.
4) - Integration test with missing data.
5) - Clean directory
6) - Exit

self.choice = raw_input(Choice(1-6) )

def check(self):
try:
self.choice = int(self.choice)
except ValueError:
print Please enter a number from ,self.lowValue, to
,self.highValue
pass

if self.choice  self.highValue or self.choice  self.lowValue:
print You have entered an invalid entry. Please try again
else:
self.OK = True


a = greating()

while a.OK != True:
a.opening()
a.check()

print a.choice


___
Tutor maillist  -  [EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/tutor


RE: [Tutor] removedirs ?

2004-12-16 Thread Ertl, John
Jason,

I could...That is the exact feature I am trying to replicate, but I would
just like to do it in Python if I can (in a simple way).  I am writing this
code in Python to avoid some funny scripting that I would need to do. To go
back to combing shell and Python again would be a bit deflating...but the
straight forward path might be the best.

Thanks,

John Ertl 


-Original Message-
From: Jason Child [mailto:[EMAIL PROTECTED]
Sent: Thursday, December 16, 2004 12:36
Cc: [EMAIL PROTECTED]
Subject: Re: [Tutor] removedirs ?

Ertl, John wrote:

I am trying to remove a directory that has other directories and files in
it.  I thought removedirs was supposed to do a recursive remove of files
and
directories.

When I try it I get

 

os.removedirs(DAF)
   


Traceback (most recent call last):
  File pyshell#11, line 1, in -toplevel-
os.removedirs(DAF)
  File /home/ertlj/ertljVersion/lib/python2.3/os.py, line 167, in
removedirs
rmdir(name)
OSError: [Errno 17] File exists: 'DAF'

Thanks,

John Ertl


___
Tutor maillist  -  [EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/tutor

 

it seems to me that if its on a *nix box you could use the shell command
rm -rf target
___
Tutor maillist  -  [EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/tutor
___
Tutor maillist  -  [EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/tutor


[Tutor] turning a number into a formated string

2004-12-15 Thread Ertl, John
I need to take a number and turn it into a formatted string.  
The final output needs to look like    when the X is the integer
part padded on the left and  Y is the decimal part padded on the right.
I figured I could split the number at . and then use zfill or something
like this  (LEVEL1 = %04d % LEVEL1) for the  part but I am not sure
how to right pad the decimal part of the number.
Example.
1 and 1.0  needs to look like 0001 ( I figured I would have to check the
length of the list made from the split to see if a decimal portion existed)
1.1 needs to look like 00011000
22.33 needs to look like 00223330
.22 needs to look like 2200
Any ideas on the right padding the decimal side using 0 
Thanks,
John 
___
Tutor maillist  -  [EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/tutor


[Tutor] maximum value in a Numeric array

2004-12-10 Thread Ertl, John
All,

I am trying to get the maximum value in a 2-D array.  I can use max but it
returns the 1-D array that the max value is in and I then I need to do max
again on that array to get the single max value.

There has to be a more straightforward way...I have just not found it.

 b = array([[1,2],[3,4]])
 max(b)
array([3, 4])
 c = max(b)
 max(c)
4


I could also flatten the array to 1 D first then do max but the array I am
going to be working with is fairly large.

Thanks 
___
Tutor maillist  -  [EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/tutor