Re: [Python-Dev] Dropping bytes support in json

2009-04-14 Thread Stephen J. Turnbull
Warning: Reply-To set to email-sig.

Greg Ewing writes:

  Only for headers known to be unstructured, I think.
  Completely unknown headers should be available only
  as bytes.

Why do I get the feeling that you guys are feeling up an
elephant?wink

There are four things you might want to do with a header:

(1) Put it on the wire, which must be bytes (in fact, ASCII).
(2) Show it to a user (such as a rootin-tootin spam-fightin mail
admin), which for consistency with well-behaved, implemented
headers (ie, you might want to *gasp* *concatenate* your unknown
header with a string), will sooner or later be string (ie,
Unicode).
(3) (Try to) parse it, in which case an internal representation with
some other structure may or may not be appropriate for storing the
parsed data.
(4) Munge it, in which case an internal representation with some other
structure may or may not be appropriate.

I see no particular reason for restricting these basic API classes for
any header.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Eric Smith

Ned Deily wrote:

In article 49e3d34e.8040...@trueblade.com,
 Eric Smith e...@trueblade.com wrote:
Before then, if anyone could build and test the py3k-short-float-repr 
branch on any of the following machines, that would be great:



[...]

Something bigendian, like a G4 Mac


I'll crank up some OS X installer builds and run them on G3 and G4 Macs 
vs 32-/64- Intel.  Any tests of interest beyond the default regttest.py?


Thanks! regrtest.py should be enough.

Eric.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Ned Deily
In article nad-d10aa9.19075613042...@news.gmane.org,
 Ned Deily n...@acm.org wrote:

 In article 49e3d34e.8040...@trueblade.com,
  Eric Smith e...@trueblade.com wrote:
  Before then, if anyone could build and test the py3k-short-float-repr 
  branch on any of the following machines, that would be great:
  
 [...]
  Something bigendian, like a G4 Mac
 
 I'll crank up some OS X installer builds and run them on G3 and G4 Macs 
 vs 32-/64- Intel.  Any tests of interest beyond the default regttest.py?

FIrst attempt was a fat (32-bit i386 and ppc) build on 10.5 targeted for 
10.3 and above; this is the similar to recent python.org OSX installers.  
The good news: on 10.5 i386, running the default regrtest, no signficant 
differences were noted from an installer built from the current main 
py3k head.

Bad news: the same build installed on a G4 running 10.5 hung hard in 
test_pow of test_builtin; a kill was needed to terminate python.  Same 
results on a G3 running 10.4. 

n...@pbg4:/Library/Frameworks/Python.framework/Versions/3.1$ bin/python 
-S lib/python3.1/test/regrtest.py -s -v test_builtin
test_builtin
test_abs (test.test_builtin.BuiltinTest) ... ok
test_all (test.test_builtin.BuiltinTest) ... ok
test_any (test.test_builtin.BuiltinTest) ... ok
test_ascii (test.test_builtin.BuiltinTest) ... ok
test_bin (test.test_builtin.BuiltinTest) ... ok
test_callable (test.test_builtin.BuiltinTest) ... ok
test_chr (test.test_builtin.BuiltinTest) ... ok
test_cmp (test.test_builtin.BuiltinTest) ... ok
test_compile (test.test_builtin.BuiltinTest) ... ok
test_delattr (test.test_builtin.BuiltinTest) ... ok
test_dir (test.test_builtin.BuiltinTest) ... ok
test_divmod (test.test_builtin.BuiltinTest) ... ok
test_eval (test.test_builtin.BuiltinTest) ... ok
test_exec (test.test_builtin.BuiltinTest) ... ok
test_exec_redirected (test.test_builtin.BuiltinTest) ... ok
test_filter (test.test_builtin.BuiltinTest) ... ok
test_general_eval (test.test_builtin.BuiltinTest) ... ok
test_getattr (test.test_builtin.BuiltinTest) ... ok
test_hasattr (test.test_builtin.BuiltinTest) ... ok
test_hash (test.test_builtin.BuiltinTest) ... ok
test_hex (test.test_builtin.BuiltinTest) ... ok
test_id (test.test_builtin.BuiltinTest) ... ok
test_import (test.test_builtin.BuiltinTest) ... ok
test_input (test.test_builtin.BuiltinTest) ... ok
test_isinstance (test.test_builtin.BuiltinTest) ... ok
test_issubclass (test.test_builtin.BuiltinTest) ... ok
test_iter (test.test_builtin.BuiltinTest) ... ok
test_len (test.test_builtin.BuiltinTest) ... ok
test_map (test.test_builtin.BuiltinTest) ... ok
test_max (test.test_builtin.BuiltinTest) ... ok
test_min (test.test_builtin.BuiltinTest) ... ok
test_neg (test.test_builtin.BuiltinTest) ... ok
test_next (test.test_builtin.BuiltinTest) ... ok
test_oct (test.test_builtin.BuiltinTest) ... ok
test_open (test.test_builtin.BuiltinTest) ... ok
test_ord (test.test_builtin.BuiltinTest) ... ok
test_pow (test.test_builtin.BuiltinTest) ... ^CTerminated

