Hi folks,
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.
GSoC FAQ:
https://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2…
The current umbrella project pages:
https://wiki.python.org/moin/SummerOfCode/2014#Project_Ideas
Last year's umbrella project pages:
https://wiki.python.org/moin/SummerOfCode/2013#Project_Ideas
Last year's CPython project ideas:
https://wiki.python.org/moin/SummerOfCode/2013/python-core
Regards,
-Jessica
===
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:
https://wiki.python.org/moin/SummerOfCode/2014
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
python sub-projects).
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
me know!
Terri
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
production settings.
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
in subprocesses
* 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:
http://www.python.org/download/releases/3.4.0/
Please consider trying Python 3.4.0rc1 with your code and reporting any
new issues you notice to:
http://bugs.python.org/
Enjoy!
--
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:
> http://hg.python.org/cpython/rev/920304e1f36b
> changeset: 89175:920304e1f36b
> user: Yury Selivanov <yselivanov(a)sprymix.com>
> date: Wed Feb 12 17:01:52 2014 -0500
> summary:
> asyncio.events: Use __slots__ in Handle and TimerHandle
>
> files:
> 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?
--
~Ethan~
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
follows:
if test "xupgrade" != "xno" ; then \
case upgrade in \
upgrade) ensurepip="--upgrade" ;; \
install|*) ensurepip="" ;; \
esac; \
./python.exe -E -m ensurepip \
$ensurepip --root=/ ; \
fi
Traceback (most recent call last):
File "/Users/guido/cpython/Lib/runpy.py", line 171, in _run_module_as_main
"__main__", mod_spec)
File "/Users/guido/cpython/Lib/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/Users/guido/cpython/Lib/ensurepip/__main__.py", line 4, in <module>
ensurepip._main()
File "/Users/guido/cpython/Lib/ensurepip/__init__.py", line 203, in _main
default_pip=args.default_pip,
File "/Users/guido/cpython/Lib/ensurepip/__init__.py", line 74, in
bootstrap
_require_ssl_for_pip()
File "/Users/guido/cpython/Lib/ensurepip/__init__.py", line 23, in
_require_ssl_for_pip
raise RuntimeError(_MISSING_SSL_MESSAGE)
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
doing)?
--
--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:
http://bugs.python.org/review/rss/reviews/cjwelborn
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'
/home/roundup/trackers/tracker/rietveld/codereview/views.py
in account:
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
\__/\__/ http://welbornprod.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
initial request:
> 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).
Matěj Cepl
---
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
--- a/Lib/urllib2.py
+++ b/Lib/urllib2.py
@@ -848,6 +848,18 @@ class AbstractBasicAuthHandler:
def reset_retry_count(self):
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
+ else:
+ return None
+
def http_error_auth_reqed(self, authreq, host, req, headers):
# host may be an authority (without userinfo) or a URL with an
# authority
@@ -875,14 +887,10 @@ class AbstractBasicAuthHandler:
return response
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)
else:
return None
@@ -898,6 +906,17 @@ class HTTPBasicAuthHandler(AbstractBasicAuthHandler, BaseHandler):
self.reset_retry_count()
return response
+ 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):
--
1.8.5.2.192.g7794a68
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>
Hi,
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
at look?
http://docs.python.org/dev/library/asyncio.html
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
CPython repository:
http://hg.python.org/cpython/
Files asyncio-*.rst:
http://hg.python.org/cpython/file/default/Doc/library
Victor
--
--Guido van Rossum (python.org/~guido)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
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
http://docs.python.org/3.3/whatsnew/3.3.html
To download Python 3.3.4 visit:
http://www.python.org/download/releases/3.3.4/
This is a production release, please report any bugs to
http://bugs.python.org/
Enjoy!
- --
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)
iEYEARECAAYFAlL5PMwACgkQN9GcIYhpnLCv4wCePNVqwsOYCHdJBix2bKk4PNpK
GBoAnRML2x6obCssnUJe5xwuUZYw8ZSY
=+/Nz
-----END PGP SIGNATURE-----