[issue13648] xml.sax.saxutils.escape does not escapes \x00

2011-12-23 Thread Martin v . Löwis

Martin v. Löwis  added the comment:

This is correct behavior. \x00 is not supported in XML: not in raw form, and 
not in escaped form. To transmit binary data in XML, use base64.

--
nosy: +loewis
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13647] Python SSL stack doesn't securely validate certificate (as client)

2011-12-23 Thread Dan Kaminsky

Dan Kaminsky  added the comment:

>> There is a new "match_hostname" that doesn't implement all the 
>> required, standard SSL/TLS Client security checks that should be done.

>Indeed, as the name indicates, it just checks the hostname.
>Please detail what the other security checks are (bonus points if you >provide 
>a patch + tests).

You need to check expiration date of the cert in question, and I suppose 
invocation date as well.
You need to look at each of the CNs in the subject name, as well as each of the 
DNSname types in the SAN extension.
You *absolutely must* make sure that each of the intermediate certificates has 
Basic Constraints: CA set to True.  Otherwise a certificate for foo.com can 
sign for bar.com (this keeps happening).
You should support the Name Constraints extension, that allows certificates to 
sign for a subset of names.  Nobody really uses this, because reliability is so 
low though.


> > It has been noticed by the well known security researcher Dan Kaminsky

> What's the URL for this?

I'll see your URL and raise you a submitted bug report with recommendations.  
It seems to get better results than posting random whining on a web page 
somewhere :)

> > A) Integrate the Mozilla CA pack into Python, updating it with each
> > security release.

> I suggest you discuss this on python-dev:
> http://mail.python.org/mailman/listinfo/python-dev

It's an ugly dependency, I know.  X.509 suffers from a "false coherence" 
design, in which a couple of parties actively work to make it look like it has 
a coherent trust model.  The best you can do is try to borrow/leverage the work 
of one of those parties.

--
nosy: +Dan.Kaminsky

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13294] http.server: HEAD request should not return a body

2011-12-23 Thread Roundup Robot

Roundup Robot  added the comment:

New changeset 2c1720468dbb by Senthil Kumaran in branch '3.2':
Minor code style improvements in http.server suggested in Issue13294.
http://hg.python.org/cpython/rev/2c1720468dbb

New changeset 0466ee1816b1 by Senthil Kumaran in branch 'default':
merge from 3.2.  Minor code style improvements in http.server suggested in 
Issue13294.
http://hg.python.org/cpython/rev/0466ee1816b1

New changeset 1b1818fee351 by Senthil Kumaran in branch '2.7':
port to 2.7 - Minor code style improvements in http.server suggested in 
Issue13294.
http://hg.python.org/cpython/rev/1b1818fee351

--
nosy: +python-dev

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13647] Python SSL stack doesn't securely validate certificate (as client)

2011-12-23 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

> You need to check expiration date of the cert in question, and I
> suppose invocation date as well.
> You need to look at each of the CNs in the subject name, as well as
> each of the DNSname types in the SAN extension.
> You *absolutely must* make sure that each of the intermediate
> certificates has Basic Constraints: CA set to True.  Otherwise a
> certificate for foo.com can sign for bar.com (this keeps happening).

I'm confident this is already done by OpenSSL (if requested by user,
which means using CERT_REQUIRED or CERT_OPTIONAL in Python's ssl module
- these map to OpenSSL's SSL_VERIFY_PEER).

I guess it would be easy to check this by providing an outdated
certificate - perhaps I'll give it a try.

> > > A) Integrate the Mozilla CA pack into Python, updating it with each
> > > security release.
> 
> > I suggest you discuss this on python-dev:
> > http://mail.python.org/mailman/listinfo/python-dev
> 
> It's an ugly dependency, I know.  X.509 suffers from a "false
> coherence" design, in which a couple of parties actively work to make
> it look like it has a coherent trust model.  The best you can do is
> try to borrow/leverage the work of one of those parties.

I suppose distributing CA certificates is a practical solution for the
user, *if* we are dedicated enough (e.g. release managers would have to
agree with the burden of tracking changes, and possibly making emergency
releases when a cert must be removed). That's the reason I suggest
asking on python-dev; I don't feel like making that decision alone.

That said, system OpenSSL builds on Linux (and perhaps OS X) should have
been compiled against a well-known system location of CA certificates
maintained by the OS vendor. In this case, you can simply use
SSLContext.set_default_verify_paths
(http://docs.python.org/dev/library/ssl.html#ssl.SSLContext.set_default_verify_paths
 )
That doesn't help under Windows, though (where we build OpenSSL
ourselves so that the ssl module can be bundled in installers).

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13294] http.server: minor code style changes.

2011-12-23 Thread Senthil Kumaran

Senthil Kumaran  added the comment:

The original issue was invalid. 
Incorporated Michele Orrù's code style changes into the trunk and other 
codelines.

--
resolution:  -> fixed
status: open -> closed
title: http.server: HEAD request should not return a body -> http.server: minor 
code style changes.

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13647] Python SSL stack doesn't securely validate certificate (as client)

2011-12-23 Thread Dan Kaminsky

Dan Kaminsky  added the comment:

On Fri, Dec 23, 2011 at 4:14 AM, Antoine Pitrou wrote:

>
> Antoine Pitrou  added the comment:
>
> > You need to check expiration date of the cert in question, and I
> > suppose invocation date as well.
> > You need to look at each of the CNs in the subject name, as well as
> > each of the DNSname types in the SAN extension.
> > You *absolutely must* make sure that each of the intermediate
> > certificates has Basic Constraints: CA set to True.  Otherwise a
> > certificate for foo.com can sign for bar.com (this keeps happening).
>
> I'm confident this is already done by OpenSSL (if requested by user,
> which means using CERT_REQUIRED or CERT_OPTIONAL in Python's ssl module
> - these map to OpenSSL's SSL_VERIFY_PEER).
>
> I guess it would be easy to check this by providing an outdated
> certificate - perhaps I'll give it a try.
>

Be sure to support SAN.  People forget that, and the API makes it a pain in
the butt (the validator doesn't even know who you're validating for).

>
> > > > A) Integrate the Mozilla CA pack into Python, updating it with each
> > > > security release.
> >
> > > I suggest you discuss this on python-dev:
> > > http://mail.python.org/mailman/listinfo/python-dev
> >
> > It's an ugly dependency, I know.  X.509 suffers from a "false
> > coherence" design, in which a couple of parties actively work to make
> > it look like it has a coherent trust model.  The best you can do is
> > try to borrow/leverage the work of one of those parties.
>
> I suppose distributing CA certificates is a practical solution for the
> user, *if* we are dedicated enough (e.g. release managers would have to
> agree with the burden of tracking changes, and possibly making emergency
> releases when a cert must be removed). That's the reason I suggest
> asking on python-dev; I don't feel like making that decision alone.
>

The CA set doesn't change *often*, but it does shift from time to time.

The right thing would be to use the in-built cert set if and only if the
system certs couldn't be checked.

>
> That said, system OpenSSL builds on Linux (and perhaps OS X) should have
> been compiled against a well-known system location of CA certificates
> maintained by the OS vendor. In this case, you can simply use
> SSLContext.set_default_verify_paths
> (
> http://docs.python.org/dev/library/ssl.html#ssl.SSLContext.set_default_verify_paths)
> That doesn't help under Windows, though (where we build OpenSSL
> ourselves so that the ssl module can be bundled in installers).
>