Stepping through some of test_pow from the interactive interpreter:

Python 3.1a2+ (py3k-short-float-repr, Apr 13 2009, 20:55:35) 
[GCC 4.0.1 (Apple Inc. build 5490)] on darwin
Type help, copyright, credits or license for more information.
 pow(0,0)
1-- OK
 pow(2,30)
1073741824  -- OK
 pow(0.,0)
^C^CTerminated   -- float argument = python hung in CPU loop, killed

Then I tried a couple of random floats:

Python 3.1a2+ (py3k-short-float-repr, Apr 13 2009, 20:55:35) 
[GCC 4.0.1 (Apple Inc. build 5490)] on darwin
Type help, copyright, credits or license for more information.
 3.1
-9.255965342383856e+61
 1.
^C
Terminated  -- kill needed

The same tests work fine on the intel Mac.

Just out of curiosity, I'll try to do the same build on the 10.4 ppc;  
there are occasionally a few differences noted in the build results.  
That won't be available until later today.

-- 
 Ned Deily,
 n...@acm.org

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Dropping bytes support in json

2009-04-14 Thread Lino Mastrodomenico
2009/4/13 Daniel Stutzbach dan...@stutzbachenterprises.com:
 print(Content-Type: application/json; charset=utf-8)

Please don't do that! According to RFC 4627 the charset parameter is
not allowed for the application/json media type.

Just use Content-Type: application/json, the charset is only
misleading because even if you specify, e.g., ISO-8859-1 a
standard-compliant receiver will probably still try to interpret the
content as UTF-8/16/32.

OTOH a charset can be used if you send JSON with an
application/javascript MIME type.

-- 
Lino Mastrodomenico
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Mark Dickinson
On Tue, Apr 14, 2009 at 9:45 AM, Ned Deily n...@acm.org wrote:
  Ned Deily n...@acm.org wrote:
  Eric Smith e...@trueblade.com wrote:
  Before then, if anyone could build and test the py3k-short-float-repr
  branch on any of the following machines, that would be great:
 
 [...]
  Something bigendian, like a G4 Mac

 I'll crank up some OS X installer builds and run them on G3 and G4 Macs
 vs 32-/64- Intel.  Any tests of interest beyond the default regttest.py?

Ned, many thanks for doing this!

 Then I tried a couple of random floats:

 Python 3.1a2+ (py3k-short-float-repr, Apr 13 2009, 20:55:35)
 [GCC 4.0.1 (Apple Inc. build 5490)] on darwin
 Type help, copyright, credits or license for more information.
 3.1
 -9.255965342383856e+61
 1.
 ^C
 Terminated  -- kill needed

Cool!  I suspect endianness issues.  As evidence, I present:

 list(struct.pack('d', 3.1))
[205, 204, 204, 204, 204, 204, 8, 64]
 list(struct.pack('d', -9.255965342383856e+61))
[204, 204, 8, 64, 205, 204, 204, 204]

I'm guessing that the problem is that when you build on
Intel, the configure script detects a little-endian machine,
and Gay's code then uses the little-endian defines
throughout, both for PPC and Intel.

I don't know any sensible way to fix this.

But I'd expect that there are already similar issues
with a 'fat' build of py3k on OS X.  After all, there's
already a 'WORDS_BIGENDIAN' in pyconfig.h.in. I
don't know where this is used.

Mark
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Eric Smith

Ned Deily wrote:
I'll crank up some OS X installer builds and run them on G3 and G4 Macs 
vs 32-/64- Intel.  Any tests of interest beyond the default regttest.py?


