Terri Oda's original message to this list about CPython's participation in
Google Summer of Code 2014 is at the end of this email.
If you'd like to see CPython participate in Google Summer of Code 2014, we
need* at least 2 people* to say they are interested in mentoring by the end
of today, February 13th.
*Are you interested in mentoring? Please speak up!*
This is not a binding commitment; this is just a statement of interest. As
a previous GSoC mentor, I'd say the time commitment is around 10 hours /
week per student, and this is best split across 2 mentors.
The current umbrella project pages:
Last year's umbrella project pages:
Last year's CPython project ideas:
Terri's original message:
For anyone who completely isn't familiar with this: Google Summer of Code
is a program where Google pays students to work on open source projects for
the summer. The motto goes: "Flip bits, not burgers." Google Summer of Code
applications are open for mentoring organizations, and I've already put in
Python's application. You can get more info here:
What I'd like to know is if anyone's got any good ideas for core python
projects this year and are interested in mentoring. We always have lots of
students who'd like to work on Python, but right now we don't have any
mentors who are available and interested in helping students make
contributions to the language (We do, however, have mentors for various
Let me know if this might be interesting to you. I'm happy to answer any
questions, and I've got experienced mentors who aren't core python devs but
who'd be willing to pair up so you wouldn't have to go it alone, just let
PS - I'm also looking for new sub-projects and other mentors -- just ask if
you want to take part this year!
On behalf of the Python development team, I'm delighted to announce
the first release candidate of Python 3.4.
This is a preview release, and its use is not recommended for
Python 3.4 includes a range of improvements of the 3.x series, including
hundreds of small improvements and bug fixes. Major new features and
changes in the 3.4 release series include:
* PEP 428, a "pathlib" module providing object-oriented filesystem paths
* PEP 435, a standardized "enum" module
* PEP 436, a build enhancement that will help generate introspection
information for builtins
* PEP 442, improved semantics for object finalization
* PEP 443, adding single-dispatch generic functions to the standard library
* PEP 445, a new C API for implementing custom memory allocators
* PEP 446, changing file descriptors to not be inherited by default
* PEP 450, a new "statistics" module
* PEP 451, standardizing module metadata for Python's module import system
* PEP 453, a bundled installer for the *pip* package manager
* PEP 454, a new "tracemalloc" module for tracing Python memory allocations
* PEP 456, a new hash algorithm for Python strings and binary data
* PEP 3154, a new and improved protocol for pickled objects
* PEP 3156, a new "asyncio" module, a new framework for asynchronous I/O
Python 3.4 is now in "feature freeze", meaning that no new features will be
added. The final release is projected for mid-March 2014.
To download Python 3.4.0rc1 visit:
Please consider trying Python 3.4.0rc1 with your code and reporting any
new issues you notice to:
Larry Hastings, Release Manager
larry at hastings.org
(on behalf of the entire python-dev team and 3.4's contributors)
On 02/12/2014 02:02 PM, yury.selivanov wrote:
> changeset: 89175:920304e1f36b
> user: Yury Selivanov <yselivanov(a)sprymix.com>
> date: Wed Feb 12 17:01:52 2014 -0500
> asyncio.events: Use __slots__ in Handle and TimerHandle
> Lib/asyncio/events.py | 4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
> diff --git a/Lib/asyncio/events.py b/Lib/asyncio/events.py
> --- a/Lib/asyncio/events.py
> +++ b/Lib/asyncio/events.py
> @@ -19,6 +19,8 @@
> class Handle:
> """Object returned by callback registration methods."""
> + __slots__ = ['_callback', '_args', '_cancelled']
> def __init__(self, callback, args):
> assert not isinstance(callback, Handle), 'A Handle is not a callback'
> self._callback = callback
> @@ -46,6 +48,8 @@
> class TimerHandle(Handle):
> """Object returned by timed callback registration methods."""
> + __slots__ = ['_when']
> def __init__(self, when, callback, args):
> assert when is not None
> super().__init__(callback, args)
Apologies up front if these are stupid questions, but:
Why __slots__? Are we going to have so many of these things that memory is an issue?
The asserts in the code -- those are not for checking user input, correct?
I don't happen to have OpenSSL configured on my OSX dev box right now. This
usually leads to some warnings during the build stage and obviously various
ssl-based tests don't work, but I can still get other stuff done. But with
the latest repo, "make install" refuses to complete -- it ends fatally as
if test "xupgrade" != "xno" ; then \
case upgrade in \
upgrade) ensurepip="--upgrade" ;; \
install|*) ensurepip="" ;; \
./python.exe -E -m ensurepip \
$ensurepip --root=/ ; \
Traceback (most recent call last):
File "/Users/guido/cpython/Lib/runpy.py", line 171, in _run_module_as_main
File "/Users/guido/cpython/Lib/runpy.py", line 86, in _run_code
File "/Users/guido/cpython/Lib/ensurepip/__main__.py", line 4, in <module>
File "/Users/guido/cpython/Lib/ensurepip/__init__.py", line 203, in _main
File "/Users/guido/cpython/Lib/ensurepip/__init__.py", line 74, in
File "/Users/guido/cpython/Lib/ensurepip/__init__.py", line 23, in
RuntimeError: pip 1.5.2 requires SSL/TLS
make: *** [install] Error 1
Can this failure be suppressed in the Makefile (given that I know what I'm
--Guido van Rossum (python.org/~guido)
Is there a reason bugs.python.org/review is running in DEBUG mode right
now? I was just poking around and came across the debug 'DoesNotExist'
error page when accessing:
Then, instead of a 404 I get the 'Page not found' debug page. So, just
glancing at the acceptable url patterns I see one that will give you a
xsrf token (if you send the appropriate headers, which is easy). I'm
not a web expert, so I don't know how dangerous it really is. But the
error messages were really helpful (in a bad way?).
This turned up an actual error. I'm pretty sure it's an actual error,
though I could be wrong. It might be an 'expected error'.
When accessing http://bugs.python.org/review/account , I got:
KeyError at /review/account: 'AUTH_DOMAIN'
domain = os.environ['AUTH_DOMAIN']
Maybe someone is doing some testing and I'm just wasting people's time.
I thought it would be better to say something, so if it is a mistake
someone can fix it.
\ \/¯¯\/ / / Christopher Welborn (cj)
\__/\__/ / cjwelborn at live·com
Many websites (e.g. GitHub API) on the Internet are intentionally not
following RFC with regards to the Basic Authorization and require
Authorization header in the initial request and they never return 401
error. Therefore it is not possible to authorize with such websites just
using urllib2.py HTTPBasicAuthHandler as described in documentation.
However, RFC 2617, end of section 2 allows pre-authorization in the
> A client MAY preemptively send the corresponding Authorization
> header with requests for resources in that space without
> receipt of another challenge from the server.
(RFC also suggests preauthorization of proxy requests, but that is not
part of this patch, however it could be trivially added)
Also, generating HTTP BasicAuth header has been refactored into special
method of AbstractBasicAuthHandler.
Suggested fix for bug# 19494
This is my first attempt to contribute to Python itself, so please be
gentle with me. Yes, I know that I miss unit tests and port to other
branches of Python (this is against 2.7), but I would like first some
feedback to see what I am missing (aside from the mentioned).
Lib/urllib2.py | 35 +++++++++++++++++++++++++++--------
1 file changed, 27 insertions(+), 8 deletions(-)
diff --git a/Lib/urllib2.py b/Lib/urllib2.py
index aadeb73..a5feb03 100644
@@ -848,6 +848,18 @@ class AbstractBasicAuthHandler:
self.retried = 0
+ def generate_auth_header(self, host, req, realm):
+ user, pw = self.passwd.find_user_password(realm, host)
+ if pw is not None:
+ raw = "%s:%s" % (user, pw)
+ auth = 'Basic %s' % base64.b64encode(raw).strip()
+ if req.headers.get(self.auth_header, None) == auth:
+ return None
+ req.add_unredirected_header(self.auth_header, auth)
+ return req
+ return None
def http_error_auth_reqed(self, authreq, host, req, headers):
# host may be an authority (without userinfo) or a URL with an
@@ -875,14 +887,10 @@ class AbstractBasicAuthHandler:
def retry_http_basic_auth(self, host, req, realm):
- user, pw = self.passwd.find_user_password(realm, host)
- if pw is not None:
- raw = "%s:%s" % (user, pw)
- auth = 'Basic %s' % base64.b64encode(raw).strip()
- if req.headers.get(self.auth_header, None) == auth:
- return None
- req.add_unredirected_header(self.auth_header, auth)
- return self.parent.open(req, timeout=req.timeout)
+ req = self.generate_auth_header(host, req, realm)
+ if req is not None:
+ self.parent.open(req, timeout=req.timeout)
@@ -898,6 +906,17 @@ class HTTPBasicAuthHandler(AbstractBasicAuthHandler, BaseHandler):
+ def http_request(self, req):
+ host = req.get_host()
+ new_req = self.generate_auth_header(host, req, None)
+ if new_req is not None:
+ req = new_req
+ return req
+ https_request = http_request
class ProxyBasicAuthHandler(AbstractBasicAuthHandler, BaseHandler):
On Tue, Feb 11, 2014 at 5:45 AM, Terry Reedy <tjreedy(a)udel.edu> wrote:
> On 2/11/2014 5:13 AM, Terry Reedy wrote:
>> I installed 64 bit 3.3.4 yesterday with no problem. I reran it today in
>> repair mode and again, no problem.
>> With 64 bit 3.4.0, I get
>> "There is a problem with this Windows Installer package. A program
>> required for the install to complete could not be run."
>> No, the generic message does not bother to say *which* program :-(.
>> 34 bit 3.4.0 installed fine.
> I wrote too soon.
> Python 3.4.0rc1 (v3.4.0rc1:5e088cea8660, Feb 11 2014, 05:54:25) [MSC
>>>> import tkinter
> Traceback ...
> import _tkinter
> ImportError: DLL load failed: %1 is not a valid Win32 application.
> So tkinter, Idle, turtle fail and the corresponding tests get skipped.
32 bit and 64 bit both work for me. Windows 7.
We could really use more help reviewing and finishing asyncio's docs!
---------- Forwarded message ----------
From: Victor Stinner <victor.stinner(a)gmail.com>
Date: Sat, Feb 8, 2014 at 2:38 PM
Subject: [python-tulip] Need help to finish asyncio documentation
To: python-tulip <python-tulip(a)googlegroups.com>
I wrote most parts of the documentation of the asyncio module, but I'm
not sure that anyone already read it yet. Can you please at least take
Tell me if the documentation needs more examples. I don't want to add
whole applications, only very short examples to explain one feature or
concept, or show how to use one specific API.
I just realized that add/remove_reader/writer() methods of the event
loop were not documented, sock_recv/sendall/accept/connect() methods
neither. I documented them.
There are still many functions which only have "XXX" for documentation.
If you would like to contribute, send patches on .rst files. The
source of the documentation is in the Doc/library/ directory of
--Guido van Rossum (python.org/~guido)
-----BEGIN PGP SIGNED MESSAGE-----
On behalf of the Python development team, I'm very happy to announce
the release of Python 3.3.4.
Python 3.3.4 includes several security fixes and over 120 bug fixes
compared to the Python 3.3.3 release.
This release fully supports OS X 10.9 Mavericks. In particular, this
release fixes an issue that could cause previous versions of Python to
crash when typing in interactive mode on OS X 10.9.
Python 3.3 includes a range of improvements of the 3.x series, as well
as easier porting between 2.x and 3.x. In total, almost 500 API items
are new or improved in Python 3.3. For a more extensive list of
changes in the 3.3 series, see
To download Python 3.3.4 visit:
This is a production release, please report any bugs to
Georg Brandl, Release Manager
georg at python.org
(on behalf of the entire python-dev team and 3.3's contributors)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
-----END PGP SIGNATURE-----