Whatever you've got right now isn't good enough to either be on by default,
or warn by default.  I wouldn't even recommend warning if you didn't ship
with certs.

Technically, you could check the Windows certificate stores too, if you
wanted to write that code.

Before going to python-dev, what do you think is feasible,
implementation-wise?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13655] Python SSL stack doesn't have a default CA Store

2011-12-23 Thread naif

New submission from naif :

For the certificate store:

Can we eventually agree to bind a default CA-store to a Mozilla verified one?
Mozilla in handling Firefox does a great job in keeping CA-store up-to-date.

Integrating default mozilla CA-store with Python builds could be a nice way, 
it's just a matter of integrating into the build-system the download/fetching 
of default Mozilla store.

At least the language base it's default on a trusted entity to manage, 
cross-platform, the CA-store for TLS/SSL.

The mainteinance of the CA-store would be delegated to Mozilla that has been 
demonstrated to be independent and very security conscious, removing dirty 
CA-store (like Diginotar after Iranian compromise).

That way 90% of case of of SSL/TLS certificate validation will be managed and 
by default it would be possible to enable secure SSL/TLS client checking like 
described in http://bugs.python.org/issue13647 .

--
components: Library (Lib)
messages: 150142
nosy: naif
priority: normal
severity: normal
status: open
title: Python SSL stack doesn't have a default CA Store
versions: Python 2.6, Python 2.7, Python 3.1, Python 3.2, Python 3.3, Python 3.4

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13647] Python SSL stack doesn't securely validate certificate (as client)

2011-12-23 Thread naif

naif  added the comment:

Hi all,

i added a ticket on setting up a default CA-store for Python, eliminating the 
need of CA-Store mainteinance:
http://bugs.python.org/issue13655

This feature is a pre-requisite to implement by default SSL/TLS Client secure 
certificate verification.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13655] Python SSL stack doesn't have a default CA Store

2011-12-23 Thread naif

Changes by naif :


--
type:  -> security

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13647] Python SSL stack doesn't securely validate certificate (as client)

2011-12-23 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

> Be sure to support SAN.  People forget that, and the API makes it a pain in
> the butt (the validator doesn't even know who you're validating for).

Right, that's why we added the match_hostname() function. It knows about 
subjectAltName, except for raw IP addresses.
The tests for it can be found here:
http://hg.python.org/cpython/file/0466ee1816b1/Lib/test/test_ssl.py#l265

> Technically, you could check the Windows certificate stores too, if you
> wanted to write that code.

Well, I don't know how to interface them with OpenSSL.

> Before going to python-dev, what do you think is feasible,
> implementation-wise?

Technically, shipping certificates shouldn't be difficult. The final install 
location is defined at "./configure" time, so loading the certs shouldn't be a 
problem either.
Whether or not we enable them by default is a matter of policy. I think 
enabling them by default could be a nasty surprise for users who currently rely 
on a narrower set of trusted certs.

> The right thing would be to use the in-built cert set if and only if the
> system certs couldn't be checked.

That might not be easy. OpenSSL's SSL_CTX_set_default_verify_paths() 
deliberately doesn't report errors.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8604] Adding an atomic FS write API

2011-12-23 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

> I wish we had something like:
> io.file
> io.file.tempfile
> io.file.path
> io.file.atomicfile

I adhere to "flat is better than nested". e.g. it always irks me to type 
"urllib.request" instead of "urllib". A 3-level deep nesting in the stdlib 
would certainly shock many people :)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13647] Python SSL stack doesn't securely validate certificate (as client)

2011-12-23 Thread naif

naif  added the comment:

 looking at OpenSSL command line, there is the "verify" that does a lot of 
checks on it's own:
http://www.openssl.org/docs/apps/verify.html

Dan, do you think that this apps does all the "best practice" verificati or 
it's missing something?

Antoine, in case it's useful, do you think that it would be possible to have 
something exactly-like the OpenSSL verify command?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13655] Python SSL stack doesn't have a default CA Store

2011-12-23 Thread naif

naif  added the comment:

Mozilla CA are available on:

https://www.mozilla.org/projects/security/certs/

The warranty and security process of Mozilla handling of SSL CA root certs is 
described on:

https://wiki.mozilla.org/CA

I think that Python language could reasonably base it's default root CA on the 
Mozilla ones that are the most recognized for security and transparency in the 
world.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13647] Python SSL stack doesn't securely validate certificate (as client)

2011-12-23 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

> Antoine, in case it's useful, do you think that it would be possible
> to have something exactly-like the OpenSSL verify command?

Well, to quote the page you mentioned:
“The verify program uses the same functions as the internal SSL and
S/MIME verification, therefore this description applies to these verify
operations too.”

So these checks are exactly the ones performed when using CERT_OPTIONAL
or CERT_REQUIRED.
Note that it is cursorily mentioned (or hinted at) at
http://docs.python.org/dev/library/ssl.html#verifying-certificates

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

So how about providing a new public `os` module function doing a 
rename-with-overwrite on all platforms?
We could name it e.g. os.replace().
os.rename_overwrite() is another possibility, more explicit but also longer.

--
stage:  -> needs patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6983] Add specific get_platform() for freebsd

2011-12-23 Thread Stef Walter

Stef Walter  added the comment:

Good plan.

So the issue is:

 * Platform specific eggs are built containing a path that has the full
   patch level of the freebsd kernel, like "8.2-RELEASE-p2". The "-p2"
   part is updated for every security patch of FreeBSD.
 * Thus when you apply a security patch to FreeBSD, platform specific
   eggs built for that version of FreeBSD (before the security patch
   was applied) are no longer considered compatible.

FYI, FreeBSD has an unwritten policy of keeping all 8.x releases
backwards compatible with one another. So platform specific eggs built
for 8.1 would work without inherent problems on 8.2 or 8.3.

But at the very least, platform specific eggs should not be dependent on
the patch level of the FreeBSD kernel.

On 11/20/2011 03:38 PM, Éric Araujo wrote:
> 
> Éric Araujo  added the comment:
> 
>> This is still a bothersome issue, but we've taken to patching every version 
>> of python
>> downstream before deploying them. All for a simple three line patch.
> 
> Sorry about the unsatisfactory situation.  Could we start anew and define 
> exactly what the problem is, so that distutils2 can be free of it?  (I’m 
> afraid distutils can’t be changed: even undocumented, the platform string 
> used for FreeBSD is certainly used by tools out there that we don’t want to 
> break.  I second the suggestion to bring up the issue to the projects 
> responsible for eggs, i.e. setuptools and distribute, not distutils.)
> 
> --
> 
> ___
> Python tracker 
> 
> ___

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13656] Document ctypes.util and ctypes.wintypes.

2011-12-23 Thread maniram maniram

New submission from maniram maniram :

Document ctypes.util and ctypes.wintypes.

--
assignee: docs@python
components: Documentation
messages: 150151
nosy: docs@python, maniram.maniram
priority: normal
severity: normal
status: open
title: Document ctypes.util and ctypes.wintypes.
type: enhancement

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13656] Document ctypes.util and ctypes.wintypes.

2011-12-23 Thread maniram maniram

Changes by maniram maniram :


--
resolution:  -> invalid
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13577] __qualname__ is not present on builtin methods and functions

2011-12-23 Thread Roundup Robot

Roundup Robot  added the comment:

New changeset 7a7b698f6f21 by Antoine Pitrou in branch 'default':
Issue #13577: Built-in methods and functions now have a __qualname__.
http://hg.python.org/cpython/rev/7a7b698f6f21

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13577] __qualname__ is not present on builtin methods and functions