FIrst attempt was a fat (32-bit i386 and ppc) build on 10.5 targeted for 
10.3 and above; this is the similar to recent python.org OSX installers.  
The good news: on 10.5 i386, running the default regrtest, no signficant 
differences were noted from an installer built from the current main 
py3k head.


Okay, that's awesome. Thanks.

Bad news: the same build installed on a G4 running 10.5 hung hard in 
test_pow of test_builtin; a kill was needed to terminate python.  Same 
results on a G3 running 10.4. 


Okay, that's less than awesome. But still a huge thanks.


Then I tried a couple of random floats:

Python 3.1a2+ (py3k-short-float-repr, Apr 13 2009, 20:55:35) 
[GCC 4.0.1 (Apple Inc. build 5490)] on darwin

Type help, copyright, credits or license for more information.

3.1

-9.255965342383856e+61

1.

^C
Terminated  -- kill needed


I don't suppose it's possible that you could run this under gdb and get 
a stack trace when it starts looping (assuming that's what's happening)?


I think I might have a PPC Mac Mini I can get my hands on, and I'll test 
there if possible.


Eric.

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Mark Dickinson
By the way, a simple native build on OS X 10.4/PPC passed all tests (that
we're already failing before).

Mark
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Mark Dickinson
On Tue, Apr 14, 2009 at 11:37 AM, Mark Dickinson dicki...@gmail.com wrote:
 By the way, a simple native build on OS X 10.4/PPC passed all tests (that
 we're already failing before).

s/we're/weren't
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Antoine Pitrou
Mark Dickinson dickinsm at gmail.com writes:
 
 But I'd expect that there are already similar issues
 with a 'fat' build of py3k on OS X.  After all, there's
 already a 'WORDS_BIGENDIAN' in pyconfig.h.in. I
 don't know where this is used.

It's used e.g. in unicode encoding/decoding, and in the IO lib.
If that constant can't take different values depending on the CPU arch, we have
a big problem.

Regards

Antoine.


___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Mark Dickinson
On Tue, Apr 14, 2009 at 9:45 AM, Ned Deily n...@acm.org wrote:
 FIrst attempt was a fat (32-bit i386 and ppc) build on 10.5 targeted for
 10.3 and above; this is the similar to recent python.org OSX installers.

What's the proper way to create such a build?  I've been trying:

./configure --with-universal-archs=32-bit --enable-framework
--enable-universalsdk=/ MACOSX_DEPLOYMENT_TARGET=10.5

but the configure AC_C_BIGENDIAN macro doesn't seem to pick up
on the universality:  the output from ./configure contains the line:

checking whether byte ordering is bigendian... no

I was expecting a ... universal instead of ... no.

From reading the autoconf manual, it seems as though AC_C_BIGENDIAN
knows some magic to make things work for universal builds; it ought to be
possible to imitate that magic somehow.

Mark
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] UTF-8 Decoder

2009-04-14 Thread Antoine Pitrou
Jeroen Ruigrok van der Werven asmodai at in-nomine.org writes:
 
 This got posted on the Unicode list, does it seem interesting for Python
 itself, the UTF-8 to UTF-16 transcoding might be?
 
 http://bjoern.hoehrmann.de/utf-8/decoder/dfa/

If you have some time on your hands, you could try benchmarking it against
Python 3.1's (py3k) decoder. There are two cases to consider:
- mostly non-ASCII input, such as the utf-8 demo file mentioned in the page 
above
- mostly ASCII input, such as will happen very often (think HTML, XML, log
files, etc.)

The py3k utf-8 decoder is optimized for the latter.

Regards

Antoine.


___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 382: Namespace Packages

2009-04-14 Thread M.-A. Lemburg
On 2009-04-07 19:46, P.J. Eby wrote:
 At 04:58 PM 4/7/2009 +0200, M.-A. Lemburg wrote:
 On 2009-04-07 16:05, P.J. Eby wrote:
  At 02:30 PM 4/7/2009 +0200, M.-A. Lemburg wrote:
   Wouldn't it be better to stick with a simpler approach and look for
   __pkg__.py files to detect namespace packages using that O(1)
  check ?
  
   Again - this wouldn't be O(1). More importantly, it breaks system
   packages, which now again have to deal with the conflicting file
 names
   if they want to install all portions into a single location.
 
  True, but since that means changing the package infrastructure, I
 think
  it's fair to ask distributors who want to use that approach to also
 take
  care of looking into the __pkg__.py files and merging them if
  necessary.
 
  Most of the time the __pkg__.py files will be empty, so that's not
  really much to ask for.
 
  This means your proposal actually doesn't add any benefit over the
  status quo, where you can have an __init__.py that does nothing but
  declare the package a namespace.  We already have that now, and it
  doesn't need a new filename.  Why would we expect OS vendors to start
  supporting it, just because we name it __pkg__.py instead of
 __init__.py?

 I lost you there.

 Since when do we support namespace packages in core Python without
 the need to add some form of magic support code to __init__.py ?

 My suggestion basically builds on the same idea as Martin's PEP,
 but uses a single __pkg__.py file as opposed to some non-Python
 file yaddayadda.pkg.
 
 Right... which completely obliterates the primary benefit of the
 original proposal compared to the status quo.  That is, that the PEP 382
 way is more compatible with system packaging tools.
 
 Without that benefit, there's zero gain in your proposal over having
 __init__.py files just call pkgutil.extend_path() (in the stdlib since
 2.3, btw) or pkg_resources.declare_namespace() (similar functionality,
 but with zipfile support and some other niceties).
 
 IOW, your proposal doesn't actually improve the status quo in any way
 that I am able to determine, except that it calls for loading all the
 __pkg__.py modules, rather than just the first one.  (And the setuptools
 implementation of namespace packages actually *does* load multiple
 __init__.py's, so that's still no change over the status quo for
 setuptools-using packages.)

The purpose of the PEP is to create a standard for namespace packages.
That's orthogonal to trying to enhance or change some existing
techniques.

I don't see the emphasis in the PEP on Linux distribution support and the
remote possibility of them wanting to combine separate packages back
into one package as good argument for adding yet another separate hierarchy
of special files which Python scans during imports.

That said, note that most distributions actually take the other route:
they try to split up larger packages into smaller ones, so the argument
becomes even weaker.

It is much more important to standardize the approach than to try
to extend some existing trickery and make them even more opaque than
they already are by introducing yet another level of complexity.

My alternative approach builds on existing methods and fits nicely
with the __init__.py approach Python has already been using for more
than a decade now. It's transparent, easy to understand and provides
enough functionality to build upon - much like the original __init__.py
idea.

I've already laid out the arguments for and against it in my
previous reply, so won't repeat them here.

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Apr 14 2009)
 Python/Zope Consulting and Support ...http://www.egenix.com/
 mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
 mxODBC, mxDateTime, mxTextTools ...http://python.egenix.com/

