Wing IDE 4.1.8 released

2012-09-11 Thread Wingware

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

2012-09-11 Thread Mike Müller
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?

2012-09-11 Thread Dwight Hutto
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?

2012-09-11 Thread Dwight Hutto
   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?

2012-09-11 Thread Dwight Hutto
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?

2012-09-11 Thread Dwight Hutto
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?

2012-09-11 Thread david

 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?

2012-09-11 Thread david
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?

2012-09-11 Thread David Hutto
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?

2012-09-11 Thread Dwight Hutto
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?

2012-09-11 Thread Dwight Hutto
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

2012-09-11 Thread Rolf Wester

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?

2012-09-11 Thread Dwight Hutto
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

2012-09-11 Thread Tim Golden
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

2012-09-11 Thread Dwight Hutto
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?

2012-09-11 Thread Dwight Hutto
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?

2012-09-11 Thread Alec Taylor
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?

2012-09-11 Thread Dwight Hutto
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?

2012-09-11 Thread Dwight Hutto
 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?

2012-09-11 Thread Bob Aalsma


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

2012-09-11 Thread zig-zag
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

2012-09-11 Thread Alec Taylor
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?

2012-09-11 Thread Duncan Booth
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?

2012-09-11 Thread Duncan Booth
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?

2012-09-11 Thread Oscar Benjamin
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

2012-09-11 Thread Thomas 'PointedEars' Lahn
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

2012-09-11 Thread 江文
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?

2012-09-11 Thread William R. Wing (Bill Wing)
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?

2012-09-11 Thread William R. Wing (Bill Wing)
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?

2012-09-11 Thread Marco Nawijn
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

2012-09-11 Thread Yves S. Garret
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?

2012-09-11 Thread Bob Aalsma
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?

2012-09-11 Thread Bob Aalsma

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?

2012-09-11 Thread Terry Reedy

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?

2012-09-11 Thread Ben Finney
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?

2012-09-11 Thread Ben Finney
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?

2012-09-11 Thread Charles Hottel
 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?

2012-09-11 Thread Asher Newcomer
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?

2012-09-11 Thread MRAB

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?

2012-09-11 Thread Terry Reedy

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

2012-09-11 Thread woooee
There is parallel python as well http://www.parallelpython.com/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: submit jobs on multi-core

2012-09-11 Thread Ian Kelly
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?

2012-09-11 Thread e . doxtator
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?

2012-09-11 Thread Ian Kelly
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

2012-09-11 Thread ruck
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?

2012-09-11 Thread e . doxtator
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

2012-09-11 Thread Oscar Benjamin
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?

2012-09-11 Thread Ian Kelly
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?

2012-09-11 Thread Terry Reedy

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

2012-09-11 Thread ashish makani
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?

2012-09-11 Thread Erik Max Francis

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

2012-09-11 Thread Joshua Landau
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

2012-09-11 Thread Chris Angelico
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

2012-09-11 Thread Mark Lawrence

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

2012-09-11 Thread Joshua Landau
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

2012-09-11 Thread Chris Angelico
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

2012-09-11 Thread Chris Angelico
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

2012-09-11 Thread Dave Angel
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?

2012-09-11 Thread Ben Finney
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?

2012-09-11 Thread Peter
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

2012-09-11 Thread Dustin J. Mitchell
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

2012-09-11 Thread Steven D'Aprano
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?

2012-09-11 Thread Andrew Berg
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

2012-09-11 Thread Steven D'Aprano
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

2012-09-11 Thread Joshua Landau
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

2012-09-11 Thread Joshua Landau
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?

2012-09-11 Thread Jayden
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

2012-09-11 Thread Joshua Landau
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?

2012-09-11 Thread Steven D'Aprano
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?

2012-09-11 Thread Steven D'Aprano
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

2012-09-11 Thread j . m . dagenhart
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

2012-09-11 Thread Ramchandra Apte
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?

2012-09-11 Thread Ramchandra Apte
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?

2012-09-11 Thread Ramchandra Apte
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?

2012-09-11 Thread Dwight Hutto
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?

2012-09-11 Thread Dwight Hutto
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?

2012-09-11 Thread Jayden
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?

2012-09-11 Thread Jayden
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?

2012-09-11 Thread Dwight Hutto
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

2012-09-11 Thread Chris Angelico
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?

2012-09-11 Thread Dwight Hutto
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

2012-09-11 Thread alex23
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?

2012-09-11 Thread Marco Nawijn
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?

2012-09-11 Thread Dwight Hutto
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

2012-09-11 Thread Stefan Krah

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

2012-09-11 Thread Stefan Krah

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

2012-09-11 Thread Andrew Moffat

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

2012-09-11 Thread Vitaly

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

2012-09-11 Thread Stefan Krah

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

2012-09-11 Thread Vitaly

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

2012-09-11 Thread Vitaly

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

2012-09-11 Thread Charles-François Natali

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

2012-09-11 Thread Charles-François Natali

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

2012-09-11 Thread Vitaly

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.

2012-09-11 Thread Senthil Kumaran

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

2012-09-11 Thread Vitaly

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

2012-09-11 Thread Vitaly

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

2012-09-11 Thread Vitaly

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

2012-09-11 Thread Charles-François Natali

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

2012-09-11 Thread Vitaly

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



  1   2   3   >