2011-12-23 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

The patch is committed, thank you!

--
resolution:  -> rejected
stage: patch review -> committed/rejected
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13657] IDLE doesn't support sys.ps1 and sys.ps2.

2011-12-23 Thread maniram maniram

New submission from maniram maniram :

IDLE doesn't support nor set sys.ps1 and sys.ps2.
>>> sys.ps1
Traceback (most recent call last):
  File "", line 1, in 
sys.ps1
AttributeError: 'module' object has no attribute 'ps1'
>>> sys.ps1 = "Test " #The next prompt doesn't start with Test
>>>

--
components: IDLE
messages: 150154
nosy: maniram.maniram
priority: normal
severity: normal
status: open
title: IDLE doesn't support sys.ps1 and sys.ps2.
type: enhancement

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1730372] Mesa with NPTL makes Python extensions crash with std::cerr

2011-12-23 Thread Charles-François Natali

Charles-François Natali  added the comment:

I assume this was due to the following bug:
https://bugs.launchpad.net/ubuntu/+source/mesa/+bug/259219
http://lists.freedesktop.org/archives/mesa-dev/2011-March/006180.html

In short, MESA didn't use the correct TLS model for thread-local variables, 
which ended up in some libstdc++ thread-local variables not being initialized 
when called from a dynamically loaded libraries (such as spam).

I couldn't reproduce the problem on Debian testing (which has a mesa version 
containing the patch posted on mesa-dev).

--
nosy: +neologix
resolution:  -> invalid
stage:  -> committed/rejected
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8604] Adding an atomic FS write API

2011-12-23 Thread Charles-François Natali

Charles-François Natali  added the comment:

> I adhere to "flat is better than nested". e.g. it always irks me to type
> "urllib.request" instead of "urllib".

Well, that's what (selective) imports are for, no ?
from urllib import request
from file.path import exists
import xml.etree.cElementTree as ET

Anyway, my "thoughts?" wasn't referring to this namespace hierarchy
"proposal" (which really isn't one), but rather to the best module
which could host an AtomicFile class.
Still shutil?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8604] Adding an atomic FS write API

2011-12-23 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

> Anyway, my "thoughts?" wasn't referring to this namespace hierarchy
> "proposal" (which really isn't one), but rather to the best module
> which could host an AtomicFile class.

Does it have to be a class? What would be the operations apart from
write()?

> Still shutil?

I think that's our best compromise.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8604] Adding an atomic FS write API

2011-12-23 Thread Charles-François Natali

Charles-François Natali  added the comment:

> Does it have to be a class? What would be the operations apart from
> write()?

Well, I thought that making it a file-like object could be useful:
that way, one could pass it to pickle.dump(), logging.StreamHandler or
any method expecting a file-like object, and would gain atomicity
(persistency) transparently, without refactoring.
My quick and dirty AtomicFile implementation reused the
_TemporaryFileWrapper attribute delagation trick:
"""
def __getattr__(self, name):
# Attribute lookups are delegated to the underlying file
# and cached for non-numeric results
# (i.e. methods are cached, closed and friends are not)
file = self.__dict__['file']
a = getattr(file, name)
if not issubclass(type(a), type(0)):
setattr(self, name, a)
return a
"""

>> Still shutil?
>
> I think that's our best compromise.

OK.
I don't have a strong opinion about this, and you've got much more
experience than me, so I trust your judgement ;-)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13653] reorder set.intersection parameters for better performance

2011-12-23 Thread Andrew Dalke

Andrew Dalke  added the comment:

My belief is that the people who use set.intersection with more than two terms 
are 1) going to pass in a list of sets, and 2) don't care about the specific 
order.

To check the validity of my belief, I did a Google Code Search to find cases of 
people using set intersection in Python. I searched for "set\.intersection\(\*" 
and "\.intersection\(.*\, lang:^python$", among others.

I am sad to report that the most common way to compute set.intersection(*list) 
is by using reduce, like:

possible = (set(index[c]) for c in set(otp))
possible = reduce(lambda a, b: a.intersection(b), possible)


That comes from:
  git://github.com/Kami/python-yubico-client.git /yubico/modhex.py
and similar uses are in:
  git://github.com/sburns/PyCap.git /redcap/rc.py
  http://hltdi-l3.googlecode.com/hg//xdg/languages/morpho/fst.py
  http://dsniff.googlecode.com/svn/trunk/dsniff/lib/fcap.py


As well as in the Rosetta Code example for a simple inverted index, at:
  http://rosettacode.org/wiki/Inverted_index#Python

This was also implemented more verbosely in:

http://eats.googlecode.com/svn/trunk/server/eats/views/main.py
intersected_set = sets[0]
for i in range(1, len(sets)):
intersected_set = intersected_set.intersection(sets[i])

and 

http://iocbio.googlecode.com/svn/trunk/iocbio/microscope/cluster_tools.py
s = set (range (len (data[0])))
for d in zip(*data):
s = s.intersection(set(find_outliers(d, zoffset=zoffset)))
return sorted(s)

In other words, 7 codebases use manual pairwise reduction rather than use the 
equivalent code in Python. (I have not checked for which are due to backwards 
compatibility requirements.)

On the other hand, if someone really wants to have a specific intersection 
order, this shows that it's very easy to write.


I found 4 other code bases where set intersection was used for something other 
than binary intersection, and used the built-in intersection().



git://github.com/valda/wryebash.git/experimental/bait/bait/presenter/impl/filters.py
def get_visible_node_ids(self, filterId):
if filterId in self.idMask:
visibleNodeIdSets = [f.get_visible_node_ids(filterId) for f in 
self._filters]
return set.intersection(*[v for v in visibleNodeIdSets if v is not 
None])
return None



http://wallproxy.googlecode.com/svn/trunk/local/proxy.py
if threads[ct].intersection(*threads.itervalues()):
raise ValueError('All threads failed')
(here, threads' values contain sets)



git://github.com/argriffing/xgcode.git/20100623a.py
header_sets = [set(x) for x in header_list]
header_intersection = set.intersection(*header_sets)




http://pyvenn.googlecode.com/hg//venn.py
to_exclude = set()
for ii in xrange(0, len(self.sets)):
if (i & (2**ii)):
sets_to_intersect.append(sets_by_power_of_two[i & (2**ii)])
else:
to_exclude = to_exclude.union(sets_by_power_of_two[(2**ii)])
final = set.intersection(*sets_to_intersect) - to_exclude



These all find the intersection of sets (not iterators), and the order of 
evaluation does not appear like it will affect the result.

I do not know though if there will be a performance advantage in these cases to 
reordering. I do know that in my code, and any inverted index, there is an 
advantage.

And I do know that the current CPython implementation has bad worst-case 
performance.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8604] Adding an atomic FS write API

2011-12-23 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

> > Does it have to be a class? What would be the operations apart from
> > write()?
> 
> Well, I thought that making it a file-like object could be useful:
> that way, one could pass it to pickle.dump(), logging.StreamHandler or
> any method expecting a file-like object, and would gain atomicity
> (persistency) transparently, without refactoring.

Mmmh... I might have misunderstood the proposal then. I thought this
"atomic write" API was about writing the file contents in one go and
immediately closing the file. If you want atomicity to apply to logging,
you must instead guarantee the durability of each write() call, meaning
calling fsync() on each logging call, which would be very expensive.