2009-03-19: Released mxODBC.Connect 1.0.1  http://python.egenix.com/

::: Try our new mxODBC.Connect Python Database Interface for free ! 


   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
   Registered at Amtsgericht Duesseldorf: HRB 46611
   http://www.egenix.com/company/contact/
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Adding new features to Python 2.x

2009-04-14 Thread M.-A. Lemburg
On 2009-04-07 18:19, Guido van Rossum wrote:
 On Tue, Apr 7, 2009 at 5:25 AM, M.-A. Lemburg m...@egenix.com wrote:
 On 2009-04-06 15:21, Jesse Noller wrote:
 On Thu, Apr 2, 2009 at 4:33 PM, M.-A. Lemburg m...@egenix.com wrote:
 On 2009-04-02 17:32, Martin v. Löwis wrote:
 I propose the following PEP for inclusion to Python 3.1.
 Thanks for picking this up.

 I'd like to extend the proposal to Python 2.7 and later.

 -1 to adding it to the 2.x series. There was much discussion around
 adding features to 2.x *and* 3.0, and the consensus seemed to *not*
 add new features to 2.x and use those new features as carrots to help
 lead people into 3.0.
 I must have missed that discussion :-)

 Where's the PEP pinning this down ?

 The Python 2.x user base is huge and the number of installed
 applications even larger.

 Cutting these users and application developers off of important new
 features added to Python 3 is only going to work as carrot for
 those developers who:

  * have enough resources (time, money, manpower) to port their existing
   application to Python 3

  * can persuade their users to switch to Python 3

  * don't rely much on 3rd party libraries (the bread and butter
   of Python applications)

 Realistically, such a porting effort is not likely going to happen
 for any decent sized application, except perhaps a few open source
 ones.

 Such a policy would then translate to a dead end for Python 2.x
 based applications.
 
 Think of the advantages though! Python 2 will finally become *stable*.
 The group of users you are talking to are usually balking at the
 thought of upgrading from 2.x to 2.(x+1) just as much as they might
 balk at the thought of Py3k. We're finally giving them what they
 really want.

