Wing IDE 4.1.8 released
Hi, Wingware has released version 4.1.8 of Wing IDE, our integrated development environment designed specifically for the Python programming language. Wing IDE provides a professional quality code editor with vi, emacs, and other key bindings, auto-completion, call tips, refactoring, context-aware auto-editing, a powerful graphical debugger, version control, unit testing, search, and many other features. For details see http://wingware.com/ This minor release includes: Added How-Tos for The Foundry's NUKE/NUKEX and IDA Python Track file operations in Project at the revision control level Accept glob style wildcards for Filter in Search in Files Support analysis of extension modules within zip archives Fix searching of documentation Several VI mode files Several auto-editing and auto-completion fixes Fix excessive memory use by the Perforce integration Copy existing window's tool layout when creating new windows Less confusing auto-save recovery About 35 other bug fixes and minor improvements For a complete change log see http://wingware.com/pub/wingide/4.1.8/CHANGELOG.txt Free trial: http://wingware.com/wingide/trial Downloads: http://wingware.com/downloads Feature matrix: http://wingware.com/wingide/features More information: http://wingware.com/ Sales: http://wingware.com/store/purchase Upgrades: https://wingware.com/store/upgrade Questions? Don't hesitate to email us at sa...@wingware.com. Thanks, -- Stephan Deibel Wingware | Python IDE Advancing Software Development www.wingware.com -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations/
PyCon DE 2012 - Free Barcamp, Sprints and Code Retreat
You can now register for the barcamp, our new code retreat and the sprints at PyCon DE 2012 [1]. Registration is free. Just put your name on this wiki page [2] and your are registered. Please sign up as soon as possible that helps us to plan. The second PyCon DE [3] will be in Leipzig from October 29 through November 3, 2012. One tutorial day, three days with talks and two days with a barcamp, code retreat and sprints will provide different ways to communicate about Python. There will be social events to give everybody ample opportunity to network with like-minded Pythonistas. The registration [4] is open. Don't miss the chances to secure your ticket. Follow us on Twitter under @pyconde to stay up-to-date. Cheers, Mike Hallo Python-Freunde, die Anmeldung für Barcamp/Code-Retreat/Sprints ist eröffnet [1]. Die Teilnahme ist kostenlos. Bitte tragt Euch auf der entsprechenden Wiki-Seite [2] ein, damit wir planen können. Die zweite PyCon DE [3] findet vom 29. Oktober bis zum 3. November 2012 in Leipzig statt. Also gleich anmelden [4], um das größte Treffen der deutschsprachigem Python-Community nicht zu verpassen. Wer immer über die PyCon DE auf dem Laufenden bleiben möchte kann uns auch auf Twitter unter @pyconde folgen. Viele Grüße Mike [1] https://2012.de.pycon.org/programm/barcamp/ [2] http://wiki.python.de/PyConDe/2012/ [3] https://2012.de.pycon.org/ [4] https://2012.de.pycon.org/tickets/ -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations/
Re: python CAD libraries?
On Mon, Sep 10, 2012 at 5:50 PM, Jayden jayden.s...@gmail.com wrote: On Monday, September 10, 2012 5:30:08 PM UTC-4, Gary Herron wrote: On 09/10/2012 02:10 PM, Jayden wrote: Are there any python CAD libraries that can (1) build simple 3D primitives solids such as spheres, cylinders and so on (2) perform bool operations on 3D solids (3) better if it has some transformations such has scaling, sweeping, and lofting I've used maya(I think that was the name), and matplotlib, but Blender.org(open source) is great for 3d rendering/game engine, etc, and has a nice python API, with great tutorials everywhere. If you checkout my homepage in my sig, you can see a roughdraft of somethings I was working on for it. I'd say go with an earlier version(more tuts/examples), but they put them out pretty quick, so 2.6 my be best to start with, and it uses python 3.x. -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
Are there any python CAD libraries that can (1) build simple 3D primitives solids such as spheres, cylinders and so on (2) perform bool operations on 3D solids (3) better if it has some transformations such has scaling, sweeping, and lofting Please recommend some good ones for me? Thanks a lot!! Try PythonCAD: http://sourceforge.net/projects/pythoncad/ (Google would have been faster. :-) ) Gary Herron -- Dr. Gary Herron Department of Computer Science DigiPen Institute of Technology (425) 895-4418 Thank you. But this is for 2D. 3-d is just manipulating what's shown in x/y points(and not as easy as it sounds) . I went with cartesian coordinate, a 360x360 canvas(with 90x90 degree view port), and a little trig for front/back/left/right/up/down, and amplitude or z distance for my first attempt, and now porting it into the Blender game engine. -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
I've used maya(I think that was the name), and matplotlib, but Blender.org(open source) is great for 3d rendering/game engine, etc, and has a nice python API, with great tutorials everywhere. If you checkout my homepage in my sig, you can see a roughdraft of somethings I was working on for it. I'd say go with an earlier version(more tuts/examples), but they put them out pretty quick, so 2.6 my be best to start with, and it uses python 3.x. -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
On Mon, Sep 10, 2012 at 5:10 PM, Jayden jayden.s...@gmail.com wrote: Are there any python CAD libraries that can (1) build simple 3D primitives solids such as spheres, cylinders and so on (2) perform bool operations on 3D solids (3) better if it has some transformations such has scaling, sweeping, and lofting Please recommend some good ones for me? Thanks a lot!! -- http://mail.python.org/mailman/listinfo/python-list 've used maya(I think that was the name), and matplotlib, but Blender.org(open source) is great for 3d rendering/game engine, etc, and has a nice python API, with great tutorials everywhere. If you checkout my homepage in my sig, you can see a roughdraft of somethings I was working on for it. I'd say go with an earlier version(more tuts/examples), but they put them out pretty quick, so 2.6 my be best to start with, and it uses python 3.x. -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
Thank you. But this is for 2D. Thank you. But this is for 2D. 3-d is just manipulating what's shown in x/y points(and not as easy as it sounds) . I went with cartesian coordinate, a 360x360 canvas(with 90x90 degree view port), and a little trig for front/back/left/right/up/down, and amplitude or z distance for my first attempt, with a few others that locked a center of an object,and held point rotation, and now porting it into the Blender game engine. I've used maya(I think that was the name), and matplotlib, but Blender.org(open source) is great for 3d rendering/game engine, etc, and has a nice python API, with great tutorials everywhere. If you checkout my homepage in my sig, you can see a roughdraft of somethings I was working on for it. I'd say go with an earlier version(more tuts/examples), but they put them out pretty quick, so 2.6 my be best to start with, and it uses python 3.x. -- Best Regards, David Hutto CEO: http://www.hitwebdevelopment.com -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
Thank you. But this is for 2D. 3-d is just manipulating what's shown in x/y points(and not as easy as it sounds) . I went with cartesian coordinate, a 360x360 canvas(with 90x90 degree view port), and a little trig for front/back/left/right/up/down, and amplitude or z distance for my first attempt, and now porting it into the Blender game engine. I've used maya(I think that was the name), and matplotlib, but Blender.org(open source) is great for 3d rendering/game engine, etc, and has a nice python API, with great tutorials everywhere. If you checkout my homepage in my sig, you can see a roughdraft of somethings I was working on for it. I'd say go with an earlier version(more tuts/examples), but they put them out pretty quick, so 2.6 my be best to start with, and it uses python 3.x. -- Best Regards, David Hutto CEO: http://www.hitwebdevelopment.com -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
Might have posted that too many times, I don't use the google groups that much. Best Regards, David Hutto CEO: http://www.hitwebdevelopment.com -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
Apologies for the multiple posts, it's been a long night, and I don't use the google groups that much I kept getting sent mail failure, I think because I didn't hit 'reply all'. -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
Apologies for the double posting. -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
Re: Compile python code into a dll
Thank you all for your help. I'm going to try Cython. Regards Rolf On 10/09/12 14:15, Rolf Wester wrote: Hi, I have Python code that I would like to compile into a dll (I have to deliver a C/C++ callable dll and I don't want to reimpelement the Python code in C/C++). It's not for extending Python but I want to call the Python functions and classes from C/C++. It's more like extending C/C++ with Python. I would be very appreciative for any help. Thank you in advance Regards Rolf -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
https://www.google.com/search?q=python+cad+3d+examplesie=utf-8oe=utf-8aq=trls=org.mozilla:en-US:officialclient=firefox-a First listing looks good, might look later on at it myself: http://www.pythonocc.org/ -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
Re: how to get os.py to use an ./ntpath.py instead of Lib/ntpath.py
On 11/09/2012 04:46, Steven D'Aprano wrote: On Mon, 10 Sep 2012 15:22:05 -0700, ruck wrote: On Monday, September 10, 2012 1:16:13 PM UTC-7, Steven D'Aprano wrote: [...] That's not so much a workaround as the officially supported API for dealing with the situation you are in. Why don't you just prepend a '?' to paths like they tell you to? Good idea, but the first thing os.walk() does is a listdir(), and os.listdir() does not like the r'\\?\' prefix. In other words, os.walk(r'\\?\C:Users\john\Desktop\sandbox\goo') does not work. Now that sounds like a bug to me. If Microsoft officially support leading ? in file names, then so should Python on Windows. And so it does, but you'll notice from the MSDN docs that the \\? syntax must be supplied as a Unicode string, which os.listdir will do if you pass it a Python unicode object and not otherwise: import os os.listdir(u?\\c:\\users) # and consequently for p, ds, fs in os.walk(u?\\c:\\users): print p TJG -- http://mail.python.org/mailman/listinfo/python-list
Re: Compile python code into a dll
Also, and sometimes google does kind of fail you, but straight from your question, I just type in this section of what you wrote: 'Python code that I would like to compile into a dll' Yours comes up as well within that search,but so do quite a few others related to it. -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
And just a little more for you from: http://wiki.python.org/moin/Applications#A3D_CAD.2FCAM This looked interesting: http://free-cad.sourceforge.net/ but I have to get to a few other things, so I hope this helps. -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
Blender is definitely the most popular open-source CAD software; it has even forked its own version of Python to make things run neatly :P On Tue, Sep 11, 2012 at 5:33 PM, Dwight Hutto dwightdhu...@gmail.com wrote: And just a little more for you from: http://wiki.python.org/moin/Applications#A3D_CAD.2FCAM This looked interesting: http://free-cad.sourceforge.net/ but I have to get to a few other things, so I hope this helps. -- Best Regards, David Hutto CEO: http://www.hitwebdevelopment.com -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
On Tue, Sep 11, 2012 at 3:36 AM, Alec Taylor alec.tayl...@gmail.com wrote: Blender is definitely the most popular open-source CAD software; it has even forked its own version of Python to make things run neatly :P I heard that they were going to change a few things a while back with the Python API(especially the switch to 3.0 in blender 2.5), but thought they were still using regular 3.x. I've been using the 2.49b, and just started using 2.6.2 when I upgraded my Ubuntu to 12.04. -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
Blender is definitely the most popular open-source CAD software; it has even forked its own version of Python to make things run neatly :P Plus it never hurts to look around at some of the other interfaces,some of which might have just altered Blender, or something else, just to see which is more user friendly for the individual. But I am a huge Blender fan, so I'll probably not be changing that anytime soon. -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
Re: Newbie: where's the new python gone?
c.c Description: Binary data Op 10 Sep 2012, om 22:53 heeft William R. Wing (Bill Wing) het volgende geschreven: On Sep 10, 2012, at 11:17 AM, Bob Aalsma overhaalsgang_24_...@me.com wrote: Well, Bill, better late than never - thanks for stepping in. You are right, my problems are not yet solved ;) As Hans pointed out, you are looking for python, not Python (the frameworks are named Python, the executable is python). Sorry about that. To eliminate the output from TimeMachine (assuming it is using an external drive or a TimeCapsule), add one more option to the find command: $ sudo find -x / -name python -print (or follow his directions for piping to a file). The -x option prevents find from descending into a volume with a different device number from the one you started on. -Bill -- http://mail.python.org/mailman/listinfo/python-list
Re: submit jobs on multi-core
On 09/11/2012 07:53 AM, Laszlo Nagy wrote: On 2012-09-11 06:16, Dhananjay wrote: Dear all, I have a python script in which I have a list of files to input one by one and for each file I get a number as an output. I used for loop to submit the file to script. My script uses one file at a time and returns the output. My computers has 8 cores. Is there any way that I could submit 8 jobs at a time and get all the output faster ? In other words, how can I modify my script so that I could submit 8 jobs together on 8 different processors ? I am bit new to this stuff, please suggest me some directions. You should first look at the multiprocessing module. It is part of the standard library. http://docs.python.org/library/multiprocessing.html Did anybody tried this on a cluster? -- http://mail.python.org/mailman/listinfo/python-list
Re: submit jobs on multi-core
http://celeryproject.org/ Don't eat it all at once On Tue, Sep 11, 2012 at 2:16 PM, Dhananjay dhananjay.c.jo...@gmail.com wrote: Dear all, I have a python script in which I have a list of files to input one by one and for each file I get a number as an output. I used for loop to submit the file to script. My script uses one file at a time and returns the output. My computers has 8 cores. Is there any way that I could submit 8 jobs at a time and get all the output faster ? In other words, how can I modify my script so that I could submit 8 jobs together on 8 different processors ? I am bit new to this stuff, please suggest me some directions. Thank you. -- Joshi -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: Comparing strings from the back?
Steven D'Aprano steve+comp.lang.pyt...@pearwood.info wrote: But for the record, in principle string comparisons *could* be the bottleneck. Example: you have 1 strings, which are each created once and stored in a list. Then you iterate over the list, comparing every string against every other string. And due to some weird vagary of the data, the strings are nearly all equal. (Why would you do this? I don't know, maybe it's a programmers' challenge found on the Internet, make up your own scenario...) Total number of strings created: 1. Total number of strings compared: 1. which is exactly what I meant by doing a lot of comparisons (1) on the same string. Perhaps if I'd phrased it more as you have to be doing many more comparisons than string creation operations it would have been clearer what I meant. The overhead of creating the strings is trivial compared to the overhead of comparing them, and since each string is only created once anyway, interning them is just a waste of time. No, you created 10k strings many of which are equal and then did 10k comparisons on each most of which found 'yes' they are equal. Interning them would have reduced all the 'true' comparisons to an identity check at the cost of 1 hash and 1 full comparison per string. so at the expense of a single dictionary insertion when the string is created you can get guaranteed O(1) on all the comparisons. What interning buys you is that s == t is an O(1) pointer compare if they are equal. But if s and t differ in the last character, __eq__ will still inspect every character. There is no way to tell Python all strings are interned, if s is not t then s != t as well. Right if the strings differ only in the last character, but the rest of this thread has been about how, for random strings, the not-equal case is O(1) as well. -- Duncan Booth http://kupuguy.blogspot.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Comparing strings from the back?
Oscar Benjamin oscar.j.benja...@gmail.com wrote: What interning buys you is that s == t is an O(1) pointer compare if they are equal. But if s and t differ in the last character, __eq__ will still inspect every character. There is no way to tell Python all strings are interned, if s is not t then s != t as well. I thought that if *both* strings were interned then a pointer comparison could decide if they were unequal without needing to check the characters. Have I misunderstood how intern() works? I don't think you've misunderstood how it work, but so far as I can see the code doesn't attempt to short circuit the not equal but interned case. The comparison code doesn't look at interning at all, it only looks for identity as a shortcut. -- Duncan Booth http://kupuguy.blogspot.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Comparing strings from the back?
On 11 September 2012 10:51, Duncan Booth duncan.booth@invalid.invalidwrote: Oscar Benjamin oscar.j.benja...@gmail.com wrote: What interning buys you is that s == t is an O(1) pointer compare if they are equal. But if s and t differ in the last character, __eq__ will still inspect every character. There is no way to tell Python all strings are interned, if s is not t then s != t as well. I thought that if *both* strings were interned then a pointer comparison could decide if they were unequal without needing to check the characters. Have I misunderstood how intern() works? I don't think you've misunderstood how it work, but so far as I can see the code doesn't attempt to short circuit the not equal but interned case. The comparison code doesn't look at interning at all, it only looks for identity as a shortcut. It also doesn't seem to check if the hash values have been set. I guess the cached hash value is only used in contexts where the hash is explicitly desired. That makes two optimisations that can bring worst case string comparison down to O(1) in many contexts that are available to cpython but unused. But then if full string comparison is already on average O(1) then the cost of checking the interned and hash flags for every string comparison would outweigh the benefits of avoiding the rare worst case O(N) comparisons. Oscar -- http://mail.python.org/mailman/listinfo/python-list
Re: simple client data base
Mark R Rivet wrote: Thomas 'PointedEars' Lahn wrote: Mark R Rivet wrote: Hello all, I am learning to program in python. I have a need to make a program that can store, retrieve, add, and delete client data such as name, address, social, telephone number and similar information. This would be a small client database for my wife who has a home accounting business. I have been reading about lists, tuples, and dictionary data structures in python and I am confused as to which would be more appropriate for a simple database. […] However, if you want your program to manipulate the data *persistently*. as it will probably be needed for business, you will need to also store it somewhere else than in the volatile memory in which these data structures are usually stored. The most simple way would be to store and parse the string representation of the objects. Production-quality implementations of those and other concepts already exist, of course, but using something finished and polished does not provide as much learning experience. Now this is the kind of answer I was hoping for. This gives me food for thought. Now I have some Ideas of how to appproach this thing. I know that there are solutions to this problem already but I need to do my own before I can really use anything better. Thanks for the help. I fully intend to go with a real realational database, but not now. My version 1 will be a console interface and dictionaries, lists and pickling. Version 2 will be with a GUI written in tkinter, and better and better. I just want to learn how to lay the bricks before I start using prefab walls. You are welcome. However, I have to concur with the others that in terms of efficiency and reliability, which leads to household peace, you are better off starting with a prepackaged solution instead. You can keep developing your Python-powered database as a pet project for the time being. Your wife will be even more impressed if at one day you can tell her that you wrote completely customizable software that works the same or even better than the one she has been getting used to :) Even if not, you will have learned much about Python and related concepts along the way. Keep in mind, then, that you probably also need a graphical user interface. Please trim your quotes to the relevant minimum next time. -- PointedEars Twitter: @PointedEars2 Please do not Cc: me. / Bitte keine Kopien per E-Mail. -- http://mail.python.org/mailman/listinfo/python-list
Re: PyPyODBC 0.8.4 released with improved compatibility to pyodbc
PyPyODBC - A Pure Python ctypes ODBC module Features -Pure Python, compatible with IronPython and PyPy (tested on Win32) -Almost totally same usage as pyodbc You can simply try pypyodbc in your existing pyodbc powered script with the following changes: #import pyodbc -- The original pyodbc importing line import pypyodbc as pyodbc # Let pypyodbc pretend the pyodbc pyodbc.connect(...)# pypyodbc is now doing pyodbc's job with same APIs! History Version 0.8.4 Sep 9 2012 Improved compatibility with pyodbc; Many underlying bug fixes; Version 0.8.3 Sep 1 2012 sql_longvarchar handling fix; performance optimization; Version 0.8.2 Aug 27 2012 Differentiate sql_varchar and sql_longvarchar; Initial support for SQLAlchemy; Version 0.8.1 Aug 26 2012 Fixed the long type parameter issue; Added support for IronPython; Version 0.8 Aug 25 2012 Added getinfo method; Version 0.7 Jul 28 2012 Fixed nchar/ntext/nvarchar string truncat problem ; Version 0.6 Jul 4 2012 Added Cursor.commit() and Cursor.rollback(); Added readonly keyword to connect; Version 0.5 Jun 23 2012 Initial release; -- http://mail.python.org/mailman/listinfo/python-list
Re: Newbie: where's the new python gone?
On Sep 11, 2012, at 3:52 AM, Bob Aalsma overhaalsgang_24_...@me.com wrote: c.c Op 10 Sep 2012, om 22:53 heeft William R. Wing (Bill Wing) het volgende geschreven: On Sep 10, 2012, at 11:17 AM, Bob Aalsma overhaalsgang_24_...@me.com wrote: Well, Bill, better late than never - thanks for stepping in. You are right, my problems are not yet solved ;) As Hans pointed out, you are looking for python, not Python (the frameworks are named Python, the executable is python). Sorry about that. To eliminate the output from TimeMachine (assuming it is using an external drive or a TimeCapsule), add one more option to the find command: $ sudo find -x / -name python -print (or follow his directions for piping to a file). The -x option prevents find from descending into a volume with a different device number from the one you started on. -Bill -- http://mail.python.org/mailman/listinfo/python-list Well, clearly, the only copies of python 2.7 on your system are from Apple (in System/Library and associated with Xcode). So, either the one you downloaded overwrote one of them, or the install failed and you didn't notice the error go zooming by in a listing. Can you run the install procedure again and capture the output? -Bill -- http://mail.python.org/mailman/listinfo/python-list
Re: Newbie: where's the new python gone?
On Sep 11, 2012, at 9:12 AM, Bob Aalsma overhaalsgang_24_...@me.com wrote: Hmm, this feels embarrassing but the good news is that, on seeing the errors, I remember using a sudo with the make install and only later finding out that I shouldn't have. Last login: Tue Sep 11 09:46:11 on ttys000 macpro1:~ debaas$ pwd /Users/debaas macpro1:~ debaas$ ls Desktop Documents Downloads Library Movies Music PicturesPublic Sites macpro1:~ debaas$ cd Desktop/ macpro1:Desktop debaas$ cd Python-2.7.3/ macpro1:Python-2.7.3 debaas$ ls /usr/local apache2 bin clamXav include lib libexec share macpro1:Python-2.7.3 debaas$ make install /usr/bin/install -c python.exe /usr/local/bin/python2.7 install: /usr/local/bin/python2.7: Permission denied make: *** [altbininstall] Error 71 So how to proceed here? -Bob As others have commented, please don't top-post. The script from which you've captured a fragment of output above isn't going to work on a Mac without rewriting. (Your Mac isn't going to like python.exe for example.) As to proceeding, in all honesty, the simplest thing to do is go here: http://www.python.org/download/ Look down the page to the link for Python 2.7.3 Mac OS X 64-bit/32-bit x86-64/i386 Installer (for Mac OS X 10.6 and 10.7 [2]) and grab it. That will hand you a completely prebuilt 2.7.3 (latest) along with an installer that will put it in /Library/Frameworks where it belongs and will even edit your .profile. Good luck, Bill -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
On Monday, September 10, 2012 11:10:55 PM UTC+2, Jayden wrote: Are there any python CAD libraries that can (1) build simple 3D primitives solids such as spheres, cylinders and so on (2) perform bool operations on 3D solids (3) better if it has some transformations such has scaling, sweeping, and lofting Please recommend some good ones for me? Thanks a lot!! Hi Jayden, In my opinion, the best you can get is OpenCascade (OCC) (www.opencascade.org) in combination with the python bindings (www.pythonocc.org). OCC is a hugh C++ CAD library. It not only deals with the simple geometric stuff, but it can be used to build CAD programs similar to SolidEdge or SolidWorks. It does however come with quite a steep learning curve. When using PythonOCC, the learning curve becomes a little less steep. Also note that in my opinion, Blender cannot be considered as a CAD environment. Ofcourse it is very powerful, but I think it is more targeted towards animation and visually pleasing applications, not mechanical engineering. Regards, Marco -- http://mail.python.org/mailman/listinfo/python-list
Unable to compile Python 2.7.3 in Cygwin
Hi, I'm trying to compile Python in Cygwin, with little luck. I've posted the ugliness in this link. Thoughts? http://bin.cakephp.org/view/176472400 -- http://mail.python.org/mailman/listinfo/python-list
Re: Newbie: where's the new python gone?
Hmm, this feels embarrassing but the good news is that, on seeing the errors, I remember using a sudo with the make install and only later finding out that I shouldn't have. Last login: Tue Sep 11 09:46:11 on ttys000 macpro1:~ debaas$ pwd /Users/debaas macpro1:~ debaas$ ls Desktop Documents Downloads Library Movies Music PicturesPublic Sites macpro1:~ debaas$ cd Desktop/ macpro1:Desktop debaas$ cd Python-2.7.3/ macpro1:Python-2.7.3 debaas$ ls /usr/local apache2 bin clamXav include lib libexec share macpro1:Python-2.7.3 debaas$ make install /usr/bin/install -c python.exe /usr/local/bin/python2.7 install: /usr/local/bin/python2.7: Permission denied make: *** [altbininstall] Error 71 So how to proceed here? -Bob Op 11 Sep 2012, om 14:26 heeft William R. Wing (Bill Wing) het volgende geschreven: On Sep 11, 2012, at 3:52 AM, Bob Aalsma overhaalsgang_24_...@me.com wrote: c.c Op 10 Sep 2012, om 22:53 heeft William R. Wing (Bill Wing) het volgende geschreven: On Sep 10, 2012, at 11:17 AM, Bob Aalsma overhaalsgang_24_...@me.com wrote: Well, Bill, better late than never - thanks for stepping in. You are right, my problems are not yet solved ;) As Hans pointed out, you are looking for python, not Python (the frameworks are named Python, the executable is python). Sorry about that. To eliminate the output from TimeMachine (assuming it is using an external drive or a TimeCapsule), add one more option to the find command: $ sudo find -x / -name python -print (or follow his directions for piping to a file). The -x option prevents find from descending into a volume with a different device number from the one you started on. -Bill -- http://mail.python.org/mailman/listinfo/python-list Well, clearly, the only copies of python 2.7 on your system are from Apple (in System/Library and associated with Xcode). So, either the one you downloaded overwrote one of them, or the install failed and you didn't notice the error go zooming by in a listing. Can you run the install procedure again and capture the output? -Bill -- http://mail.python.org/mailman/listinfo/python-list
Re: Newbie: where's the new python gone?
On 11 Sep 2012, at 15:31, William R. Wing (Bill Wing) wrote: On Sep 11, 2012, at 9:12 AM, Bob Aalsma overhaalsgang_24_...@me.com wrote: Hmm, this feels embarrassing but the good news is that, on seeing the errors, I remember using a sudo with the make install and only later finding out that I shouldn't have. Last login: Tue Sep 11 09:46:11 on ttys000 macpro1:~ debaas$ pwd /Users/debaas macpro1:~ debaas$ ls Desktop Documents Downloads Library Movies Music PicturesPublic Sites macpro1:~ debaas$ cd Desktop/ macpro1:Desktop debaas$ cd Python-2.7.3/ macpro1:Python-2.7.3 debaas$ ls /usr/local apache2 bin clamXav include lib libexec share macpro1:Python-2.7.3 debaas$ make install /usr/bin/install -c python.exe /usr/local/bin/python2.7 install: /usr/local/bin/python2.7: Permission denied make: *** [altbininstall] Error 71 So how to proceed here? -Bob As others have commented, please don't top-post. The script from which you've captured a fragment of output above isn't going to work on a Mac without rewriting. (Your Mac isn't going to like python.exe for example.) As to proceeding, in all honesty, the simplest thing to do is go here: http://www.python.org/download/ Look down the page to the link for Python 2.7.3 Mac OS X 64-bit/32-bit x86-64/i386 Installer (for Mac OS X 10.6 and 10.7 [2]) and grab it. That will hand you a completely prebuilt 2.7.3 (latest) along with an installer that will put it in /Library/Frameworks where it belongs and will even edit your .profile. Good luck, Bill Sorry about top-posting. And it worked! Thank you for teaching! Regards, Bob -- http://mail.python.org/mailman/listinfo/python-list
Re: Comparing strings from the back?
On 9/11/2012 6:40 AM, Oscar Benjamin wrote: On 11 September 2012 10:51, Duncan Booth duncan.booth@invalid.invalid mailto:duncan.booth@invalid.invalid wrote: Oscar Benjamin oscar.j.benja...@gmail.com mailto:oscar.j.benja...@gmail.com wrote: What interning buys you is that s == t is an O(1) pointer compare if they are equal. But if s and t differ in the last character, __eq__ will still inspect every character. There is no way to tell Python all strings are interned, if s is not t then s != t as well. I thought that if *both* strings were interned then a pointer comparison could decide if they were unequal without needing to check the characters. Have I misunderstood how intern() works? I don't think you've misunderstood how it work, but so far as I can see the code doesn't attempt to short circuit the not equal but interned case. The comparison code doesn't look at interning at all, it only looks for identity as a shortcut. It also doesn't seem to check if the hash values have been set. I guess the cached hash value is only used in contexts where the hash is explicitly desired.- I believe the internal use of interning and hash comparison has varied from release to release. However, the main use of string comparison is for dict keys, especially the internal dicts for namespaces and attributes. Since the dict lookup code needs hash values anyway, to find slots with possible conflicts, I am sure it does not use the generic comparison operators but starts with hash comparisons. Terry Jan Reedy -- http://mail.python.org/mailman/listinfo/python-list
Re: Parsing ISO date/time strings - where did the parser go?
Roy Smith r...@panix.com writes: In article mailman.473.1347317852.27098.python-l...@python.org, Chris Angelico ros...@gmail.com wrote: What is it that takes up forty pages [for the ISO 8601 specification]? RFC 2822 describes a date/time stamp in about two pages. In fact, the whole RFC describes the Internet Message Format in not much more than 40 pages. Is ISO-language just bloated? *boggle* You can find a copy at http://dotat.at/tmp/ISO_8601-2004_E.pdf In brief: ISO 8601 doesn't have the luxury of a single timestamp format. It also must define its terms from a rather more fundamental starting point than RFC 5822 can assume. There's some bloat (5 of the 40 pages don't even show up in the table of contents), but much of the content of the ISO 8601 standard is required, to cover the ground intended in the level of detail intended. Scope This International Standard is applicable whenever representation of dates in the Gregorian calendar, times in the 24-hour timekeeping system, time intervals and recurring time intervals or of the formats of these representations are included in information interchange. It includes * calendar dates expressed in terms of calendar year, calendar month and calendar day of the month; * ordinal dates expressed in terms of calendar year and calendar day of the year; * week dates expressed in terms of calendar year, calendar week number and calendar day of the week; * local time based upon the 24-hour timekeeping system; * Coordinated Universal Time of day; * local time and the difference from Coordinated Universal Time; * combination of date and time of day; * time intervals; * recurring time intervals. -- \ “First things first, but not necessarily in that order.” —The | `\ Doctor, _Doctor Who_ | _o__) | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list
Re: a python license problem?
Jayden jayden.s...@gmail.com writes: Python is under GPL compatible. If I develop a python code If you write new code, without deriving your work from the code of Python itself, then the license of the Python code cannot affect what you many do with what you wrote – because the copyright on Python does not affect works not derived from it. Despite the wishes of copyright maximalists (and the PSF are not copyright maximalists, to my knowledge), there are still limits to the scope of copyright. If python is under GPL, is the answer different? Thanks a lot!! Python is not under GPL. But unless you are deriving a work from Python and distributing the result, that doesn't alter the answer. -- \ “I wish there was a knob on the TV to turn up the intelligence. | `\ There's a knob called ‘brightness’ but it doesn't work.” | _o__) —Eugene P. Gallagher | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list
Which Version of Python?
I have a lot of programming experience in many different languages and now I want to learn Python. Which version do you suggest I download, Python 2.x or Python 3.x ? Also why should I prefer one over the other? Right now I am thinkng Python 3.x as it has been out since 2008, but I have some concerns about backward compatibility with older packages that I might want to use. Thanks for your ideas and help. -- http://mail.python.org/mailman/listinfo/python-list
Re: Which Version of Python?
Having recently looked for the same answer myself, consensus seems to be that you should work with 3.x unless you know you need something that is still 2.x specific. For me, that 2.x specific item was OpenStack. On Tue, Sep 11, 2012 at 12:49 PM, Charles Hottel chot...@earthlink.netwrote: I have a lot of programming experience in many different languages and now I want to learn Python. Which version do you suggest I download, Python 2.x or Python 3.x ? Also why should I prefer one over the other? Right now I am thinkng Python 3.x as it has been out since 2008, but I have some concerns about backward compatibility with older packages that I might want to use. Thanks for your ideas and help. -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: Which Version of Python?
On 11/09/2012 17:49, Charles Hottel wrote: I have a lot of programming experience in many different languages and now I want to learn Python. Which version do you suggest I download, Python 2.x or Python 3.x ? Also why should I prefer one over the other? Right now I am thinkng Python 3.x as it has been out since 2008, but I have some concerns about backward compatibility with older packages that I might want to use. Thanks for your ideas and help. My own preference is for Python 3.x. Python 2.x is ending at 2.7. As you said, some older packages may still be using 2.x, but there's not that much difference between 3.x and 2.x, so you should be able to switch from one to the other one very easily. -- http://mail.python.org/mailman/listinfo/python-list
Re: a python license problem?
On 9/11/2012 12:03 PM, Ben Finney wrote: Jayden jayden.s...@gmail.com writes: Python is under GPL compatible. If I develop a python code If you write new code, without deriving your work from the code of Python itself, then the license of the Python code cannot affect what you many do with what you wrote – because the copyright on Python does not affect works not derived from it. Despite the wishes of copyright maximalists (and the PSF are not copyright maximalists, to my knowledge), there are still limits to the scope of copyright. If by 'copyright maximalists' you mean the authors of translation programs that claim copyright to translations, then they are really 'copyright grabbers' in that they are denying copyright to original authors of the codes translated. The usual basis for the grab is that the translated code must run with a runtime component from the translator. The runtime may or may not be physically bundled with the translated code, just as Python code can run with either a separately installed python or a bundled python, as in freeze or py2exe. The PSF explicitly says that distribution of such bundles is allowed for CPython as long as one summarized what one is doing. (See terms 2 and 3.) If python is under GPL, is the answer different? Thanks a lot!! Python is not under GPL. But unless you are deriving a work from Python and distributing the result, that doesn't alter the answer. To be really clear, the 'Python license' is the license for the Python x.y.z software and documentation distributed by the Python Software Foundation. Other implementations have their own copyright and licenses. Code is copyrighted and licensed by the author or assignee. -- Terry Jan Reedy -- http://mail.python.org/mailman/listinfo/python-list
Re: submit jobs on multi-core
There is parallel python as well http://www.parallelpython.com/ -- http://mail.python.org/mailman/listinfo/python-list
Re: submit jobs on multi-core
On Mon, Sep 10, 2012 at 11:53 PM, Laszlo Nagy gand...@shopzeus.com wrote: On 2012-09-11 06:16, Dhananjay wrote: Dear all, I have a python script in which I have a list of files to input one by one and for each file I get a number as an output. I used for loop to submit the file to script. My script uses one file at a time and returns the output. My computers has 8 cores. Is there any way that I could submit 8 jobs at a time and get all the output faster ? In other words, how can I modify my script so that I could submit 8 jobs together on 8 different processors ? I am bit new to this stuff, please suggest me some directions. You should first look at the multiprocessing module. It is part of the standard library. http://docs.python.org/library/multiprocessing.html Or if Python 3.2 is an option, the concurrent.futures module would be very well suited for this task. -- http://mail.python.org/mailman/listinfo/python-list
Single leading dash in member variable names?
All Python noob here. Trying to understand a particular syntax: class stuff: def __init__(self): self._bongo = BongoWorld --- What is the significance of the leading underscore in self._bongo? I've seen this a few times and, after looking through PEP 8, I didn't see anything relevant, but I could have missed it. -- http://mail.python.org/mailman/listinfo/python-list
Re: Single leading dash in member variable names?
On Tue, Sep 11, 2012 at 12:45 PM, e.doxta...@gmail.com wrote: All Python noob here. Trying to understand a particular syntax: class stuff: def __init__(self): self._bongo = BongoWorld --- What is the significance of the leading underscore in self._bongo? I've seen this a few times and, after looking through PEP 8, I didn't see anything relevant, but I could have missed it. Single leading underscore is a convention indicating that the name should be considered private and not used externally. It's a softer version of the double leading underscore that means basically the same thing but has syntactic significance. -- http://mail.python.org/mailman/listinfo/python-list
Re: how to get os.py to use an ./ntpath.py instead of Lib/ntpath.py
On Tuesday, September 11, 2012 12:21:24 AM UTC-7, Tim Golden wrote: And so it does, but you'll notice from the MSDN docs that the \\? syntax must be supplied as a Unicode string, which os.listdir will do if you pass it a Python unicode object and not otherwise: I was saying os.listdir doesn't like the r'\\?\' prefix. But Tim corrects me -- so yes, Steven's earler suggestion Why don't you just prepend a '?' to paths like they tell you to? does work, when I supply it in unicode. Good: os.listdir(u'?\\C:\\Users\\john\\Desktop\\sandbox\\goo') [u'voo...'] Bad: os.listdir('?\\C:\\Users\\john\\Desktop\\sandbox\\goo') Traceback (most recent call last): File pyshell#3, line 1, in module os.listdir('?\\C:\\Users\\john\\Desktop\\sandbox\\goo') WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect: '?\\C:\\Users\\john\\Desktop\\sandbox\\goo/*.*' Thanks to both of you for taking the time to teach. BTW, when I posted the original, I was trying to supply my own customized ntpath module, and I was really puzzled as to why it wasn't getting picked up! According to sys.path I expected my custom ntpath.py to be chosen, instead of the standard Lib/ntpath.py. Now I guess I understand why. I moved Lib/ntpath.* out of the way, and learned that during initialization, Python is importing site module, which is importing os which is importing ntpath -- before my dir is added to sys.path. So later when I import os, it and ntpath have already been imported, so Python doesn't attempt a fresh import. To get my custom ntpath.py honored, need to RELOAD, like: import os import ntpath reload(ntpath) print 'os.walk(\'goo\') with isdir override in custom ntpath' for root, dirs, files in os.walk('goo'): print root, dirs, files where the diff betw standard ntpath.py and my ntpath.py are: 14c14,19 from genericpath import * --- from genericpath import * def isdir(s): return genericpath.isdir('?\\' + abspath(s + '\\')) def isfile(s): return genericpath.isfile('?\\' + abspath(s + '\\')) I'm not sure how I could have known that ntpath was already imported, since *I* didn't import it, but that was the key to my confusion. Thanks again for the help. John -- http://mail.python.org/mailman/listinfo/python-list
Re: Single leading dash in member variable names?
On Tuesday, September 11, 2012 2:06:45 PM UTC-5, Ian wrote: On Tue, Sep 11, 2012 at 12:45 PM, I wrote: All Python noob here. Trying to understand a particular syntax: class stuff: def __init__(self): self._bongo = BongoWorld --- What is the significance of the leading underscore in self._bongo? I've seen this a few times and, after looking through PEP 8, I didn't see anything relevant, but I could have missed it. Single leading underscore is a convention indicating that the name should be considered private and not used externally. It's a softer version of the double leading underscore that means basically the same thing but has syntactic significance. Thank you! PEP 8 says this is bad form. What do you think? -- http://mail.python.org/mailman/listinfo/python-list
Re: submit jobs on multi-core
On 2012-09-11, Dhananjay dhananjay.c.jo...@gmail.com wrote: --===0316394162== Content-Type: multipart/alternative; boundary=20cf30776bd309ffd004c96557e2 --20cf30776bd309ffd004c96557e2 Content-Type: text/plain; charset=ISO-8859-1 Dear all, I have a python script in which I have a list of files to input one by one and for each file I get a number as an output. I used for loop to submit the file to script. My script uses one file at a time and returns the output. My computers has 8 cores. Is there any way that I could submit 8 jobs at a time and get all the output faster ? In other words, how can I modify my script so that I could submit 8 jobs together on 8 different processors ? I am bit new to this stuff, please suggest me some directions. Thank you. The simplest way I've found to do this is to use something like GNU parallel. I don't know if there's a Windows equivalent but it works well for me on linux and you can use it for any program (not just python scripts). From the wikipedia page: http://en.wikipedia.org/wiki/GNU_parallel The most common usage is to replace the shell loop, for example (for x in `cat list` ; do do_something $x done) | process_output to the form of cat list | parallel do_something | process_output Note that there are two basic types of parallel execution depending on whether or not your parallel processes need to communicate with one another. I'm assuming that you really just want to run independent jobs simultaneously. Otherwise the other suggestions may be more relevant. Oscar -- http://mail.python.org/mailman/listinfo/python-list
Re: Single leading dash in member variable names?
On Tue, Sep 11, 2012 at 2:53 PM, e.doxta...@gmail.com wrote: On Tuesday, September 11, 2012 2:06:45 PM UTC-5, Ian wrote: Single leading underscore is a convention indicating that the name should be considered private and not used externally. It's a softer version of the double leading underscore that means basically the same thing but has syntactic significance. Thank you! PEP 8 says this is bad form. What do you think? Where are you seeing that? It says: Use one leading underscore only for non-public methods and instance variables. To avoid name clashes with subclasses, use two leading underscores to invoke Python's name mangling rules. ... Generally, double leading underscores should be used only to avoid name conflicts with attributes in classes designed to be subclassed. So a single leading underscore is the preferred style for non-public methods and attributes. -- http://mail.python.org/mailman/listinfo/python-list
Re: Single leading dash in member variable names?
On 9/11/2012 4:53 PM, e.doxta...@gmail.com wrote: What is the significance of the leading underscore in self._bongo? I've seen this a few times and, after looking through PEP 8, I didn't see anything relevant, but I could have missed it. Single leading underscore is a convention indicating that the name should be considered private and not used externally. It's a softer version of the double leading underscore that means basically the same thing but has syntactic significance. PEP 8 says this is bad form. What do you think? Please quote the specific statement you want commented. The stdlib routinely uses _names for internal implementation objects. __ugh is perhaps never used. -- Terry Jan Reedy -- http://mail.python.org/mailman/listinfo/python-list
How to send email programmatically from a gmail email a/c when port 587(smtp) is blocked
Hi c.l.p peeps I am stuck with an issue, so am coming to the Pythonista deltaforce who rescue me everytime :) I am trying to send out email programmatically, from a gmail a/c, using smtplib, using the following chunk of code (b/w [ ] below) [ import smtplib from email.mime.text import MIMEText #uname, pwd are username password of gmail a/c i am trying to send from server = smtplib.SMTP('smtp.gmail.com:587') server.starttls() # get response(220, '2.0.0 Ready to start TLS') server.login(uname,pwd) # get response(235, '2.7.0 Accepted') toaddrs = ['x...@gmail.com', 'y...@gmail.com' ] # list of To email addresses msg = MIMEText('email body') msg['Subject'] = 'email subject' server.sendmail(fromaddr, toaddrs, msg.as_string()) ] The code above works perfectly fine on my local machine, but fails on the production server at the university where i work( all ports other than port 80 are blocked) :( So , when i try to run the 2 py statements (in bold below) on a python prompt from the production server, which has port 587 blocked, i get the following error { import smtplib server = smtplib.SMTP('smtp.gmail.com:587') Traceback (most recent call last): File stdin, line 1, in module File /usr/lib/python2.6/smtplib.py, line 239, in __init__ (code, msg) = self.connect(host, port) File /usr/lib/python2.6/smtplib.py, line 295, in connect self.sock = self._get_socket(host, port, self.timeout) File /usr/lib/python2.6/smtplib.py, line 273, in _get_socket return socket.create_connection((port, host), timeout) File /usr/lib/python2.6/socket.py, line 514, in create_connection raise error, msg socket.error: [Errno 101] Network is unreachable } 1. How can i overcome this ? A friend suggested , that i could use something called smtp relay, which would solve my problem, but would be time-consuming a pain to set up. I did some cursory googling searching on stackoverflow but could not find any good, well explained results. I dont know anything about SMTP. Anybody has any recommendations on a good explanation on smtp relay how to set it up for sending email from a gmail a/c using a python script ? 2. Also, is there a more elegant/cleaner/graceful solution to my problem than using an smtp relay ? Any all explanations/links/code snippets/thoughts/ideas/suggestions/feedback/comments/wisdom of the c.l.p community would be greatly appreciated. Thanks a ton cheers ashish email : ashish.makani domain:gmail.com p.s. some more context so people dont presume we are spammers :) These emails are automated diagnostic emails sent to a group of a few of us admins, so we get notified when a python heartbeat script, detects a failure in things like n/w connectivity, router status, etc. All of us dont use university email, we use gmail . “The only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle. As with all matters of the heart, you’ll know when you find it.” - Steve Jobs (1955 - 2011) -- http://mail.python.org/mailman/listinfo/python-list
Re: Single leading dash in member variable names?
On 09/11/2012 01:53 PM, e.doxta...@gmail.com wrote: On Tuesday, September 11, 2012 2:06:45 PM UTC-5, Ian wrote: On Tue, Sep 11, 2012 at 12:45 PM, I wrote: What is the significance of the leading underscore in self._bongo? I've seen this a few times and, after looking through PEP 8, I didn't see anything relevant, but I could have missed it. Single leading underscore is a convention indicating that the name should be considered private and not used externally. It's a softer version of the double leading underscore that means basically the same thing but has syntactic significance. Thank you! PEP 8 says this is bad form. What do you think? Where does it say that? -- Erik Max Francis m...@alcyone.com http://www.alcyone.com/max/ San Jose, CA, USA 37 18 N 121 57 W AIM/Y!M/Jabber erikmaxfrancis I will always remember / This moment -- Sade -- http://mail.python.org/mailman/listinfo/python-list
Double sided double underscored variable names
Were I to make a language to compile to Python, it is highly likely I would need to use hidden variable names to work constructs that Python alone does not have. This is the situation I face. If I were to use internal double-underscored names of the form __BS_* internalname*__, would the compiled code be able to assume that no-one had overwritten these variables and never will, even through modification of, say, locals(). I ask because Python's docs seem to specify that double sided double underscored names are strictly for Python and its special names. In other words, is not using __these_names__ in Python code rule or heavy convention. __BS__ is used because the name of the language is BluntSharp. Do not expect the language to ever be useful or widespread; I am doing this mostly for fun. An alternative is modifying the AST (as I am really compiling to Python's AST) to have the variables with names such as +BS_internalname, but that seems like it might break a lot. I also doubt that it is good convention. -- http://mail.python.org/mailman/listinfo/python-list
Re: Double sided double underscored variable names
On Wed, Sep 12, 2012 at 8:09 AM, Joshua Landau joshua.landau...@gmail.com wrote: If I were to use internal double-underscored names of the form __BS_internalname__, would the compiled code be able to assume that no-one had overwritten these variables and never will, even through modification of, say, locals(). I ask because Python's docs seem to specify that double sided double underscored names are strictly for Python and its special names. Interesting. If you're compiling your code to Python, you may be able to, if necessary, adorn a user's variable name(s). I'd be inclined to use a single underscore notation like _BS_internalname_ and then, in the event of a collision (which would be incredibly unlikely unless someone's fiddling), rename the offending variable to _BS_BS_something_ - which of course you'd never yourself use. Would that serve? ChrisA -- http://mail.python.org/mailman/listinfo/python-list
Re: How to send email programmatically from a gmail email a/c when port 587(smtp) is blocked
On 11/09/2012 22:51, ashish makani wrote: Hi c.l.p peeps I am stuck with an issue, so am coming to the Pythonista deltaforce who rescue me everytime :) [big snip] I say old chap, it's simply not cricket to ask a question like this some 32 minutes after asking the same question on the tutor mailing list. -- Cheers. Mark Lawrence. -- http://mail.python.org/mailman/listinfo/python-list
Re: Double sided double underscored variable names
On 11 September 2012 23:22, Chris Angelico ros...@gmail.com wrote: On Wed, Sep 12, 2012 at 8:09 AM, Joshua Landau joshua.landau...@gmail.com wrote: If I were to use internal double-underscored names of the form __BS_internalname__, would the compiled code be able to assume that no-one had overwritten these variables and never will, even through modification of, say, locals(). I ask because Python's docs seem to specify that double sided double underscored names are strictly for Python and its special names. Interesting. If you're compiling your code to Python, you may be able to, if necessary, adorn a user's variable name(s). I'd be inclined to use a single underscore notation like _BS_internalname_ and then, in the event of a collision (which would be incredibly unlikely unless someone's fiddling), rename the offending variable to _BS_BS_something_ - which of course you'd never yourself use. Would that serve? Well, the problem is that a lot of collisions aren't predictable. locals()['foo'] = 2, for example. If it weren't for Python's annoying flexibility* I would definitely do something very close to what you suggest. Remember that locals() isn't Python's only introspection tool. How about from foo import *? I could just make the claim You use non-explicitly declared names and you pay the price, but that seems... less nice. *Being annoying is how I'm pretty sure I can get inline function definitions working, though, so I shouldn't give it too much rap... -- http://mail.python.org/mailman/listinfo/python-list
Re: Double sided double underscored variable names
On Wed, Sep 12, 2012 at 8:48 AM, Joshua Landau joshua.landau...@gmail.com wrote: Well, the problem is that a lot of collisions aren't predictable. locals()['foo'] = 2, for example. If it weren't for Python's annoying flexibility* I would definitely do something very close to what you suggest. Remember that locals() isn't Python's only introspection tool. How about from foo import *? You're not supposed to mutate locals(), but I suppose globals() works the same way. Inline functions? I like this idea. I tend to want them in pretty much any language I write in. ChrisA -- http://mail.python.org/mailman/listinfo/python-list
Re: how to get os.py to use an ./ntpath.py instead of Lib/ntpath.py
On Wed, Sep 12, 2012 at 5:13 AM, ruck john.ruckst...@gmail.com wrote: I'm not sure how I could have known that ntpath was already imported, since *I* didn't import it, but that was the key to my confusion. One way to find out is to peek at the cache. import sys sys.modules There are quite a few of them in the 3.2 interactive that I just tried this in. ChrisA -- http://mail.python.org/mailman/listinfo/python-list
Re: how to get os.py to use an ./ntpath.py instead of Lib/ntpath.py
On 09/11/2012 03:13 PM, ruck wrote: snip I'm not sure how I could have known that ntpath was already imported, since *I* didn't import it, but that was the key to my confusion. import sys print sys.modules -- DaveA -- http://mail.python.org/mailman/listinfo/python-list
Re: Which Version of Python?
Charles Hottel chot...@earthlink.net writes: I have a lot of programming experience in many different languages and now I want to learn Python. Good for you, and welcome! Which version do you suggest I download, Python 2.x or Python 3.x ? Also why should I prefer one over the other? This question is a good one. It is common enough that the home page URL:http://www.python.org/ has a link to the community's answer/discussion at URL:http://wiki.python.org/moin/Python2orPython3. Right now I am thinkng Python 3.x as it has been out since 2008, but I have some concerns about backward compatibility with older packages that I might want to use. The fact that Python 3 has been out for a number of years is important, as is the fact that the Python developers and the community of third-party library developers have worked quite hard to make it feasible to work in Python 3. More important, from the perspective of a newcomer, is that Python 2 is essentially in maintenance-only mode, receiving only bug fixes. All larger improvements are only going into Python 3. The set of third-party libraries which are not ready for Python 3 still has some significant members, and will certainly never be zero. But that set has shrunk significantly in the many years that Python 3 has been active. At this stage, I would advise any person wanting to learn Python qua Python (i.e. without considering the wrinkles of some specific task) to focus on Python 3. If you need to learn older versions, that need will present itself and you can learn the legacy quirks then; for now, learn Python the way it is intended to be by going for Python 3. -- \ “A lie can be told in a few words. Debunking that lie can take | `\ pages. That is why my book… is five hundred pages long.” —Chris | _o__)Rodda, 2011-05-05 | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list
Re: Which Version of Python?
If your desire is to learn Python then I would stick to 2.7 My reasoning would be that there are still a significant number of packages that have not been ported to 3.x (and may never be ported). Not having looked at the changes in 3.x (so don't flame me! :-)), it would seem that anything you learn in 2.7 would be easily transferred up when and if you feel the need to go to 3.x, but in the meantime enjoy the better support of a greater range of packages that are still only 2.x compatible! i.e. learning (and using) features of 3.x could make it difficult to go down when/if you decide you really need to use a library that hasn't (and may never!) be ported to 3.x. For example, Graysons book on Python GUI programming is still one of the better Python GUI books (although very old now!) and it would steer you towards using the Pmw library - which may never be ported to 3.x. If you decide to use wxPython for your GUI work then I see that has support for 2.x only also. So in this case, staying with the lower common denominator might be the better choice. -- http://mail.python.org/mailman/listinfo/python-list
Re: Standard Asynchronous Python
Thanks for the second round of responses. I think this gives me some focus - concentrate on the API, talk to the framework developers, and start redrafting the PEP sooner rather than later. Thanks! Dustin -- http://mail.python.org/mailman/listinfo/python-list
Re: Double sided double underscored variable names
Sorry for breaking threading, but Joshua's post does not show up on my usenet provider. On Wed, 12 Sep 2012 08:22:17 +1000, Chris Angelico wrote: On Wed, Sep 12, 2012 at 8:09 AM, Joshua Landau joshua.landau...@gmail.com wrote: If I were to use internal double-underscored names of the form __BS_internalname__, would the compiled code be able to assume that no-one had overwritten these variables and never will, Certainly not. It is virtually never possible to make that assumption in Python. Nearly everything can be shadowed at runtime. (One exception is local variables of a function, which can only be seen from inside that function. But you don't need to wrap local variable names in underscores to treat them as local.) Dunder (Double leading and trailing UNDERscore) names are normal names subject to the same rules as anything else in Python (with one exception), which means you can modify them in all sorts of ways at runtime: py _int = int py class MyInt(_int): ... def __add__(self, other): ... return 42 ... py int = MyInt py a = int(1) py a + 1 42 py type(a).__add__ = lambda self, other: 23 py a + 1 23 The one exception how dunder names are treated specially is that Python uses a short-cut for name-lookup which means you cannot override them on a per-instance basis like normal other attribute names. even through modification of, say, locals(). Modifying locals() is an implementation detail which may not be supported. I ask because Python's docs seem to specify that double sided double underscored names are strictly for Python and its special names. Dunder names are reserved for use by Python's built-ins and syntax, that is all. Interesting. If you're compiling your code to Python, you may be able to, if necessary, adorn a user's variable name(s). I'd be inclined to use a single underscore notation like _BS_internalname_ and then, in the event of a collision (which would be incredibly unlikely unless someone's fiddling), rename the offending variable to _BS_BS_something_ - which of course you'd never yourself use. Would that serve? This seems to be a mere extension of the name-mangling that occurs with leading-only double-underscore attributes like self.__spam. This can be a right PITA at times, and offers so little protection that it isn't worthwhile. __names only protect against *accidental* name collisions, and not all of those. -- Steven -- http://mail.python.org/mailman/listinfo/python-list
Re: Which Version of Python?
On 2012.09.11 19:17, Peter wrote: If your desire is to learn Python then I would stick to 2.7 My reasoning would be that there are still a significant number of packages that have not been ported to 3.x (and may never be ported). This is true, but the /potential/ for the need for one of these packages is not a good reason to learn from a branch that will never get any new features. If there is indeed a compelling reason to stay with the older version, then it is a worthwhile tradeoff. Otherwise, it is just silly. Not having looked at the changes in 3.x (so don't flame me! :-)) That would be a good reason /to/ flame you. ;) , it would seem that anything you learn in 2.7 would be easily transferred up when and if you feel the need to go to 3.x, 3.x is not a simple superset of 2.7 - there are certain limitations and ways of doing things in 2.x that don't apply to 3.x. A new programmer should learn, for example, handling Unicode properly (which is strongly encouraged in 3.x) and then learn how to deal with less-than-ideal implementations (like 2.x) rather than learn how to do it sloppily and then be frustrated when 3.x wants them to do it correctly. Backward compatibility was not broken for trivial reasons. i.e. learning (and using) features of 3.x could make it difficult to go down The official documentation does point out things that have been added/changed both overall in the What's New page and specifically in each module's documentation. when/if you decide you really need to use a library that hasn't (and may never!) be ported to 3.x. I don't think it's a good idea to encourage people (especially newbies) to stick with packages that won't get updated. I'm not saying that a package that isn't planned to be 3.x compatible will necessarily be unmaintained, but being unmaintained is the reason many packages will not be made 3.x compatible. In any case, packages that aren't getting support for 3.x will likely be replaced with better alternatives, especially once people start flocking en masse to 3.x (I'm no expert, but my guess is that this will happen once Django and Twisted support 3.x). If 3.0 had come out a month ago, I would see value in learning 2.x, but it's been nearly 4 years. -- CPython 3.3.0b1 | Windows NT 6.1.7601.17803 -- http://mail.python.org/mailman/listinfo/python-list
Re: Double sided double underscored variable names
And again, Joshua's original post is not available from my provider. Joshua, I suspect that something about your post is being seen as spam and dropped by at least some providers. On Wed, 12 Sep 2012 08:52:10 +1000, Chris Angelico wrote: On Wed, Sep 12, 2012 at 8:48 AM, Joshua Landau joshua.landau...@gmail.com wrote: Well, the problem is that a lot of collisions aren't predictable. locals()['foo'] = 2, for example. If it weren't for Python's annoying flexibility* I can't see your footnote there, so you may have already covered this, but for the record, what you call Python's annoying flexibility is fundamental to Python's programming model and done so for good reasons. The ability to shadow built-ins is, at times, incredibly useful rather than annoying. The world is full of bondage and domination languages that strongly restrict what you can do. Python doesn't need to be another one of them. Python's optimizing compiler, PyPy, is able to optimize code very well without such restrictions. I would definitely do something very close to what you suggest. Remember that locals() isn't Python's only introspection tool. How about from foo import *? I wouldn't call import * an introspection tool. At least, no more so than print. You're not supposed to mutate locals(), It's not so much you're not allowed to do it, but that the result of making changes to locals() inside a function is implementation dependent: CPython 2: writing to the dict returned by locals() will work, but the changes will not be reflected in the actual local variables, except under very restricted circumstances; CPython 3: those restricted circumstances that allowed writes to locals() to modify local variables are now SyntaxErrors; Stackless: presumably the exact same behaviour as CPython (since Stackless is a fork, not a re-implementation); Jython: the same as CPython; IronPython: writes to locals() will modify the corresponding local variable. Outside of a function, locals() returns globals() and writes will always modify the global variable (this is a language guarantee). but I suppose globals() works the same way. Inline functions? I like this idea. I tend to want them in pretty much any language I write in. What do you mean by in-line functions? If you mean what you literally say, I would answer that Python has that with lambda. But I guess you probably mean something more like macros. -- Steven -- http://mail.python.org/mailman/listinfo/python-list
Re: Double sided double underscored variable names
On 12 September 2012 01:51, Steven D'Aprano steve+comp.lang.pyt...@pearwood.info wrote: Sorry for breaking threading, but Joshua's post does not show up on my usenet provider. That may explain why I keep getting ignored -.- I thought it was something I said :P I'm just using EMail through GMail, posting to python-list@python.org. If that is the wrong way, I would love to know what I should be doing. On Wed, 12 Sep 2012 08:22:17 +1000, Chris Angelico wrote: On Wed, Sep 12, 2012 at 8:09 AM, Joshua Landau joshua.landau...@gmail.com wrote: If I were to use internal double-underscored names of the form __BS_internalname__, would the compiled code be able to assume that no-one had overwritten these variables and never will, Certainly not. It is virtually never possible to make that assumption in Python. Nearly everything can be shadowed at runtime. (One exception is local variables of a function, which can only be seen from inside that function. But you don't need to wrap local variable names in underscores to treat them as local.) Dunder (Double leading and trailing UNDERscore) names are normal names subject to the same rules as anything else in Python (with one exception), which means you can modify them in all sorts of ways at runtime: py _int = int py class MyInt(_int): ... def __add__(self, other): ... return 42 ... py int = MyInt py a = int(1) py a + 1 42 py type(a).__add__ = lambda self, other: 23 py a + 1 23 Fair play. The one exception how dunder names are treated specially is that Python uses a short-cut for name-lookup which means you cannot override them on a per-instance basis like normal other attribute names. even through modification of, say, locals(). Modifying locals() is an implementation detail which may not be supported. Nice to know. I ask because Python's docs seem to specify that double sided double underscored names are strictly for Python and its special names. Dunder names are reserved for use by Python's built-ins and syntax, that is all. The idea is that if they were reserved then nobody should ever use them. They may be able to, yes, but if you are not meant to make any up, and __BS_internalname__ isn't a Python-reserved name, then maybe I could claim that it's safe territory. Interesting. If you're compiling your code to Python, you may be able to, if necessary, adorn a user's variable name(s). I'd be inclined to use a single underscore notation like _BS_internalname_ and then, in the event of a collision (which would be incredibly unlikely unless someone's fiddling), rename the offending variable to _BS_BS_something_ - which of course you'd never yourself use. Would that serve? This seems to be a mere extension of the name-mangling that occurs with leading-only double-underscore attributes like self.__spam. This can be a right PITA at times, and offers so little protection that it isn't worthwhile. __names only protect against *accidental* name collisions, and not all of those. I disagree. Not with your opinion on self.__spam, but on its equivalence to the the mentioned idea. I have never used (due to absence of need) double leading underscored names, but name mangling is a rigidly different concept to simply naming a variable differently to another. As I can introspect my own compiled code* (gasp!) I can check for any direct name clashes. Python does not do the same with mangling, I believe. It's not like I don't have options. I could always say that inexplicit names have to be careful not to start with _BS_ and then deal nicely with the explicit ones as said above. But then, people aren't going to be prepending _BS_ explicitly unless they want to 'break' the code. If /you/ wanted to use a programming language that compiled to Python, would you mind _BS_internalname_ variables littered around the place, and would you prefer if they avoided as many conflicts as they can? I could always make explicit conflicts a warning rather than avoid them. I'm not sure what the practical choice is. * When it's done, of course -- http://mail.python.org/mailman/listinfo/python-list
Re: Double sided double underscored variable names
On 12 September 2012 02:14, Steven D'Aprano steve+comp.lang.pyt...@pearwood.info wrote: And again, Joshua's original post is not available from my provider. Joshua, I suspect that something about your post is being seen as spam and dropped by at least some providers. I am sorry to ask this, but in the meantime can someone who isn't spam-filtered repost my messages? I'll give them a cookie! To repeat my previous post, I'm using GMail and posting to python-list@python.org. If that is what I'm meant to be doing, I'll try another email address. On Wed, 12 Sep 2012 08:52:10 +1000, Chris Angelico wrote: On Wed, Sep 12, 2012 at 8:48 AM, Joshua Landau joshua.landau...@gmail.com wrote: Well, the problem is that a lot of collisions aren't predictable. locals()['foo'] = 2, for example. If it weren't for Python's annoying flexibility* I can't see your footnote there, so you may have already covered this, but for the record, what you call Python's annoying flexibility is fundamental to Python's programming model and done so for good reasons. The ability to shadow built-ins is, at times, incredibly useful rather than annoying. The world is full of bondage and domination languages that strongly restrict what you can do. Python doesn't need to be another one of them. Python's optimizing compiler, PyPy, is able to optimize code very well without such restrictions. I agree :P. The footnote should portray that I said that in jest. I would definitely do something very close to what you suggest. Remember that locals() isn't Python's only introspection tool. How about from foo import *? I wouldn't call import * an introspection tool. At least, no more so than print. Yeah, I meant things that can change the current scope without explicitly naming the changes. print doesn't do that, but you are correct in what you say. snip but I suppose globals() works the same way. Inline functions? I like this idea. I tend to want them in pretty much any language I write in. What do you mean by in-line functions? If you mean what you literally say, I would answer that Python has that with lambda. But I guess you probably mean something more like macros. No, just multi-line lambda. Macros, if my knowledge of lower-level languages is valid, would be sorta' silly in Python. -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
On Tuesday, September 11, 2012 9:42:56 AM UTC-4, Marco Nawijn wrote: On Monday, September 10, 2012 11:10:55 PM UTC+2, Jayden wrote: Are there any python CAD libraries that can (1) build simple 3D primitives solids such as spheres, cylinders and so on (2) perform bool operations on 3D solids (3) better if it has some transformations such has scaling, sweeping, and lofting Please recommend some good ones for me? Thanks a lot!! Hi Jayden, In my opinion, the best you can get is OpenCascade (OCC) (www.opencascade.org) in combination with the python bindings (www.pythonocc.org). OCC is a hugh C++ CAD library. It not only deals with the simple geometric stuff, but it can be used to build CAD programs similar to SolidEdge or SolidWorks. It does however come with quite a steep learning curve. When using PythonOCC, the learning curve becomes a little less steep. Also note that in my opinion, Blender cannot be considered as a CAD environment. Ofcourse it is very powerful, but I think it is more targeted towards animation and visually pleasing applications, not mechanical engineering. Regards, Marco Hi, Marco, Thank you so much! This is what I exactly want. But I am a little concerned about its steep learning curve. Is it really hard to learn pythonOCC? Averagely, how long does it take to begin to program some practical code? Do you have any good advice for me to learn it? I deeply appreciate your kind help!! Best regards, Jayden -- http://mail.python.org/mailman/listinfo/python-list
Re: Double sided double underscored variable names
This is an email address linked to my GMail account. If this works better, tell me and I'll switch. It's still sending through GMail though. -- http://mail.python.org/mailman/listinfo/python-list
Re: Which Version of Python?
On Tue, 11 Sep 2012 17:17:14 -0700, Peter wrote: If your desire is to learn Python then I would stick to 2.7 My reasoning would be that there are still a significant number of packages that have not been ported to 3.x (and may never be ported). But if all you want is to learn Python, then those packages are irrelevant. If I want to learn to write Python code, why should I care about SomePackage, regardless of whether it supports Python 3.x or 2.x or even 1.x? As a beginner to the language, I don't even know it exists, and chances are I'm never going to use it. (I was happily using Python using only the standard library for about seven years before I installed my first third-party library.) You may not have intended it this way, but the argument stick to Python 2, because packages! is a typical troll response. It might have been a reasonable response six years ago, when there weren't many (or even any) major packages that supported Python 3, but now many major packages do and most of those that don't are in the process of doing so. Now the choice is, paradoxically, much harder because library support is much more split: some libraries support 2.x, some 3.x, and some both. Of course, if you *need* to use SomePackage which only supports Python 2 or 3, then that will drive your decision to learn Python 2 or 3. But consider: (1) If a package only supports Python 2 now, and *has no plans* to support Python 3, I would consider that package more or less a dead end and be reluctant to start a new project with it unless I had no other choice at all. (Seriously guys, if you're the developer of a project that only supports 2.x and you aren't at least *thinking about* supporting 3.x, your project is going to be irrelevant to the wider world soon.) (2) The syntax differences between Python 2 and 3 are very minor. By the time you are proficient in one, you will be *easily* be able to jump to the other. Not having looked at the changes in 3.x (so don't flame me! :-)), it would seem that anything you learn in 2.7 would be easily transferred up when and if you feel the need to go to 3.x, It goes both ways. But frankly, whenever I drop down from 3.x code to 2.x code, I get really annoyed that there's a lot of excellent stuff I cannot use. but in the meantime enjoy the better support of a greater range of packages that are still only 2.x compatible! That's true. But the range of 3.x compatible third party libraries is very impressive: it includes numpy and scipy, CherryPy, parts of zope (but not yet all of it), pyparsing, an unofficial port of nltk, py2exe, and many more. Others, like django, have committed to support 3.x as soon as they can drop support for 2.4 or 2.5. See also: http://python3wos.appspot.com/ PyPy is now in the process of supporting Python 3. Within a few years, Python 3 will be the standard. i.e. learning (and using) features of 3.x could make it difficult to go down when/if you decide you really need to use a library that hasn't (and may never!) be ported to 3.x. Any package that is not ported to 3.x will eventually be as obsolete and irrelevant as packages that only support Python 1.5. Python 2.7 will have an extended support period, but that won't last forever. My estimate is that we're past the half-way mark: in another four years, the question of 2.x or 3.x will be irrelevant, people will be asking I want to use library foo, but it only supports 2.7, what should I do?, and in eight years, people won't even ask that, they'll just ignore library foo as abandoned. So in this case, staying with the lower common denominator might be the better choice. Everyone has to make that choice for themselves, based on what libraries they intend to use. For those who don't intend to use any libraries at all, I think the answer is simple: Learn the version of Python that comes installed on your computer, or if you have to install it yourself, learn Python 3. -- Steven -- http://mail.python.org/mailman/listinfo/python-list
Re: Which Version of Python?
On Wed, 12 Sep 2012 02:11:22 +, Steven D'Aprano wrote: On Tue, 11 Sep 2012 17:17:14 -0700, Peter wrote: If your desire is to learn Python then I would stick to 2.7 My reasoning would be that there are still a significant number of packages that have not been ported to 3.x (and may never be ported). But if all you want is to learn Python, then those packages are irrelevant. If I want to learn to write Python code, why should I care about SomePackage, regardless of whether it supports Python 3.x or 2.x or even 1.x? As a beginner to the language, I don't even know it exists, and chances are I'm never going to use it. (I was happily using Python using only the standard library for about seven years before I installed my first third-party library.) You may not have intended it this way, but the argument stick to Python 2, because packages! is a typical troll response. It might have been a reasonable response six years ago, when there weren't many (or even any) major packages that supported Python 3, Hardly surprising given that Python 3 came out four years ago. Sorry, brain-fart. I meant four years ago. -- Steven -- http://mail.python.org/mailman/listinfo/python-list
generators as decorators simple issue
I'm trying to call SetName on an object to prevent me from ever having to call it explictly again on that object. Best explained by example. def setname(cls): '''this is the proposed generator to call SetName on the object''' try: cls.SetName(cls.__name__) finally: yield cls class Trial: '''class to demonstrate with''' def SetName(self, name): print 1, 1 @setname class Test(Trial): '''i want SetName to be called by using setname as a decorator''' def __init__(self): print 'Yay! or Invalid.' if __name__ == '__main__': test = Test() How can i fix this? This is my exact error: python decors2.py Traceback (most recent call last): File decors2.py, line 23, in module test = Test() TypeError: 'generator' object is not callable -- http://mail.python.org/mailman/listinfo/python-list
Re: generators as decorators simple issue
On Wednesday, 12 September 2012 07:58:10 UTC+5:30, pyjoshsys wrote: I'm trying to call SetName on an object to prevent me from ever having to call it explictly again on that object. Best explained by example. [snip] In your decorator, you are using `yield cls` - it should be `return cls` 99.99% of the time. -- http://mail.python.org/mailman/listinfo/python-list
Re: Which Version of Python?
On Tuesday, 11 September 2012 22:19:08 UTC+5:30, Charles Hottel wrote: I have a lot of programming experience in many different languages and now I want to learn Python. Which version do you suggest I download, Python 2.x or Python 3.x ? Also why should I prefer one over the other? Right now I am thinkng Python 3.x as it has been out since 2008, but I have some concerns about backward compatibility with older packages that I might want to use. Thanks for your ideas and help. Use Python 3 because most packages support Python 3. Python 2.7 has many features that Python 3 has so it will require minimal effort to write Python 2.x code. -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
On Tuesday, 11 September 2012 02:40:55 UTC+5:30, Jayden wrote: Are there any python CAD libraries that can (1) build simple 3D primitives solids such as spheres, cylinders and so on (2) perform bool operations on 3D solids (3) better if it has some transformations such has scaling, sweeping, and lofting Please recommend some good ones for me? Thanks a lot!! You could use Blender. It has support for Python 3 (I don't know whether it has support for Python 2) -- http://mail.python.org/mailman/listinfo/python-list
Re: python CAD libraries?
Hi, Marco, Thank you so much! This is what I exactly want. But I am a little concerned about its steep learning curve. Is it really hard to learn pythonOCC? Averagely, how long does it take to begin to program some practical code? Do you have any good advice for me to learn it? I deeply appreciate your kind help!! Best regards, Jayden -- http://mail.python.org/mailman/listinfo/python-list Hey Jayden, You gotta learn to use the google searches buddy, although sometimes a good conversation can help: I found this under search term 'pythonOCC example code' http://code.google.com/p/pythonocc-examples/ and a converted pdf manual from quickview. You can download the pdf by typing in the above search term, and going straight to the main link: https://docs.google.com/viewer?a=vq=cache:iu53RJFs1XEJ:https://pythonocc.googlecode.com/svn-history/r999/trunk/doc/tutorials/geometry_modeling_and_visualization/LATEX_src/VisualizationOfGeometryWithUtilisingpythonOCC.pdf+hl=engl=uspid=blsrcid=ADGEESgHGUGqRqXy6Z9MKCgIIh19JfY9_BYl_xw5tQODTx1N8Hqb3CPU_oruG2LKpNhbfnrEgKEvLTyJHvfOymsHcNSMAQ7WoAa_SW-Bdg33WKVmtoD7dvEtajyqv4KMQuMLgv-NT_omsig=AHIEtbSGCtWIUBBiFSsELS1AregIpXUVjApli=1 -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
Re: Which Version of Python?
I try to usually use several versions to know the difference. You never know when a package might come along, and you want to try it out, and then version becomes compatibility. Alternatively, a client might come along and insist that a particular version be used. Do a little quick research on the differences, and try them out. You might want to know a few things like from __future__ import x for the 2's or print 'this' become print('this') in later ones, etc. -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
pythonOCC examples doesn't work?
I installed (1) pythonxy2.7.2.3 (with python2.7) and (2) pythonOCC-0.5-all-in-one.win32.py26 on windows 7 64 bit computer. I try run pythonOCC examples in its example folder, such as the helloworld.py and got errors as follows: ImportantError: DLL load failed: The specified module could not be found. The error come from the line of code: from OCC.BrepPrimAPI import * -- http://mail.python.org/mailman/listinfo/python-list
pythonOCC examples doesn't work?
I installed (1) pythonxy2.7.2.3 (with python2.7) and (2) pythonOCC-0.5-all-in-one.win32.py26 on windows 7 64 bit computer. I try run pythonOCC examples in its example folder, such as the helloworld.py and got errors as follows: ImportantError: DLL load failed: The specified module could not be found. The error come from the line of code: from OCC.BrepPrimAPI import * How to fix the error? Thanks a lot!! -- http://mail.python.org/mailman/listinfo/python-list
Re: pythonOCC examples doesn't work?
On Tue, Sep 11, 2012 at 11:58 PM, Jayden jayden.s...@gmail.com wrote: I installed (1) pythonxy2.7.2.3 (with python2.7) and (2) pythonOCC-0.5-all-in-one.win32.py26 on windows 7 64 bit computer. I try run pythonOCC examples in its example folder, such as the helloworld.py and got errors as follows: ImportantError: DLL load failed: The specified module could not be found. The error come from the line of code: from OCC.BrepPrimAPI import * Not sure if this would fix it(had kind of a similar problem I think a while back, I have the AMD WOW 64, but you might want to install the 2.7_64 version of Python, and if that doesn't work, come back with the results. -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
Re: Double sided double underscored variable names
On Wed, Sep 12, 2012 at 11:38 AM, Joshua Landau joshua.landau...@gmail.com wrote: On 12 September 2012 02:14, Steven D'Aprano steve+comp.lang.pyt...@pearwood.info wrote: And again, Joshua's original post is not available from my provider. Joshua, I suspect that something about your post is being seen as spam and dropped by at least some providers. I am sorry to ask this, but in the meantime can someone who isn't spam-filtered repost my messages? I'll give them a cookie! To repeat my previous post, I'm using GMail and posting to python-list@python.org. If that is what I'm meant to be doing, I'll try another email address. Mailing to python-list@python from Gmail is exactly what I do, and far as I know, none of my posts are getting lost. But then, I'm seeing all your posts, too, so maybe I just don't know when my posts don't go through. On Wed, 12 Sep 2012 08:52:10 +1000, Chris Angelico wrote: Inline functions? I like this idea. I tend to want them in pretty much any language I write in. What do you mean by in-line functions? If you mean what you literally say, I would answer that Python has that with lambda. But I guess you probably mean something more like macros. No, just multi-line lambda. Macros, if my knowledge of lower-level languages is valid, would be sorta' silly in Python. Ah, okay. I was thinking more along the lines of what you call macros, but in the C++ sense of inline functions. In C, macros are handled at precompilation stage, and are dangerous. Classic example: #define squared(x) x*x x_squared = squared(6+7) So your macros end up littered with parentheses, and it still doesn't solve anything, as the argument still gets evaluated twice. (A problem if it has side effects - eg if it's a function call.) What I'm thinking of, though, is like C++ functions. You can put the 'inline' keyword onto any function, and the compiler will do its best to inline it (in fact, a good optimizing compiler will inline things regardless, but that's a separate point). I can write: inline int squared(int x) {return x*x;} and C++ will add no function overhead, but will still do all the proper evaluation order etc. Of course, C++ doesn't allow monkeypatching, so you'll never have semantic differences from inlining. It's just a performance question. But I use inline functions like constants - for instance, I could create a function that converts a database ID into an internal reference number, and I can change the definition of that function in one place and have it apply everywhere, just like if I wanted to change the definition of math.PI to 3.142857 for fun one day. Of course I can use a normal (out-of-line) function for this, but that has overhead in most languages. Hence, wanting inline functions. ChrisA -- http://mail.python.org/mailman/listinfo/python-list
Re: pythonOCC examples doesn't work?
I came up with this thread: http://techblog.ironfroggy.com/2007/01/python-on-windows-and-path.html But you might want to go to the pywin list for this one. http://mail.python.org/mailman/listinfo/python-win32 It says win32, but they should be able to help either way. -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
Re: generators as decorators simple issue
On Sep 12, 12:28 pm, j.m.dagenh...@gmail.com wrote: def setname(cls): '''this is the proposed generator to call SetName on the object''' try: cls.SetName(cls.__name__) finally: yield cls A generator is (basically) a callable that acts like an iterator. You'd use a generator if you wanted to loop with for or a list comprehension across the output of the generator: for foo in setname(Test) A decorator is a callable that takes another callable as an argument, either modifying it or returning a wrapped version of it: Test = setname(Test) You don't want to iterate over anything, so you should change `yield` to `return`. -- http://mail.python.org/mailman/listinfo/python-list
Re: pythonOCC examples doesn't work?
On Wednesday, September 12, 2012 6:02:14 AM UTC+2, Jayden wrote: I installed (1) pythonxy2.7.2.3 (with python2.7) and (2) pythonOCC-0.5-all-in-one.win32.py26 on windows 7 64 bit computer. I try run pythonOCC examples in its example folder, such as the helloworld.py and got errors as follows: ImportantError: DLL load failed: The specified module could not be found. The error come from the line of code: from OCC.BrepPrimAPI import * How to fix the error? Thanks a lot!! Hi Jayden, It has been some time ago that I used PythonOCC and I used it on Linux, so I cannot be of much help here. It sounds like you have to tell Windows where to look for the installed libraries (environment variables?). Anyhow, I recommend to post the question to the PythonOCC mailinglist. They are quite responsive. One last suggestion. OCC itself comes with a small utility called DRAWEXE. It is a tcl/tk program that can be used to play around with a lot of the functionality provided by OCC. Good luck! Marco -- http://mail.python.org/mailman/listinfo/python-list
Re: Single leading dash in member variable names?
Not to jump in with another question(this seems somewhat relevant to the conversation, maybe not), but is this similar to a private,public, or protected class similar to the C type langs? -- Best Regards, David Hutto *CEO:* *http://www.hitwebdevelopment.com* -- http://mail.python.org/mailman/listinfo/python-list
[issue15882] _decimal.Decimal constructed from tuple
Stefan Krah added the comment: Thanks for the report and the patch. I used another approach that still validates the digits in the coefficient tuple even if it is not used. decimal.py allows any coefficient: Decimal((0, ('n', 'a', 'n'), 'F')) Decimal('Infinity') _decimal raises: Decimal((0, ('n', 'a', 'n'), 'F')) Traceback (most recent call last): File stdin, line 1, in module ValueError: coefficient must be a tuple of digits I'm leaving the issue open: If some release blocker arises, we could get this into 3.3.0-rc3. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15882 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15882] _decimal.Decimal constructed from tuple
Changes by Stefan Krah stefan-use...@bytereef.org: -- resolution: - fixed stage: - committed/rejected ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15882 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15898] OSX TTY bug
Andrew Moffat added the comment: Sorry about that, I refactored out the string at the last minute and typed testing123 instead of the original testing from the trace. I'm not sure I follow the problem exactly. So you're saying that the failing version uses _cancel sys calls, and that __pthread_testcancel may result in EINTR. But that this is not happening in the trace, and data is being written successfully. I guess I'm wondering where the written bytes went and if there's any way to retrieve them? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15898 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15896] Sporadic EINVAL in nonblocking pipe os.read when forked child fails on Mac OS
Vitaly added the comment: I wrote a C-language program to reproduce this issue on Mac OS without Python. It reproduces the issue in both increasing and decreasing order of initial read sizes, and it reliably reproduces it for each KB from 128KB to 1024KB ; the Python version reproduced the issue every 4K and only in decreasing order (probably something related to Python's memory management optimizations). A new caveat: if the read buffer is allocated once before entering the read loop, then we don't get any EINVAL in the entire run; however, if the read buffer is allocated for each read request inside the loop, then we get EINVAL every other time in the range from 128KB and up. I would like to file this issue with apple/Mac OS. What's the appropriate URL for this? -- Added file: http://bugs.python.org/file27172/test_fork_pipe_error.cpp ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15896 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15913] PyBuffer_SizeFromFormat is missing
Stefan Krah added the comment: Even though it's documented, the function is probably a new feature and should go into 3.4. Meanwhile, you can call struct.calcsize(format). Any non-trivial implementation of PyBuffer_SizeFromFormat() would likely do the same. -- components: +Interpreter Core -None nosy: +skrah type: - enhancement versions: +Python 3.4 -Python 2.7, Python 3.1 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15913 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15896] Sporadic EINVAL in nonblocking pipe os.read when forked child fails on Mac OS
Vitaly added the comment: The C-language program for reproducing the same issue is attached as test_fork_pipe_error.cpp -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15896 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15896] Sporadic EINVAL in nonblocking pipe os.read when forked child fails on Mac OS
Vitaly added the comment: I used g++ to compile test_fork_pipe_error.cpp on both Mac OS and on Linux. EINVAL showed up only on Mac OS. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15896 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15896] Sporadic EINVAL in nonblocking pipe os.read when forked child fails on Mac OS
Charles-François Natali added the comment: The reason I said above that those might be red-herring discoveries is this: if I insert a short time.sleep(0.001) delay before the outer pipe-read loop, the EINVAL errors don't get triggered either. That's interesting. So it really seems that under certain conditions, a non-blocking read from an empty pipe could fail with EINVAL instead of EAGAIN. But this is definitely a bug, in such cases read() should return EAGAIN. 1. Why doesn't the test encounter EINVAL in the range 127KB ... 1KB (when iterating initialReadSize in *decreasing* order). If the pre-read delay is significant, then does it take significantly more time to allocate a 127KB chunk of memory than it does a 128KB chunk? 2. Why doesn't the test encounter EINVAL at all when iterating initialReadSize in *increasing* order? I'm not sure it's a delay issue in this case. It may have more to do with the aligment of the buffer passed to read(). You can for example imagine that this error would show up only when the buffer is (or is not) aligned on a page boundary (usually 4K). As for the gap between 127KB and 128KB, it could be that we're allocating a new arena (we have a custom memory allocator over malloc()/mmap()), or that we switch between brk() and mmap(), but that's mere speculation, and there's nothing we can (and should) do here. I'm not sure about what to do with this, though: - adding a delay is out of question - retrying on EINVAL like on EAGAIN is not a good idead, since it could mask real bugs One thing we could do would be to limit the the call to read() to, let's say 64KB per call: newData = os.read(errpipe_read, min(65536, rSize)) But this would only work here, there are probably other places where this bug could be encountered (and I don't like adding hacks to avoid platform bugs). I wrote a C-language program to reproduce this issue on Mac OS without Python. I would like to file this issue with apple/Mac OS. What's the appropriate URL for this? I used g++ to compile test_fork_pipe_error.cpp on both Mac OS and on Linux. EINVAL showed up only on Mac OS. Told you it was an OS-X bug (we've had several of those) ;-) As for where to report it, I'm making some OS-X enclined devs nosy. I'm suggest closing this bug as invalid (unless someone considers that we should try to work around it with the above trick). -- nosy: +hynek, ned.deily, ronaldoussoren ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15896 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15896] Sporadic EINVAL in nonblocking pipe os.read when forked child fails on Mac OS
Changes by Charles-François Natali neolo...@free.fr: -- type: crash - behavior ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15896 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15896] Sporadic EINVAL in nonblocking pipe os.read when forked child fails on Mac OS
Vitaly added the comment: By the way, the existing code in subprocess.Popen (at least on 2.6.7) reads the pipe incorrectly: It doesn't loop to read all the data until EOF -- it only loops over EINTR until it gets a single successful os.read() call. However, since this is a pipe read (not a real file read), the system doesn't guarantee that the blocking read will read everything up to requested read size or EOF, whichever comes first. So, the single os.read call could return a partial read, and the subsequent un-pickling of the exception would fail. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15896 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15851] Lib/robotparser.py doesn't accept setting a user agent string, instead it uses the default.
Senthil Kumaran added the comment: Hi Eduardo, I tested further and do observe some very strange oddities. On Mon, Sep 10, 2012 at 10:45 PM, Eduardo A. Bustamante López rep...@bugs.python.org wrote: Also, I'm aware that you shouldn't normally worry about setting a specific user-agent to fetch the file. But that's not the case of Wikipedia. In my case, Wikipedia returned 403 for the urllib user-agent. Yeah, this really surprised me. I would normally assume robots.txt to be readable by any agent, but I think something odd is happening. In 2.7, I do not see the problem because, the implementation is: import urllib class URLOpener(urllib.FancyURLopener): def __init__(self, *args): urllib.FancyURLopener.__init__(self, *args) self.errcode = 200 opener = URLOpener() fobj = opener.open('http://en.wikipedia.org/robots.txt') print opener.errcode This will print 200 and everything is fine. Also, look at it that robots.txt is accessible. In 3.3, the implementation is: import urllib.request try: fobj = urllib.request.urlopen('http://en.wikipedia.org/robots.txt') except urllib.error.HTTPError as err: print(err.code) This gives 403. I would normally expect this to work without any issues. But according to my analysis, what is happening is when the User-agent is set to something which has '-' in that, the server is rejecting it with 403. In the above code, what is happening underlying is this: import urllib.request opener = urllib.request.build_opener() opener.addheaders = [('User-agent', 'Python-urllib/3.3')] fobj = opener.open('http://en.wikipedia.org/robots.txt') print(fobj.getcode()) This would give 403. In order to see it work, change the addheaders line to opener.addheaders = [('', '')] opener.addheaders = [('User-agent', 'Pythonurllib/3.3')] opener.addheaders = [('User-agent', 'KillerSpamBot')] All should work (as expected). So, thing which surrprises me is, if sending Python-urllib/3.3 is a mistake for THAT Server. Is this a server oddity at Wikipedia part? ( Coz, I refered to hg log to see from when we are sending Python-urllib/version and it seems that it's being sent for long time). Can't see how should this be fixed in urllib. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15851 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15896] Sporadic EINVAL in nonblocking pipe os.read when forked child fails on Mac OS
Vitaly added the comment: I filed this issue with apple: Problem ID: 12274650: https://bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa/64/wo/VE1RGG9qEL5OS9KdzFSDHw/19.66 -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15896 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15896] Sporadic EINVAL in nonblocking pipe os.read when forked child fails on Mac OS
Vitaly added the comment: Apple bug report URL correction: https://bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa/64/wo/VE1RGG9qEL5OS9KdzFSDHw/17.66 -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15896 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15896] Sporadic EINVAL in nonblocking pipe os.read when forked child fails on Mac OS
Vitaly added the comment: Sorry, I don't know why the URL comes out all messed up. I can't seem to find the correct syntax for this. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15896 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15896] Sporadic EINVAL in nonblocking pipe os.read when forked child fails on Mac OS
Charles-François Natali added the comment: By the way, the existing code in subprocess.Popen (at least on 2.6.7) reads the pipe incorrectly: It doesn't loop to read all the data until EOF -- it only loops over EINTR until it gets a single successful os.read() call. However, since this is a pipe read (not a real file read), the system doesn't guarantee that the blocking read will read everything up to requested read size or EOF, whichever comes first. So, the single os.read call could return a partial read, and the subsequent un-pickling of the exception would fail. Indeed. Do you want to open a new issue for that (and provide a patch)? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15896 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue15918] subprocess.Popen reads errpipe_read incorrectly, can result in short read
New submission from Vitaly: subprocess.Popen (at least on 2.6.7) reads the pipe incorrectly: It doesn't loop to read all the data until EOF -- it only loops over EINTR until it gets a single successful os.read() call. However, since this is a pipe read (not a real file read), the system doesn't guarantee that the blocking read will read everything up to requested read size or EOF, whichever comes first. So, the single os.read call could return a partial read, and the subsequent un-pickling of the exception would fail/crash. Sorry, I can't submit a patch as I am merely a Python user, not a Python developer, and it would take me too long to set up and figure out Python build just for this one issue. -- components: Library (Lib) messages: 170279 nosy: vitaly priority: normal severity: normal status: open title: subprocess.Popen reads errpipe_read incorrectly, can result in short read type: crash versions: Python 2.6 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue15918 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com