Am I missing something?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5689] Support xz compression in tarfile module

2011-12-23 Thread Lars Gustäbel

Lars Gustäbel  added the comment:

Wouldn't it be better then to use a default compresslevel of 6 in tarfile? I 
used level 9 in my patch without a particular reason, just because I thought 9 
must be better than 6 ;-)

--
Added file: http://bugs.python.org/file24084/lzma-preset.diff

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10513] sqlite3.InterfaceError after commit

2011-12-23 Thread Florent Viard

Florent Viard  added the comment:

Hi,

I encountered the same regression with python 2.7.
I added a new testcase (testcase2) with another effect of the same problem. It 
is a model of what does python-storm when I try to do:

for item in TableA.findall():
  TableB.new_item(name=item.name)
  connection.commit()

As you can see in the result:
-- One iter --
(0,)
-- One iter --
(1,)
-- One iter --
(0,)
-- One iter --
(1,)
-- One iter --
(2,)

Inside the for loop, there is a reset, but only one time. So entries returned 
by "for" are inconsistents as there could be some duplicated results.


After studying the code, I understood that this regression is caused by the 
addition of function call:
pysqlite_do_all_statements(self, ACTION_RESET, 0);
in connection.c: in function: pysqlite_connection_commit

Removing this line, fixes the problem and bring back the old correct behavior.


For the explanation of my case, I understood that:
For the "statement" of my query, the "in_use" flag is first set to 1, the first 
fetchmany call ran, then the commit triggered the reset of all the statements 
that have  the in_use flag == 1 and set this flag to 0. So the next fetchmany 
call return results from the beginning again without care for the state of the 
"in_use" flag. Then, the next commit don't reset again the statement as its 
"in_use" flag is still == 0.

I think, that the first intention of this modification was more to use the 
following call:
pysqlite_do_all_statements(self, ACTION_RESET, 1);
to have the cursor->reset set and so, at next fetch call, triggering exception: 
"sqlite3.InterfaceError: Cursor needed to be reset because of commit/rollback 
and can no longer be fetched from."

But as for using it in rollback, I'm not sure that this behavior is really 
useful as sqlite3 looks to be able to correctly handle modifications and cursor 
return values.
As an example, the following test with the previous code :
cursor = conn.cursor()
cursorBis = conn.cursor()
cursor.execute('create table first(id primary key);')
for i in range(5):
cursor.execute('insert or replace into first(id) values(?);', (i,))

results = cursor.execute(' select id from first;')
while True:
print "-- One iter --"
results = cursor.fetchmany()
if not results:
break
for result in results:
print str(result)
cursorBis.execute(' delete from first where id == ?;', (3,))
conn.commit()

That correctly printed:
-- One iter --
(0,)
-- One iter --
(1,)
-- One iter --
(2,)
-- One iter --
(4,)
-- One iter --


So my suggestion is to remove in "pysql_connection_commit" the call to :
pysqlite_do_all_statements(self, ACTION_RESET, 0);
to bring back the correct old behavior.

And also eventually to remove in "pysqlite_connection_rollback" the call to :
pysqlite_do_all_statements(self, ACTION_RESET, 1);


What do you think about it?

--
nosy: +fviard
versions: +Python 3.3, Python 3.4
Added file: http://bugs.python.org/file24085/test_bug_pysql_for.py

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8604] Adding an atomic FS write API

2011-12-23 Thread Charles-François Natali

Charles-François Natali  added the comment:

> If you want atomicity to apply to logging,
> you must instead guarantee the durability of each write() call, meaning
> calling fsync() on each logging call

Why so?
There's no point in calling fsync() after each write, since data is
written to a temporary file which won't be visible before rename():
even if you call fsync() after each write, if the file is not properly
closed, it won't be committed (i.e.renamed).
You just need to call fsync() once before closing the file, and then
rename it, to ensure that the committed file version is consistent.
In the meantime, you could do whatever you want with the stream (the
hypothetical AtomicFile): seek(), read(), etc. I'm not sure many
methods besides write will be useful, but for example one could easily
imagine that the library expects the passed object to have a fileno()
method.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8604] Adding an atomic FS write API

2011-12-23 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

> There's no point in calling fsync() after each write, since data is
> written to a temporary file which won't be visible before rename():
> even if you call fsync() after each write, if the file is not properly
> closed, it won't be committed (i.e.renamed).

Ah, it's a temporary file indeed.
But does that mean you can't inspect your logs in real time? All log
files I have ever seen are available under their final name while they
are still being written to.

> In the meantime, you could do whatever you want with the stream (the
> hypothetical AtomicFile): seek(), read(), etc.

I see. Yes, then an AtomicFile class makes sense (not for logging
though, IMHO :-)).

And I understand your point about it being available in io or some io
submodule (not a 3-level deep one though :-)). Perhaps you want to ask
on python-dev?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5689] Support xz compression in tarfile module

2011-12-23 Thread Nadeem Vawda

Nadeem Vawda  added the comment:

Yes, that's a good idea. I've been testing a similar change, and it seems
to drop the peak memory usage for test_tarfile from around 810MB down to
under 200MB. It looks like 2GB genuinely isn't enough to reliably use LZMA
compression with preset=9.

You might want to use preset=None instead of explicitly saying preset=6,
though. This tells LZMAFile to use the default preset, and will allow you
to get rid of the if-statement on lines 1821-1823.

Something unrelated that I noticed in the surrounding code: gzopen and
bz2open validate the mode by testing 'len(mode) > 1 or mode not in "rw"'.
This would be simpler as 'mode not in ("r", "w")' (like you've done in
xzopen), and it would accept only "r" and "w" (but not "" or "rw").

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13651] Improve redirection in urllib

2011-12-23 Thread Antoine Pitrou

Changes by Antoine Pitrou :


--
nosy: +orsenthil
versions: +Python 2.7 -Python 3.4

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5689] Support xz compression in tarfile module

2011-12-23 Thread Lars Gustäbel

Changes by Lars Gustäbel :


Removed file: http://bugs.python.org/file24084/lzma-preset.diff

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread R. David Murray

R. David Murray  added the comment:

What is the motivation for providing a new function?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5689] Support xz compression in tarfile module

2011-12-23 Thread Lars Gustäbel

Lars Gustäbel  added the comment:

Yes, that's much better. Thanks for the tip.

--
Added file: http://bugs.python.org/file24086/lzma-preset.diff

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

> What is the motivation for providing a new function?

Because changing os.rename would break compatibility.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13658] Extra clause in class grammar documentation

2011-12-23 Thread Joshua Landau

New submission from Joshua Landau :

Inside the grammar for classes[1], the documentation states that the 
inheritance list can be of type:
"(" [argument_list [","] | comprehension] ")"

The "comprehension" part seems to be superfluous, especially as it is valid 
grammar without the clause.

The 2.7 docs state just "[expression list]", so either the addition should be 
justified or the extra clause removed.

[1] 
http://docs.python.org/py3k/reference/compound_stmts.html#grammar-token-classdef

Please see 
http://mail.python.org/pipermail/python-list/2011-December/1284989.html for 
discussion.

--
assignee: docs@python
components: Documentation
messages: 150169
nosy: Joshua.Landau, docs@python
priority: normal
severity: normal
status: open
title: Extra clause in class grammar documentation
versions: Python 3.2

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread R. David Murray

R. David Murray  added the comment:

Ah, I see, people may be depending on rename on Windows not overwriting.