Python 2.x is stable - much more than 3.x is today. However, stable
does not mean zero development, which a No new features in Python 2.x
policy would translate to.

If there are core developers that care about 2.x, then it should be
possible for them to add the necessary patches to future 2.x releases.

 Regarding calling this a dead end, we're committed to supporting 2.x
 for at least five years. If that's not enough, well, it's open source,
 so there's no reason why some group of rogue 2.x fans can't maintain
 it indefinitely after that.

Sure, but why can't this be done within the existing Python
developer community ?

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Apr 14 2009)
 Python/Zope Consulting and Support ...http://www.egenix.com/
 mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
 mxODBC, mxDateTime, mxTextTools ...http://python.egenix.com/

2009-03-19: Released mxODBC.Connect 1.0.1  http://python.egenix.com/

::: Try our new mxODBC.Connect Python Database Interface for free ! 


   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
   Registered at Amtsgericht Duesseldorf: HRB 46611
   http://www.egenix.com/company/contact/
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Mark Dickinson
Okay, I think I might have fixed up the float endianness detection for
universal builds on OS X.  Ned, any chance you could give this
another try with an updated version of the py3k-short-float-repr branch?

One thing I don't understand:

Is it true that to produce a working universal/fat build of Python,
one has to first regenerate configure and pyconfig.h.in using autoconf
version = 2.62?  If not, then I don't understand how the
AC_C_BIGENDIAN autoconf macro can be giving the right results.

Mark
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Antoine Pitrou
Mark Dickinson dickinsm at gmail.com writes:
 
 Okay, I think I might have fixed up the float endianness detection for
 universal builds on OS X.  Ned, any chance you could give this
 another try with an updated version of the py3k-short-float-repr branch?

If this approach is sane, could it be adopted for all other instances of
endianness detection in the py3k code base?
Has anyone tested a recent py3k using universal builds? Do all tests pass?


___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 382: Namespace Packages

2009-04-14 Thread P.J. Eby

At 05:02 PM 4/14/2009 +0200, M.-A. Lemburg wrote:

I don't see the emphasis in the PEP on Linux distribution support and the
remote possibility of them wanting to combine separate packages back
into one package as good argument for adding yet another separate hierarchy
of special files which Python scans during imports.

That said, note that most distributions actually take the other route:
they try to split up larger packages into smaller ones, so the argument
becomes even weaker.


I think you've misunderstood something about the use case.  System 
packaging tools don't like separate packages to contain the *same 
file*.  That means that they *can't* split a larger package up with 
your proposal, because every one of those packages would have to 
contain a __pkg__.py -- and thus be in conflict with each 
other.  Either that, or they would have to make a separate system 
package containing *only* the __pkg__.py, and then make all packages 
using the namespace depend on it -- which is more work and requires 
greater co-ordination among packagers.


Allowing each system package to contain its own .pkg or .nsp or 
whatever files, on the other hand, allows each system package to be 
built independently, without conflict between contents (i.e., having 
the same file), and without requiring a special pseudo-package to 
contain the additional file.


Also, executing multiple __pkg__.py files means that when multiple 
system packages are installed to site-packages, only one of them 
could possibly be executed.  (Note that, even though the system 
packages themselves are not combined, in practice they will all be 
installed to the same directory, i.e., site-packages or the platform 
equivalent thereof.)


___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Mark Dickinson
On Tue, Apr 14, 2009 at 5:14 PM, Antoine Pitrou solip...@pitrou.net wrote:

 If this approach is sane, could it be adopted for all other instances of
 endianness detection in the py3k code base?

I think everything else is fine:  float endianness detection (for marshal,
pickle, struct) is done at runtime. Integer endianness detection goes
via AC_C_BIGENDIAN, which understands universal builds---but only
for autoconf = 2.62.

 Has anyone tested a recent py3k using universal builds? Do all tests pass?

Do you know the right way to create a universal build?  If so, I'm in a position
to test on 32-bit PPC, 32-bit Intel and 64-bit Intel.

