ANN: eric3 3.9.3 released
Hi, this is to inform you about the availability of eric3 version 3.9.3. This release fixes a few bugs and enhances compatibility with subversion 1.4. It is available via http://sourceforge.net/project/showfiles.php?group_id=119070. What is eric3? -- eric3 is an IDE for Python and Ruby. It is written using Python, PyQt and QScintilla. eric3 includes debuggers for the a.m. languages, interfaces to subversion and cvs, integration of the Qt tools and many more. For details please see the eric home page at http://www.die-offenbachs.de/detlev/eric.html. Regards, Detlev -- Detlev Offenbach [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html
ANN: PyTables 1.4 (A Hierarchical Database) released!
=== Announcing PyTables 1.4 === PyTables is a library for managing hierarchical datasets and designed to efficiently cope with extremely large amounts of data with support for full 64-bit file addressing. It is based on the HDF5 library for doing the I/O and leverages the numarray/NumPy/Numeric packages so as to deliver the data to the end user in convenient in-memory containers. This is a new major release of PyTables, and probably the last major one of the 1.x series (i.e. with numarray at the core). On it, we have implemented better code to deal with table buffers, enhanced the capability for reading native HDF5 files, enhanced support for 64-bit platforms (but not with Python 2.5: see ``Special Warning`` section below), better support for AIX, optional automatic parent creation and the traditional amount of bug fixes. Go to the PyTables web site for downloading the beast: http://www.pytables.org/ or keep reading for more info about the new features and bugs fixed. Changes more in depth = Improvements: - Table buffers code refactored: now each Row read iterator has its own buffers, completely independent of their table (although write iterators still share a single buffer in the same table). This separation makes the logic of buffering much more clear and less prone to errors (in fact, some of them have been solved). Performance and memory consumption are more or less equal than before. - When flushing the complete file (i.e. when calling File.flush()), only the buffers of those nodes that are alive (i.e. referenced from user code) are actually flushed. This brings much better efficiency (and also stability) to situations where one has to flush (and hence, close) files with many nodes on it. - Better support for AIX by renaming the internal LONLONG_MAX C constant (it was used internally by the xlc compiler). Thanks to Brian Granger for the report. - Added optional automatic parent creation support during node creation, copying and moving operations. See the release notes for more information. - Improved support for Python2.4 and 64-bit platforms (but beware, there are still known issues when using Python2.5 in combination with 64-bit platforms). Thanks to Gerard Vermeulen for his patches for Win64 platforms. - Implemented a workaround for a leak present in numarray -- Numeric conversions when using the array protocol, as can be seen in: http://comments.gmane.org/gmane.comp.python.numeric.general/12563 The workaround can potentially be far slower than the array protocol (because a copy of the arrays is always made), but at least the new code doesn't leak anymore. Bug fixes: - Previously, when the size for memory compounds type was less than the size of the type on disk (for example, when one have padding or aligned fields), PyTables was unable to read info on them. This has been fixed. This allows reading general compound types in HDF5 files written with other tools than PyTables. - When many tables with indexed columns were created simultaneously, a bug make PyTables to crash. This has been fixed (for more info, see bug #26). - Fixed a typo in the code that prevented recognizing complex data in non-PyTables files. - Table.createIndex() now refuses to index complex columns. - Now, it is possible to index several nested columns that hangs from the same column parent. Fixes bug #24. - Fixed a typo in nctoh5 utility that prevented using filters properly. Thanks to Lou Wicker for reporting this. - When setting/appending an array in-memory to an Array (or descendant) object and they have mismatched byteorders, the array was set/appended without being byteswapped first. This has been fixed. Thanks to Elias Collas for the report. Deprecated features: - None Backward-incompatible changes: - Please, see ``RELEASE-NOTES.txt`` file. Special Warning for Python 2.5 and 64-bit platforms users = Unfortunately, and due to problems with the combination numarray 1.5.2, Python2.5 and 64-bit platforms, PyTables cannot be safely used yet in such scenario. This will be solved either when numarray can address this issue (hopefully with numarray 1.5.3), or when PyTables 2.x series (with NumPy at its core) will be out. Important note for Windows users If you are willing to use PyTables with Python 2.4 or 2.5 in Windows platforms, you will need to get the HDF5 library compiled for MSVC 7.1, aka .NET 2003. It can be found at: ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/current/bin/windows/5-165-win-net.ZIP Users of Python 2.3 on Windows will have to download the version of HDF5 compiled with MSVC 6.0 available in: ftp://ftp.ncsa.uiuc.edu/HDF/HDF5/current/bin/windows/5-165-win.ZIP Platforms = This version has been extensively checked on quite a few platforms, like Linux on
Re: Retrieve Tkinter listbox item by string, not by index
On 12/23/06, Kevin Walzer [EMAIL PROTECTED] wrote: I'm trying to set the active item in a Tkinter listbox to my application's currently-defined default font. Here's how I get the fonts loaded into the listbox: self.fonts=list(tkFont.families()) self.fonts.sort() for item in self.fonts: self.fontlist.insert(END, item) #self.fontlist is the ListBox instance So far, so good. But I don't know how to set the active selection in the listbox to the default font. All the methods for getting or setting a selection in the listbox are based on index, not a string. And using standard list search methods like this: if Courier in self.fontlist: print list contains, value else: print value, not found returns an error: TypeError: cannot concatenate 'str' and 'int' objects So I'm stuck. Can someone point me in the right direction? -- Kevin Walzer Code by Kevin http://www.codebykevin.com -- http://mail.python.org/mailman/listinfo/python-list to me self.fontlist to be a Listbox instance so you cant do a list search on it, to get current selection from a list box use curselection method Listbox self.fontlist.curselection() returns a list of index numbers of currently selected items in a list box, following link has more to say on this http://effbot.org/tkinterbook/listbox.htm -- Godson Gera, http://godson.auroinfo.com -- http://mail.python.org/mailman/listinfo/python-list
Re: httplib and socket.getaddrinfo
At Saturday 23/12/2006 04:21, [EMAIL PROTECTED] wrote: I noticed the following lines from the connect() method of the HTTPConnection class within httplib: for res in socket.getaddrinfo(self.host, self.port, 0, socket.SOCK_STREAM): af, socktype, proto, canonname, sa = res This led me to the docs that describe the socket.getaddrinfo() method: http://www.python.org/doc/2.4.1/lib/module-socket.html Which leads me to these questions: 1) Is it correct to infer from the Resolves the host/port argument, into a sequence of 5-tuples that contain all the necessary argument for the sockets manipulation description in the docs (in particular the reference to 'sequence of 5-tuples') that a single host/port combination may be associated with multiple sets of address information? Yes. By example, multiple addresses for the same service are used for load balancing. Or an IPv4 address plus an IPv6 address. 2) In the very limited applications on which I've used socket.getaddrinfo(), each a host/port combination that my application passes to socket.getaddrinfo() has always returned a 1-entry list where the list is a 5-tuple, in other words, each host/port combination has always been associated with one set of address information. Can someone point me to a host/port combination that, when passed to socket.getaddrinfo() will result in socket.getaddrinfo() returning a list of 1 entry, where each entry is a 5-tuple? Try to relax your restrictions. import socket host = 'www.microsoft.com' port = 'ftp' for res in socket.getaddrinfo(host, port): print res Got 8 results: (2, 1, 0, '', ('207.46.198.30', 21)) (2, 1, 0, '', ('207.46.198.60', 21)) (2, 1, 0, '', ('207.46.199.30', 21)) (2, 1, 0, '', ('207.46.225.60', 21)) (2, 1, 0, '', ('207.46.19.30', 21)) (2, 1, 0, '', ('207.46.19.60', 21)) (2, 1, 0, '', ('207.46.20.30', 21)) (2, 1, 0, '', ('207.46.20.60', 21)) -- Gabriel Genellina Softlab SRL __ Preguntá. Respondé. Descubrí. Todo lo que querías saber, y lo que ni imaginabas, está en Yahoo! Respuestas (Beta). ¡Probalo ya! http://www.yahoo.com.ar/respuestas -- http://mail.python.org/mailman/listinfo/python-list
Re: attribute decorators
Doug Holton wrote: Don't mind Fredrik's trolling. Your examples are perfectly clear if you understand how they would work, can you explain the semantics? however, a similar call for extending the use of decorators to other structures besides functions was rejected: http://lambda-the-ultimate.org/node/1389 class objects and class attributes are two rather different things. and given how decorators work, that difference is rather important. can you perhaps figure out why ? /F -- http://mail.python.org/mailman/listinfo/python-list
Re: One module per class, bad idea?
Matias Jansson wrote: I come from a background of Java and C# where it is common practise to have one class per file in the file/project structure. As I have understood it, it is more common practice to have many classes in a Python module/file. What is the motivation behind it, would it be a bad idea to have a guideline in your project that promotes a one class per file structure (assuming most of the programmers a background similar to mine)? IMO, even the Java practice is weird. I think classes should be split into different files/modules due to their context and not their number... -- http://mail.python.org/mailman/listinfo/python-list
Gdmodule
Hi, Is Gdmodule used much at all in the Python community or are there alternative packages more suitable for the purpose? I seem to find documentation for Gdmodule ( http://newcenturycomputers.net/projects/gd-ref.html) to require prior experience with the GD library in another language. Or at least, it's too difficult for me to grasp. Timothy -- http://mail.python.org/mailman/listinfo/python-list
Multi-line docstrings
The Python docs recommend the use of triple-quoted string literals for docstrings, e.g. def Meet(Alice, Bob) : arranges a meeting between Alice and Bob. Returns a reference to the meeting booking object. ... #end Meet However, these tend to get messed up by indentation whitespace, which gets spuriously included as part of the string. Another possibility is to use implicit concatenation of string literals, e.g. def Meet(Alice, Bob) : arranges a meeting between Alice and Bob. \ Returns a reference to the meeting booking object. ... #end Meet This includes no spurious whitespace, or even any newlines; if you want these, you must put them explicitly in the string: def Meet(Alice, Bob) : arranges a meeting between Alice and Bob.\n \ Returns a reference to the meeting booking object. ... #end Meet -- http://mail.python.org/mailman/listinfo/python-list
Question on regex
Hello all - I have a file which has IP address and subnet number and I use regex to extract the IP separately from subnet. pattern used for IP: \d{1,3}(\.\d{1,3}){3} pattern used for subnet:((\d{1,3})|(\d{1,3}(\.\d{1,3}){1,3}))/(\d{1,2}) so I have list of ip/subnets strewn around like this 10.200.0.34 10.200.4.5 10.178.9.45 10.200/22 10.178/16 10.100.4.64/26, 10.150.100.0/28 10/8 with that above examples: ip regex pattern works for all IP address subnet regex pattern works for all subnets problem now is ip pattern also matches the last 2 subnet numbers, because it falls under ip regex. to fix this problem, i used negative lookahead with ip pattern: so the ip pattern now changes to: \d{1,3}(\.\d{1,3}){3}(?!/\d+) now the problem is 10.150.100.0 works fine, 10.100.4.64 subnet gets matched with ip pattern with the following result: 10.100.4.6 Is there a workaround for this or what should change in ip regex pattern. python script: #!/usr/bin/env python import re, sys fh = 0 try: fh = open(sys.argv[1], r) except IOError, message: print cannot open file: %s %message else: for lines in fh.readlines(): lines = lines.strip() pattIp = re.compile((\d{1,3}(\.\d{1,3}){3})(?!/\d+)) pattNet = re.compile(((\d{1,3})|(\d{1,3}(\.\d{1,3}){1,3}))/(\d{1,2})) match = pattIp.search(lines) if match is not None: print ipmatch: %s %match.groups()[0] match = pattNet.search(lines) if match is not None: print subnet: %s %match.groups()[0] fh.close() output with that above ip/subnet in a file ipmatch: 10.200.0.34 ipmatch: 10.200.4.5 ipmatch: 10.178.9.45 subnet: 10.200 subnet: 10.178 ipmatch: 10.100.4.6 subnet: 10.100.4.64 subnet: 10.150.100.0 subnet: 10 TIA Prabhu begin:vcard fn:Prabhu Gurumurthy n:Gurumurthy;Prabhu org:Silver Spring Networks;IT adr:Suite 205;;2755 Campus Drive;San Mateo;CA;94403;USA email;internet:[EMAIL PROTECTED] title:Network Engineer tel;work:(650) 357 8770 x134 tel;home:(650) 585 6527 tel;cell:(831) 224 0894 x-mozilla-html:FALSE url:http://www.silverspringnet.com version:2.1 end:vcard -- http://mail.python.org/mailman/listinfo/python-list
Re: Xah's Edu Corner: Introduction to 3D Graphics Programing
Xah Lee wrote: Of Interest: to which of comp.lang.perl.misc, comp.lang.python, comp.lang.lisp, comp.lang.java.programmer, comp.lang.functional ? -- http://mail.python.org/mailman/listinfo/python-list
Re: Multi-line docstrings
Lawrence D'Oliveiro [EMAIL PROTECTED] wrote: The Python docs recommend the use of triple-quoted string literals for docstrings, e.g. def Meet(Alice, Bob) : arranges a meeting between Alice and Bob. Returns a reference to the meeting booking object. ... #end Meet However, these tend to get messed up by indentation whitespace, which gets spuriously included as part of the string. Not spuriously included: included by design, but sometimes annoying. If you are just printing __doc__ in interactive mode then live with the extra whitespace. If you are printing out lots of docstrings as part of some documentation tool then use textwrap.dedent to remove the common leading spaces. Another possibility is to use implicit concatenation of string literals, e.g. snip This includes no spurious whitespace, or even any newlines; if you want these, you must put them explicitly in the string: snip ... which is why the triple-quoted format is recommended. BTW, you missed this way of doing it which ensures that all lines, even the first one have the same indentation (and therefore textwrap.dedent will strip it quite nicely): def Meet(Alice, Bob) : '''\ arranges a meeting between Alice and Bob. Returns a reference to the meeting booking object. ''' and if you want to do string concatenation you can always get rid of those pesky backslashes: def Meet(Alice, Bob) : (arranges a meeting between Alice and Bob.\n Returns a reference to the meeting booking object.) -- http://mail.python.org/mailman/listinfo/python-list
Re: Generating all permutations from a regexp
BJörn Lindqvist wrote: With regexps you can search for strings matching it. For example, given the regexp: foobar\d\d\d. foobar123 would match. I want to do the reverse, from a regexp generate all strings that could match it. The regexp: [A-Z]{3}\d{3} should generate the strings AAA000, AAA001, AAA002 ... AAB000, AAB001 ... ZZZ999. Is this possible to do? Obviously, for some regexps the set of matches is unbounded (a list of everything that matches * would be very unpractical), but how would you do it for simple regexps like the one above? For a very small number of characters, it would be feasible. For any finite number of characters, it would be possible (though it wouldn't take much to take longer than the age of the universe). For reference, in your simple example, you have 17,576,000 matching strings. I'm curious as to why you would wish to do this. I certainly understand considering hard problems for their own sake, but when I formulate them, there's always some impetus that makes me say Huh. Now I wonder... -- http://mail.python.org/mailman/listinfo/python-list
ANN: eric3 3.9.3 released
Hi, this is to inform you about the availability of eric3 version 3.9.3. This release fixes a few bugs and enhances compatibility with subversion 1.4. It is available via http://sourceforge.net/project/showfiles.php?group_id=119070. What is eric3? -- eric3 is an IDE for Python and Ruby. It is written using Python, PyQt and QScintilla. eric3 includes debuggers for the a.m. languages, interfaces to subversion and cvs, integration of the Qt tools and many more. For details please see the eric home page at http://www.die-offenbachs.de/detlev/eric.html. Regards, Detlev -- Detlev Offenbach [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Newbie: what is a usefull IDE for Python on Windows ?
what is a usefull IDE for Python on Windows ? I saw Eric mentioned.. is that WinXP or Linux ? What does everybody use ? I was considering using old and very stable C-code in a new web application via Python/Plone/Zope. -- http://mail.python.org/mailman/listinfo/python-list
Re: Question on regex
Prabhu Gurumurthy schrieb: to fix this problem, i used negative lookahead with ip pattern: so the ip pattern now changes to: \d{1,3}(\.\d{1,3}){3}(?!/\d+) now the problem is 10.150.100.0 works fine, 10.100.4.64 subnet gets matched with ip pattern with the following result: 10.100.4.6 Is there a workaround for this or what should change in ip regex pattern. I think what you want is that neither /d+ nor another digit nor a . follows: \d{1,3}(\.\d{1,3}){3}(?!(/\d)|\d|\.) This way 10.0.0.1234 won't be recognized as ip. Neither will 23.12. which could be a problem if an ip is at the end of a sentence, so you might want to omit that. -- http://mail.python.org/mailman/listinfo/python-list
Re: Newbie: what is a usefull IDE for Python on Windows ?
Osiris wrote: what is a usefull IDE for Python on Windows ? I saw Eric mentioned.. is that WinXP or Linux ? What does everybody use ? http://effbot.org/pyfaq/tutor-whats-the-best-editor-ide-for-python /F -- http://mail.python.org/mailman/listinfo/python-list
Re: Multi-line docstrings
Duncan Booth: Not spuriously included: included by design, but sometimes annoying. Then it's a design decision I don't understand... Bye, bearophile -- http://mail.python.org/mailman/listinfo/python-list
Re: Decorator for Enforcing Argument Types
George Sakkis a écrit : John Machin wrote: Peter Wang wrote: Bruno Desthuilliers wrote: my humble opinion Python is dynamic, and fighting against the language is IMHO a really bad idea. The only places where theres a real need for this kind of stuff are when dealing with the outside world (IOW : inputs and outputs). And then packages like formencode can do much more than mere type-checking /my humble opinion (snip) I have also a very recent real-world example to share, from the other side of the fence this time. It's even worse because it's an error that passes silently. Cut-down version follows: @cherrypy.expose def retrieve(self, **kwds): queries = kwds['q'] rows = self._selectRows(*queries) # more stuff 'q' here is a multiselect field that is binded to a list of selected strings. Or so I thought, until someone noticed bizarre results in some cases. Turns out that if you select a single item from the select box, 'q' is binded to a string instead of a list of length 1, so instead of retrieving 'apple', she got back the results for 'a', 'p', 'p', 'l','e'. This is a typical case of converting/validating data from the outside world - something well covered by formencode. Bottom line, type checking is a tricky business. Indeed. In fact, proper type checking would first require some agreement on what's a type... -- http://mail.python.org/mailman/listinfo/python-list
Re: Confusion over calling a nested function inside a parent function
MacDonald a écrit : Pyenos wrote: [code] class WORK: def getwork(self): def choosetable(self):pass choosetable() #TypeError: choosetable() takes exactly 1 #argument (0 given) [/code] Calling choosetable() at the above location gives me the error described above. Although choosetable is a memeber of an instance method, s/is a member of/is defined in/ -- http://mail.python.org/mailman/listinfo/python-list
Re: Newbie: what is a usefull IDE for Python on Windows ?
btw: my system is an AMD 1.8 GHz, 512 Mbyte with WinXPSP2. I saw that a system like Wing would be sluggish ... -- http://mail.python.org/mailman/listinfo/python-list
Re: Confusion over calling a nested function inside a parent function
Pyenos a écrit : [code] You already got the answer - just a pair of stylistic advices: class WORK: 1/ By convention, ALL_UPPER names denote (pseudo) symbolic constants. The convention for class names is CamelCase. 2/ better to use new-style classes. = class Work(object): ... -- http://mail.python.org/mailman/listinfo/python-list
Re: Newbie: what is a usefull IDE for Python on Windows ?
ok, thnx. Thread closed :-) -- http://mail.python.org/mailman/listinfo/python-list
Re: Multi-line docstrings
[EMAIL PROTECTED] wrote: Duncan Booth: Not spuriously included: included by design, but sometimes annoying. Then it's a design decision I don't understand... I think the decision is that the doc string should reflect exactly what you entered in the string. i.e. the system shouldn't tamper with it behind the scenes. -- http://mail.python.org/mailman/listinfo/python-list
Re: [ANN] pyparsing 1.4.5 released
On 22 Dec 2006 19:59:53 -0800, Paul McGuire wrote: Download pyparsing 1.4.5 at http://pyparsing.sourceforge.net. The pyparsing Wiki is at http://pyparsing.wikispaces.com When I click on the sourceforge link above, I get redirected to the wiki. However, http://sourceforge.net/projects/pyparsing/ seems to work. -- Richard -- http://mail.python.org/mailman/listinfo/python-list
Elliptic Curve Library
Hi, I need an elliptic curve library that can be used by python. I googled but couldn't find a one. I'll appreciate, if you could show me. Mike -- http://mail.python.org/mailman/listinfo/python-list
Re: How a script can know if it has been called with the -i command line option?
Peter Wang wrote: Michele Simionato wrote: The subject says it all, I would like a script to act differently when called as $ python script.py and when called as $ python -i script.py. I looked at the sys module but I don't see a way to retrieve the command line flags, where should I look? I realize this is quite a hack, but the entire command line is preserved in the process's entry in the OS's process table. if you do ps -ax you will see that the interpreter was invoked with -i. I didn't test this under windows, but it works on Mac and Linux. That hack might not work - at least, as described, and on Linux or Mac OS if the UNIX-based one, i.e. OS X). Because there could be other users who ran python command lines with or without the -i option. As described, there's no way for this user to know which python invocation is his/hers, and which are of other users. There might be a way, though, if we can get this user's python instance's process id and then grep for a line containing that id (in the appropriate column) in the ps output. Vasudev Ram ~~ Dancing Bison Enterprises http://www.dancingbison.com http://dancingbison.blogspot.com ~~ Check out the cool Snap.com preview feature on my web site. Free signup for anyone at www.snap.com I'm not affiliated with it. -- http://mail.python.org/mailman/listinfo/python-list
Re: Elliptic Curve Library
Mike Tammerman wrote: Hi, I need an elliptic curve library that can be used by python. I googled but couldn't find a one. I'll appreciate, if you could show me. Mike What is the library you need supposed to do? Vasudev Ram Dancing Bison Enterprises www.dancingbison.com -- http://mail.python.org/mailman/listinfo/python-list
Re: How a script can know if it has been called with the -i command line option?
vasudevram wrote: Peter Wang wrote: Michele Simionato wrote: The subject says it all, I would like a script to act differently when called as $ python script.py and when called as $ python -i script.py. I looked at the sys module but I don't see a way to retrieve the command line flags, where should I look? I realize this is quite a hack, but the entire command line is preserved in the process's entry in the OS's process table. if you do ps -ax you will see that the interpreter was invoked with -i. I didn't test this under windows, but it works on Mac and Linux. That hack might not work - at least, as described, and on Linux or Mac OS if the UNIX-based one, i.e. OS X). Because there could be other users who ran python command lines with or without the -i option. As described, there's no way for this user to know which python invocation is his/hers, and which are of other users. There might be a way, though, if we can get this user's python instance's process id and then grep for a line containing that id (in the appropriate column) in the ps output. Vasudev Ram ~~ Dancing Bison Enterprises http://www.dancingbison.com http://dancingbison.blogspot.com ~~ Check out the cool Snap.com preview feature on my web site. Free signup for anyone at www.snap.com I'm not affiliated with it. Just realized: getting the python process's process id is possible from the Python program itself, using os.getpid(). Vasudev -- http://mail.python.org/mailman/listinfo/python-list
Re: pyparsing 1.4.5 released
On Dec 23, 9:07 am, Richard Townsend [EMAIL PROTECTED] wrote: On 22 Dec 2006 19:59:53 -0800, Paul McGuire wrote: Download pyparsing 1.4.5 athttp://pyparsing.sourceforge.net. The pyparsing Wiki is athttp://pyparsing.wikispaces.comWhen I click on the sourceforge link above, I get redirected to the wiki. However,http://sourceforge.net/projects/pyparsing/ seems to work. -- Richard Thanks, I'll update my announcement template. -- Paul -- http://mail.python.org/mailman/listinfo/python-list
Re: Elliptic Curve Library
I will try to implement an ID-Based Cryptography. I also need bilinear pairing operations. Mike vasudevram wrote: Mike Tammerman wrote: Hi, I need an elliptic curve library that can be used by python. I googled but couldn't find a one. I'll appreciate, if you could show me. Mike What is the library you need supposed to do? Vasudev Ram Dancing Bison Enterprises www.dancingbison.com -- http://mail.python.org/mailman/listinfo/python-list
Add/Remove Channels in Asyncore?
I've implemented a real basic IRC client class in 100 lines using asynchat (yes I know about Twisted). The problem I'm having is arbitrarily starting and stopping multiple instances of this class after I call loop(). The asyncore docs seem to imply everything's fixed in stone once loop() is called, where they say, Once the initial channel(s) is(are) created, calling the loop() function activates channel service, which continues until the last channel (including any that have been added to the map during asynchronous service) is closed. After I call asyncore.loop(), I'd like to be able to add/remove clients (channels?) to/from execution by asyncore. Is this possible? Thanks, Chris -- http://mail.python.org/mailman/listinfo/python-list
Re: let me simplify my question on scope of vars
Pyenos wrote: code var=1 class CLASS: def METHOD1: def METHOD2: var+=var return var METHOD2() #line8 return var METHOD1() #line10 end code Q1: does class CLASS inherit var=0 from line1? Q2: does def METHOD1 inherit var=0 from line1? Q3: does def METHOD2 inherit var=0 from line1? Q3: does line8 return '2'? Q4: does line10 return '2\n2'? Some print statements could verify, but my guess for your quiz are: A1: Yes A2: Yes A3: Yes A4: It should return 1, Method 2 is never called. I've modified you code a little, so that you can experiment with print statements. Colin W. # Pyenos wrote: code var=1 print id(var) class CLASS: def METHOD1(self): def METHOD2(): var+=var print id(var) return var METHOD2() #line8 return var c= CLASS() print c.METHOD1() #line10 end code -- http://mail.python.org/mailman/listinfo/python-list
Re: Add/Remove Channels in Asyncore?
Chris wrote: I've implemented a real basic IRC client class in 100 lines using asynchat (yes I know about Twisted). The problem I'm having is arbitrarily starting and stopping multiple instances of this class after I call loop(). The asyncore docs seem to imply everything's fixed in stone once loop() is called, where they say, Once the initial channel(s) is(are) created, calling the loop() function activates channel service, which continues until the last channel (including any that have been added to the map during asynchronous service) is closed. After I call asyncore.loop(), I'd like to be able to add/remove clients (channels?) to/from execution by asyncore. Is this possible? the usual way to do that is to add new channels in callbacks, in response to other server activities. if you want to deal with this from the program calling asyncore.loop, use the count option to tell loop to return after N events. e.g: while 1: asyncore.loop(0.05, count=20) # wait for max 1 second add/remove channels here /F -- http://mail.python.org/mailman/listinfo/python-list
Re: removing the header from a gzip'd string
Bjoern Schliessmann wrote: Rajarshi wrote: Does anybody know how I can remove the header portion of the compressed bytes, such that I only have the compressed data remaining? (Obviously I do not intend to perform the decompression!) Just curious: What's your goal? :) A home made hash function? Actually I was implementing the use of the normalized compression distance to evaluate molecular similarity as described in an article in J.Chem.Inf.Model (http://dx.doi.org/10.1021/ci600384z, subscriber access only, unfortunately). Essentially, they note that the NCD does not always bevave like a metric and one reason they put forward is that this may be due to the size of the header portion (they were using the command line gzip and bzip2 programs) compared to the strings being compressed (which are on average 48 bytes long). So I was interested to see if the NCD behaved like a metric if I removed everything that was not the compressed string. And since I only need to calculate similarity between two strings, I do not need to do any decompression. -- http://mail.python.org/mailman/listinfo/python-list
Re: removing the header from a gzip'd string
[EMAIL PROTECTED] wrote: Actually I was implementing the use of the normalized compression distance to evaluate molecular similarity as described in an article in J.Chem.Inf.Model (http://dx.doi.org/10.1021/ci600384z, subscriber access only, unfortunately). Interesting. Thanks for the reply. Regards, Björn -- BOFH excuse #438: sticky bit has come loose -- http://mail.python.org/mailman/listinfo/python-list
Re: Newbie: what is a usefull IDE for Python on Windows ?
in addition to the effbot link, search the group http://tinyurl.com/yyuxco -- http://mail.python.org/mailman/listinfo/python-list
Re: Xah's Edu Corner: Introduction to 3D Graphics Programing
Xah Lee wrote: Introduction to 3D Graphics Programing http://xahlee.org/3d/index.html You will probably find it more rewarding to use a more modern graphics system, such as OpenGL or DirectX, with a suitable programming language rather than Mathematica's. I would recommend any of OCaml, F#, Haskell, Lisp, Scheme, Python or Ruby for graphics, you can do much more sophisticated, animated, real time visualisations than you can with Mathematica's primitives. There are lots of great web pages out there. I've written some 2D and 3D graphics examples in OCaml: http://www.ffconsultancy.com/products/ocaml_for_scientists/visualisation http://www.ffconsultancy.com/free/ray_tracer http://www.ffconsultancy.com/free/fractal http://www.ffconsultancy.com/free/maze and more recently F#: http://www.ffconsultancy.com/dotnet/fsharp I was very impressed with the tutorial videos on VPython at ShowMeDo: http://showmedo.com/videos/series?name=pythonThompsonVPythonSeries For an introduction to OpenGL, look no further than the NeHe tutorials at GameDev: http://nehe.gamedev.net One of our future products at FF Consultancy is a suite of extensions for the F# interactive mode that allows you to visualise 2D and 3D graphics in real time with simplicity rivalling Mathematica but the sophistication and performance of DirectX, whilst also having the power of the F# programming language and .NET to analyse your data. -- Dr Jon D Harrop, Flying Frog Consultancy Objective CAML for Scientists http://www.ffconsultancy.com/products/ocaml_for_scientists/index.html?usenet -- http://mail.python.org/mailman/listinfo/python-list
Re: Elliptic Curve Library
Mike Tammerman wrote: I need an elliptic curve library that can be used by python. I googled but couldn't find a one. I'll appreciate, if you could show me. You could look at http://sage.scipy.org/sage/ http://sage.scipy.org/sage/features.html Jaap -- http://mail.python.org/mailman/listinfo/python-list
Re: textwrap.dedent replaces tabs?
Frederic Rentsch wrote: Following a call to dedent () it shouldn't be hard to translate leading groups of so many spaces back to tabs. Sure, but the point is more that I don't think it's valid to change to tabs in the first place. E.g.: input = ' ' + '\t' + 'hello\n' + '\t' + 'world' output = textwrap.dedent(input) will yield all of the leading whitespace stripped, which IMHO is a violation of its stated function. In this case, nothing should be stripped, because the leading whitespace in these two lines does not /actually/ match. Sure, it visually matches, but that's not the point (although I can understand that that's a point of contention in the interpreter anyway, I would have no problem with it not accepting 1 tab = 8 spaces for indentation... But that's another holy war. If I understand your problem, you want to restore the dedented line to its original composition if spaces and tabs are mixed and this doesn't work because the information doesn't survive dedent (). Sure, although would there be a case to be made to simply not strip the tabs in the first place? Like this, keeping current functionality and everything... (although I would think if someone wanted tabs expanded, they'd call expandtabs on the input before calling the function!): def dedent(text, expand_tabs=True): dedent(text : string, expand_tabs : bool) - string Remove any whitespace than can be uniformly removed from the left of every line in `text`, optionally expanding tabs before altering the text. This can be used e.g. to make triple-quoted strings line up with the left edge of screen/whatever, while still presenting it in the source code in indented form. For example: def test(): # end first line with \ to avoid the empty line! s = '''\ hello \t world ''' print repr(s) # prints ' hello\n\t world\n' print repr(dedent(s)) # prints ' hello\n\t world\n' if expand_tabs: text = text.expandtabs() lines = text.split('\n') margin = None for line in lines: if margin is None: content = line.lstrip() if not content: continue indent = len(line) - len(content) margin = line[:indent] elif not line.startswith(margin): if len(line) len(margin): content = line.lstrip() if not content: continue while not line.startswith(margin): margin = margin[:-1] if margin is not None and len(margin) 0: margin = len(margin) for i in range(len(lines)): lines[i] = lines[i][margin:] return '\n'.join(lines) import unittest class DedentTest(unittest.TestCase): def testBasicWithSpaces(self): input = \n Hello\n World expected = \nHello\n World self.failUnlessEqual(expected, dedent(input)) def testBasicWithTabLeadersSpacesInside(self): input = \n\tHello\n\t World expected = \nHello\n World self.failUnlessEqual(expected, dedent(input, False)) def testAllTabs(self): input = \t\tHello\n\tWorld expected = \tHello\nWorld self.failUnlessEqual(expected, dedent(input, False)) def testFirstLineNotIndented(self): input = Hello\n\tWorld expected = input self.failUnlessEqual(expected, dedent(input, False)) def testMixedTabsAndSpaces(self): input = \t Hello\n \tWorld expected = \t Hello\n \tWorld self.failUnlessEqual(expected, dedent(input, False)) if __name__ == '__main__': unittest.main() -tom! -- -- http://mail.python.org/mailman/listinfo/python-list
Re: Xah's Edu Corner: Introduction to 3D Graphics Programing
Boris Borcic wrote: Xah Lee wrote: Of Interest: to which of comp.lang.perl.misc, comp.lang.python, comp.lang.lisp, comp.lang.java.programmer, comp.lang.functional ? You must be new. Otherwise you would be familiar with this troll already. jue -- http://mail.python.org/mailman/listinfo/python-list
Re: merits of Lisp vs Python
Lars Rune Nøstdal wrote: On Fri, 08 Dec 2006 03:07:09 -0800, Mark Tarver wrote: How do you compare Python to Lisp? What specific advantages do you think that one has over the other? Note I'm not a Python person and I have no axes to grind here. This is just a question for my general education. Mark Kill this frakkin thread; Lisp rules -- while Python is boring (but better than many other alternatives). E.O.F. Perhaps only with the addendum that although 'Lisp roolz', no-one uses for anything of relevance anymore and it is continuing it's geriatric decline into obscurity. ;-) Python is dull, except to the ever increasing group of programmers who use it for practical purposes. Hmm... a fitting. EOF. Fuzzyman http://www.voidspace.org.uk/python/articles.shtml -- Lars Rune Nøstdal http://nostdal.org/ -- http://mail.python.org/mailman/listinfo/python-list
Re: PyExcelerator: how to set colours?
Gerry wrote: I'd like some cell to be a Blue ABCDE. Here's come code thatv tries various values for pattern_for_colour and font.colour_index, to no avail. Can anyone suggest the right way to set colours? Thanks! Gerry == from pyExcelerator import * w = Workbook() ws = w.add_sheet('alpha') style = XFStyle() fore_colour = style.pattern.pattern_fore_colour back_colour = style.pattern.pattern_back_colour ws.write (1, 1, fore_colour) ws.write (1, 2, fore_colour) ws.write (2, 1, back_colour) ws.write (2, 2, back_colour) text= ABCDE row = 5 for offset in range(-32,512): row += 1 style.font.colour_index = fore_colour + offset ws.write(row,3, fore_colour + offset, style) ws.write(row,5,text,style) style.pattern.pattern_fore_colour = fore_colour + offset ws.write(row,6,text,style) w.save('test.xls') = shows no colour variation for any of these values of offset. Is this what you were after? -- from pyExcelerator import * w = Workbook() ws = w.add_sheet('boo') style = XFStyle() fore_colour = style.pattern.pattern_fore_colour back_colour = style.pattern.pattern_back_colour ws.write (1, 1, fore_colour) ws.write (1, 2, fore_colour) ws.write (2, 1, back_colour) ws.write (2, 2, back_colour) text = ABCDE row = 5 for offset in range(-32,512): row += 1 fnt = Font() fnt.colour_index = fore_colour + offset style.font = fnt ws.write(row, 3, offset, style) ws.write(row, 5, text, style) p = Pattern() p.pattern_fore_colour = fore_colour + offset p.pattern = style.pattern.SOLID_PATTERN style.pattern = p ws.write(row, 6, text, style) w.save('test.xls') Waldemar -- http://mail.python.org/mailman/listinfo/python-list
Re: merits of Lisp vs Python
All of you are nazis! -- http://mail.python.org/mailman/listinfo/python-list
Re: merits of Lisp vs Python
defcon8 wrote: All of you are nazis! Hmmm... that might work. :-) Fuzzyman http://www.voidspace.org.uk/python/articles.shtml -- http://mail.python.org/mailman/listinfo/python-list
Getting the name of an assignment
Is it possible for an object, in its __init__ method, to find out if it is being assigned to a variable, and if so, what that variable's name is? I can think of some potentially ugly ways of finding out using sys._getframe, but if possible I'd prefer something less exotic. (Basically I have a class whose instances, upon being created, need a 'name' property, and if it's being assigned to a variable immediately, that variable's name would be the best value of 'name'; to make the code cleaner and less redundant, it would be best if it knew its own name upon creation, just like functions and classes do, without the code having to pass it its own name as a string.) -- http://mail.python.org/mailman/listinfo/python-list
Re: Generating all permutations from a regexp
Fredrik Lundh wrote: Nick Craig-Wood wrote: A regular expression matcher uses a state machine to match strings. unless it's the kind of regular expression matcher that doesn't use a state machine, like the one in Python. /F How is the matching engine implemented then? I thought regular languages can be described by deterministic / non-deterministic finite state machines. I am just curious ... Thomas -- http://mail.python.org/mailman/listinfo/python-list
Re: Fall of Roman Empire
Delaney, Timothy (Tim) wrote: Hendrik van Rooyen wrote: naaah - you don't have to worry - for real control He uses assembler. with jump statements. so the loops are closed. Unfortunately its not open source. Yet. People are working hard on reverse-engineering it though. I hope no one slaps them with a DMCA-style lawsuit ... Tim Delaney I heard Steve Ballmer recently made an offer to the pope for purchasing the license for an apple and an egg (Apfel und Ei). Thomas -- http://mail.python.org/mailman/listinfo/python-list
Re: Getting the name of an assignment
On 23 Dec 2006 14:38:19 -0800, Adam Atlas [EMAIL PROTECTED] wrote: Is it possible for an object, in its __init__ method, to find out if it is being assigned to a variable, and if so, what that variable's name is? I can think of some potentially ugly ways of finding out using sys._getframe, but if possible I'd prefer something less exotic. (Basically I have a class whose instances, upon being created, need a 'name' property, and if it's being assigned to a variable immediately, that variable's name would be the best value of 'name'; to make the code cleaner and less redundant, it would be best if it knew its own name upon creation, just like functions and classes do, without the code having to pass it its own name as a string.) I guess you mean something like this: olle = Person() olle.name olle Instead of: olle = Person(olle) olle.name olle It is not possible without ugly hacks. What you could use instead is some kind of registry approach: reg = {} class Person: def __init__(self, name): self.name = name reg[name] = self Person(olle) reg[olle].name olle I think there are thousand different ways you could solve it. -- mvh Björn -- http://mail.python.org/mailman/listinfo/python-list
Re: Generating all permutations from a regexp
Thomas Ploch wrote: Fredrik Lundh wrote: Nick Craig-Wood wrote: A regular expression matcher uses a state machine to match strings. unless it's the kind of regular expression matcher that doesn't use a state machine, like the one in Python. /F How is the matching engine implemented then? I thought regular languages can be described by deterministic / non-deterministic finite state machines. I am just curious ... Regular expressions are described by N?DFAs, but Perl-compatible regular expressions (which pretty much every language implements now) are not true regular expressions. They are actually Turing complete, and thus have features that cannot be implemented in N?DFAs. -- http://mail.python.org/mailman/listinfo/python-list
Re: Getting the name of an assignment
On Dec 23, 5:58 pm, BJörn Lindqvist [EMAIL PROTECTED] wrote: On 23 Dec 2006 14:38:19 -0800, Adam Atlas [EMAIL PROTECTED] wrote: Is it possible for an object, in its __init__ method, to find out if it is being assigned to a variable, and if so, what that variable's name is? I can think of some potentially ugly ways of finding out using sys._getframe, but if possible I'd prefer something less exotic. (Basically I have a class whose instances, upon being created, need a 'name' property, and if it's being assigned to a variable immediately, that variable's name would be the best value of 'name'; to make the code cleaner and less redundant, it would be best if it knew its own name upon creation, just like functions and classes do, without the code having to pass it its own name as a string.)I guess you mean something like this: olle = Person() olle.nameolle Instead of: olle = Person(olle) olle.nameolle It is not possible without ugly hacks. What you could use instead is some kind of registry approach: reg = {} class Person: def __init__(self, name): self.name = name reg[name] = self Person(olle) reg[olle].nameolle I think there are thousand different ways you could solve it. Yeah, I've thought of ways like that. I was just hoping to make the syntax as minimal and Pythonic as possible. I have the following working: import sys class c: def __init__(self): f = sys._getframe(1) names = [n for n in f.f_code.co_names if n not in f.f_locals] if len(names) 0: name = names[0] print name a = c() # prints 'a' b = 'blah' b = c() # prints nothing Question: too evil? -- http://mail.python.org/mailman/listinfo/python-list
Re: Getting the name of an assignment
On Sat, 23 Dec 2006 14:38:19 -0800, Adam Atlas wrote: Is it possible for an object, in its __init__ method, to find out if it is being assigned to a variable, and if so, what that variable's name is? What should the variable name be set to if you do one of the following? john = eric = graham = terry = Named_Instance() some_list = [None, 1, string, Named_Instance()] fred = Named_Instance(); barney = fred; del fred Name assignment is not a one-to-one operation. An object can have no name, one name or many names. If your code assumes such a one-to-one relationship between names and objects, it is wrong. I can think of some potentially ugly ways of finding out using sys._getframe, but if possible I'd prefer something less exotic. (Basically I have a class whose instances, upon being created, need a 'name' property, and if it's being assigned to a variable immediately, that variable's name would be the best value of 'name'; to make the code cleaner and less redundant, it would be best if it knew its own name upon creation, just like functions and classes do, without the code having to pass it its own name as a string.) I suggest rethinking your data model, and accept that the name attribute of an object is not necessarily the same as the name it is bound to. If you still want a convenience function that names the object and binds it to a name at the same time, try something like this: def Make_A_Named_Instance(name, *args, **kwargs): globals()[name] = Named_Instance(*args, **kwargs) globals()[name].name = name You might be tempted to replace globals() with locals() in the above. Don't -- it doesn't generally work: http://docs.python.org/lib/built-in-funcs.html -- Steven. -- http://mail.python.org/mailman/listinfo/python-list
Re: Class constant for extension
[EMAIL PROTECTED] wrote: Hi, I have written a small prototype Python extension for a C-library. I have the methods all sorted out and it is working fine. In the C-library, they are various constants of types like string, integer, float and matrix. I'd like to expose them as READONLY values. Is the use of PyMemberDefs a suitable way to provide such access? I'd like the user of the extension to be able to do something like the follow import MyExtension MyExtension.begin() mv = MyExtension.minValue MyExtension.process(MyExtension.versionStr) MyExtension.end() Is someone able to point me to an example code of how I can write my extension so that the references to those constants can be used in the above way. Regards A couple of years ago I wanted to do something similar for a project I was working on. Below is a snippet of some sample C code from the module's initialization function which should give you an idea of the approach used. It's a limited example and only creates module identifiers for simple integer values, not the more complex types you are interested in, nor does it do anything to make them read only, but it might help get you started. If you find something that addresses these deficiencies, please post your findings. Best, -Martin // snippet #include Python.h enum METAtags { kMETA_MojikumiX4051 = 0, kMETA_UNIUnifiedBaseChars = 1, kMETA_BaseFontName = 2 } void initPyExtension() { PyObject *m, *d, *o; m = Py_InitModule4(PyExtension, pyis_methods, PySING_module_documentation, (PyObject*)NULL, PYTHON_API_VERSION); // Add some symbolic constants to the module d = PyModule_GetDict(m); // get modules dictionary PyObject* o = PyInt_FromLong(kMETA_MojikumiX4051); PyDict_SetItemString(d, idMojikumiX4051, o); Py_INCREF(o); // for dictionary ref PyObject* o = PyInt_FromLong(kMETA_UNIUnifiedBaseChars); PyDict_SetItemString(d, idUNIUnifiedBaseChars, obj); Py_INCREF(o); PyObject* o = PyInt_FromLong(kMETA_BaseFontName); PyDict_SetItemString(d, idBaseFontName, obj); Py_INCREF(o); . . . -- http://mail.python.org/mailman/listinfo/python-list
Re: Use a Thread to reload a Module?
On 12/23/06, Hendrik van Rooyen [EMAIL PROTECTED] wrote: have you looked at putting the data into a persistent dict? - Hendrik What is that exactly? -Greg -- http://mail.python.org/mailman/listinfo/python-list
Help please using telnetlib module
Hi Guys, I just started learning Python a couple of days ago and to put some of what I learnt into practice. As such I thought I might try and write a simple program (based on examples I had seen) that would allow me to log into a Cisco router, enter configuration mode, change an interface description and also grab a snapshot of the running configuration. So far I've managed to be able to log in and change the interface configuration. The tn.read_until() function seems to work pretty much as I expected however for the life of me I cannot get the running configuration to display with any of the read functions. Suggestion pleasemy code thus far follows: import getpass import sys import telnetlib #This can actually log in and change an interface description on a router HOST = xxx.xxx.xxx.xxx #user = raw_input(Enter your remote account: ) #password = getpass.getpass() password = tacis345int tn = telnetlib.Telnet(HOST) #tn.interact() tn.read_until(Password:) tn.write(password + \n) #if password: #tn.read_until(Password: ) #tn.write(password + \n) tn.read_until(port) #tn.write(show version\n) #tn.write(\n\n) #tn.read_until(port) tn.write(enable\n) tn.read_until(assword: ) tn.write(tacis345int\n) tn.read_until(port#) tn.write(conf t\n) tn.read_until(config)#) tn.write(int ethernet0\n) tn.read_until(config) tn.write(desc This was written by my script\n) tn.write(show run\n) print tn.read_very_lazy() tn.write(exit\n) tn.read_until(#) tn.write(quit\n) tn.close() print tn.read_all() The only output I get from this is: -if)# show I have tried the other read options but nothing seems to work for me. I'm obviously missing something, so if anyone could shed some light that would be great. -- http://mail.python.org/mailman/listinfo/python-list
Re: regular expression
Reminder: anything crossposted across this many newsgroups, especially asking an inherently bogus question, is probably just trolling. If it's equally on topic everywhere, that means it's on topic nowhere. -- () ASCII Ribbon Campaign | Joe Kesselman /\ Stamp out HTML e-mail! | System architexture and kinetic poetry -- http://mail.python.org/mailman/listinfo/python-list
Re: Getting the name of an assignment
Adam Atlas wrote: Is it possible for an object, in its __init__ method, to find out if it is being assigned to a variable, and if so, what that variable's name is? I can think of some potentially ugly ways of finding out using sys._getframe, but if possible I'd prefer something less exotic. (Basically I have a class whose instances, upon being created, need a 'name' property, and if it's being assigned to a variable immediately, that variable's name would be the best value of 'name'; to make the code cleaner and less redundant, it would be best if it knew its own name upon creation, just like functions and classes do, without the code having to pass it its own name as a string.) As others have mentioned, in general the answer is no. However, class statements do have access to the name they're assigned, so you could abuse a class statement like this:: # your class whose instances need a name property class C(object): ... def __init__(self, name): ... self.name = name ... @classmethod ... def from_class_block(cls, name, bases, blockdict): ... return cls(name) ... # instances of your class with the appropriate names class instance: ... __metaclass__ = C.from_class_block ... instance.name 'instance' Though it doesn't rely on private functions like sys._getframe, it's still sure to confuse the hell out of your users. ;-) STeVe -- http://mail.python.org/mailman/listinfo/python-list
split string with hieroglyphs
Hi. Essence of problem in the following: Here is lines in utf8 of this form BZ?ツーリTV%ツキDVD Is it possible to split them into the fragments that contain only latin printable symbols (aplhabet + ?# etc) and fragments with the hieroglyphs, so it could be like this ['BZ?', '\xe3\x83\x84\xe3\x83\xbc\xe3\x83\xaa', 'TV%', '\xe3\x83\x84\xe3\x82\xad', 'DVD'] ? Then, after translate of hieroglyphs, necessary to join line, so it could be like this BZ? navigation TV% display DVD Thanks. -- http://mail.python.org/mailman/listinfo/python-list
Re: Getting the name of an assignment
Thanks, Steven and Steven. @Bethard: Isn't it a bit convoluted to use metaclasses? someinstance.__class__.__name__ does the same thing. @D'Aprano: Thanks for the advice to rethink my data model. I'm doing so right now, and I've already come up with a way that makes more sense. :) -- http://mail.python.org/mailman/listinfo/python-list
some OT: how to solve this kind of problem in our program?
1. first of all, what is the English jargon (Optimize? But I think this is not a very good keyword :( )for this problem? So I can use it to search on the internet 2. is there any free/open lib for this? 3. I know for some questions(case 1, case 2, and sudoku), we can use bundles of FOR...NEXT loop to program. however I think it is clumsy and inconvenient, especially when there is many vars 4. I don't know how to deal with case 3 and case 4 case: 1. choose x0~x9 from 1~9, and must use all of 1~9, let x0/(10*x1+x2)+x3/(10*x4+x5)+x6/(10*x7+x8)=1/2 2. choose x0~x15 from 1~16, and must use all of 1~16, let +-+-+-+-+ | x0 | x1 | x2 | x3 | +-+-+-+-+ | x4 | x5 | x6 | x7 | +-+-+-+-+ | x8 | x9 | x10 | x11 | +-+-+-+-+ | x12 | x13 | x14 | x15 | +-+-+-+-+ sum of every column =sum of of every row = x0+x5+x10+x11 =x3+x6+x9+x12 3: calculate the minimum of sin((z*x-0.5)^2 + x*2*y^2-z/10)*exp(-((x-0.5-exp(-y+z))^2 + y^2-z/5+3)) where x in [-1,7], y in [-2,2] 4: calculate the root [x,y,z], let (x-0.3)^y^z+x/y/z-x*y*sin(z)+(x+y-z)^cos(x-1) = 1 (y-0.2)^z^x+y/z/x-y*z*sin(x)+(y+z-x)^cos(y-2) = 2 (z-0.1)^x^y+z/x/y-z*x*sin(y)+(z+x-y)^cos(z-3) = 3 I have written the case 1 in python, it needs 90 seconds on my pc, and the same approach in www.freebasic.net takes less than 1 seconds [code for python] import sets import time try: import psyco psyco.full() except: pass d0, d1=1, 2 st=time.time() result=[] for a0 in range(1,10): for a1 in sets.Set(range(1,10))-sets.Set([a0]): for a2 in sets.Set(range(1,10))-sets.Set([a0,a1]): a1a2=a1*10+a2 if 2*a0 a1a2: for b0 in sets.Set(range(1,10))-sets.Set([a0,a1,a2]): for b1 in sets.Set(range(1,10))-sets.Set([a0,a1,a2,b0]): for b2 in sets.Set(range(1,10))-sets.Set([a0,a1,a2,b0, b1]): b1b2=b1*10+b2 if 2*a0*b1b2 + 2*b0*a1a2 a1a2*b1b2: for c0 in sets.Set(range(1,10))-sets.Set([a0,a1,a2,b0, b1, b2]): for c1 in sets.Set(range(1,10))-sets.Set([a0,a1,a2,b0, b1, b2, c0]): for c2 in sets.Set(range(1,10))-sets.Set([a0,a1,a2,b0, b1, b2, c0, c1]): c1c2=c1*10+c2 if d1*a0*b1b2*c1c2 + d1*b0*a1a2*c1c2 + d1*c0*a1a2*b1b2 == d0*a1a2*b1b2*c1c2: aresult=[[a0, a1, a2], [b0, b1, b2], [c0, c1, c2]] aresult.sort() if aresult not in result: result.append(aresult) et=time.time() print 'time elapsed: %s s' % (et-st) for [[a0, a1, a2], [b0, b1, b2], [c0, c1, c2]] in result: print ' %0d %0d %0d %0d' % (a0, b0, c0, d0) print '--- + --- + --- = ---' print ' %0d%0d%0d%0d%0d%0d %0d' %(a1, a2, b1, b2, c1,c2, d1) print [/code] -- http://mail.python.org/mailman/listinfo/python-list
Re: split string with hieroglyphs
On Sat, 23 Dec 2006 19:28:48 -0800, Belize wrote: Hi. Essence of problem in the following: Here is lines in utf8 of this form BZ???TV%??DVD Is it possible to split them into the fragments that contain only latin printable symbols (aplhabet + ?# etc) Of course it is possible, but there probably isn't a built-in function to do it. Write a program to do it. and fragments with the hieroglyphs, so it could be like this ['BZ?', '\xe3\x83\x84\xe3\x83\xbc\xe3\x83\xaa', 'TV%', '\xe3\x83\x84\xe3\x82\xad', 'DVD'] ? def split_fragments(s): Split a string s into Latin and non-Latin fragments. # Warning -- untested. fragments = [] # hold the string fragments latin = [] # temporary accumulator for Latin fragment nonlatin = [] # temporary accumulator for non-Latin fragment for c in s: if islatin(c): if nonlatin: fragments.append(''.join(nonlatin)) nonlatin = [] latin.append(c) else: if latin: fragments.append(''.join(latin)) latin = [] nonlatin.append(c) return fragments I leave it to you to write the function islatin. Hints: There is a Perl module to guess the encoding: http://search.cpan.org/~dankogai/Encode-2.18/lib/Encode/Guess.pm You might like to read this too: http://effbot.org/pyfaq/what-does-unicodeerror-ascii-decoding-encoding-error-ordinal-not-in-range-128-mean.htm I also recommend you read this recipe: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/251871 And look at the module unicodedata. Then, after translate of hieroglyphs, necessary to join line, so it could be like this BZ? navigation TV% display DVD def join_fragments(fragments) accumulator = [] for fragment in fragments: if islatin(fragment): accumulator.append(fragment) else: accumulator.append(translate_hieroglyphics(fragment)) return ''.join(accumulator) I leave it to you to write the function translate_hieroglyphics. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list
Re: some OT: how to solve this kind of problem in our program?
oyster wrote: [snip] I have written the case 1 in python, it needs 90 seconds on my pc, and the same approach in www.freebasic.net takes less than 1 seconds [code for python] import sets import time try: import psyco psyco.full() except: pass d0, d1=1, 2 st=time.time() result=[] for a0 in range(1,10): for a1 in sets.Set(range(1,10))-sets.Set([a0]): for a2 in sets.Set(range(1,10))-sets.Set([a0,a1]): a1a2=a1*10+a2 if 2*a0 a1a2: for b0 in sets.Set(range(1,10))-sets.Set([a0,a1,a2]): for b1 in sets.Set(range(1,10))-sets.Set([a0,a1,a2,b0]): for b2 in sets.Set(range(1,10))-sets.Set([a0,a1,a2,b0, b1]): b1b2=b1*10+b2 if 2*a0*b1b2 + 2*b0*a1a2 a1a2*b1b2: for c0 in sets.Set(range(1,10))-sets.Set([a0,a1,a2,b0, b1, b2]): for c1 in sets.Set(range(1,10))-sets.Set([a0,a1,a2,b0, b1, b2, c0]): for c2 in sets.Set(range(1,10))-sets.Set([a0,a1,a2,b0, b1, b2, c0, c1]): Has it not occurred to you to calculate sets.Set(range(1,10)) *ONCE*, store it, and reuse it? For the remaining uses of sets.Set, do set = sets.Set once up the front, and remember to remove it when (as you should!) you upgrade off Python 2.3. HTH, John -- http://mail.python.org/mailman/listinfo/python-list
Re: Getting the name of an assignment
Adam Atlas wrote: Isn't it a bit convoluted to use metaclasses? Yep. It's a well known fact that putting convoluted and metaclasses in the same sentence is repetitively redundant. ;-) someinstance.__class__.__name__ does the same thing. No, not really:: class C(object): ... def __init__(self, name): ... self.name = name ... @classmethod ... def from_class_block(cls, name, bases, blockdict): ... return cls(name) ... c = C('foo') c.name 'foo' type(c) class '__main__.C' c.__class__.__name__ 'C' class foo: ... __metaclass__ = C.from_class_block ... foo.name 'foo' type(foo) class '__main__.C' foo.__class__.__name__ 'C' Note that the ``class foo`` statement is not creating a class. It's creating an instance of ``C``. So it really is doing something pretty different. STeVe -- http://mail.python.org/mailman/listinfo/python-list
Re: Fall of Roman Empire
Thomas Ploch [EMAIL PROTECTED] wrote: Delaney, Timothy (Tim) wrote: Hendrik van Rooyen wrote: naaah - you don't have to worry - for real control He uses assembler. with jump statements. so the loops are closed. Unfortunately its not open source. Yet. People are working hard on reverse-engineering it though. I hope no one slaps them with a DMCA-style lawsuit ... Tim Delaney I heard Steve Ballmer recently made an offer to the pope for purchasing the license for an apple and an egg (Apfel und Ei). LOL! For the sake of those unfortunates who have no grounding in the Germanic Languages - when you buy something for an apple and an egg or in Afrikaans an apple and an onion - you are getting it excessively cheaply... - Hendrik -- http://mail.python.org/mailman/listinfo/python-list
Re: Use a Thread to reload a Module?
Gregory Piñero [EMAIL PROTECTED] wrote: On 12/23/06, Hendrik van Rooyen [EMAIL PROTECTED] wrote: have you looked at putting the data into a persistent dict? - Hendrik What is that exactly? -Greg from the docs: 3.17 shelve -- Python object persistence A ``shelf'' is a persistent, dictionary-like object. The difference with ``dbm'' databases is that the values (not the keys!) in a shelf can be essentially arbitrary Python objects -- anything that the pickle module can handle. This includes most class instances, recursive data types, and objects containing lots of shared sub-objects. The keys are ordinary strings. open( filename[,flag='c'[,protocol=None[,writeback=False[,binary=None) Open a persistent dictionary. The filename specified is the base filename for the underlying database. As a side-effect, an extension may be added to the filename and more than one file may be created. By default, the underlying database file is opened for reading and writing. The optional flag parameter has the same interpretation as the flag parameter of anydbm.open. hth - Hendrik -- http://mail.python.org/mailman/listinfo/python-list
Re: Use a Thread to reload a Module?
On 12/24/06, Hendrik van Rooyen [EMAIL PROTECTED] wrote: Gregory Piñero [EMAIL PROTECTED] wrote: ... open( filename[,flag='c'[,protocol=None[,writeback=False[,binary=None) Open a persistent dictionary. The filename specified is the base filename for the underlying database. As a side-effect, an extension may be added to the filename and more than one file may be created. By default, the underlying database file is opened for reading and writing. The optional flag parameter has the same interpretation as the flag parameter of anydbm.open. hth - Hendrik So how is that better than using marshal as I am now? Is it faster to load? Perhaps I could do speed tests to compare. -Greg -- http://mail.python.org/mailman/listinfo/python-list
[ python-Bugs-1621367 ] random import works?
Bugs item #1621367, was opened at 2006-12-23 11:04 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1621367group_id=5470 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Extension Modules Group: Python 2.5 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Msword (msword) Assigned to: Nobody/Anonymous (nobody) Summary: random import works? Initial Comment: I'm just starting working with python, and it seems that random.choice() isn't all that random. After running the program(attached) a few times, each and every time it selects 1 2 3 4 5 and I can expect this to happen, meaning it isn't all that random. Email: [EMAIL PROTECTED] Thanks -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1621367group_id=5470 ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[ python-Bugs-1257255 ] tarfile local name is local, should be abspath
Bugs item #1257255, was opened at 2005-08-12 04:26 Message generated for change (Comment added) made by gustaebel You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1257255group_id=5470 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Python Library Group: Python 2.4 Status: Closed Resolution: Fixed Priority: 5 Private: No Submitted By: Martin Blais (blais) Assigned to: Lars Gustäbel (gustaebel) Summary: tarfile local name is local, should be abspath Initial Comment: I ran into a bug using the tarfile module with compression from a directory that did not exist anymore, and this exhibits a bug in the tarfile module. I'm not completely sure how to fix it with certainty, so instead of filing a quick patch, I submit a bug so people familiar with the module can have a look first. The problem is that when you open a tarfile with gz or bz2 compression, the TarFile object is opened with a filename that is not absolute, just local (basename is called) but the actual file is using a file-like object. Now, when you add a new entry, there is a check in the TarFile.add method that checks if we're not adding the archive itself into the tarfile, and this method calls abspath. Calling abspath on the name that has been basename'd is incorrect and a bug. It happens not to fail nor cause any problems when called from an existing directory (the test returns false), but it does not do the job it is supposed to. When the CWD has been deleted, calling abspath fails with an OSError, which brings out the problem. Some code to reproduce the bug is provided in an attachment. -- Comment By: Lars Gustäbel (gustaebel) Date: 2006-12-23 19:17 Message: Logged In: YES user_id=642936 Originator: NO Fixed. See patch #1262036. -- Comment By: Georg Brandl (birkenfeld) Date: 2005-08-25 11:04 Message: Logged In: YES user_id=1188172 The patch has been reversed, so reopening. -- Comment By: Martin v. Löwis (loewis) Date: 2005-08-24 08:08 Message: Logged In: YES user_id=21627 This was fixed with said patch. -- Comment By: Lars Gustäbel (gustaebel) Date: 2005-08-17 14:34 Message: Logged In: YES user_id=642936 Thank you very much for your report. I added patch #1262036 that ought to fix the problem. -- Comment By: Martin Blais (blais) Date: 2005-08-15 19:34 Message: Logged In: YES user_id=10996 Oops, that was silly. My apologies. Here goes the file... -- Comment By: Lars Gustäbel (gustaebel) Date: 2005-08-15 13:39 Message: Logged In: YES user_id=642936 Could you please attach the test code you mentioned? -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1257255group_id=5470 ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[ python-Bugs-1371937 ] minidom namespace problems
Bugs item #1371937, was opened at 2005-12-02 19:47 Message generated for change (Comment added) made by paulpach You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1371937group_id=5470 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Python Library Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: A.M. Kuchling (akuchling) Assigned to: Nobody/Anonymous (nobody) Summary: minidom namespace problems Initial Comment: Noted on c.l.py: the minidom writexml() function doesn't tidy up namespace declarations, so you can output documents that have incorrect namespace declarations. DOM Level 3, appendix B, specifies an algorithm for normalizing namespaces; see http://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html . minidom probably needs to acquire the normalizeNamespace method, and then writexml() can call it before doing its work. -- Comment By: Paul Pacheco (paulpach) Date: 2006-12-23 20:04 Message: Logged In: YES user_id=794762 Originator: NO I implemented this and uploaded a patch and test case here: http://sourceforge.net/tracker/index.php?func=detailaid=1621421group_id=5470atid=305470 enjoy :) -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1371937group_id=5470 ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[ python-Bugs-1612113 ] Dictionary ordering docs are too unclear of dangers
Bugs item #1612113, was opened at 2006-12-09 03:57 Message generated for change (Comment added) made by sf-robot You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1612113group_id=5470 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Documentation Group: None Status: Closed Resolution: Works For Me Priority: 5 Private: No Submitted By: Calvin Spealman (ironfroggy) Assigned to: Nobody/Anonymous (nobody) Summary: Dictionary ordering docs are too unclear of dangers Initial Comment: The footnote #3 on this page of the documentation details some thoughts on the order of dictionaries and the results of the different key and value retreival methods. I think it promises more than it should. The current content tells the reader they can expect consistant results from a dictionary as far as order goes, and we know this to be simply untrue and even in the circumstances where its likely (but still not impossible), such as `zip(d.values(), d.keys())` there is not even any compelling reason to use such odd methods, making the very fact that the idea is documented suspect. I recommend the footnote be removed entirely, or replaced with Keys and values are listed in an arbitrary order which is non-random, varies across Python implementations, and depends on the dictionary's history of insertions and deletions. Do not expect anything of the order of the items(), keys(), values(), iteritems(), iterkeys(), and itervalues() methods' results. Page in question: http://docs.python.org/lib/typesmapping.html -- Comment By: SourceForge Robot (sf-robot) Date: 2006-12-23 19:20 Message: Logged In: YES user_id=1312539 Originator: NO This Tracker item was closed automatically by the system. It was previously set to a Pending status, and the original submitter did not respond within 14 days (the time period specified by the administrator of this Tracker). -- Comment By: Tim Peters (tim_one) Date: 2006-12-09 06:51 Message: Logged In: YES user_id=31435 Originator: NO The statement that the various ways of extracting info from a dict are consistent /provided that/ they're called with no intervening modifications to the dictionary (did you miss that crucial qualification?) is part of the language definition: it definitely and deliberately constrains the set of possible implementations. The docs didn't originally say this, but people noted it was true in then-current CPython, and asked whether they could rely on it. At that point, Guido decided to elevate this property of the CPython implementation to a language requirement, and the footnote was added. Of course you're not /required/ to rely on it ;-). -- Comment By: Martin v. Löwis (loewis) Date: 2006-12-09 06:31 Message: Logged In: YES user_id=21627 Originator: NO You seem to be saying (without actually saying it) that the footnote is untrue. Can you give an example that demonstrates it is untrue? I believe the footnote is correct, precise, and complete as it stands, and fail to see a bug here. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1612113group_id=5470 ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com