I suppose a new function (and eventually deprecating the old?) would be the 
most straightforward way forward, though I dislike the necessity :)

An alternative might be a flag on rename: overwrite=['always', 'os_default'], 
with a warning and a switch of the default in a subsequent release.  That's 
ugly too, of course.  The existing per-platform variation in behavior of rename 
gives us a mess to deal with.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8313] message in unittest tracebacks

2011-12-23 Thread Michael Foord

Michael Foord  added the comment:

traceback patch looks good. Thanks for the unittest2 patch as well.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8623] Aliasing warnings in socketmodule.c

2011-12-23 Thread Roundup Robot

Roundup Robot  added the comment:

New changeset 683a1b1ff15d by Charles-François Natali in branch 'default':
Issue #8623: Fix some strict-aliasing warnings. Patch by David Watson.
http://hg.python.org/cpython/rev/683a1b1ff15d

--
nosy: +python-dev

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8623] Aliasing warnings in socketmodule.c

2011-12-23 Thread Charles-François Natali

Charles-François Natali  added the comment:

Thanks for your patches, David.
I've only applied the first one: looking at the second one, I don't think they 
are really problems (-Wstrict-aliasing=2 is know for generating a lot of false 
positives).

--
nosy: +neologix

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8604] Adding an atomic FS write API

2011-12-23 Thread Charles-François Natali

Charles-François Natali  added the comment:

> Ah, it's a temporary file indeed.
> But does that mean you can't inspect your logs in real time? All log
> files I have ever seen are available under their final name while they
> are still being written to.
>

Yes, logging was a poor example :-)

> And I understand your point about it being available in io or some io
> submodule (not a 3-level deep one though :-)). Perhaps you want to ask
> on python-dev?

OK, I'll try that.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread Charles-François Natali

Charles-François Natali  added the comment:

I'd prefer an optional flag to rename() too.
I really don't like having different functions that achieve the same thing.
It's not obvious to infer from 'replace' its real intent, since it
doesn't match any standard syscall/library.
Ideally, this should be made an option to rename(), especially since
on Unix this will just perform a standard rename.
Another advantage of options over new functions is that it reduces
boilerplate code (i.e. argument parsing, addition to posix_methods,
repeating OS idiosyncrasies/conditional compilation blocks, docstring,
documentation block...).
But I remember Martin thinks that the os module should just be a thin wrapper 
around underlying syscalls/libraries (but we already have listdir() and 
friends).

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread anatoly techtonik

anatoly techtonik  added the comment:

os.rename(overwrite=True) to produce consistent cross-platform behavior.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

> An alternative might be a flag on rename: overwrite=['always', 'os_default']

How about overwrite=[None, True] with None meaning "OS default"?

> with a warning and a switch of the default in a subsequent release.

I think we should be conservative with warnings and
compatibility-breaking changes. In this case there's no pressing need to
change behaviour: the default isn't less secure or less efficient.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13511] Specifying multiple lib and include directories on linux

2011-12-23 Thread Ray

Ray  added the comment:

Whether or not includedir and libdir are supposed to allow multiple packages is 
beyond me at this point so I'll change the topic to more reflect the problem I 
am having.  More importantly (and possibly related to includedir and libdir) is 
the fact that python 2.7 does not allow specifying multiple lib and include 
directories in linux.  Is there one way to do this that I overlooked? I 
included the bit about includedir, libdir, CFLAGS, and LDFLAGS in my original 
post to show what I tried.  

Is it a standard for CFLAGS AND LDFLAGS to accept multiple directories? I would 
think so.  With the current python 2.7 and linux, that simply does not work.  
But it does for darwin platforms?

>From setup.py:

> if platform == 'darwin':
> # This should work on any unixy platform ;-)
> # If the user has bothered specifying additional -I and -L flags
> # in OPT and LDFLAGS we might as well use them here.

--
title: Let ./configure accept multiple --includedir and --libdir options -> 
Specifying multiple lib and include directories on linux
versions: +Python 2.7

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread anatoly techtonik

anatoly techtonik  added the comment:

One of the Python advantages is providing predictable cross-platform behavior.  
If we can't introduce nice API without BC break, it is not a reason to 
introduce ulgy API.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread R. David Murray

R. David Murray  added the comment:

I'm good with None/True, but that would imply that for posix rename we'll need 
to implement the overwrite=False option...which would be a nice thing (the 
shell mv command has -i for that).

I think a warning would be good, because a unix programmer will assume rename 
will work the same on windows as it does on posix, and vice versa for a windows 
programmer.  I suppose the fact that we haven't gotten many (any?) complaints 
about it means it isn't that common a problem, though, so I don't feel strongly 
about it.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

> I'm good with None/True, but that would imply that for posix rename
> we'll need to implement the overwrite=False option...which would be a
> nice thing (the shell mv command has -i for that).

My point was rather to forbid False as a value (on all OSes) :)

> I think a warning would be good, because a unix programmer will assume
> rename will work the same on windows as it does on posix, and vice
> versa for a windows programmer.

It is already documented. I don't think we want to add a warning for
every documented peculiar piece of behaviour.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread Charles-François Natali

Charles-François Natali  added the comment:

> How about overwrite=[None, True] with None meaning "OS default"?

+1.

> One of the Python advantages is providing predictable cross-platform 
> behavior. If we can't introduce nice API without BC break, it is not
> a reason to introduce ulgy API.

We cannot make rename() overwrite existing files by default (on Windows).
It's out of question, too much code might rely on this, and this may very well 
introduce security flaws.
If you're concerned with the semantics difference between platforms, well, 
there's not much we can do about it now. Java behaves in the same way, for 
example.

> I'm good with None/True, but that would imply that for posix rename 
> we'll need to implement the overwrite=False option...which would be a 
> nice thing (the shell mv command has -i for that).

Why?
The problem is that it's simply impossible to implement reliably.
I didn't check mv source code, but it must be using something like:

if '-i' and os.path.exists(target_path):
continue
os.rename(src_path, target_path).

But there's a TOCTTOU race.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread R. David Murray

R. David Murray  added the comment:

Ah, you are right about the race of course.  So yes, I agree with your 
proposal.  It's a weird API, but probably the best we can do.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13647] Python SSL stack doesn't securely validate certificate (as client)

2011-12-23 Thread Jesús Cea Avión

Changes by Jesús Cea Avión :


--
nosy: +jcea

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13655] Python SSL stack doesn't have a default CA Store

2011-12-23 Thread Jesús Cea Avión

Changes by Jesús Cea Avión :


--
nosy: +jcea

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue5689] Support xz compression in tarfile module

2011-12-23 Thread Nadeem Vawda

Nadeem Vawda  added the comment:

Patch looks good to me.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8623] Aliasing warnings in socketmodule.c

2011-12-23 Thread Arfrever Frehtes Taifersar Arahesis

Arfrever Frehtes Taifersar Arahesis  added the comment:

This change probably should be backported to 3.2 branch.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread anatoly techtonik

anatoly techtonik  added the comment:

2011/12/23 Charles-François Natali 
>
> > One of the Python advantages is providing predictable cross-platform
> > behavior. If we can't introduce nice API without BC break, it is not
> > a reason to introduce ulgy API.
>
> We cannot make rename() overwrite existing files by default (on Windows).
> It's out of question, too much code might rely on this, and this may very
> well introduce security flaws.
> If you're concerned with the semantics difference between platforms, well,
> there's not much we can do about it now. Java behaves in the same way, for
> example.
>

