Re: [HELP] SMTPlib not sending my mail
Hi, I am also facing the same problem, smtplib used to send mail a while back but it stopped sending mails. when i run this in interpreter >>> import smtplib >>> s = smtplib.SMTP("localhost") >>> s.sendmail(from, to, "message") {} >>> though it is not giving any error, it is not sending mail. Any help is appreciated. ornto wrote: > Hi, I'm trying to create an application which checks a > dynamic web site and on certain events sends an email to me. > My problem though is with the email task. By now I made this > simple test code: > > #prova invio email > smtpserver = smtplib.SMTP(mailserver) > messaggio= "Messaggio di prova" > print mail > print messaggio > smtpresult=smtpserver.sendmail("Watcher",mail,messaggio) > if smtpresult: > print smtpresult > smtpserver.quit() > > "mailserver" and "mail" values are loaded from a ini file > and they're correct. > The call to smtpserver gives back no errors (smtpresult > remains empty). > The running enviroment gives no error. > So, it looks like that the program works alloright, sending > the mail- BUT, I receive no mail! I've tried to change the > smtp server with another one which still works with my isp, > with no luck. If I try a smtp which doesn't give me access, > I correctly receive an error from the program. > What might be the problem? -- http://mail.python.org/mailman/listinfo/python-list
Re: Encryption Recommendation
Diez B. Roggisch wrote: > [EMAIL PROTECTED] wrote: > >> I'm still using Python 2.4. In my code, I want to encrypt a password >> and at another point decrypt it. What is the standard way of doing >> encryption in python? Is it the Pycrypto module? > > Usually, one doesn't store clear-text passwords. Instead, use a > hash-algorithm like md5 or crypt (the former is in the standard lib, don't > know of the other out of my head) and hash the password, and store that > hash. > > If a user enters the password, use the same algorithm, and compare the > resulting hashes with the stored one. And don't forget to add a salt so that same passwords do not have the same hash. But if the password checking is done with a challenge-response mechanism (e.g. HTTP-Digest Auth or SASL with DIGEST-MD5) it's required that the instance checking the password has the clear-text password available. So reversible encryption for storing passwords might be required. Ciao, Michael. -- http://mail.python.org/mailman/listinfo/python-list
Re: Just for fun: Countdown numbers game solver
On Jan 28, 10:11 pm, Arnaud Delobelle <[EMAIL PROTECTED]> wrote: > My strategy was to walk through each solution "only once" (for a > certain definition of "only once :), thus I was hoping not to need a > hashtable. Yes, that seems like it should be preferable (and indeed necessary for a more general problem with larger numbers of seeds). But I wasn't smart enough to figure out how to do it ;-) > Did you pick these numbers at random? Interestingly, the solution is > unique: Not at random - this particular puzzle came out of the first post in this thread. > Mine is faster on this example, but one example is not representative! If you've found an efficient way to walk through the possible solutions only once, then - I expect that yours will be faster - and well done! I guess I should try to understand your code... > -- > Arnaud -- http://mail.python.org/mailman/listinfo/python-list
Announcing the Python core sprint at PyCon 2008
As has occurred since the inception of PyCon, there will be a sprint on the Python core at this year's conference! If you will be attending PyCon (or will be in Chicago during the dates of the sprints), attending the sprint is a great way to give back to Python. Working on Python itself tends to deepens one knowledge of the language and the standard library. Plus it is just plain fun getting to sit around some tables with fellow Python programmers for several days (the sprint will last four days, but you do not need to attend all four days to participate). The sprint is open to everyone of all skill levels. We can always use help with things from updating documentation to preparing for the next release of Python 3.0. On Sunday evening of the conference there will not only be a sprint intro session, but also a tutorial on how to develop for Python. Details will be covered from where to look in the code base for things to some best practices tips. If you are interested enough to want to sign up to attend, please go to http://wiki.python.org/moin/PyCon2008/SprintSignups/Python and add your name and email address. If you have questions you may email me. Please sign up for the sprint by the end of February as an email on what you need to do beforehand will be sent at that time based on the sprint sign-up page. And if you are not attending PyCon, we will most likely have several people in attendance on IRC, thus allowing even people not at PyCon to participate! -Brett Cannon Python core sprint coach, PyCon 2008 -- http://mail.python.org/mailman/listinfo/python-list
Intra-package References?? (again)
Hi Python list, I have been struggleling with this before, but have never been able to find a good solution. The thing I dont understand is, I follow the guide here: http://docs.python.org/tut/node8.html#SECTION00842 And have the same setup as the packages howto here:http:// docs.python.org/tut/node8.html#SECTION00840 But when I want to use Intra-package References, I need to put the path to the packages explicit like this: #sys.path.append('/path/to/pack/') Before I can make import like this: #from Sound.Effects import echo from within the karaoke.py (just to stay with the tut) If I print the sys.path from the same file, I can see that #/path/to/pack/Sound/Filters/ is in the path. Is there something that I completely is missing or could someone please show me how, by example, how I use Intra-package References. Best regards Marc -- http://mail.python.org/mailman/listinfo/python-list
Re: [HELP] SMTPlib not sending my mail
have you checked your mail server logs ? tir, 29.01.2008 kl. 00.24 -0800, skrev ashok.raavi: > Hi, > > I am also facing the same problem, smtplib used to send mail a while > back but it stopped sending mails. > > when i run this in interpreter > >>> import smtplib > >>> s = smtplib.SMTP("localhost") > >>> s.sendmail(from, to, "message") > {} > >>> > > though it is not giving any error, it is not sending mail. > > Any help is appreciated. > > ornto wrote: > > Hi, I'm trying to create an application which checks a > > dynamic web site and on certain events sends an email to me. > > My problem though is with the email task. By now I made this > > simple test code: > > > > #prova invio email > > smtpserver = smtplib.SMTP(mailserver) > > messaggio= "Messaggio di prova" > > print mail > > print messaggio > > smtpresult=smtpserver.sendmail("Watcher",mail,messaggio) > > if smtpresult: > > print smtpresult > > smtpserver.quit() > > > > "mailserver" and "mail" values are loaded from a ini file > > and they're correct. > > The call to smtpserver gives back no errors (smtpresult > > remains empty). > > The running enviroment gives no error. > > So, it looks like that the program works alloright, sending > > the mail- BUT, I receive no mail! I've tried to change the > > smtp server with another one which still works with my isp, > > with no luck. If I try a smtp which doesn't give me access, > > I correctly receive an error from the program. > > What might be the problem? -- http://mail.python.org/mailman/listinfo/python-list
Re: Python self-evaluating strings
In the spirit of "Simple is better than complex." and totally bypassing the intention of quines (though not necessarily the definition): --- probably_not_a_real_quine.py import sys for line in open(sys.argv[0]): print line, -- ;-) -- Ant. -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Standardization: Wikipedia entry
"Roy Smith" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] | But, surely Python has plenty of "implementation defined" aspects. | Especially in the libraries. I personally do not consider the libraries as part of the language (as opposed to the distribution) and was not referring to them. The semantics of the syntax is pretty tightly defined. The main exception is floating point, which is a nuisance. Which is why one implementation aspect thereof is being standardized in the next version. | Especially those parts of the libraries which | are thin layers on top of operating system services (os and socket come to | mind as two highly variable areas). I am sure that sockets are not part of the C89 standard. Hence the high variability. (I don't know about the newer C standard). I would expect that socket.py makes the variability no worse and presume that it masks at least a bit of it. Ditto for some os services. tjr -- http://mail.python.org/mailman/listinfo/python-list
Re: Encryption Recommendation
Michael Ströder <[EMAIL PROTECTED]> writes: > But if the password checking is done with a challenge-response > mechanism (e.g. HTTP-Digest Auth or SASL with DIGEST-MD5) it's > required that the instance checking the password has the clear-text > password available. So reversible encryption for storing passwords > might be required. If you're trying to authenticate network logins using passwords, and if you have control over both ends of the protocol but for some reason don't want to use a full-blown encryption scheme, it's far better to authenticate with something like SRP (http://srp.stanford.edu) than a more primitive method like HTTP digest auth. SRP doesn't require storing plaintext passwords, and more importantly, it protects the password from offline dictionary searches by someone sniffing the network connection. There is a Python SRP implementation embedded in TLSLite (www.trevp.com/tlslite) but it might be nice to extract or reimplement the SRP code so that it can be used separately from TLS. -- http://mail.python.org/mailman/listinfo/python-list
Re: optional static typing for Python
"Russ P." <[EMAIL PROTECTED]> writes: > I would just like to thank you for reminding me about what losers > hang out perpetually on sites like this one, thinking they are in > some kind of real "community." Being reminded of that will help > prevent me from becoming such a loser myself. No, I didn't say that > all the "regulars" here are losers, but you most certainly are. We're a community largely because we don't tolerate this level of content-free insult. Please find a different forum for this stuff. -- \ "We spend the first twelve months of our children's lives | `\ teaching them to walk and talk and the next twelve years | _o__)telling them to sit down and shut up." -- Phyllis Diller | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list
refcount
Hi, Is is possible to access the refcount for an object? Ideally, I am looking to see if I have a refcount of 1 before calling del Thanks Simon -- Linux Counter: User# 424693 -- http://mail.python.org/mailman/listinfo/python-list
Re: validate string is valid maths
It was a very loosely thought out problem, and my Maths isn't good enough to define 'sane' rules for collapsing the signs/operators to make a sensible expression; so take my constraints with a pinch of salt. I guess a better way of putting it may be - now it has been pointed out that 8+++9 is valid; Remove the smalles number of symbols such that eval() will always return a number, and the result is always the same. and I havent had a chance to play with the couple of solutions posted yet, so those criteria may have already been met. One thing I have discovered is you cant just pass arbitrary valid (expression wise) numeral/symbol strings to eval and have it work as expected; >>> eval('8-038') Traceback (most recent call last): File "", line 1, in File "", line 1 8-038 ^ SyntaxError: invalid token becasue of >>> eval('8-010') 0 Can I escape the meaning of the leading 0's on an integer? and despite my initial claims, there is an overall aim. Still purely just to play with python though - after someone mentioned Genetic Algorithms on the list yesterday I thought I'd have a go at a very simple one. These long symbol/number strings are the 'genomes/chromosomes' (not certain on correct terms), the 'genes' are 1234567890+/-* I'm generating large populations of arbitrary length chromosomes. Using eval(chromosome) to compute a number. The fittest individuals are the ones who's genome evaluates closest to 1000, so in essence I'm evolving solutions to making the number 1000 using 1234567890/*-+ (this was partially inspired by the countdown numbers game discussed here too.). Trivial and possibly pointless, but shiny enough for me to play with :) Matt. Internet [EMAIL PROTECTED] To python-list Sent by: cc python-list-bounces+matthew.warren=uk.bnpparibas.com@ python.org Subject Re: validate string is valid maths 28/01/2008 18:30 impor tOn 28 ene, 14:31, [EMAIL PROTECTED] wrote: > What would be the 'sensible' way of transforming the string, for example > changing '3++8' into 3+8 > or '3++--*-9' into '3+-9' such that eval(string) will always return a > number? '3++8' is already a valid expresion, like '3++---9' > in cases where multiple symbols conflict in meaning (as '3++--*-9' the > earliest valid symbols in the sequence should be preserved > > so for example, > > '3++*/-9' = 3+-9 > '45--/**/+7' = 45-+7 > '55/-**+-6**' = 55/-6 Why not 3++-9, 45--+7? Does it have to be two operators? Why not 3++9 instead? they're the two earliest valid symbols. Can't repeat yourself then? (I'm trying to understand the rules...) This approach uses regular expressions. It doesn't follow all your rules, and tries to get the longest valid expression: import re def repl_middle(match): g = match.group() if g[0] in '*/': g0 = g[0] g = g[1:] else: g0 = '' return g0 + g.replace('*','').replace('/','') def repl_start(match): g = match.group() return g.replace('*','').replace('/','') def dropinvalid(s): s = re.sub(r'(?<=\d)[+*/-]+(?=\d)', repl_middle, s) s = re.sub(r'^[+*/-]+', repl_start, s) s = re.sub(r'[+*/-]+$', '', s) return s cases = [ ('3++8', '3+8'), ('3++--*-9', '3+-9'), ('3++*/-9', '3+-9'), ('45--/**/+70', '45-+70'), ('55/-**+-6**', '55/-
Re: Error in parsing XML for following test data
abhishek wrote: > I am having problem parsing following data set from XML. Please > provide hints on how to rectify this problem. > > I am using python2.4 version > > this is te test data that i am using -- > > """ > 1!!!11 > 2@@@22 > 3###33 > 4$$$44 [...] How is this related to XML? Stefan -- http://mail.python.org/mailman/listinfo/python-list
Error in parsing XML for following test data
Hello group, I am having problem parsing following data set from XML. Please provide hints on how to rectify this problem. I am using python2.4 version this is te test data that i am using -- """ 1!!!11 2@@@22 3###33 4$$$44 5%%%55 6^^^66 7&&&77 8***88 9(((99 10)))00 11- 12= 13+ 14| 15\ 16< 17> 18/ 19? 20; 21: 22' 23" 24[ 25] 26{ 27} 28* 29+ 30- 31` 32~ 33. Special Characters #!/bin/bash #start TG app cd $1 exec ./start-infopsyM.py """ This is really a nasty data set. -- http://mail.python.org/mailman/listinfo/python-list
Re: py3k feature proposal: field auto-assignment in constructors
Hi, I appreciate everyone's feedback on the topic. Having reflected on what has been said here, I now realize that creating more complexity is not the way to go. I would rather favor something that relies on existing language features, something like the default keyword argument assignment in functions. This is probably stupid but as a noob I would have liked something like: def __init__( self. = host, self. = port, self. = timeout, message = "Connected."): pass This is probably even more preposterous than @host, @port, but to me it would make more sense. I suppose the subject has exhausted itself and I am not going to follow it up. If anyone is interested in taking it on, then please do. Best, coldpizza On Jan 29, 6:01 am, "Terry Reedy" <[EMAIL PROTECTED]> wrote: > "André" <[EMAIL PROTECTED]> wrote in message > > news:[EMAIL PROTECTED] > |Here's a version that > |1. does not require new syntax > |2. does not *necessarily* override the "_" prefix convention > > 'self_' is way too bulky and intrusive. Putting '_' at the end of the word > is nearly as easy to detect and conflicts with no convention I know of. > > tjr -- http://mail.python.org/mailman/listinfo/python-list
Re: refcount
Simon Pickles <[EMAIL PROTECTED]> wrote: > Is is possible to access the refcount for an object? >>> import sys >>> sys.getrefcount(42) 6 > Ideally, I am looking to see if I have a refcount of 1 before calling del That's a pointless exercise: you probably don't understand what del does. All that del does is remove one reference from an object, either by removing a name from the namespace, or by removing a reference from something like a list. 'del x' does NOT destroy the object referenced by x, unless it happens that there are no other references to the object. Also note that the only time you will see a reference count of 1 is on an object which you cannot otherwise access (the only reference is being used for the call to getrefcount()): >>> x = 9 >>> sys.getrefcount(x) 2 -- http://mail.python.org/mailman/listinfo/python-list
Re: REALLY simple xml reader
Ricardo Aráoz wrote: > What about : > > doc = """ > >99 > > >42 > > """ That's not an XML document, so what about it? Stefan -- http://mail.python.org/mailman/listinfo/python-list
Pydev 1.3.12 Released
Hi All, Pydev and Pydev Extensions 1.3.12 have been released Details on Pydev Extensions: http://www.fabioz.com/pydev Details on Pydev: http://pydev.sf.net Details on its development: http://pydev.blogspot.com Release Highlights in Pydev Extensions: - * Mark occurrences: only requested on mouse-clicks and cursor changes. * Code-Analysis: No longer running in UI-Thread (bug which slowed things down in 1.3.10 and 1.3.11). * Code-Analysis: Cache optimizations. * Code-Analysis: Fixed 'statement without effect' when raising exception with arguments without using the exception constructor. * Code-Analysis: Fixed 'statement without effect' on tuple creation. * Code-Analysis: __path__ found for packages (__init__.py files). * Context-insensitive info: Correctly updated when code-analysis is off (or if file is not analyzed). Release Highlights in Pydev: -- * Code Coverage: coverage.py updated to version 2.78 (http://nedbatchelder.com/code/modules/coverage.html). * Optimization: Caches (with no memory overhead) added for a number of situations, which can speed completion requests a lot (up to 40x on tests). What is PyDev? --- PyDev is a plugin that enables users to use Eclipse for Python and Jython development -- making Eclipse a first class Python IDE -- It comes with many goodies such as code completion, syntax highlighting, syntax analysis, refactor, debug and many others. Cheers, -- Fabio Zadrozny -- Software Developer ESSS - Engineering Simulation and Scientific Software http://www.esss.com.br Pydev Extensions http://www.fabioz.com/pydev Pydev - Python Development Enviroment for Eclipse http://pydev.sf.net http://pydev.blogspot.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Executing other python code
Tim Rau wrote: > I'm working on a game, and I'd like players to be able to define thier > ships with scripts. Naturally, I don't want to give them the entire > program as thier romping ground. I would like to invoke a seperate > interpreter for these files, and give it a limited subset of the > functions in my game. What is the best way to achieve this effect? You might consider spawning a process and using Pyro to communicate. I've done that before and it worked pretty well. Diez -- http://mail.python.org/mailman/listinfo/python-list
Re: extending Python - passing nested lists
Thanks. Point is that all such approaches would require lots(!) of calls to the Python API - a way by which I won't gain the desired speed. I've tried pyrex and the corresponding C-file is so convoluted with dummy variables, incrementing & decrementing references, and other stuff, that I want to try to write a C-function myself. My goal is not to avoid PyObjects* and the corresponding reference handling - apart from the head and end of the function. (I could use ctypes instead, but that again would obfuscate the API of my package a bit.) Christian -- http://mail.python.org/mailman/listinfo/python-list
Changing module variables.
I have made a sudoku solver, and discovered I simply can turn it into a hexadoku solver, like so: ___ # sudoku solver using sets import sudoku sudoku.symbols="0123456789ABCDEF" sudoku.size=16 sudoku.sqs=4 # square root of size . ___ Example of usage: ___ y=sudoku.sudoku( "" " B " "95E " "8 1C" " 9 7" " 1 C" " 8 B" "A 46" " 4 " "0 8" " 71" "3 59" " C 8" "7F " "A 24" "BD " " 7 " "4 1" " 5" "" "42 " " 0" " BAC" " 1" "8 6A" "F 5" "2 9 " " D " "" "C28 " " 1 7" " 9 " " A3 " "" " E " " 5 B" "08 E" "B C " " 96 " "1A3 " "D 5 " "" "0 A" " E" "6 1" " A F" "5DC2" " 8" " 58 " "3C " " 6" "41AD" "1E 6" "542 " " 73D" " 08F" "B3 " " 8 " "14 " " 67" "240D" "16F " " 8 " " 3" ) y.show() y.solve() y.show() ___ I like this. It certainly is reusability. Still I wonder what you guys think of this? (I know some OO-boys who would spank me for it.) Groetjes Albert -- -- Albert van der Horst, UTRECHT,THE NETHERLANDS Economic growth -- like all pyramid schemes -- ultimately falters. [EMAIL PROTECTED]&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst -- http://mail.python.org/mailman/listinfo/python-list
Re: refcount
On Jan 29, 5:46 am, Christian Heimes <[EMAIL PROTECTED]> wrote: > Simon Pickles wrote: > > Hi, > > > Is is possible to access the refcount for an object? > > > Ideally, I am looking to see if I have a refcount of 1 before calling del > > Help on built-in function getrefcount in module sys: > > getrefcount(...) > getrefcount(object) -> integer > > Return the reference count of object. The count returned is generally > one higher than you might expect, because it includes the (temporary) > reference as an argument to getrefcount(). Are there any cases when it wouldn't? > > Christian -- http://mail.python.org/mailman/listinfo/python-list
MySQLdb
hello, i have problem manipulating mySQL data. When i add values in a Table, i can recieve them instantly but when i check the table from another script, the new values dont exist. i'm not experienced in sql dbses so the problem might be something outside python. example (i do this to add values, and then i check and values have been added): import MySQLdb conn = MySQLdb.connect (host = 'localhost', user = 'root', passwd = 'MYPASHERE', db = 'test') cursor = conn.cursor () cursor.execute (""" INSERT INTO testsignin (user, pass, secretcode) VALUES ('dkiauser', 'dkiapass', 'dkiacode'), ('gmtuser', 'gmtpass', 'gmtcode') """) print "Number of rows inserted: %d" % cursor.rowcount cursor.execute ('SELECT * FROM testsignin WHERE user="gmtuser"') row = cursor.fetchone() print row but then when i try to get them from another script with this: import MySQLdb conn = MySQLdb.connect (host = 'localhost', user = 'root', passwd = 'MYPASHERE', db = 'test') cursor = conn.cursor () cursor.execute ('SELECT * FROM testsignin WHERE user="gmtuser"') row = cursor.fetchone() print row i get a None -- http://mail.python.org/mailman/listinfo/python-list
Mx.ODBC insert error
Hello, I've never gotten this traceback error before using mx.ODBC. Any ideas about resolving this issue? The statement and the error it generates are listed below. curse.execute("Insert into FHWA_StandSamp_2008(LRS_ID_NEW) values('040210') where LRS_ID = '0403700010'") Traceback (most recent call last): File "", line 1, in ? curse.execute("Insert into FHWA_StandSamp_2008(LRS_ID_NEW) values ('040210') where LRS_ID = '0403700010'") ProgrammingError: ('37000', -3516, '[Microsoft][ODBC Microsoft Access Driver] Missing semicolon (;) at end of SQL statement.', 4612) Thanks Greg -- View this message in context: http://www.nabble.com/Mx.ODBC-insert-error-tp15163149p15163149.html Sent from the Python - python-list mailing list archive at Nabble.com. -- http://mail.python.org/mailman/listinfo/python-list
Re: extending Python - passing nested lists
> You didn't mention speed in your original post. Sorry, perhaps I considered this self-evident - which it is, of course, not. > What about using > array.array? Unless I am mistaken, these are just a thin wrapper > around normal C arrays. The algorithm I want to implement requires several million floating point operations. Neither the array-modules nor numpy's thin layer seem thin enough for me. ;-) > Anyway you could always convert your list > into a c array, do lots and lots of fast calculations, then convert it > back again to a list. I guess I am too blind to see, but I couldn't discover a method description like "double* PyList_toDouble". So, yes, my question is a C-API-newbie question: What is the way to say "myCarray = SomePyMethod(InputPyList)"? Or better, what should be here instead static PyObject *_foo(PyObject *self, PyObject *args) { double *v; if (!PyArg_Parse(args, "(d)", &v)) return NULL; to get a list as an array of doubles into 'v' (and back to Python)? I did read the API-description, but still am lost at this point. I presume, once I get to know the answer I'll bang my head on the table ... ;-) Cheers Christian -- http://mail.python.org/mailman/listinfo/python-list
Re: optional static typing for Python
On Jan 28, 2008 10:31 AM, John Nagle <[EMAIL PROTECTED]> wrote: > Arnaud Delobelle wrote: > > On Jan 27, 11:00 pm, "Russ P." <[EMAIL PROTECTED]> wrote: > >> On Jan 27, 2:49 pm, "André" <[EMAIL PROTECTED]> wrote: > >>> Perhaps this:http://www.python.org/dev/peps/pep-3107/mightbe > >>> relevant? > >>> André > >> Thanks. If I read this correctly, this PEP is on track for Python 3.0. > >> Wonderful! > > > > Note that annotations do not provide explicit typing, AFAIK: > > > > def f(x:int) -> int: return x*2 > > > > is stricly equivalent to > > > > def f(x): return x*2 > > f.__annotations__ = {'x':int, 'return':int} > > > > You still need to write a type-checking wrapper. > > Unenforced static typing is somewhat pointless. If that > goes in, it should be enforced by implementations. Otherwise, > maintenance programmers can't trust the type information they see. > > Enforced, it makes it possible to start getting serious about > optimizing compilers for Python, like Shed Skin. Shed Skin > can usually figure out typing within a module, but across module > boundaries, some help is needed if you want to push optimization from > run time to compile time. > Given the difficulty of statically analyzing Python, and the limitations you need to add for either static typing or type inference to be practical, I think that the real future for faster Python code is JIT, not static optimizations. Languages which enforce static typing are, of course, not Python - that's why they have different names, like Pyrex or ShedSkin or RPython. I think static Python is pretty much a waste of time, really - if I'm going to write statically typed code using a traditional C/C++/Java style type system, I'll use a language designed for it, like D. If I want *real* strict typing - the kind where you can actually make a useful inference from the fact that the program is type-correct - I'll use Haskell or Ocaml. There is a lot of choice out there and there's no reason to try to make Python into whatever your favorite paradigm is. -- http://mail.python.org/mailman/listinfo/python-list
runscript module, where are the docs...
Hi! I am going through some code and found import runscript BUT I cant find and information about this module. I searched Google did a grep in the /usr/lib/python directory. What is the purpose of this module and where can I find information about it. Or the source. Best regards, Toni -- http://mail.python.org/mailman/listinfo/python-list
Reflection and aspect programming in Python
Hello, I'm a student at UCL Belgium and I have to write a paper about reflection and introspection in Python. It is somewhat difficult to find advanced information about reflection in Python, not only introspection but also the other sides of reflection. I'm using the book: "Programming Python, Thrid Edition" but the chapter only describes briefly some useful functions. The IBM site talks somewhat about the concept of "metaclass" but is there more about reflection than only metaclass programming? I'm also looking for a class diagram of the hierachy of the python classes "metaclass", "class", "object" but didn't find it nor did I find lots of information about that subject. I looked around on the site www.python.org and some others about what could be a killer application using reflection in Python an maybe more information about it. Like how does it use reflection to do the trick. Is there an advanced and completed Aspect Python plugin or are they all experimental? Are there some papers about that part of reflection or more detailed sites that talks about it. It's a wide subject with open questions. I lack a lot of information about it and finding advanced topics on the subject isn't that easy. That's why I ask those questions here, to have some enlightments and maybe some leads to explore. Thanks a lot. -- http://mail.python.org/mailman/listinfo/python-list
Re: Removal of element from list while traversing causes the next element to be skipped
On Jan 29, 8:34 am, William McBrine <[EMAIL PROTECTED]> wrote: > Look at this -- from Python 2.5.1: > > >>> a = [1, 2, 3, 4, 5] > >>> for x in a: > > ... if x == 3: > ... a.remove(x) > ... print x > ... > 1 > 2 > 3 > 5 > > >>> a > [1, 2, 4, 5] > > Sure, the resulting list is correct. But 4 is never printed during the > loop! > (snipped) If you're going to delete elements from a list while iterating over it, then do it in reverse order: >>> a = [ 98, 99, 100 ] >>> last_idx = len(a) - 1 >>> for i, x in enumerate(a[::-1]): ... if x == 99: del(a[last_idx - i]) ... print x ... 100 99 98 >>> a [98, 100] -- Hope this helps, Steven -- http://mail.python.org/mailman/listinfo/python-list
RE: Python noob SOS (any [former?] Perlheads out there?)
> -Original Message- > From: [EMAIL PROTECTED] [mailto:python- > [EMAIL PROTECTED] On Behalf Of kj > Sent: Tuesday, January 29, 2008 11:39 AM > To: python-list@python.org > Subject: Python noob SOS (any [former?] Perlheads out there?) > > > > For many months now I've been trying to learn Python, but I guess > I'm too old a dog trying to learn new tricks... For better or > worse, I'm so used to Perl when it comes to scripting, that I'm > just having a very hard time getting a hang of "The Python Way." > > It's not the Python syntax that I'm having problems with, but rather > with larger scale issues such as the structuring of packages, > techniques for code reuse, test suites, the structure of > distributions,... Python and Perl seem to come from different > galaxies altogether... It sound like less of a "How to do Things the Python Way" problem, a more of a "How to do Object Oriented Programming" problem. Coming from a C++/Perl background, I found the O'Reilly 'Learning Python' book to be useful. It has a section on OOP, which covers basic OO theory that you may find useful. I can't think of a decent OO book to recommend though. > Be that as it may, the activation barrier to using Python for my > scripting remains too high. > > I'd written a Perl module to facilitate the writing of scripts. > It contained all my boilerplate code for parsing and validating > command-line options, generating of accessor functions for these > options, printing of the help message and of the full documentation, > testing, etc. Bleh. Perl and Python have really good libraries. Why waste time rolling your own when you can use Python's getopt or optparse, or Perl's Getopt and Getopt::Long? -- http://mail.python.org/mailman/listinfo/python-list
Re: Removal of element from list while traversing causes the next element to be skipped
On Tue, 29 Jan 2008 16:34:17 GMT, William McBrine <[EMAIL PROTECTED]> wrote: > Look at this -- from Python 2.5.1: > a = [1, 2, 3, 4, 5] for x in a: > ... if x == 3: > ... a.remove(x) > ... print x > ... > 1 > 2 > 3 > 5 a > [1, 2, 4, 5] You have to iterate over a copy of 'a', so for x in a[:]. Modifying a list while iterating over is a recipe for problems. (As it is in many other programming languages.) Berteun -- http://mail.python.org/mailman/listinfo/python-list
Re: Module/package hierarchy and its separation from file structure
On Jan 29, 7:48 am, Peter Schuller <[EMAIL PROTECTED]> wrote: > > You can also put, in animal/__init__.py: > > from monkey import Monkey > > and now you can refer to it as org.lib.animal.Monkey, but keep the > > implementation of Monkey class and all related stuff into > > .../animal/monkey.py > > The problem is that we are now back to the identity problem. The class > won't actually *BE* org.lib.animal.Monkey. The usage is the same; it works in all cases once you redefine __module__. Who cares what it really is? > Perhaps manipulating > __module__ is enough; perhaps not (for example, what about > sys.modules?). It's enough. It satisfies the criteria you listed. sys.modules has nothing to do with it. Monkey is a class, not a module. If you set __module__, the only remaining discernable difference is that the global variables accessed from the Monkey class will be in org.lib.animal.monkey instead of org.lib.animal. This has no ill effects when unpickling or instantiating the class from org.lib.animal. > Looks like I'll just live with putting more than I > would like in the same file. Whatever. ISTM you came here looking for a particular means and not a particular end. Python already has the power to meet your stated needs, but you won't use that solution because it's "hacky". Apparently all you really wanted was the loosened file structure in the first place. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Standardization: Wikipedia entry
Paddy wrote: > I would value the opinion of fellow Pythoneers who have also > contributed to Wikipedia, on the issue of "Is Python Standardized". > Specifically in the context of this table: > > http://en.wikipedia.org/wiki/Comparison_of_programming_languages#General_comparison > (Comparison of programming languages) > And this entry in the talk page > > http://en.wikipedia.org/wiki/Talk:Comparison_of_programming_languages#Standardized_Python.3F > (Talk:Comparison of programming languages#Standardized Python?) > > - Thanks. That's correct. Python is not standardized by any standards body. And no two implementations are even close to compiling the same language. A consequence of the lack of standardization is that it discourages implementations. There are about four implementations of something like Python (other than CPython), and none of them are close to being usable. Letting the author of one implementation control the language discourages other implementations. Submitting Python 2.5 to ISO/ANSI might be a good idea. John Nagle -- http://mail.python.org/mailman/listinfo/python-list
Re: MySQLdb
[EMAIL PROTECTED] wrote: > hello, > i have problem manipulating mySQL data. When i add values in a Table, > i can recieve them instantly but when i check the table from another > script, the new values dont exist. > > i'm not experienced in sql dbses so the problem might be something > outside python. > > example (i do this to add values, and then i check and values have > been added): > > > import MySQLdb > conn = MySQLdb.connect (host = 'localhost', >user = 'root', >passwd = 'MYPASHERE', >db = 'test') > cursor = conn.cursor () > > cursor.execute (""" > INSERT INTO testsignin (user, pass, secretcode) > VALUES > ('dkiauser', 'dkiapass', 'dkiacode'), > ('gmtuser', 'gmtpass', 'gmtcode') > """) > > print "Number of rows inserted: %d" % cursor.rowcount > > cursor.execute ('SELECT * FROM testsignin WHERE user="gmtuser"') > row = cursor.fetchone() > print row > > > but then when i try to get them from another script with this: > > > import MySQLdb > conn = MySQLdb.connect (host = 'localhost', >user = 'root', >passwd = 'MYPASHERE', >db = 'test') > cursor = conn.cursor () > > cursor.execute ('SELECT * FROM testsignin WHERE user="gmtuser"') > row = cursor.fetchone() > print row > > > i get a None You need to commit your changes, using conn.commit() after doing them. Diez -- http://mail.python.org/mailman/listinfo/python-list
Re: refcount
Benjamin wrote: > On Jan 29, 5:46 am, Christian Heimes <[EMAIL PROTECTED]> wrote: >> Simon Pickles wrote: >>> Hi, >>> Is is possible to access the refcount for an object? >>> Ideally, I am looking to see if I have a refcount of 1 before calling del >> Help on built-in function getrefcount in module sys: >> >> getrefcount(...) >> getrefcount(object) -> integer >> >> Return the reference count of object. The count returned is generally >> one higher than you might expect, because it includes the (temporary) >> reference as an argument to getrefcount(). > Are there any cases when it wouldn't? Well, as long as the object is named "object" in sys.getrefcount's namespace, there's at least that one reference to it... Mel. -- http://mail.python.org/mailman/listinfo/python-list
Re: Terse Syntax through External Methods
Jens a écrit : > On Jan 25, 3:19 pm, "Diez B. Roggisch" <[EMAIL PROTECTED]> wrote: >> Jens schrieb: >> >> >> >>> Hello Everyone >>> I'm newbie to Zope and i have a few questions regarding external >>> methods. (snip) >>> This doesn't work because because the method doesn't have access to >>> the environment. >> If it has to be an External method, you can't access such a context >> AFAIK. IIRC, that's what the 'self' argument is for. Now I don't know if it will solve the OP's problem with dtml (which I avoid like pest). >> But then you can create a python script that _has_ this context, >> and passese it to the external method. Not the nicest solution, but >> should work. >> > > Like I said i'm a newbie. I though the deal with Zope was that i > couldn't really do inline scripting (for security reasons) > like in php but had to use these external methods. how does one go > about creating a "normal" python script exactly and > how do I invoke it's functionality? Zope (well... Zope2.x) has an object type named "Script (Python)". What you can do with them is restricted (for security reasons) but is obviously enough for what you want here. And really, you should *not* use dtml unless you have no other choice at all. Anyway: Zope is a world in itself, and most pythoneers don't use it. The Zope experts are mostly on the Zope's mailing list, so that's where you should post such questions. HTH -- http://mail.python.org/mailman/listinfo/python-list
Trouble loading dll via ctypes
I'm trying to load a dll via ctypes by doing this: cdll.LoadLibrary('/path/to/mylib.so') But i'm getting this: /path/to/mylib.so: cannot open shared object file: No such file or directory What am i doing wrong? The dll in question is in a directory mounted via NSF, but no part of the path/filename is a symlink. When i try code from the docs: cdll.LoadLibrary('libc.so.6') ,then all is fine. I've also tried to set my LD_LIBRARY_PATH before starting Python, checking it via os.environ, then doing the cdll.LoadLibrary(...), but that fails with the same complaint. What am i doing wrong? tia, Eric -- http://mail.python.org/mailman/listinfo/python-list
Re: Problems installing Python on server
On Tuesday 29 January 2008 01:20, Devraj wrote: > Also be careful and setup all the paths > that is required for compiling various > Python modules etc. > > On Jan 29, 8:28 am, Yansky <[EMAIL PROTECTED]> wrote: > > I asked my hosting company if they would > > upgrade Python on my server to the > > latest version. They responded with: > > > > "Sorry no. We tend to stick with what > > comes packaged with the unix > > distribution to ease maintenance issues. > > > > There is nothing stopping you from > > running your own version of python from > > within your own account. Download the > > source and compile it and install it > > into your own space. Adjust the fist > > line of your python scripts to reflect > > the location of YOUR python binary: > > > > #! /home/youraccount/yourlibs/python > > > > and you should be all set." > > Go to the ReadME file after you unpack python. Open and look for "Installing". Read the section, it explains how to install on the entire system and how to install locally. "Make altinstall" is what you are looking for. jim-on-linux http:\\www.inqvista.com > > > > The build instructions for Python are: > > To start building right away (on UNIX): > > type "./configure" in the current > > directory and when it finishes, type > > "make". This creates an executable > > "./python"; to install in usr/local, > > first do "su root" and then "make > > install". > > > > The problem is, I don't have root access > > to the server so I can't do the "make > > install". I have ubuntu on my computer, > > but from what I understand I can't > > compile it on that and upload it because > > the server runs Red Had and the > > ./configure would have made it > > incompatible right? > > > > So how can I build Python without root > > access? -- http://mail.python.org/mailman/listinfo/python-list
Re: Executing other python code
Over-simplified yes, but it will work! Python is beautiful :-) -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Standardization: Wikipedia entry
In article <[EMAIL PROTECTED]>, "Terry Reedy" <[EMAIL PROTECTED]> wrote: > "Roy Smith" <[EMAIL PROTECTED]> wrote in message > news:[EMAIL PROTECTED] > | But, surely Python has plenty of "implementation defined" aspects. > | Especially in the libraries. > > I personally do not consider the libraries as part of the language (as > opposed to the distribution) and was not referring to them. I realize that there is a difference between the core language and the libraries, but Python depends on the libraries more than a lot of other languages do. They are the "batteries included" part. Indeed, there is a lot of stuff in the "Python Library Reference" which in most languages would be considered part of the core. The description of boolean operations (and, or, not), for example. String, sequence, and dictionary methods. Where do you draw the line and say, "The core language ends here; the rest is just libraries"? -- http://mail.python.org/mailman/listinfo/python-list
Re: Terse Syntax through External Methods
On Jan 25, 3:19 pm, "Diez B. Roggisch" <[EMAIL PROTECTED]> wrote: > Jens schrieb: > > > > > Hello Everyone > > > I'm newbie to Zope and i have a few questions regarding external > > methods. What i wan't to do > > is provide a terse syntax for converting urls to special tracking > > urls: > > > http://myurl/')"> > > > turns the provided url into something like > > >http://host/tracking?url=http%3A%2F%2Fmyurl%2F > > > in the output. > > > i've been trying to use a external procedure like this. > > > ## Script (Python) "track_link" > > ##bind container=container > > ##bind context=context > > ##bind namespace=_ > > ##bind script=script > > ##bind subpath=traverse_subpath > > ##parameters=self,url > > ##title=track link > > ## > > return "%s%s" % (self.tracking_prefix, url_quote(url)) > > > This doesn't work because because the method doesn't have access to > > the environment. Obviously I don't wan't to pass everything explicitly > > into the function as this would defeat the purpose of the exercise, > > namely to provide a terse syntax. > > > I have a background in other languages so I might be missing something > > conceptually with regard Zope and DTML.. Is there a better was of > > doing this, perhaps without using external methods? Currently im doing > > the following which isn't very elegant: > > > in content document > > http://www.mylink.com/";> > tracking>">link > > ... > > tracking: > > > > > Appreciate any input you might have on this- > > Is it really needed to use an external method for this, or isn't a > "normal" python script enough already? > > If it has to be an External method, you can't access such a context > AFAIK. But then you can create a python script that _has_ this context, > and passese it to the external method. Not the nicest solution, but > should work. > > Diez Like I said i'm a newbie. I though the deal with Zope was that i couldn't really do inline scripting (for security reasons) like in php but had to use these external methods. how does one go about creating a "normal" python script exactly and how do I invoke it's functionality? -- http://mail.python.org/mailman/listinfo/python-list
Re: [HELP] SMTPlib not sending my mail
i checked it after your mail.. it is giving the following warning: no entropy for TLS key generation: disabling TLS support which was addressed here " http://www.howtoforge.com/forums/showthread.php?t=781"; after adding the line "tlsmgr unix - - n 1000? 1 tlsmgr" to /etc/postfix/master.cf it started working. Thank you. On 1/29/08, Lars Johansen <[EMAIL PROTECTED]> wrote: > > have you checked your mail server logs ? > > tir, 29.01.2008 kl. 00.24 -0800, skrev ashok.raavi: > > Hi, > > > > I am also facing the same problem, smtplib used to send mail a while > > back but it stopped sending mails. > > > > when i run this in interpreter > > >>> import smtplib > > >>> s = smtplib.SMTP("localhost") > > >>> s.sendmail(from, to, "message") > > {} > > >>> > > > > though it is not giving any error, it is not sending mail. > > > > Any help is appreciated. > > > > ornto wrote: > > > Hi, I'm trying to create an application which checks a > > > dynamic web site and on certain events sends an email to me. > > > My problem though is with the email task. By now I made this > > > simple test code: > > > > > > #prova invio email > > > smtpserver = smtplib.SMTP(mailserver) > > > messaggio= "Messaggio di prova" > > > print mail > > > print messaggio > > > smtpresult=smtpserver.sendmail("Watcher",mail,messaggio) > > > if smtpresult: > > > print smtpresult > > > smtpserver.quit() > > > > > > "mailserver" and "mail" values are loaded from a ini file > > > and they're correct. > > > The call to smtpserver gives back no errors (smtpresult > > > remains empty). > > > The running enviroment gives no error. > > > So, it looks like that the program works alloright, sending > > > the mail- BUT, I receive no mail! I've tried to change the > > > smtp server with another one which still works with my isp, > > > with no luck. If I try a smtp which doesn't give me access, > > > I correctly receive an error from the program. > > > What might be the problem? > > -- ashok raavi -- http://mail.python.org/mailman/listinfo/python-list
Extending the import mechanism - what is recommended?
I need to extend the import mechanism to support another file type. I've already written the necessary C library to read the file and return a python code object. I found one example which just sub-classed imputil.ImportManager like this: from myLib import pye_code as pye_code class MyImporter(imputil.ImportManager): def __init__(self): imputil.ImportManager.__init__(self) self.add_suffix('.pye', self.import_pye) self.install() def import_pye(self, filepath, fileinfo, filename): data = pye_code(filepath) return 0, data, {} This actually works fine if the module is just a few lines of code, but it won't chain to the "built-in" importers; if the module that I'm importing does something as simple as 'import re', it fails. It may be that my confusion here is because (even after reading the code), I'm not clear on the purposes of imputil.ImportManager vs. imputil.Importer :-( What is the "preferred" way to do this type of extension? One other note; at this time, I just need to import individual module files with this extension; I don't need to import packages. Thanks! Dan -- http://mail.python.org/mailman/listinfo/python-list
Re: extending Python - passing nested lists
On Jan 29, 12:48 pm, Christian Meesters <[EMAIL PROTECTED]> wrote: > Think, that I'm still at the wrong track. Point is that I cannot find any > examples and don't know where to start here. > Perhaps my problem boils down to two questions: > I'd like to pass lists (in some cases nested ones) from Python to C and > convert those Python-lists to C-arrays (e. g. of doubles). My second wish > is to return a C-array of longs to a Python list. > > My approach so far: > > static PyObject *_foo(PyObject *self, PyObject *args) { > double *v; > if (!PyArg_Parse(args, "(d)", &v)) > return NULL; > // then I can't access v like v[1] ... I'm not a C API guru and I may not understand properly what info you are looking for but from http://docs.python.org/api/sequence.html: PyObject* PySequence_GetItem( PyObject *o, Py_ssize_t i) Return value: New reference. Return the ith element of o, or NULL on failure. This is the equivalent of the Python expression "o[i]". > > // then return *v > return with something like PyBuildValue (but didn't get so far) This allows you to create a list (from http://docs.python.org/api/listObjects.html): PyObject* PyList_New( Py_ssize_t len) Return value: New reference. Return a new list of length len on success, or NULL on failure. Note: If length is greater than zero, the returned list object's items are set to NULL. Thus you cannot use abstract API functions such as PySequence_SetItem() or expose the object to Python code before setting all items to a real object with PyList_SetItem(). ...and this allows you to populate it (from http://docs.python.org/api/listObjects.html): int PyList_Append( PyObject *list, PyObject *item) Append the object item at the end of list list. Return 0 if successful; return -1 and set an exception if unsuccessful. Analogous to list.append(item). > > } > > Can somebody give me a hint here, please? Passing simple arguments to and > fro (e. g. single integer values) is no problem, but lists of unknown size? HTH -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list
Re: Zipfile content reading via an iterator?
>>> I'm dealing with several large items that have been zipped up to >>> get quite impressive compression. However, uncompressed, they're >>> large enough to thrash my memory to swap and in general do bad >>> performance-related things. I'm trying to figure out how to >>> produce a file-like iterator out of the contents of such an item. >> >> The Time Machine in action again - that's already done, but in SVN. You >> want the new ZipFile.open(filename) method, which returns a file-like >> object. > > Thanks! I'll give the 2.6 version a try. Just to follow up on this, I dropped the the 2.6 version of zipfile.py in my project folder (where the machine is currently running Python2.4), used the ZipFile.open() and it worked fine. I was able to successfully extract a 960 meg MDB file from the zip-file. The one thing that did throw me off is that it rejected specifying that the file be opened as binary: z = ZipFile('foo.zip') f = z.open('path/to/file.mdb', 'rb') #failed f = z.open('path/to/file.mdb') # worked but just opening with no type specification did allow me to extract the file successfully. I don't know if I just struck it lucky with newline/EOF translations, or if it really does do binary file handling and you don't get a choice of non-binary file handling. Anyways, thanks to Gabriel (and all the authors of Python zipfile.py library) for the solution. -tkc -- http://mail.python.org/mailman/listinfo/python-list
Re: Module/package hierarchy and its separation from file structure
> You can reassign the class's module: > > from org.lib.animal.monkey import Monkey > Monkey.__module__ = 'org.lib.animal' > > > (Which, I must admit, is not a bad idea in some cases.) Is there a sense whether this is truly a supported way of doing this, in terms of not running into various unintended side-effects? One example would be sys.modules that I mentioned in the previous post. Another, possibly related, might be interaction with the import keyword and its implementation. I will probably have to read up more on the semantics of __import__ and related machinery. -- / Peter Schuller PGP userID: 0xE9758B7D or 'Peter Schuller <[EMAIL PROTECTED]>' Key retrieval: Send an E-Mail to [EMAIL PROTECTED] E-Mail: [EMAIL PROTECTED] Web: http://www.scode.org -- http://mail.python.org/mailman/listinfo/python-list
Re: extending Python - passing nested lists
Think, that I'm still at the wrong track. Point is that I cannot find any examples and don't know where to start here. Perhaps my problem boils down to two questions: I'd like to pass lists (in some cases nested ones) from Python to C and convert those Python-lists to C-arrays (e. g. of doubles). My second wish is to return a C-array of longs to a Python list. My approach so far: static PyObject *_foo(PyObject *self, PyObject *args) { double *v; if (!PyArg_Parse(args, "(d)", &v)) return NULL; // then I can't access v like v[1] ... // then return *v return with something like PyBuildValue (but didn't get so far) } Can somebody give me a hint here, please? Passing simple arguments to and fro (e. g. single integer values) is no problem, but lists of unknown size? TIA Christian -- http://mail.python.org/mailman/listinfo/python-list
Re: REALLY simple xml reader
Diez B. Roggisch wrote: > Simon Pickles schrieb: >> Hi >> >> Can anyone suggest a really simple XML reader for python? I just want to >> be able to do something like this: >> >> xmlDoc = xml.open("file.xml") >> element = xmlDoc.GetElement("foo/bar") >> >> ... to read the value of: >> >> >> 42 >> > > Since python2.5, the ElementTree module is available in the standard > lib. Before 2.5, you can of course install it. > > Your code then would look like this: > > import xml.etree.ElementTree as et > > > doc = """ > >42 > > """ > > root = et.fromstring(doc) > > for bar in root.findall("bar"): > print bar.text > > > > Diez > What about : doc = """ 99 42 """ -- http://mail.python.org/mailman/listinfo/python-list
Re: Just for fun: Countdown numbers game solver
On Jan 29, 9:02 am, [EMAIL PROTECTED] wrote: Oops I sent too quickly... > If you've found an efficient way to walk through the possible > solutions only once, then > - I expect that yours will be faster > - and well done! > > I guess I should try to understand your code... My code is quite naive and I suspect that combining your caching and the tree pruning discussed in this thread would yield faster results. Not sure if I'll have time to try this though... -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list
Re: Trying to understand Python web-development
On Jan 29, 2008 12:11 PM, walterbyrd <[EMAIL PROTECTED]> wrote: > I am not really sure about what wsgi is supposed to accomplish. This will explain WSGI: http://www.python.org/dev/peps/pep-0333/ -- http://mail.python.org/mailman/listinfo/python-list
Re: Removal of element from list while traversing causes the next element to be skipped
> Look at this -- from Python 2.5.1: > > >>> a = [1, 2, 3, 4, 5] > >>> for x in a: > ... if x == 3: > ... a.remove(x) > ... print x Well ... you could use: >>> for i in range(len(a)-1, -1, -1): ...print a[i] ...if a[i] == 3: del a[i] ... 5 4 3 2 1 >>> print a [1, 2, 4, 5] Bye. -- http://mail.python.org/mailman/listinfo/python-list
Re: Trying to understand Python web-development
walterbyrd a écrit : > I don't know much php either, but running a php app seems straight > forward enough. Mmm... As long as the whole system is already installed and connfigured, *and* matches your app's expectations, kind of, yes. > Python seems to always use some sort of development environment vs > production environment scheme. s/Python/some frameworks/ > For development, you are supposed to > run a local browser and load 127.0.0.1:5000 - or something like that. > Then to run the same thing in a development environment, I suppose you meant "in a production environment" ? > I have to > configure some files, or touch all the files, restart the web-server, > or something. Why is that? Developping directly on a production server is defiinitively a no-no, whatever the language. So you *always* develop un a development environment. In PHP, this imply having a running HTTP server - usually Apache - correctly configured. Some Python frameworks, OTHO, ship with their own lightweight Python-based http server, which usually makes things far easier. Since quite a lot of web programmers already have Apache running on port 80, the framework's own server usually runs (by default) on another port. Also, most of the time, on the production server, you choose some other more appropriate deployement solution - which may or not include Apache - depending on the context. So the nice point here is that: 1/ you have way more freedom wrt/ possible deployment solutions 2/ you don't have to replicate the whole damn thing (if ever possible) on your local machine to develop the app. Of course, the actions to be taken when updating your app on the production server greatly depends on the deployment solution. > Python also seems to require some sort of "long running processes" I > guess that the python interpretor has to running all of time. s/Python/some frameworks/ You can write web apps in Python using plain cgi, you know. It's just very inefficient due to how cgi works - to make a long story short: the system has to launch a new process for each request calling your script, and you have to rebuild the whole damn world each time your script is called. Note that PHP suffers at least from the second problem, which can make it somewhat inefficient for some kind of applications. The point of long running processes is that most of the world is only built at startup and stays here between requests. > I am not really sure about what wsgi is supposed to accomplish. First and mainly, allow Python-based web apps to be independant from the deployment solution, by adding an indirection level. Instead of having [yourapp]<-->[http_server] which only work for the http server you targeted, you have [yourapp]<-->[wsgi]<-->[http_server.wsgi_adapter]<-->[http_server] which works for any http server for which a specific wsg adapter exists. There are also some other benefits since, the way wsgi works, the [wsgi] part of the above schema can include quite a lot of other things, sometimes without your application being aware of it (you may want to look for 'wsgi middleware' for more on this). HTH -- http://mail.python.org/mailman/listinfo/python-list
Re: regular expression negate a word (not character)
In article <[EMAIL PROTECTED]>, Dr.Ruud <[EMAIL PROTECTED]> wrote: : I negated the test, to make the regex simpler: [...] Yes, your approach is simpler. I assumed from the "need it all in one pattern" constraint that the OP is feeding the regular expression to some other program that is looking for matches. I dunno. Maybe it was the familiar compulsion with Perl to attempt to cram everything into a single pattern. Greg -- What light is to the eyes -- what air is to the lungs -- what love is to the heart, liberty is to the soul of man. -- Robert Green Ingersoll -- http://mail.python.org/mailman/listinfo/python-list
Re: Python noob SOS (any [former?] Perlheads out there?)
kj a écrit : > For many months now I've been trying to learn Python, but I guess > I'm too old a dog trying to learn new tricks... For better or > worse, I'm so used to Perl when it comes to scripting, that I'm > just having a very hard time getting a hang of "The Python Way." > (snip) > > I'd written a Perl module to facilitate the writing of scripts. > It contained all my boilerplate code for parsing and validating > command-line options, generating of accessor functions for these > options, printing of the help message and of the full documentation, > testing, etc. > > Of course, for Python now I don't have any of this, so I must write > it all from scratch, Hem... What about the optparse module ? (nb: it's in the standard lib). -- http://mail.python.org/mailman/listinfo/python-list
Re: MySQLdb
> i have problem manipulating mySQL data. When i add values in a Table, > i can recieve them instantly but when i check the table from another > script, the new values dont exist. Depending on your transaction settings (both on your mysql connection object in code, and the engine used for the table(s) in mysql's DB), you may have to commit your transaction to make it visible in other connections. This helps prevent partial transactions from being visible when they're in inconsistent states. -tkc -- http://mail.python.org/mailman/listinfo/python-list
Re: Problem with Tkinter scrollbar callback
Nope: 'repeatdelay': ('repeatdelay', 'repeatDelay', 'RepeatDelay', '300', '300'), And even after I set it, it looks funny: 'repeatdelay': ('repeatdelay', 'repeatDelay', 'RepeatDelay', '300', '1000'), And when I try it with the new repeatdelay (1000), the only thing that has changed is that it waits 1000 milliseconds before exhibiting the same uncontrolled growth as before. Metta, Ivan On Jan 25, 2008 5:49 PM, Russell E. Owen <[EMAIL PROTECTED]> wrote: > In article <[EMAIL PROTECTED]>, > "Ivan Van Laningham" <[EMAIL PROTECTED]> wrote: > > > Hi All-- > > That helps. Doing a get() on the scrollbar before a set(0.0,0.0) > > returns a 4-tuple: (0.0, 0.0, 0.0, 0.0) ! I did the set(0.0,0.0) > > and now the callback gets the correct number of arguments. > > > > However, I'm still getting the weird behaviour when clicking the > > arrowheads--and the heads are all I want. They act like they've been > > set to a keybounce timeout of about a millisecond. ... The arrow > > click increments the number of cells in a table row (effectively), and > > it shoots up from 5 to 26 columns almost instantly (that's the > > internal max I set). > > Is the scroll bar's repeatinterval set to a reasonable value? > > -- Russell > > -- > http://mail.python.org/mailman/listinfo/python-list > -- Ivan Van Laningham God N Locomotive Works http://www.pauahtun.org/ http://www.python.org/workshops/1998-11/proceedings/papers/laningham/laningham.html Army Signal Corps: Cu Chi, Class of '70 Author: Teach Yourself Python in 24 Hours -- http://mail.python.org/mailman/listinfo/python-list
Re: REALLY simple xml reader
Hi, Ricardo Aráoz wrote: > I don't know zit about xml, but I might need to, and I am saving the > thread for when I need it. So I looked around and found some 'real' > XML document (see below). The question is, how to access s from > s (any category) but not s. > > doc = """ > > > expenses: january 2002 > > > 31.19 > 200213 > Walking Store > shoes > > > > 1549.58 > 200217 > Bob's Bolts > [...] > > """ Sure, no problem. Just use the XPath expression "//debit/amount", or maybe "/checkbook/credit/amount", if you prefer. This is basically tree traversal, so you can check the parents and the children as you see fit. Stefan -- http://mail.python.org/mailman/listinfo/python-list
Re: extending Python - passing nested lists
On Jan 29, 1:22 pm, Christian Meesters <[EMAIL PROTECTED]> wrote: > Thanks. Point is that all such approaches would require lots(!) of calls to > the Python API - a way by which I won't gain the desired speed. You didn't mention speed in your original post. What about using array.array? Unless I am mistaken, these are just a thin wrapper around normal C arrays. Anyway you could always convert your list into a c array, do lots and lots of fast calculations, then convert it back again to a list. -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list
Re: Problem with Tkinter scrollbar callback
No Joy. Waits the 1 second, then clicks the button once per second until the limit's reached. Sigh. Metta, Ivan On Jan 29, 2008 10:20 AM, Russell E Owen <[EMAIL PROTECTED]> wrote: > >Nope: > > > >'repeatdelay': ('repeatdelay', 'repeatDelay', 'RepeatDelay', '300', '300'), > > > >And even after I set it, it looks funny: > > > >'repeatdelay': ('repeatdelay', 'repeatDelay', 'RepeatDelay', '300', '1000'), > > > >And when I try it with the new repeatdelay (1000), the only thing that > >has changed is that it waits 1000 milliseconds before exhibiting the > >same uncontrolled growth as before. > > You need to change repeatinterval, not repeatdelay. > > As to "looking funny": that is the standard output format for > configure(). I think can get a more reasonable value using > "cget(repeatdelay)". > > -- Russell > > > > > >Metta, > >Ivan > > > >On Jan 25, 2008 5:49 PM, Russell E. Owen <[EMAIL PROTECTED]> wrote: > >> In article <[EMAIL PROTECTED]>, > >> "Ivan Van Laningham" <[EMAIL PROTECTED]> wrote: > >> > >> > Hi All-- > >> > That helps. Doing a get() on the scrollbar before a set(0.0,0.0) > >> > returns a 4-tuple: (0.0, 0.0, 0.0, 0.0) ! I did the set(0.0,0.0) > >> > and now the callback gets the correct number of arguments. > >> > > >> > However, I'm still getting the weird behaviour when clicking the > >> > arrowheads--and the heads are all I want. They act like they've been > >> > set to a keybounce timeout of about a millisecond. ... The arrow > >> > click increments the number of cells in a table row (effectively), and > >> > it shoots up from 5 to 26 columns almost instantly (that's the > >> > internal max I set). > >> > >> Is the scroll bar's repeatinterval set to a reasonable value? > >> > >> -- Russell > >> > >> -- > >> http://mail.python.org/mailman/listinfo/python-list > >> > > > > > > > >-- > >Ivan Van Laningham > >God N Locomotive Works > >http://www.pauahtun.org/ > >http://www.python.org/workshops/1998-11/proceedings/papers/laningham/laningham.html > >Army Signal Corps: Cu Chi, Class of '70 > >Author: Teach Yourself Python in 24 Hours > > -- Ivan Van Laningham God N Locomotive Works http://www.pauahtun.org/ http://www.python.org/workshops/1998-11/proceedings/papers/laningham/laningham.html Army Signal Corps: Cu Chi, Class of '70 Author: Teach Yourself Python in 24 Hours -- http://mail.python.org/mailman/listinfo/python-list
Re: Removal of element from list while traversing causes the next element to be skipped
On Tue, 29 Jan 2008 09:23:16 -0800 (PST), [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > If you're going to delete elements from > a list while iterating over it, then do > it in reverse order: Why so hard? Reversing it that way creates a copy, so you might as well do: >>> a = [ 98, 99, 100 ] >>> for i, x in enumerate(a[:]): ... if x == 99: del(a[i]) ... print x Berteun -- http://mail.python.org/mailman/listinfo/python-list
Re: refcount
Simon Pickles wrote: > Hi, > > Is is possible to access the refcount for an object? > > Ideally, I am looking to see if I have a refcount of 1 before calling del Help on built-in function getrefcount in module sys: getrefcount(...) getrefcount(object) -> integer Return the reference count of object. The count returned is generally one higher than you might expect, because it includes the (temporary) reference as an argument to getrefcount(). Christian -- http://mail.python.org/mailman/listinfo/python-list
Re: Python noob SOS (any [former?] Perlheads out there?)
On Jan 29, 4:39 pm, kj <[EMAIL PROTECTED]> wrote: > It's not the Python syntax that I'm having problems with, but rather > with larger scale issues such as the structuring of packages, > techniques for code reuse, test suites, the structure of > distributions,... Python and Perl seem to come from different > galaxies altogether... Maybe if someone could point Kynn at a suitable project where he could look at the complete repository and see how its successfully done? It would need I guess to employ: * Setuptools * modules/package(s) * Doctest/unit tests And not be too large I guess. Anyone wish to put forward their project? - Paddy. - Paddy. -- http://mail.python.org/mailman/listinfo/python-list
Re: Python noob SOS (any [former?] Perlheads out there?)
On Jan 29, 10:39 am, kj <[EMAIL PROTECTED]> wrote: > I'd written a Perl module to facilitate the writing of scripts. > It contained all my boilerplate code for parsing and validating > command-line options, generating of accessor functions for these > options, printing of the help message and of the full documentation, > testing, etc. http://docs.python.org/lib/optparse-tutorial.html rd -- http://mail.python.org/mailman/listinfo/python-list
Re: Just for fun: Countdown numbers game solver
On Jan 29, 9:02 am, [EMAIL PROTECTED] wrote: > If you've found an efficient way to walk through the possible > solutions only once As discussed earlier in this thread, the definition of 'only once' is not as clear cut as one would first think (see Terry's thoughts on this). -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list
Implementation of IBuyable or Interface?
Hello! It's more a design question than anything python specific. If anyone could help me, I would be grateful. If it's not the right place for this subject, please advise. I've got a IBuyable interface. The app can sell both Products and Services (Both "Buyables"). I'm not sure if Product and Service should also be represented as interfaces (inherited from IBuyable) or if they are actually directly implementations of IBuyable. What do you think? Thanks, Marcelo. -- http://mail.python.org/mailman/listinfo/python-list
Re: Error in parsing XML for following test data
On Jan 29, 4:46 am, Stefan Behnel <[EMAIL PROTECTED]> wrote: > > How is this related to XML? > > Stefan I guess that's what makes so **nasty**! -- Paul -- http://mail.python.org/mailman/listinfo/python-list
Re: Module/package hierarchy and its separation from file structure
> You can also put, in animal/__init__.py: > from monkey import Monkey > and now you can refer to it as org.lib.animal.Monkey, but keep the > implementation of Monkey class and all related stuff into > .../animal/monkey.py The problem is that we are now back to the identity problem. The class won't actually *BE* org.lib.animal.Monkey. Perhaps manipulating __module__ is enough; perhaps not (for example, what about sys.modules?). Looks like I'll just live with putting more than I would like in the same file. -- / Peter Schuller PGP userID: 0xE9758B7D or 'Peter Schuller <[EMAIL PROTECTED]>' Key retrieval: Send an E-Mail to [EMAIL PROTECTED] E-Mail: [EMAIL PROTECTED] Web: http://www.scode.org -- http://mail.python.org/mailman/listinfo/python-list
Re: Executing other python code
On Jan 29, 12:18 am, Tim Rau <[EMAIL PROTECTED]> wrote: > I'm working on a game, and I'd like players to be able to define thier > ships with scripts. Naturally, I don't want to give them the entire > program as thier romping ground. I would like to invoke a seperate > interpreter for these files, and give it a limited subset of the > functions in my game. What is the best way to achieve this effect? One simple solution would be to forbid import statements in the scripts, to import the scripts as modules and inject whatever functions you want them to be able to use in the module's namespace. So: == script.py === def play(): if enemy_is_near(): fire_gun() else: move_forward() === == Game engine scriptobjs = [enemy_is_near, fire_gun, move_forward, turn_left, turn_right] def getscript(scriptname): script = __import__(scriptname) for obj in scriptobjs: setattr(script, obj.__name__, obj) return script def playscript(script): script.play() === Something like this. Obviously this is over simplified! -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list
Re: REALLY simple xml reader
> What about : > > doc = """ > >99 > > >42 > > """ That's not an XML document, so what about it? Stefan -- Ok Stefan, I will pretend it was meant in good will. I don't know zit about xml, but I might need to, and I am saving the thread for when I need it. So I looked around and found some 'real' XML document (see below). The question is, how to access s from s (any category) but not s. Probably my previous example was not properly stated, what I meant to convey is two substructures (namespaces, or whatever you call them in XML) which have the same 'properties' is not the same as as is not the same as . The examples given by Diez and Mark, though useful, don't seem to address the problem. Thanks for your help. doc = """ expenses: january 2002 31.19 200213 Walking Store shoes 1549.58 200217 Bob's Bolts 40 200218 pocket money 25 200218 188.20 200218 Boston Endodontics cavity 10.58 2002110 Exxon Saugus gasoline 909.56 2002114 Honda North car repairs 24.30 2002115 Johnny Rockets lunch """ -- http://mail.python.org/mailman/listinfo/python-list
Re: Executing other python code
Hi, Tim Rau wrote: > I'm working on a game, and I'd like players to be able to define thier > ships with scripts. Naturally, I don't want to give them the entire > program as thier romping ground. I would like to invoke a seperate > interpreter for these files, and give it a limited subset of the > functions in my game. What is the best way to achieve this effect? Depends. If you are concerned about security, this will be hard to achieve in Python. I imagine that this could be related to cheating prevention. If you are more concerned about namespace polution and making only a well defined API available to the scripts, go the module-import way and hand some API object over, either through an initialisation function or by injecting it into the module namespace, as Arnaud suggested. Stefan -- http://mail.python.org/mailman/listinfo/python-list
Re: Intra-package References?? (again)
[EMAIL PROTECTED] wrote: > Hi Python list, > > I have been struggleling with this before, but have never been able to > find a good solution. > The thing I dont understand is, I follow the guide here: > http://docs.python.org/tut/node8.html#SECTION00842 > And have the same setup as the packages howto here:http:// > docs.python.org/tut/node8.html#SECTION00840 > > But when I want to use Intra-package References, I need to put the > path to the packages explicit like this: > #sys.path.append('/path/to/pack/') > Before I can make import like this: > #from Sound.Effects import echo > from within the karaoke.py (just to stay with the tut) > If I print the sys.path from the same file, I can see that > #/path/to/pack/Sound/Filters/ > is in the path. > > Is there something that I completely is missing or could someone > please show me how, by example, how I use Intra-package References. > > Best regards > > Marc If your package is in pythons path, all it should need is an empty __init__.py file in the package and also in the sub package Filters also. If your program is a stand alone program that may be installed someplace not in pythons sys.path, then I've been using a some what different model. I'm not sure what others think of it yet, but it's working well for me. [karoki_program_dir] (may not be in pythons sys.path) karoki.py [lib] [tests] __init__.py (unit tests here) [filters] __init__.py (various filters here) (other local modules/packages here) And in karoki.py add the local lib directory to the front of sys.path before your local module imports. lib = os.path.abspath(os.path.join(__file__, '..', 'lib')) sys.path.insert(0, lib) This also makes sure it's the program location path, and not the current console directory. For running tests, I use a command line option. python karoki.py --test Cheers, Ron -- http://mail.python.org/mailman/listinfo/python-list
Re: extending Python - passing nested lists
Christian Meesters wrote: >> You didn't mention speed in your original post. > Sorry, perhaps I considered this self-evident - which it is, of course, not. > >> What about using >> array.array? Unless I am mistaken, these are just a thin wrapper >> around normal C arrays. > The algorithm I want to implement requires several million floating point > operations. Neither the array-modules nor numpy's thin layer seem thin > enough for me. ;-) > >> Anyway you could always convert your list >> into a c array, do lots and lots of fast calculations, then convert it >> back again to a list. > I guess I am too blind to see, but I couldn't discover a method description > like "double* PyList_toDouble". So, yes, my question is a C-API-newbie > question: What is the way to say "myCarray = SomePyMethod(InputPyList)"? Or > better, what should be here instead > static PyObject *_foo(PyObject *self, PyObject *args) { > double *v; > if (!PyArg_Parse(args, "(d)", &v)) > return NULL; > to get a list as an array of doubles into 'v' (and back to Python)? > > I did read the API-description, but still am lost at this point. I presume, > once I get to know the answer I'll bang my head on the table ... ;-) I haven't strictly tried this, but PyArg_ParseTuple and Py_BuildValue seem to be the orthodox ways to do Python->C and C->Python conversions. But if Numpy isn't fast enough, then any Python at all in the solution might be too much. Perhaps keeping your values in a file and reading them into the C programs will work. Mel. -- http://mail.python.org/mailman/listinfo/python-list
Removal of element from list while traversing causes the next element to be skipped
Look at this -- from Python 2.5.1: >>> a = [1, 2, 3, 4, 5] >>> for x in a: ... if x == 3: ... a.remove(x) ... print x ... 1 2 3 5 >>> a [1, 2, 4, 5] >>> Sure, the resulting list is correct. But 4 is never printed during the loop! What I was really trying to do was this: apps = [name for name in os.listdir(ROOT) if os.path.isdir(os.path.join(ROOT, name))] apptitles = {} for name in apps: try: app = __import__(name) except: apps.remove(name) else: apptitles[name] = getattr(app, 'TITLE', name.title()) which worked fine, until I actually had a directory with no module in it. Then that directory was correctly removed from the list, but the _next_ one was skipped, so its title was never assigned, which caused problems later in the program. -- 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 -- pass it on -- http://mail.python.org/mailman/listinfo/python-list
Python noob SOS (any [former?] Perlheads out there?)
For many months now I've been trying to learn Python, but I guess I'm too old a dog trying to learn new tricks... For better or worse, I'm so used to Perl when it comes to scripting, that I'm just having a very hard time getting a hang of "The Python Way." It's not the Python syntax that I'm having problems with, but rather with larger scale issues such as the structuring of packages, techniques for code reuse, test suites, the structure of distributions,... Python and Perl seem to come from different galaxies altogether... Be that as it may, the activation barrier to using Python for my scripting remains too high. I'd written a Perl module to facilitate the writing of scripts. It contained all my boilerplate code for parsing and validating command-line options, generating of accessor functions for these options, printing of the help message and of the full documentation, testing, etc. Of course, for Python now I don't have any of this, so I must write it all from scratch, and the thing is *I don't even know where to begin*! And meanwhile works needs to get done, projects finished, etc. So naturally I revert to Perl, yadda-yadda-yadda, and the Python project gets pushed back another week... In a way it's the usual story with learning a new language, but I've taught myself new languages before. (After all, there was a time when I didn't know Perl.) It's harder this time, somehow... Anyway, pardon the ramble. Is there any good reading (to ease the transition) for Perl programmers trying to learn Python? Thanks! kynn -- NOTE: In my address everything before the first period is backwards; and the last period, and everything after it, should be discarded. -- http://mail.python.org/mailman/listinfo/python-list
Re: Removal of element from list while traversing causes the next element to be skipped
On Jan 29, 12:34 pm, William McBrine <[EMAIL PROTECTED]> wrote: > Look at this -- from Python 2.5.1: > > >>> a = [1, 2, 3, 4, 5] > >>> for x in a: > > ... if x == 3: > ... a.remove(x) > ... print x > ... > 1 > 2 > 3 > 5 > > >>> a > [1, 2, 4, 5] > > Sure, the resulting list is correct. But 4 is never printed during the > loop! > > What I was really trying to do was this: > > apps = [name for name in os.listdir(ROOT) if > os.path.isdir(os.path.join(ROOT, name))] > > apptitles = {} > > for name in apps: > try: > app = __import__(name) > except: > apps.remove(name) > else: > apptitles[name] = getattr(app, 'TITLE', name.title()) > > which worked fine, until I actually had a directory with no module in it. > Then that directory was correctly removed from the list, but the _next_ > one was skipped, so its title was never assigned, which caused problems > later in the program. > > -- > 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 -- pass it on You should not change/modify the original sequence iterating over. In the list comprehension, try changing os.listdir(ROOT) to os.listdir(ROOT)[:] so you are get a copy of the original list. geoff. -- http://mail.python.org/mailman/listinfo/python-list
Trying to understand Python web-development
I don't know much php either, but running a php app seems straight forward enough. Python seems to always use some sort of development environment vs production environment scheme. For development, you are supposed to run a local browser and load 127.0.0.1:5000 - or something like that. Then to run the same thing in a development environment, I have to configure some files, or touch all the files, restart the web-server, or something. Why is that? Python also seems to require some sort of "long running processes" I guess that the python interpretor has to running all of time. I am not really sure about what wsgi is supposed to accomplish. -- http://mail.python.org/mailman/listinfo/python-list
Telnet Program
I am having some issues writing a telnet program, using telnetlib. I am not sure if it is the telnet on the connections end or it is my program. A little background, when I log in straight from the Linux Command prompt. The only thing I get is a blinking cursor. Then I type in my command 'FOO' enter then screen on the very next line returns 'OK', Then automatically puts the blinking cursor on the next line. Then when I want to quit the telnet session I hit CTRL+Z that takes me to telnet> then i type quit. My Program currently looks like it connects. Because the last string that I get back that is not blank says: "Logged in successfully". So my problem is that when I issue the command through tn.write("FOO \n"). Then do a tn.read_until('OK\n', 10). It gets returned nothing. I have also added tn.read_until('OK\n', 10).splitlines(). That is also returned blank. I have tried various different newlines \n \r \r\n. All the documentation for telnet program that I am logging into says, use Carriage Return after each command. Nothing seems to get back the data. I am not sure if the Python telnet is looking for more of true command line like telnet>. Any help would be great. Thank You Very Much, Paul -- http://mail.python.org/mailman/listinfo/python-list
Re: object vs class oriented -- xotcl
On Jan 24, 9:16 pm, "Guilherme Polo" <[EMAIL PROTECTED]> wrote: > 2008/1/24, William Pursell <[EMAIL PROTECTED]>: > > Can I do it in Python? > > > class A(object): pass > class B(object): pass > > a = A() > a.__class__ = B > > That ? Maybe you meant something else. That is what I was referring to, but it isn't the core functionality that I'm after. (My bad for a poor description.) I'm fairly excited at the idea of being able to do per-object mixins in xotcl. I guess it would look like this in python: BROKEN CODE: a = object() a.__class__.append( foo ) a.__class__.append( bar ) In python, if you want an object to me a member of 2 classes, it seems that you have no choice but to declare a new class that inherits from both. eg: class foobar( foo, bar): pass a = foobar() Is it possible to make an object be a member of 2 classes without defining such a class? I believe "per object mixin" is the correct term for such an animal. The first several google hits on that phrase all reference xotcl, so I'm not sure if that is an xotcl inspired vocabulary that isn't really standard. -- http://mail.python.org/mailman/listinfo/python-list
Re: ISO with timezone
On Jan 29, 10:56 am, nik <[EMAIL PROTECTED]> wrote: > Thanks, > that does help and now I have: > > >>> from datetime import datetime, tzinfo, timedelta > >>> import time > >>> class TZ(tzinfo): > > ...def utcoffset(self,dt): return timedelta(seconds=time.timezone) > ...>>> print datetime(2008,2,29,15,30,11,tzinfo=TZ()).isoformat() > > 2008-02-29T15:30:11+8:00 > > But what I want to know now it how to get the actual time into the > expression instead of typing the 2008,2,29,15 > So something like: >>> print > datetime(time.gmtime(),tzinfo=TZ()).isoformat(), but that doesn't > work. > > I realize that I could do: > > >>> t = time.localtime() > >>> print datetime(t[0],t[1],t[2],t[3],t[4],t[5],tzinfo=TZ()).isoformat() > > but I imagine there might be a cleaner way of doing this. > > Thanks, > Nik > > On Jan 28, 9:10 pm, "Nicholas F. Fabry" <[EMAIL PROTECTED]> > wrote: > > > Hello, nik. > > > On Jan 28, 2008, at 21:03, nik wrote: > > > > Hi, > > > > How does one express the time in ISO format with the timezone > > > designator? > > > > what I want is -MM-DDThh:mm:ss.sTZD > > > >> From the documentation I see: > > from datetime import tzinfo, timedelta, datetime > > class TZ(tzinfo): > > > ... def utcoffset(self, dt): return timedelta(minutes=-399) > > > ... > > datetime(2002, 12, 25, tzinfo=TZ()).isoformat(' ') > > > '2002-12-25 00:00:00-06:39' > > > > and I've also figured out: > > datetime.datetime.fromtimestamp(time.time()).isoformat()[:-3] > > > '2008-01-23T11:22:54.130' > > > > But can't figure out how to fit them together. > > > There is nothing there to 'fit together' - in the first example given, > > the datetime object has no time component specified, so it fills in > > default vaules of zero. The following should make this clear: > > > >>> your_time = datetime(2008, 2, 29, 15, 30, 11, tzinfo=TZ()) > > >>> print your_time > > 2008-02-29 15:30:11-05:00 > > >>> print your_time.isoformat('T') > > 2008-02-29T15:30:11-05:00 > > > If you wish to append the NAME of the tzinfo object instead of its > > offset, that requires a bit more playing around (along with a properly > > defined tzinfo object - check out dateutil or pytz for a concrete > > implementation of tzinfo subclasses (i.e. timezones)), but the > > following would work: > > > >>> print your_time.strftime('%Y-%m-%dT%H:%M:%S %Z') > > 2008-02-29T15:30:11 EST > > > For details on how the .strftime method works, see Python Standard > > Library, Section 14.2. > > > I hope this helps! > > > Nick Fabry > > > > Thank you, > > > Nik > > > -- > > >http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: noob stuck on reading double
On Jan 29, 2008 1:35 PM, Hannah Drayson <[EMAIL PROTECTED]> wrote: > It imports as a string of rubbish... > i.e. > > > >>> text = f.read() > >>> print text > ?F?C??y??>? > @[EMAIL PROTECTED]@???/???8[EMAIL PROTECTED]/[EMAIL > PROTECTED]@?Q???Q???Q???Q???Q??ǑR[???Q??? > >>> unpack('d', text) > Traceback (most recent call last): > File "", line 1, in > File > "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/struct.py", > line 87, in unpack > return o.unpack(s) > struct.error: unpack requires a string argument of length 8 When reading the file, try using file = open('data.bin', 'rb') file.seek(0) raw = file.read() Do the unpack on "raw". -- http://mail.python.org/mailman/listinfo/python-list
typename
I want python code that given an instance of a type, prints the type name, like: typename (0) -> 'int' I know how to do this with the C-api, (o->tp_name), but how do I do it from python? type(0) prints "", not really what I wanted. -- http://mail.python.org/mailman/listinfo/python-list
Re: Error in parsing XML for following test data
On Jan 29, 9:29 pm, abhishek <[EMAIL PROTECTED]> wrote: > Hello group, > > I am having problem parsing following data set from XML. Please > provide hints on how to rectify this problem. You have provided no hints on what your problem is. What output do you want? What have you tried? What output and/or error message(s) did you get? What does "from XML" mean? > > I am using python2.4 version > > this is te test data that i am using -- > > """ > 1!!!11 > 2@@@22 [snip] > 33. > Special Characters > #!/bin/bash > #start TG app > cd $1 > exec ./start-infopsyM.py > > """ > > This is really a nasty data set. It looks like (a) easily parseable but totally uninteresting guff followed by (b) the start of a bash script Is this some kind of joke? You are not trying to disassemble it, are you? -- http://mail.python.org/mailman/listinfo/python-list
Decision (if, else) routine is not working as intended with CGI module
All: I'm running into trouble figuring this one out. It seems that my decision routine is not working as intended. Does anyone know why my output continues to utilize the "else" portion of the routine. Thank you, Christopher ++ #!/usr/bin/python import cgi print "Content-type: text/plain\n" tag_form = cgi.FieldStorage(keep_blank_values=True) #if not tag_form.has_key("fse00"): if tag_form["fse00"] == "": fse000 = {"fse00": "0"} tag_form.update(fse000) print "Printing fse000: ", tag_form["fse00"] else: print "Printing fse00: ", tag_form["fse00"] -- http://mail.python.org/mailman/listinfo/python-list
Re: breaking out of outer loops
On Tue, 29 Jan 2008 11:51:04 -0800 (PST) [EMAIL PROTECTED] wrote: > Any elegant way of breaking out of the outer for loop than below, I > seem to have come across something, but it escapes me > > for i in outerLoop: >for j in innerLoop: >if condition: > break >else: >continue > break Ha! Think outside the box to begin with ... P. def cross(args): ans = [[]] for arg in args: ans = [x+[y] for x in ans for y in arg] return ans def test(): L = [[0,1,2]]*3 for a,b,c in cross(L): print a,b,c if __name__=='__main__': test() -- http://mail.python.org/mailman/listinfo/python-list
Re: Fwd: Help! - Invoke setup.py file
En Mon, 21 Jan 2008 07:38:15 -0200, Vikas Jadhav <[EMAIL PROTECTED]> escribi�: > We have setup of SVGMath* 0.3.2 (Converter- Mathml 2.0 coding to SVG). > The > setup folder contains setup.py file but we are not able to initiate this > file. Kindly help us, resolution to this query will be appreciated. > Python version: Installed on PC- 2.5.1 and OS- Windows 2000. Unless the author provides more specific instructions to install the package, the usual way is: - Unpack the archive in any temporary directory - Open a console (CMD) and change to that temporary directory - Execute this command: python setup.py install - That's all If you get any error, post the whole error message here, but for specific help on that package it would be better to contact the author directly. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Re: Reflection and aspect programming in Python
En Tue, 29 Jan 2008 14:42:55 -0200, Jean-François Houzard <[EMAIL PROTECTED]> escribi�: > I'm a student at UCL Belgium and I have to write a paper about reflection > and introspection in Python. > > It is somewhat difficult to find advanced information about reflection in > Python, not only introspection but also the other sides of reflection. I'm not familiar with what you mean by "the other sides of reflection", perhaps you could explain what you mean exactly. But I'll try to give some examples of what can be made in Python: Direct introspection: hasattr(obj, "color") tells if obj has an attribute "color". dir(obj) returns a list of obj's attributes. Similarly, you can obtain an attribute by its name: getattr(obj, "color") is a silly way of writing obj.color, but it's useful when "color" is replaced by a variable. You can set an attribute: obj.width = 3, or setattr(obj, "width", 3). You can add any attribute to any object - the set of attributes allowed for an individual object isn't defined by its class (in general). Methods are attributes too, so all the above may be applied to testing, retrieving and setting methods too. As classes usually live in modules, the above technique allows you to get a class given its name: cls=getattr(modulename, classname). And then create an instance: obj=cls(some,arguments) You can query any object its type: type(obj). In some cases (including all user defined classes) you can change an object's class to another dynamically: obj.__class__ = NewClass, and it will behave as it were an instance of NewClass (but any missing attributes won't be created magically) You can dynamically create new types/classes: if Bar and Baz are classes, type("Foo", (Bar, Baz), {}) returns a new class named Foo which inherits from Bar and Baz. It's equivalent to this statement: class Foo(Bar,Baz): pass You can evaluate expressions at runtime: eval("2+2"). eval("Foo(some,arguments)") returns an instance of Foo. You can compile blocks of code into a code object, and execute them, using `compile` and `exec`. Classes, its instances, functions, methods, code, execution frames, builtin types, all of them are first order objects in Python: you can create them, assign them to variables, pass them as arguments, query its properties, modify them when allowed, etc. > I'm using the book: "Programming Python, Thrid Edition" but the chapter > only > describes briefly some useful functions. The IBM site talks somewhat > about > the concept of "metaclass" but is there more about reflection than only > metaclass programming? > I'm also looking for a class diagram of the hierachy of the python > classes > "metaclass", "class", "object" but didn't find it nor did I find lots of > information about that subject. Read sections 3 (Data Model) and 4 (Execution Model) in the Python Language Reference. The root of the class hierarchy is `object`; all other [new-style] classes inherit from object direct or indirectly. "metaclass" is a generic name. Metaclasses are to classes as classes are to instances. The type of an instance is its class; the type of a class is its metaclass. I won't even try to explain metaclasses further here; see the links at http://www.python.org/doc/newstyle/ You may be interested in decorators too. Decorators allow for higher order functions: a decorator is a function which takes a function as a parameter and returns a (possibly different) function as a result. http://wiki.python.org/moin/PythonDecorators > I looked around on the site www.python.org and some others about what > could > be a killer application using reflection in Python an maybe more > information > about it. Like how does it use reflection to do the trick. > > Is there an advanced and completed Aspect Python plugin or are they all > experimental? > Are there some papers about that part of reflection or more detailed > sites > that talks about it. This thread from last year discusses why Aspect Programming isn't so relevant in Python http://groups.google.com/group/comp.lang.python/browse_thread/thread/af82d7fa8fdf5a28/ -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Re: optional static typing for Python
On 29 Jan., 17:00, "Chris Mellon" <[EMAIL PROTECTED]> wrote: > Given the difficulty of statically analyzing Python, and the > limitations you need to add for either static typing or type inference > to be practical, I think that the real future for faster Python code > is JIT, not static optimizations. Python has a JIT right now - so why do you think it's Pythons "real future"? -- http://mail.python.org/mailman/listinfo/python-list
Re: Removal of element from list while traversing causes the next element to be skipped
Berteun Damman <[EMAIL PROTECTED]> wrote: > On Tue, 29 Jan 2008 09:23:16 -0800 (PST), [EMAIL PROTECTED] ><[EMAIL PROTECTED]> wrote: >> If you're going to delete elements from >> a list while iterating over it, then do >> it in reverse order: > > Why so hard? Reversing it that way creates a copy, so you might as > well do: a = [ 98, 99, 100 ] for i, x in enumerate(a[:]): > ... if x == 99: del(a[i]) > ... print x Why so hard? >>> a = [ 98, 99, 100, 98, 99, 100 ] >>> for i, x in enumerate(a[:]): if x == 99: del(a[i]) >>> a [98, 100, 98, 99] oops! But: >>> a = [ 98, 99, 100, 98, 99, 100 ] >>> last_idx = len(a) - 1 >>> for i, x in enumerate(a[::-1]): if x == 99: del(a[last_idx - i]) >>> a [98, 100, 98, 100] Reversing it works. Your code doesn't. -- http://mail.python.org/mailman/listinfo/python-list
Re: runscript module, where are the docs...
En Tue, 29 Jan 2008 13:48:58 -0200, glomde <[EMAIL PROTECTED]> escribi�: > I am going through some code and found > import runscript > > BUT I cant find and information about this module. I searched Google > did a grep in > the /usr/lib/python directory. > > What is the purpose of this module and where can I find information > about it. Or the source. It doesn't appear to be a standard module, look around the place where you found it. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Re: Zipfile content reading via an iterator?
En Tue, 29 Jan 2008 11:06:12 -0200, Tim Chase <[EMAIL PROTECTED]> escribi�: > Just to follow up on this, I dropped the the 2.6 version of > zipfile.py in my project folder (where the machine is currently > running Python2.4), used the ZipFile.open() and it worked fine. > [...] > Anyways, thanks to Gabriel (and all the authors of Python > zipfile.py library) for the solution. I just bring attention to the upcoming feature. All credit should go to the patch author, Alan McIntyre. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Re: Module/package hierarchy and its separation from file structure
Carl Banks wrote: > On Jan 29, 7:48 am, Peter Schuller <[EMAIL PROTECTED]> > wrote: >>> You can also put, in animal/__init__.py: >>> from monkey import Monkey >>> and now you can refer to it as org.lib.animal.Monkey, but keep the >>> implementation of Monkey class and all related stuff into >>> .../animal/monkey.py >> The problem is that we are now back to the identity problem. The class >> won't actually *BE* org.lib.animal.Monkey. > > The usage is the same; it works in all cases once you redefine > __module__. Who cares what it really is? The inspect module. [animals]$ ls animals [animals]$ rm animals/*.pyc [animals]$ ls animals [animals]$ ls animals __init__.py monkey.py [animals]$ cat animals/monkey.py class Monkey(object): pass [animals]$ cat animals/__init__.py from animals.monkey import Monkey Monkey.__module__ = 'animals' [animals]$ python Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) [GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from animals import Monkey >>> import inspect >>> inspect.getsource(Monkey) Traceback (most recent call last): File "", line 1, in File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/inspect.py", line 629, in getsource lines, lnum = getsourcelines(object) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/inspect.py", line 618, in getsourcelines lines, lnum = findsource(object) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/inspect.py", line 494, in findsource raise IOError('could not find class definition') IOError: could not find class definition >>> -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco -- http://mail.python.org/mailman/listinfo/python-list
Re: Extending the import mechanism - what is recommended?
[EMAIL PROTECTED] wrote: I need to extend the import mechanism to support another file type. I've already written the necessary C library to read the file and return a python code object. I found one example which just sub-classed imputil.ImportManager like this: from myLib import pye_code as pye_code class MyImporter(imputil.ImportManager): def __init__(self): imputil.ImportManager.__init__(self) self.add_suffix('.pye', self.import_pye) self.install() def import_pye(self, filepath, fileinfo, filename): data = pye_code(filepath) return 0, data, {} This actually works fine if the module is just a few lines of code, but it won't chain to the "built-in" importers; if the module that I'm importing does something as simple as 'import re', it fails. It may be that my confusion here is because (even after reading the code), I'm not clear on the purposes of imputil.ImportManager vs. imputil.Importer :-( What is the "preferred" way to do this type of extension? One other note; at this time, I just need to import individual module files with this extension; I don't need to import packages. Here's an importer I wrote some time ago to bring modules in from a relational database. I won't trouble you with the code to compile the modules/packages and add them into the database, but perhaps the attached code will be enough to show you what you are doing that's not working. regards Steve -- Steve Holden+1 571 484 6266 +1 800 494 3119 Holden Web LLC http://www.holdenweb.com/ # # Import modules from a database # # NOTE: could use sys version info to select appropriate module version # - could ask whether to install if absent ... heh, heh :-) # import sys, db, marshal VER = sys.hexversion debug = 0 conn = db.conn() curs = conn.cursor() curs.execute("select modName from module where modPyVersion=%s", (sys.hexversion, )) impdict = {} for n in [x[0] for x in curs.fetchall()]: impdict[n] = 1 class DBmodule(type(sys)): def __repr__(self): return "" % (self.__name__, self.__file__) class dbimporter(object): def __init__(self, item, *args, **kw): if item != "*db*": raise ImportError if debug: print "dbimporter: item:", id(self), item, "args:", args, "keywords:", kw print "Accepted", item def find_module(self, fullname, path=None): if debug: print "%x: find_module: %s from %s" % (id(self), fullname, path) if fullname not in impdict: if debug: print "Bailed on", fullname return None else: if debug: print "found", fullname, "in db" return self def load_module(self, modname): if debug: print "%x: load_module: %s" % (id(self), modname) if modname in sys.modules: return sys.modules[modname] curs.execute("select modCode, modPackage, modFilePath from module where modName=%s and modPyVersion=%s", (modname, VER)) row = curs.fetchone() # should only BE one ...S if not row: if debug: print modname, "not found in db" raise ImportError, "DB module %s not found in modules" code, package, path = row code = marshal.loads(code) module = DBmodule(modname) sys.modules[modname] = module module.__name__ = modname module.__file__ = path # was "db:%s" % modname module.__loader__ = self if package: module.__path__ = ["*db*"] exec code in module.__dict__ if debug: print modname, "loaded:", module, "pkg:", package return module def install(): sys.path_hooks.append(dbimporter) sys.path_importer_cache.clear() # probably not necessary sys.path.insert(0, "*db*") # probably not needed with a metea-path hook? -- http://mail.python.org/mailman/listinfo/python-list
Re: Telnet Program
"[EMAIL PROTECTED]" <[EMAIL PROTECTED]> writes: > I am having some issues writing a telnet program, using telnetlib. I > am not sure if it is the telnet on the connections end or it is my > program. > > A little background, when I log in straight from the Linux Command > prompt. The only thing I get is a blinking cursor. Then I type in my > command 'FOO' enter then screen on the very next line returns 'OK', > Then automatically puts the blinking cursor on the next line. Then > when I want to quit the telnet session I hit CTRL+Z that takes me to > telnet> then i type quit. > > My Program currently looks like it connects. Because the last string > that I get back that is not blank says: "Logged in successfully". > > So my problem is that when I issue the command through tn.write("FOO > \n"). Then do a tn.read_until('OK\n', 10). It gets returned nothing. I > have also added tn.read_until('OK\n', 10).splitlines(). That is also > returned blank. > > I have tried various different newlines \n \r \r\n. All the > documentation for telnet program that I am logging into says, use > Carriage Return after each command. Nothing seems to get back the > data. I am not sure if the Python telnet is looking for more of true > command line like telnet>. Have you tried: tn.set_debuglevel(1) ? HTH, Rob -- http://mail.python.org/mailman/listinfo/python-list
Re: Python noob SOS (any [former?] Perlheads out there?)
kj wrote: > Is there any good reading (to ease the transition) for Perl > programmers trying to learn Python? > www.diveintopython.org While it is a bit dated by now (Python 2.2), that thing worked wonders for me. Shows you Python in action and presents a fair amount of its philosophy along the way. Maybe(!) that helps a bit. /W -- http://mail.python.org/mailman/listinfo/python-list
Re: Mx.ODBC insert error
On Jan 30, 3:27 am, Greg Corradini <[EMAIL PROTECTED]> wrote: > Hello, > I've never gotten this traceback error before using mx.ODBC. "traceback error"?? I see no problem with the traceback. > Any ideas about > resolving this issue? The statement and the error it generates are listed > below. The error was "generated" by you. The error message was generated by "[Microsoft][ODBC Microsoft Access Driver]" > > curse.execute("Insert into FHWA_StandSamp_2008(LRS_ID_NEW) > values('040210') where LRS_ID = '0403700010'") > > Traceback (most recent call last): > File "", line 1, in ? > curse.execute("Insert into FHWA_StandSamp_2008(LRS_ID_NEW) values > ('040210') where LRS_ID = '0403700010'") > ProgrammingError: ('37000', -3516, '[Microsoft][ODBC Microsoft Access > Driver] Missing semicolon (;) at end of SQL statement.', 4612) > Like it says, ProgrammingError. Try INSERT INTO table (columns) VALUES (values) or INSERT INTO table (columns) SELECT stuff FROM somewhere [WHERE boolean_expression] or perhaps even UPDATE table SET column = expression WHERE boolean_expression Perhaps you could consider avoiding combining random fragments of SQL or English and hoping for tolerant fuzzy parsing by the recipient :-) HTH, John -- http://mail.python.org/mailman/listinfo/python-list
Re: extending Python - passing nested lists
On Jan 29, 4:00 pm, Christian Meesters <[EMAIL PROTECTED]> wrote: > > You didn't mention speed in your original post. > > Sorry, perhaps I considered this self-evident - which it is, of course, not. > > > What about using > > array.array? Unless I am mistaken, these are just a thin wrapper > > around normal C arrays. > > The algorithm I want to implement requires several million floating point > operations. Neither the array-modules nor numpy's thin layer seem thin > enough for me. ;-) I'm not sure I understand. Here, taken from Modules/arraymodule.c, is the definition of an arrayobject: typedef struct arrayobject { PyObject_VAR_HEAD char *ob_item; Py_ssize_t allocated; struct arraydescr *ob_descr; PyObject *weakreflist; /* List of weak references */ } arrayobject; Now here is the function that gets an item from an array of floats: static PyObject * f_getitem(arrayobject *ap, Py_ssize_t i) { return PyFloat_FromDouble((double) ((float *)ap->ob_item)[i]); } This means that if you define an array of floats, call the arrayobject 'ap', then (float *)ap->ob_item seems to meexactly what you want: a c array of floats. In what way is this not suitable? > > Anyway you could always convert your list > > into a c array, do lots and lots of fast calculations, then convert it > > back again to a list. > > I guess I am too blind to see, but I couldn't discover a method description > like "double* PyList_toDouble". So, yes, my question is a C-API-newbie > question: What is the way to say "myCarray = SomePyMethod(InputPyList)"? Or > better, what should be here instead > static PyObject *_foo(PyObject *self, PyObject *args) { > double *v; > if (!PyArg_Parse(args, "(d)", &v)) > return NULL; > to get a list as an array of doubles into 'v' (and back to Python)? You can always iterate over the elements of the list an fill your c array with the results. Look at the array_fromlist() function in arraymodule.c, this function does exactly this. HTH -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list
noob stuck on reading double
Hi all, I have a .bin file which python just won't play ball with- Does anyone know what I'm doing wrong- is it simply incompatible? I've read it fine using a C program - its 113 doubleword fields- apparently its possible to handle these in python in a very similar way to C. I can provide the c code and have attached .bin if anyone is interested... Thank you all. It imports as a string of rubbish... i.e. >>> text = f.read() >>> print text ?F?C??y??>? @[EMAIL PROTECTED]@???/???8[EMAIL PROTECTED]/[EMAIL PROTECTED]@?Q???Q???Q???Q???Q??ǑR[???Q??? It won't unpack using struct... >>> unpack('d', text) Traceback (most recent call last): File "", line 1, in File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/struct.py", line 87, in unpack return o.unpack(s) struct.error: unpack requires a string argument of length 8 Using str and repr gets me something that looks like unicode... >>> str(text) '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \xa0F\xa2C\xc0\xd2y\xf9\xf8>[EMAIL PROTECTED]@\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00g[\xa0?B8~\xd4\x00\x00\x00 \x00\x00\x00\xf8\xff\x00\x00\x00\x00\x00\x00\xf8\xff\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\ etc. Tried formatting it... >>> str(text) % ('Python', 'g') Traceback (most recent call last): File "", line 1, in TypeError: not all arguments converted during string formatting Tried converting it to unicode... >>> unicode(text, 'utf8', 'strict') Traceback (most recent call last): File "", line 1, in File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0xa0 in position 19: unexpected code byte I even tried chopping it up into 8 character pieces and then converting it into a float, but I think I'm just being stupid by this point... >>> the_list=[] >>> index = 0 >>> second_dig = 7 >>> while index < (len(bum))/8: ... new_bit = bum[index:second_dig] ... the_list.append(new_bit) ... index += 8 ... second_dig += 8 ... >>> print the_list [u'\x00\x00\x00\x00\x00\x00\x00', u'\x00\x00\x00\x00\x00\x00\x00', u'\x00\x00\x00\ufffdF\ufffdC', u'[EMAIL PROTECTED]', u'[EMAIL PROTECTED]', u'\x00\x00\x00\x01\x00\x00\x00', u'\x00\x00g[\ufffd?B', u'~\ufffd\x00\x00\x00\x00\x00', u'\x00\x00\x00\ufffd\x00\x00\x00', u'\x00\x00\x00\x00\x00\x00\x00', u'\x00\x00\x00\x00\x00\x00\x00', u'\x00\x00\x00\x00\x00\x00\x00', u'\x00\x00\x00\x00\x00\x00\x00'] >>> the_list[1] u'\x00\x00\x00\x00\x00\x00\x00' >>> float(the_list[1]) Traceback (most recent call last): File "", line 1, in UnicodeEncodeError: 'decimal' codec can't encode character u'\x00' in position 0: invalid decimal Unicode string Any ideas? data.bin Description: data.bin -- http://mail.python.org/mailman/listinfo/python-list
Re: ISO with timezone
Thanks, that does help and now I have: >>> from datetime import datetime, tzinfo, timedelta >>> import time >>> class TZ(tzinfo): ...def utcoffset(self,dt): return timedelta(seconds=time.timezone) ... >>> print datetime(2008,2,29,15,30,11,tzinfo=TZ()).isoformat() 2008-02-29T15:30:11+8:00 But what I want to know now it how to get the actual time into the expression instead of typing the 2008,2,29,15 So something like: >>> print datetime(time.gmtime(),tzinfo=TZ()).isoformat(), but that doesn't work. I realize that I could do: >>> t = time.gmtime() >>> print datetime(t[0],t[1],t[2],t[3],t[4],t[5],tzinfo=TZ()).isoformat() but I imagine there might be a cleaner way of doing this. Thanks, Nik On Jan 28, 9:10 pm, "Nicholas F. Fabry" <[EMAIL PROTECTED]> wrote: > Hello, nik. > > On Jan 28, 2008, at 21:03, nik wrote: > > > > > Hi, > > > How does one express the time in ISO format with the timezone > > designator? > > > what I want is -MM-DDThh:mm:ss.sTZD > > >> From the documentation I see: > from datetime import tzinfo, timedelta, datetime > class TZ(tzinfo): > > ... def utcoffset(self, dt): return timedelta(minutes=-399) > > ... > datetime(2002, 12, 25, tzinfo=TZ()).isoformat(' ') > > '2002-12-25 00:00:00-06:39' > > > and I've also figured out: > datetime.datetime.fromtimestamp(time.time()).isoformat()[:-3] > > '2008-01-23T11:22:54.130' > > > But can't figure out how to fit them together. > > There is nothing there to 'fit together' - in the first example given, > the datetime object has no time component specified, so it fills in > default vaules of zero. The following should make this clear: > > >>> your_time = datetime(2008, 2, 29, 15, 30, 11, tzinfo=TZ()) > >>> print your_time > 2008-02-29 15:30:11-05:00 > >>> print your_time.isoformat('T') > 2008-02-29T15:30:11-05:00 > > If you wish to append the NAME of the tzinfo object instead of its > offset, that requires a bit more playing around (along with a properly > defined tzinfo object - check out dateutil or pytz for a concrete > implementation of tzinfo subclasses (i.e. timezones)), but the > following would work: > > >>> print your_time.strftime('%Y-%m-%dT%H:%M:%S %Z') > 2008-02-29T15:30:11 EST > > For details on how the .strftime method works, see Python Standard > Library, Section 14.2. > > I hope this helps! > > Nick Fabry > > > Thank you, > > Nik > > -- > >http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list
Re: noob stuck on reading double
On Jan 29, 2008 1:59 PM, Joe Riopel <[EMAIL PROTECTED]> wrote: > When reading the file, try using > file = open('data.bin', 'rb') > file.seek(0) > raw = file.read() > > Do the unpack on "raw". Ignore this, sorry for the confusion. -- http://mail.python.org/mailman/listinfo/python-list
Re: Mx.ODBC insert error
Thanks John. I now see it John Machin wrote: > > On Jan 30, 3:27 am, Greg Corradini <[EMAIL PROTECTED]> wrote: >> Hello, >> I've never gotten this traceback error before using mx.ODBC. > > "traceback error"?? I see no problem with the traceback. > >> Any ideas about >> resolving this issue? The statement and the error it generates are listed >> below. > > The error was "generated" by you. The error message was generated by > "[Microsoft][ODBC Microsoft Access Driver]" > >> >> curse.execute("Insert into FHWA_StandSamp_2008(LRS_ID_NEW) >> values('040210') where LRS_ID = '0403700010'") >> >> Traceback (most recent call last): >> File "", line 1, in ? >> curse.execute("Insert into FHWA_StandSamp_2008(LRS_ID_NEW) values >> ('040210') where LRS_ID = '0403700010'") >> ProgrammingError: ('37000', -3516, '[Microsoft][ODBC Microsoft Access >> Driver] Missing semicolon (;) at end of SQL statement.', 4612) >> > > Like it says, ProgrammingError. > > Try > INSERT INTO table (columns) VALUES (values) > or > INSERT INTO table (columns) > SELECT stuff FROM somewhere [WHERE boolean_expression] > or perhaps even > UPDATE table SET column = expression WHERE boolean_expression > > Perhaps you could consider avoiding combining random fragments of SQL > or English and hoping for tolerant fuzzy parsing by the recipient :-) > > HTH, > John > -- > http://mail.python.org/mailman/listinfo/python-list > > -- View this message in context: http://www.nabble.com/Mx.ODBC-insert-error-tp15163149p15166795.html Sent from the Python - python-list mailing list archive at Nabble.com. -- http://mail.python.org/mailman/listinfo/python-list