Mark
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Antoine Pitrou
Mark Dickinson dickinsm at gmail.com writes:
 
  Has anyone tested a recent py3k using universal builds? Do all tests pass?
 
 Do you know the right way to create a universal build? 

Not at all, sorry.

Regards

Antoine.


___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Mark Dickinson
On Tue, Apr 14, 2009 at 5:49 PM, Antoine Pitrou solip...@pitrou.net wrote:
 Mark Dickinson dickinsm at gmail.com writes:
 Do you know the right way to create a universal build?

 Not at all, sorry.

No problem :). I might try asking on the pythonmac-sig list.

Mark
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Ned Deily
In article loom.20090414t161327-...@post.gmane.org,
 Antoine Pitrou solip...@pitrou.net wrote:
 Has anyone tested a recent py3k using universal builds? Do all tests pass?

It's done all the time.  All of the current released installers (2.5, 
2.6, 3.0) are 2-way (i386, ppc) universal and we occasionally test all 
of the current lines (2.6, trunk, 3.0, 3.1) as 4-way (i386, ppc, x86_64, 
ppc64), although the ppc64 has had no testing recently.

-- 
 Ned Deily,
 n...@acm.org

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Ned Deily
In article 
5c6f2a5d0904140909x417d225ejd845de9c5c780...@mail.gmail.com,
 Mark Dickinson dicki...@gmail.com wrote:

 Okay, I think I might have fixed up the float endianness detection for
 universal builds on OS X.  Ned, any chance you could give this
 another try with an updated version of the py3k-short-float-repr branch?