I propose quite the opposite. rename() should not overwrite existing files
by default.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13655] Python SSL stack doesn't have a default CA Store

2011-12-23 Thread Benjamin Peterson

Benjamin Peterson  added the comment:

I'm not sure Python should be in the business of distributing CA certificates. 
I think it's better left to the application or Linux distribution.

--
nosy: +benjamin.peterson

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread Charles-François Natali

Charles-François Natali  added the comment:

> I propose quite the opposite. rename() should not overwrite existing
> files by default.

1. That's not what I understood from:
> os.rename(overwrite=True) to produce consistent cross-platform 
> behavior.

2. The above argument on backward incompatible change applies in exactly the 
same way (just exchange Windows for POSIX).

3. As explained above, it can not be done reliably on POSIX (TOCTTOU race).

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13565] test_multiprocessing.test_notify_all() hangs on "AMD64 Snow Leopard 02 03.x"

2011-12-23 Thread STINNER Victor

STINNER Victor  added the comment:

> Victor, could you try the attached script on FreeBSD,
> to see if you get ECONNREFUSED?

Yes, I get a ECONNREFUSED. I tested backlog.py on FreeBSD 8.2.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13565] test_multiprocessing.test_notify_all() hangs on "AMD64 Snow Leopard 02 03.x"

2011-12-23 Thread Roundup Robot

Roundup Robot  added the comment:

New changeset 94494a779c20 by Charles-François Natali in branch '2.7':
Issue #13565: Increase multiprocessing's server socket backlog, to avoid
http://hg.python.org/cpython/rev/94494a779c20

New changeset 9b99adef3c78 by Charles-François Natali in branch '3.2':
Issue #13565: Increase multiprocessing's server socket backlog, to avoid
http://hg.python.org/cpython/rev/9b99adef3c78

New changeset 29cad1ac828c by Charles-François Natali in branch 'default':
Issue #13565: Increase multiprocessing's server socket backlog, to avoid
http://hg.python.org/cpython/rev/29cad1ac828c

--
nosy: +python-dev

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13565] test_multiprocessing.test_notify_all() hangs on "AMD64 Snow Leopard 02 03.x"

2011-12-23 Thread Charles-François Natali

Charles-François Natali  added the comment:

> Yes, I get a ECONNREFUSED. I tested backlog.py on FreeBSD 8.2.

Thanks.
I bumped the backlog, I hope it will fix this.
We can leave this report open for a couple days, to see how the buildbots 
behave.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread anatoly techtonik

anatoly techtonik  added the comment:

2011/12/23 Charles-François Natali 

>
> Charles-François Natali  added the comment:
>
> > I propose quite the opposite. rename() should not overwrite existing
> > files by default.
>
> 1. That's not what I understood from:
> > os.rename(overwrite=True) to produce consistent cross-platform
> > behavior.
>
> 2. The above argument on backward incompatible change applies in exactly
> the same way (just exchange Windows for POSIX).
>
> 3. As explained above, it can not be done reliably on POSIX (TOCTTOU race).

os.rename(overwrite=False) by default will do less harm than the opposite,
so I'd say it is a way to go even if it can not be reliably done on POSIX.
But I believe correct file system that supports transactions will make it
possible to do reliably on POSIX too.

Then I believe that having a small chance of overwriting file just created
at exactly the same moment on a POSIX is a small price to pay for function
that does safety check before rename on a platform that doesn't have such
functionality at all. If you need this functionality - you will still do
'if exists ... rename' and the TOCTTOU race will affect you. So, the only
exit is to place a little sign "in some extreme cases Linux suffers from
TOCTTOU problem when renaming files without overwriting, so keep that in
mind".

BUT let me remind you that this bug is about "Atomic rename" which should
rollback in case of errors.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

> os.rename(overwrite=False) by default will do less harm than the opposite,

Disagreed.

> Then I believe that having a small chance of overwriting file just created
> at exactly the same moment on a POSIX is a small price to pay for function
> that does safety check before rename on a platform that doesn't have such
> functionality at all.

Disagreed.
If you need the functionality, it's *one* additional line of code. Not
every trivial function deserves to be in the stdlib.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread anatoly techtonik

anatoly techtonik  added the comment:

On Fri, Dec 23, 2011 at 10:35 PM, Antoine Pitrou wrote:

> > os.rename(overwrite=False) by default will do less harm than the
> opposite,
>
> Disagreed.
>

Fine. No arguments == no consensus.

> > Then I believe that having a small chance of overwriting file just
> created
> > at exactly the same moment on a POSIX is a small price to pay for
> function
> > that does safety check before rename on a platform that doesn't have such
> > functionality at all.
>
> Disagreed.
> If you need the functionality, it's *one* additional line of code. Not
> every trivial function deserves to be in the stdlib.

As a Windows programmer I am quite surprised to read this thread with
information that on Linux os.rename() overwrites files without questions,
so as I Windows programmer I want os.rename() to stop that. I always guard
my code against accidental rewrite by catching the exception. EAFP and all
that stuff. But there is no way I can ask forgiveness when files are
already overwritten.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread R. David Murray

R. David Murray  added the comment:

So maybe my warning idea isn't such a bad idea :)

As a unix programmer, I was very surprised to read in this thread that Windows 
doesn't overwrite the file on rename.  As a unix programmer, I don't check for 
errors on a rename, because I expect it to just work.  I'd like the windows 
rename call to stop throwing errors if the file exists, it breaks my programs 
if they run on windows.

(Actually, very few of my programs ever get run on Windows, but you get the 
idea.)

Thus, the only possible course is to maintain backward compatibility, and allow 
the programmers who care to specify the desired behavior.  Since one of the 
important aspects of 'rename' in unix programmers' minds is that it is atomic, 
a race condition is not acceptable, therefore overwrite=False is not an 
acceptable option for os.rename.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8828] Atomic function to rename a file

2011-12-23 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

> As a Windows programmer I am quite surprised to read this thread with
> information that on Linux os.rename() overwrites files without questions,
> so as I Windows programmer I want os.rename() to stop that.

As a Windows programmer, you are not really qualified to criticize the
behaviour of Unix systems.
As a Linux programmer, I don't want to see the default behaviour
changed.

> No arguments == no consensus.

We don't strive to achieve consensus. Agreement among the majority of
core developers is enough, and you aren't part of the population anyway.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13657] IDLE doesn't support sys.ps1 and sys.ps2.

2011-12-23 Thread Roger Serwy

Roger Serwy  added the comment:

This would make the IDLE shell interface more consistent with the original 
interpreter. 

Presently, the ">>> " prompt is faked by "showprompt" in PyShell.py. It relies 
on "sys" from the IDLE gui process and not from the "sys" in the subprocess, so 
mimicking the changed prompt would require querying the subprocess for its 
sys.ps1 and sys.ps2. The "enter_callback" method will need modification to 
remove sys.ps2 from the text buffer before execution. Also, EditorWindow.py has 
code for handling sys.ps1 in "smart_backspace_event" and 
"newline_and_indent_event". 

If anything, this shell-specific, prompt-handling code needs some refactoring 
as it should only be in PyShell.py, not in EditorWindow.py.
Issue13039 is a result of prompt code side-effects in EditorWindow.py.

--
nosy: +serwy

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13658] Extra clause in class grammar documentation

2011-12-23 Thread Chris Rebert

Changes by Chris Rebert :


--
nosy: +cvrebert

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13644] Python 3 aborts with this code.