Not looking good.   Appears to be same behavior on the G4 with 10.5 
(haven't tried the G3 yet).

-- 
 Ned Deily,
 n...@acm.org

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Ned Deily
In article 
5c6f2a5d0904140930y7dc7cf4fg496d50fd34f89...@mail.gmail.com,
 Mark Dickinson dicki...@gmail.com wrote:
 Do you know the right way to create a universal build?  If so, I'm in a 
 position
 to test on 32-bit PPC, 32-bit Intel and 64-bit Intel.

The OSX installer script is in Mac/BuildScript/build-installer.py.

For 2-way builds, it essentially does:

export MACOSX_DEPLOYMENT_TARGET=10.3
configure -C --enable-framework
   --enable-universalsdk=/Developer/SDKs/MacOSX10.4u.sdk
   --with-universal-archs='32-bit' --with-computed-gotos OPT='-g -O3'

and for 4-way:

export MACOSX_DEPLOYMENT_TARGET=10.5
configure -C --enable-framework
   --enable-universalsdk=/Developer/SDKs/MacOSX10.5.sdk
   --with-universal-archs='all' --with-computed-gotos OPT='-g -O3'

-- 
 Ned Deily,
 n...@acm.org

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Martin v. Löwis
 Is it true that to produce a working universal/fat build of Python,
 one has to first regenerate configure and pyconfig.h.in using autoconf
 version = 2.62?  If not, then I don't understand how the
 AC_C_BIGENDIAN autoconf macro can be giving the right results.

The outcome of AC_C_BIGENDIAN isn't used on OSX. Depending on the exact
version you look at, things might work differently; in trunk,
Include/pymacconfig.h should be used, which does

#if defined(__APPLE__)
# undef WORDS_BIGENDIAN
#ifdef __BIG_ENDIAN__
#define WORDS_BIGENDIAN 1
#endif /* __BIG_ENDIAN */
#endif

Earlier versions included that ifdef block directly in pyconfig.h.in.

In case it isn't clear how this works: GCC predefines __BIG_ENDIAN__
on PPC but not on x86; for universal binaries, two (or more) separate
preprocessor (and compiler runs) are done.

HTH,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Martin v. Löwis
 If this approach is sane, could it be adopted for all other instances of
 endianness detection in the py3k code base?

Don't worry - the approach that we already take is already sane, so no
further changes are needed.

Regards,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Mark Dickinson
On Tue, Apr 14, 2009 at 6:55 PM, Martin v. Löwis mar...@v.loewis.de wrote:
 The outcome of AC_C_BIGENDIAN isn't used on OSX. Depending on the exact
 version you look at, things might work differently; in trunk,
 Include/pymacconfig.h should be used [...]

Many thanks---that was the missing piece of the puzzle.  I think I
understand how to make things work now.

Mark
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Mark Dickinson
On Tue, Apr 14, 2009 at 6:32 PM, Ned Deily n...@acm.org wrote:
 The OSX installer script is in Mac/BuildScript/build-installer.py.

 For 2-way builds, it essentially does:

 export MACOSX_DEPLOYMENT_TARGET=10.3
 configure -C --enable-framework
   --enable-universalsdk=/Developer/SDKs/MacOSX10.4u.sdk
   --with-universal-archs='32-bit' --with-computed-gotos OPT='-g -O3'

Great---thank you!  And thank you for all the testing.

I'll try to sort all this out later this evening (GMT+1);  I think I
understand how to fix everything now.

Mark
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Jim Baker
I rather like supporting short float representation. Given that CPython is
adopting it, I'm sure Jython will adopt this approach too as part of a
future Jython 3.x release.
- Jim

On Tue, Apr 7, 2009 at 9:41 AM, Michael Foord fuzzy...@voidspace.org.ukwrote:

 Mark Dickinson wrote:

 [snip...]
  Discussion points
 =

 (1) Any objections to including this into py3k?  If there's
 controversy, then I guess we'll need a PEP.



 Big +1

 (2) Should other Python implementations (Jython,
 IronPython, etc.) be expected to use short float repr, or should
 it just be considered an implementation detail of CPython?
 I propose the latter, except that all implementations should
 be required to satisfy eval(repr(x)) == x for finite floats x.


 Short float repr should be an implementation detail, so long as
 eval(repr(x)) == x still holds.

 Michael Foord

 --
 http://www.ironpythoninaction.com/
 http://www.voidspace.org.uk/blog



 ___
 Python-Dev mailing list
 Python-Dev@python.org
 http://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 http://mail.python.org/mailman/options/python-dev/jbaker%40zyasoft.com




-- 
Jim Baker
jba...@zyasoft.com
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Shorter float repr in Python 3.1?

2009-04-14 Thread Ronald Oussoren


On 14 Apr, 2009, at 18:09, Mark Dickinson wrote:


Okay, I think I might have fixed up the float endianness detection for
universal builds on OS X.  Ned, any chance you could give this
another try with an updated version of the py3k-short-float-repr  
branch?


One thing I don't understand:

Is it true that to produce a working universal/fat build of Python,
one has to first regenerate configure and pyconfig.h.in using autoconf
version = 2.62?  If not, then I don't understand how the
AC_C_BIGENDIAN autoconf macro can be giving the right results.


It cannot, the actual bigendian detection for universal build is done  
in pymacconfig.h.  I have given up on getting pyconfig.h right for  
universal builds, especially when dealing with 4-way universal builds.


Ronald



Mark
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/ronaldoussoren%40mac.com




smime.p7s
Description: S/MIME cryptographic signature
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 382: Namespace Packages

2009-04-14 Thread M.-A. Lemburg
On 2009-04-14 18:27, P.J. Eby wrote:
 At 05:02 PM 4/14/2009 +0200, M.-A. Lemburg wrote:
 I don't see the emphasis in the PEP on Linux distribution support and the
 remote possibility of them wanting to combine separate packages back
 into one package as good argument for adding yet another separate
 hierarchy
 of special files which Python scans during imports.

 That said, note that most distributions actually take the other route:
 they try to split up larger packages into smaller ones, so the argument
 becomes even weaker.
 
 I think you've misunderstood something about the use case.  System
 packaging tools don't like separate packages to contain the *same
 file*.  That means that they *can't* split a larger package up with your
 proposal, because every one of those packages would have to contain a
 __pkg__.py -- and thus be in conflict with each other.  Either that, or
 they would have to make a separate system package containing *only* the
 __pkg__.py, and then make all packages using the namespace depend on it
 -- which is more work and requires greater co-ordination among packagers.

You are missing the point: When breaking up a large package that lives in
site-packages into smaller distribution bundles, you don't need namespace
packages at all, so the PEP doesn't apply.

The way this works is by having a base distribution bundle that includes
the needed __init__.py file and a set of extension bundles the add
other files to the same directory (without including another copy of
__init__.py). The extension bundles include a dependency on the base
package to make sure that it always gets installed first.

Debian has been using that approach for egenix-mx-base for years. Works
great:

http://packages.debian.org/source/lenny/egenix-mx-base

eGenix has been using that approach for mx package add-ons as well -
long before namespace packages where given that name :-)

Please note that the PEP is about providing ways to have package parts
live on sys.path that reintegrate themselves into a single package at
import time.

As such it's targeting Python developers that want to ship add-ons to
existing packages, not Linux distributions (they usually have their
own ideas about what goes where - something that's completely out-of-
scope for the PEP).

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Apr 14 2009)
 Python/Zope Consulting and Support ...http://www.egenix.com/
 mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
 mxODBC, mxDateTime, mxTextTools ...http://python.egenix.com/

2009-03-19: Released mxODBC.Connect 1.0.1  http://python.egenix.com/

::: Try our new mxODBC.Connect Python Database Interface for free ! 


   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
   Registered at Amtsgericht Duesseldorf: HRB 46611
   http://www.egenix.com/company/contact/
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 382: Namespace Packages

2009-04-14 Thread P.J. Eby

At 10:59 PM 4/14/2009 +0200, M.-A. Lemburg wrote:

You are missing the point: When breaking up a large package that lives in
site-packages into smaller distribution bundles, you don't need namespace
packages at all, so the PEP doesn't apply.

The way this works is by having a base distribution bundle that includes
the needed __init__.py file and a set of extension bundles the add
other files to the same directory (without including another copy of
__init__.py). The extension bundles include a dependency on the base
package to make sure that it always gets installed first.


If we're going to keep that practice, there's no point to having the 
PEP: all three methods (base+extensions, pkgutil, setuptools) all 
work just fine as they are, with no changes to importing or the stdlib.


In particular, without the feature of being able to drop that 
practice, there would be no reason for setuptools to adopt the 
PEP.  That's why I'm -1 on your proposal: it's actually inferior to 
the methods we already have today.


___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Why does read() return bytes instead of bytearray?

2009-04-14 Thread Dan Eloff
Hi,

Can someone please explain why read() should return an immutable bytes
type instead of a mutable bytearray? It's not like read() from a file
and use buffer as a key in a dict is common. Certainly read() from
file or stream, modify, write is very common. I don't understand why
the common case pays the price in performance and simplicity. It
seemed to me that the immutable bytes was described as being useful in
niche situations, but it actually seems to have been favored over
bytearray in Python 3.

Was there was a good reason for this decision? Or was this just an
artifact in the change to two bytes types?

The reason I ask is I have a server application that is mostly stream
reading/writing on the hot path and in Python 2.5 the redundant copies
add up to a significant overhead, (I estimate as much as 25% from my
measurements) I was looking at Python 3 as a way to solve that
problem, but unfortunately it doesn't look like it will help.

Thanks,
-Dan
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Why does read() return bytes instead of bytearray?

2009-04-14 Thread Amaury Forgeot d'Arc
Hello,

On Wed, Apr 15, 2009 at 03:01, Dan Eloff dan.el...@gmail.com wrote:
 Hi,

 Can someone please explain why read() should return an immutable bytes
 type instead of a mutable bytearray? It's not like read() from a file
 and use buffer as a key in a dict is common. Certainly read() from
 file or stream, modify, write is very common. I don't understand why
 the common case pays the price in performance and simplicity. It
 seemed to me that the immutable bytes was described as being useful in
 niche situations, but it actually seems to have been favored over
 bytearray in Python 3.

 Was there was a good reason for this decision? Or was this just an
 artifact in the change to two bytes types?

No, the read() method did not change from the 2.x series.
It returns a new object on each call.

 The reason I ask is I have a server application that is mostly stream
 reading/writing on the hot path and in Python 2.5 the redundant copies
 add up to a significant overhead, (I estimate as much as 25% from my
 measurements) I was looking at Python 3 as a way to solve that
 problem, but unfortunately it doesn't look like it will help.

Files opened in binary mode have a readinto() method, which fills the
given bytearray.
Is this what you are looking for?

-- 
Amaury Forgeot d'Arc
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Why does read() return bytes instead of bytearray?

2009-04-14 Thread Dan Eloff
No, the read() method did not change from the 2.x series. It returns a new 
object on each call.

I think you misunderstand me, but the readinto() method looks like a
perfectly reasonable solution, I didn't realize it existed, as it's
not in the library reference on file objects. Thanks for enlightening
me, I feel a little stupid now :)

Python 3, lookout, here I come!

-Dan
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com