2011-12-23 Thread Georg Brandl

Georg Brandl  added the comment:

@OP: As you yourself wrote, this is an abort, not a segfault.  It is not a 
crash; it is a controlled exit of the Python executable.

@Benjamin: I don't really understand your reasoning: what is preventing Python 
to raise the error during the except clause?

--
nosy: +georg.brandl
title: Python 3 crashes (segfaults) with this code. -> Python 3 aborts with 
this code.

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13644] Python 3 aborts with this code.

2011-12-23 Thread Benjamin Peterson

Benjamin Peterson  added the comment:

Nothing, but that would be pointless; the recursion would just start again.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13658] Extra clause in class grammar documentation

2011-12-23 Thread Terry J. Reedy

Changes by Terry J. Reedy :


--
nosy: +terry.reedy

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13615] `setup.py register` fails with -r argument

2011-12-23 Thread Terry J. Reedy

Terry J. Reedy  added the comment:

Does it do the same with http instead of https?

--
nosy: +terry.reedy

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13630] IDLE: Find(ed) text is not highlighted while dialog box is open

2011-12-23 Thread Terry J. Reedy

Changes by Terry J. Reedy :


--
nosy: +terry.reedy

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13632] Update token documentation to reflect actual token types

2011-12-23 Thread Terry J. Reedy

Terry J. Reedy  added the comment:

Looks good to me.
help(token) already has the corrections. - BACKQUOTE, + RARROW, ELLIPSIS

--
nosy: +terry.reedy

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13632] Update token documentation to reflect actual token types

2011-12-23 Thread Terry J. Reedy

Changes by Terry J. Reedy :


--
priority: low -> normal

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13658] Extra clause in class grammar documentation

2011-12-23 Thread Roundup Robot

Roundup Robot  added the comment:

New changeset b65007ef59c0 by Benjamin Peterson in branch '3.2':
kill superfluous 'comprehension' case (closes #13658)
http://hg.python.org/cpython/rev/b65007ef59c0

--
nosy: +python-dev
resolution:  -> fixed
stage:  -> committed/rejected
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13639] UnicodeDecodeError when creating tar.gz with unicode name

2011-12-23 Thread Terry J. Reedy

Terry J. Reedy  added the comment:

2.7 is closed to new features. This looks like it mignt be one. The 2.7 doc for 
tarfile.open says "Return a TarFile object for the pathname name." Does the 
meaning of 'pathname' in 2.7 generally include unicode as well as str objects? 
(It is not in the Glossary.) 

> The error does not occur under Python 3 (even with non-ascii characters), so 
> it should be possible to create a tarfile with a unicode filename on Python 
> 2.7.

Python 3 has many new features that are not in 2.7, so 'possible' is not 
exactly the point ;-).

--
nosy: +terry.reedy

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13643] 'ascii' is a bad filesystem default encoding

2011-12-23 Thread Terry J. Reedy

Terry J. Reedy  added the comment:

Martin, after reading most all of the unusually large sequence of messages, I 
am closing this because three of the core developers with the most experience 
in this area are dead-set against your proposal. That does not make it 'wrong', 
but does mean that it will not be approved and implemented without new data and 
more persuasive arguments than those presented so far. I do not see that 
continued repetition of what has been said so far will change anything.

--
nosy: +terry.reedy
resolution:  -> rejected
stage:  -> test needed
status: open -> closed
type: behavior -> enhancement

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13644] Python 3 aborts with this code.

2011-12-23 Thread Terry J. Reedy

Terry J. Reedy  added the comment:

When I run this with 3.2.2 IDLE, from an edit window, I get an MSVC++ Runtime 
Library window: "Runtime Error! .../pythonw This application has requested 
termination in an unusual way...". When I close that, IDLE continues. So I 
would say that this is not a crash and not even a bug, but a particular choice 
of undefined behavior given infinite loop code. So we have no obligation to 
change it. I presume the change from 2.x is a side-effect of a change to 
improve something else.

def recurse(): recurse()
recurse()

does print "RuntimeError: maximum recursion depth exceeded" but only after 
printing al  o  n  gtraceback. So for running from IDLE, I at least 
half prefer the immediate error box with no traceback.

--
nosy: +terry.reedy
type: crash -> behavior

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13653] reorder set.intersection parameters for better performance

2011-12-23 Thread Terry J. Reedy

Terry J. Reedy  added the comment:

Given that equality is not identify, order does matter, although in 3.2.2 the 
results are the opposite of what one might expect.

a = set((1,2,3))
b = set((1.0, 3.0, 5.0))
print(a&b, b&a)
print(a.intersection(b), b.intersection(a))
a &= b
print(a)
>>> 
{1.0, 3.0} {1, 3}
{1.0, 3.0} {1, 3}
{1.0, 3.0}

In my view, a &= b should remove the members of a that are not in b, rather 
than deleting all and replacing some with equal members of b.

That glitch aside, & remains and remains binary for exact control of order. The 
doc should just say that intersection may re-order the intersection for 
efficiency.

--
nosy: +terry.reedy

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue3974] collections.namedtuple uses exec to create new classes

2011-12-23 Thread Jesús Cea Avión

Changes by Jesús Cea Avión :


--
nosy: +jcea

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13657] IDLE doesn't support sys.ps1 and sys.ps2.

2011-12-23 Thread Terry J. Reedy

Terry J. Reedy  added the comment:

> so mimicking the changed prompt would require querying the subprocess for its 
> sys.ps1 and sys.ps2.

Is that sensibly possible? Any line of code can change those, so IDLE would 
have to do the equivalent of
idle.ps1,idle.ps2 = sys.ps1, sys.ps2 before every new ps1 statement prompt. A 
configuration option might work better.
  
I would rather remove the prompts from the entry window itself, and use 4 char 
indents instead of 8, so that cutting does not pick up the prompts.  IDLE does 
not have to exactly imitate the Command Window interface. It could also give 
the user a choice.

--
nosy: +terry.reedy

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13644] Python 3 aborts with this code.

2011-12-23 Thread maniram maniram

maniram maniram  added the comment:

@Terry
IDLE restarts python (like in the menu entry "Restart Shell") when the Python 
process dies no matter how the Python process dies.
So this issue is a valid bug.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6092] Changed Shortcuts don't show up in menu

2011-12-23 Thread Roger Serwy

Roger Serwy  added the comment:

This only applies to menu items from extensions (in this case, 
ScriptBinding.py). Other events (Copy, Cut, Paste, etc) update the menu 
shortcut properly.

IDLE handles bindings for extensions separately from built-in functions. As a 
consequence, bindings for extensions do not get saved with custom key maps in 
~/.idlerc/config-keys.cfg, but instead in ~/.idlerc/config-extensions.cfg.

--
nosy: +serwy

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13657] IDLE doesn't support sys.ps1 and sys.ps2.

2011-12-23 Thread Roger Serwy

Roger Serwy  added the comment:

> Is that sensibly possible? Any line of code can change those, so IDLE would 
> have to do the equivalent of idle.ps1,idle.ps2 = sys.ps1, sys.ps2 before 
> every new ps1 statement prompt.

It may be possible if the code gets refactored such that the subprocess handles 
the prompt and has stdin/stdout/stderr through RPCProxy treat the PyShell text 
widget as a dumb terminal.

> I would rather remove the prompts from the entry window itself, and use 4 
> char indents instead of 8, so that cutting does not pick up the prompts.  
> IDLE does not have to exactly imitate the Command Window interface. It could 
> also give the user a choice.

This is #11838 and #1178.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13632] Update token documentation to reflect actual token types

2011-12-23 Thread Roundup Robot

Roundup Robot  added the comment:

New changeset b7d099e8c136 by Meador Inge in branch '3.2':
Issue #13632: Update token documentation to reflect actual token types
http://hg.python.org/cpython/rev/b7d099e8c136

New changeset 1461327e63b5 by Meador Inge in branch 'default':
Issue #13632: Update token documentation to reflect actual token types
http://hg.python.org/cpython/rev/1461327e63b5

--
nosy: +python-dev

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13632] Update token documentation to reflect actual token types

2011-12-23 Thread Meador Inge

Meador Inge  added the comment:

Committed.  Thanks for the review Terry.

--
resolution:  -> fixed
stage: patch review -> committed/rejected
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13607] Move generator specific sections out of ceval.

2011-12-23 Thread Ron Adam

Changes by Ron Adam :


Removed file: http://bugs.python.org/file24047/f_why1.diff

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13615] `setup.py register` fails with -r argument

2011-12-23 Thread anatoly techtonik

anatoly techtonik  added the comment:

Can't test right now.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13659] Add a help() viewer for IDLE's Shell.

2011-12-23 Thread maniram maniram

New submission from maniram maniram :

If you call help() a few times on some objects, due to help()'s output IDLE's 
Shell Window becomes very long and it becomes difficult to scroll through the 
window.

I suggest a new window should be opened when help() is called in IDLE so that 
no help output comes in the IDLE Shell Window.

This bug doesn't affect the Python command-line on Linux (and I think Mac OS X) 
since help() uses the less program to display the help output.

--
components: IDLE
messages: 150214
nosy: maniram.maniram
priority: normal
severity: normal
status: open
title: Add a help() viewer for IDLE's Shell.
type: enhancement

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13643] 'ascii' is a bad filesystem default encoding

2011-12-23 Thread Martin Pool

Martin Pool  added the comment:

Terry, that's fine.  Thanks to everyone who contributed to the discussion.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13607] Move generator specific sections out of ceval.

2011-12-23 Thread Ron Adam

Ron Adam  added the comment:

Updated patch with suggested changes.

It also has a cleaned up fast_block_end section.

Concerning speed. What happens is (as Tim and Raymond have pointed out) that we 
can make some things a little faster, in exchange for other things being a 
little slower.  You can play around with the order of the why cases in the 
fast_block_end section and see that effect.

By using a switch instead of if-else's, that should result in more consistent 
balance between the block exit cases.  The order I currently have gives a 
little more priority for exceptions and that seems to help a tiny bit with the 
ccbench scores.  I think that is a better bench mark than the small micro tests 
like pybench does.  The problem with pybench is, it doesn't test deeper nesting 
where these particular changes will have a greater effect.

--
Added file: http://bugs.python.org/file24087/f_why2.diff

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13644] Python 3 aborts with this code.

2011-12-23 Thread Roger Serwy

Roger Serwy  added the comment:

This is identical to issue6028 and may be related to issue3555.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6092] IDLE: Changed Shortcuts don't show up in menu

2011-12-23 Thread Terry J. Reedy

Changes by Terry J. Reedy :


--
title: Changed Shortcuts don't show up in menu -> IDLE: Changed Shortcuts don't 
show up in menu
versions: +Python 3.3

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13659] Add a help() viewer for IDLE's Shell.

2011-12-23 Thread maniram maniram

maniram maniram  added the comment:

Sorry, new window in "I suggest a new window" should be a new read-only editor 
window.
It could be implemented through a wrapper around help.
IDLE could have a configuration option whether to use the traditional help() or 
the new help() which opens a new window.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13660] maniandram maniandram wants to chat

2011-12-23 Thread mani and ram

New submission from mani and ram :

---

maniandram maniandram wants to stay in touch better using some of
Google's great new products. If you already have Gmail or Google Talk,
visit: 
http://mail.google.com/mail/b-a8ddcdef74-d9b3235799-jT0tC3HAEHyo_AwNuC2Pc1oJ4P0
You'll need to click this link to be able to chat with maniandram
maniandram. To get Gmail - a free email account from Google with over
2,800 megabytes of storage - and chat with maniandram maniandram,
visit: 
http://mail.google.com/mail/a-a8ddcdef74-d9b3235799-jT0tC3HAEHyo_AwNuC2Pc1oJ4P0
Gmail offers: - Instant messaging directly inside Gmail - Powerful
spam protection - Built-in search for finding your messages and a
helpful way of organising emails into "conversations" - No pop-up ads
or untargeted banners - just text ads and related information that are
relevant to the content of your messages All this, and it's yours for
free. But wait, there's more! By opening a Gmail account, you also
have access to Google Talk, Google's instant messaging service:
http://www.google.com/talk/intl/en-GB/ Google Talk offers: - Web-based
chat that you can use anywhere, without a download - A contact list
that's synchronised with your Gmail account - Free, high-quality
PC-to-PC voice calls when you download the Google Talk client We're
working hard to add new features and make improvements, so we may also
ask for your comments and suggestions periodically. We appreciate your
help in making our products even better! Thanks, The Google Team To
learn more about Gmail and Google Talk, visit:
http://mail.google.com/mail/help/intl/en_GB/about.html
http://www.google.com/talk/intl/en-GB/about.html (If clicking the URLs
in this message does not work, copy and paste them into the address
bar of your browser).

--
messages: 150219
nosy: maniandram
priority: normal
severity: normal
status: open
title: maniandram maniandram wants to chat

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13661] maniandram maniandram wants to chat

2011-12-23 Thread mani and ram

New submission from mani and ram :

---

maniandram maniandram wants to stay in touch better using some of
Google's great new products. If you already have Gmail or Google Talk,
visit: 
http://mail.google.com/mail/b-a8ddcdef74-00d3fc0b9c-JWXaXVhq1RAj9Ddx82oOpmk1-4Y
You'll need to click this link to be able to chat with maniandram
maniandram. To get Gmail - a free email account from Google with over
2,800 megabytes of storage - and chat with maniandram maniandram,
visit: 
http://mail.google.com/mail/a-a8ddcdef74-00d3fc0b9c-JWXaXVhq1RAj9Ddx82oOpmk1-4Y
Gmail offers: - Instant messaging directly inside Gmail - Powerful
spam protection - Built-in search for finding your messages and a
helpful way of organising emails into "conversations" - No pop-up ads
or untargeted banners - just text ads and related information that are
relevant to the content of your messages All this, and it's yours for
free. But wait, there's more! By opening a Gmail account, you also
have access to Google Talk, Google's instant messaging service:
http://www.google.com/talk/intl/en-GB/ Google Talk offers: - Web-based
chat that you can use anywhere, without a download - A contact list
that's synchronised with your Gmail account - Free, high-quality
PC-to-PC voice calls when you download the Google Talk client We're
working hard to add new features and make improvements, so we may also
ask for your comments and suggestions periodically. We appreciate your
help in making our products even better! Thanks, The Google Team To
learn more about Gmail and Google Talk, visit:
http://mail.google.com/mail/help/intl/en_GB/about.html
http://www.google.com/talk/intl/en-GB/about.html (If clicking the URLs
in this message does not work, copy and paste them into the address
bar of your browser).

--
messages: 150220
nosy: maniandram
priority: normal
severity: normal
status: open
title: maniandram maniandram wants to chat

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com