Re: [Python-Dev] Re: No new features

2005-03-10 Thread Michael Hudson
Donovan Baarda [EMAIL PROTECTED] writes:

 G'day again,

[...]

 You missed the minor releases bit in my post.

 major releases, ie 2.x - 3.0, are for things that can break existing code.
 They change the API so that things that run on 2.x may not work with 3.x.

 minor releases, ie 2.2.x -2.3.0, are for things that cannot break existing
 code. They can extend the API such that code for 2.3.x may not work on
 2.2.x, but code that runs on 2.2.x must work on 2.3.x.

 micro releases, ie 2.2.1 -2.2.2, are for bug fixes only. There can be no
 changes to the API, so that all code that runs on 2.2.2 should work with
 2.2.1, barring the bugs fixed.

 The example you cited of adding bool was an extension to the API, and hence
 should have been a minor release, not a micro release.

 I just read the PEP-6, and it doesn't seem to use this terminology, or make
 this distinction... does something else do this anywhere? I thought this
 approach was common knowledge...

I see.  You were proposing a much larger change to the way Python
releases work than I (and perhaps you? :) realised.

Not breaking any code 2.x to 2.x+1 is a nice idea, but doesn't really
seem feasible in practice.

Cheers,
mwh

-- 
  nonono,  while we're making wild  conjectures about the behavior
  of completely irrelevant tasks, we must not also make serious
  mistakes, or the data might suddenly become statistically valid.
-- Erik Naggum, comp.lang.lisp
___
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] LinkedHashSet/LinkedHashMap equivalents

2005-03-10 Thread Michael Hudson
Delaney, Timothy C (Timothy) [EMAIL PROTECTED] writes:

 Set: Items are iterated over in the order that they are added. Adding an
 item that compares equal to one that is already in the set does not
 replace the item already in the set, and does not change the iteration
 order. Removing an item, then re-adding it moves the item to the end of
 the iteration order.

Well, this could be satisfied by an append_new operation on lists,
right (thinking of Common Lisps #'cl:pushnew)?  Complexity not that
great, of course, but I've written code like:

if a not in l:
l.append(a)

and not suffered that badly for it before now...

 Dict: Keys are iterated over in the order that they are added. Setting a
 value using a key that compares equal to one already in the dict
 replaces the value, but not the key, and does not change the iteration
 order. Removing a key (and value) then re-adding it moves the key to the
 end of the iteration order.

And these are what CL types call association lists, in effect.

Cheers,
mwh

-- 
  #ifndef P_tmpdir
  printf( Go buy a better computer );
  exit( ETHESKYISFALLINGANDIWANTMYMAMA );
 -- Dimitri Maziuk on writing secure code, asr
___
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] Decimal returning NotImplemented (or not)

2005-03-10 Thread M.-A. Lemburg
Nick Coghlan wrote:
Guido van Rossum wrote:
No, the reason is that if we did this with exceptions, it would be
liable to mask errors; an exception does not necessarily originate
immediately with the code you invoked, it could have been raised by
something else that was invoked by that code. The special value
NotImplemented must pretty much originate directly in the invoked
code, since the implementation guarantees that e.g. a+b can never
*return* NotImplemented: if a.__add__(b) and b.__radd__(a) both return
NotImplemented, TypeError is raised.

That makes sense - although for that reasoning, a TypeError subclass 
that the binary operation machinery promotes to a standard TypeError 
would seem to work too (with the advantage of also raising at least some 
sort of exception when the method is called directly)
I have to correct Guido's explanation a bit: the original reason
for using a special singleton instead of an exception was indeed
a significant difference in performance (raising exceptions at
the Python level is expensive, not so much at the C level).
I don't remember the details, but I did some measurements at
the time which made the decision to use a singleton rather
easy :-)
The NotImplemented singleton was part of the coercion
proposal: http://www.egenix.com/files/python/CoercionProposal.html
(pretty old stuff, now that I look at it again ;-)
That said, Guido's point is just valid. We would have had to
add code that saves the current exception to avoid masking
any pending errors - code like that always turns into a
mess sooner or later.
Cheers,
--
Marc-Andre Lemburg
eGenix.com
Professional Python Services directly from the Source  (#1, Mar 10 2005)
 Python/Zope Consulting and Support ...http://www.egenix.com/
 mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
 mxODBC, mxDateTime, mxTextTools ...http://python.egenix.com/

::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! 
___
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] itemgetter/attrgetter extension

2005-03-10 Thread Nick Coghlan
Raymond Hettinger wrote:
Any objections to extending itemgetter() and attrgetter() to be able to
extract multiple fields at a time?
# SELECT name, rank, serialnum FROM soldierdata
map(attrgetter('name', 'rank', 'serialnum'), soldierdata)
# SELECT * FROM soldierdata ORDER BY unit, rank, proficiency
sorted(soldierdata, key=attrgetter('unit', 'rank', 'proficiency'))
Breaking the symmetry with getattr() bothers me a little, as does the signature 
change that occurs when multiple arguments are given (returning a tuple, whereas 
the single argument returns just the retrieved attribute).

For itemgetter, I'd like to see multiple arguments eventually map to 
multi-dimensional slices (to preserve symmetry with indexing syntax).

Call it -1 for itemgetter and -0 for attrgetter.
Cheers,
Nick.
--
Nick Coghlan   |   [EMAIL PROTECTED]   |   Brisbane, Australia
---
http://boredomandlaziness.skystorm.net
___
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] LinkedHashSet/LinkedHashMap equivalents

2005-03-10 Thread Nick Coghlan
Delaney, Timothy C (Timothy) wrote:
OTOH, ordered set and ordered dict implies different things to
different people - usually sorted rather than the order things were
put in. Perhaps temporally-ordered ;)
OTGH*, I would expect an OrderedDict / OrderedSet to have 'add to the end' 
semantics, but also provide a 'sort()' method so that the ordering could be 
changed at a later date.

IOW, by default the ordering is temporal. Sorting the ordered dict/set changes 
the iteration order for the current contents. Further additions are still added 
in temporal order until such time as the dict/set is sorted again.

The parallels are to using list.append() to build a list, and list.sort() to 
order the current contents (in fact, a simplistic approach could use that exact 
technique to remember the order of keys, at the cost of doubling key storage 
requirements).

Cheers,
Nick.
*OTGH: On the gripping hand :)
--
Nick Coghlan   |   [EMAIL PROTECTED]   |   Brisbane, Australia
---
http://boredomandlaziness.skystorm.net
___
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] LinkedHashSet/LinkedHashMap equivalents

2005-03-10 Thread Barry Warsaw
On Wed, 2005-03-09 at 19:39, Tommy Burnette wrote:
 I'd say I'm +0.  fwiw- I've been using a locally-rolled OrderedDict
 implementation for the last 5-6 years in which insertion order is the
 only order respected.  I use it all over the place (in a code base of
 ~60k lines of python code).
 
 so there's another use case for you.  bust as you say, easy to do
 yourself... 

I'm -0 on adding it to the stdlib, but mostly because I don't like the
name, and I suspect it's going to be one of those nuggets lurking in the
standard library that few people will use, tending either to overlook it
or just roll their own anyway because the standard one doesn't have
quite the right semantics.

FWIW, email.Message.Message /exposes/ an ordered dictionary-like
interface even though it's implemented as a simple list.  It was
considered at the time that the number of headers in an email message
wouldn't be so large that anything else would be worth the complexity. 
I think that still holds, for the original uses cases at least.

-Barry



signature.asc
Description: This is a digitally signed message part
___
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] LinkedHashSet/LinkedHashMap equivalents

2005-03-10 Thread BJörn Lindqvist
I would LOVE for **kwargs to be an ordered dict. It would allow me to
write code like this:

.class MyTuple:
.def __init__(self, **kwargs):
.self.__dict__ = ordereddict(kwargs)
.
.def __iter__(self):
.for k, v in self.__dict__.items():
.yield v
.
.t = MyTuple(r = 99, g = 12, b = 4)
.r, g, b = t
.print r, g, b

I know it goes beyond the original intention of the proposal, but I
figure I'd mention it anyway because the unorder of **kwargs has been
bugging me alot.

-- 
mvh Björn
___
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] LinkedHashSet/LinkedHashMap equivalents

2005-03-10 Thread Anthony Baxter
On Thursday 10 March 2005 17:29, Raymond Hettinger wrote:
 Or the implementation can have a switch to choose between keep-first
 logic or replace logic.

 The latter seems a bit odd to me.  The key position would be determined
 by the first encountered while the value would be determined by the last
 encountered.  Starting with [(10, v1), (20, v2), (10.0, v3)], the
 ordered dictionary's items would look like [(10, v3), (20, v2)].

Or, alternately, we keep the last occurence, and move it to the new position.
There's a wide number of different use cases, each with a slightly different
final result, and for this reason alone I'm -0 on it for the library. 

Anthony

-- 
Anthony Baxter [EMAIL PROTECTED]
It's never too late to have a happy childhood.
___
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] Re: Python 2.4, distutils, and pure python packages

2005-03-10 Thread Thomas Heller
The following message is a courtesy copy of an article
that has been posted to comp.lang.python as well.

[CC to python-dev]
Fuzzyman [EMAIL PROTECTED] writes:

 Python 2.4 is built with Microsoft Visiual C++ 7. This means that it
 uses msvcr7.dll, which *isn't* a standard part of the windows operating
 system.

Nitpicking - it's MSVC 7.1, aka MS Visual Studio .NET 2003, and it's
msvcr71.dll.

 This means that if you build a windows installer using
 distutils - it *requires* msvcr7.dll in order to run. This is true even
 if your package is a pure python package. This means that when someone
 tries to use a windows installer created with Python 2.4, on a machine
 with only python 2.3 - it will fail.

Bummer.

 It's likely that nothing can be done about this (although for a pure
 python package there's no reason not to use the 'source distribution'
 and the setup.py). It does mean that I have to build my windows
 installer on a machine with python 2.3.

There's a workaround, although ugly.

bdist_wininst has a --target-version flag which allows to build an
installer for another Python version.  It works both for pure Python
packages, and for (how are they called? non-pure?) packages containing
compiled extensions.  The 2.4 distutils package has all that is needed
to create a installer running with python 2.3 or maybe even 2.2 (which
uses msvcrt.dll instead of msvcr71.dll).  The result, of course, is that
the installer can only install for the version that you specified at
build time.

Because distutils cannot cross-compile extensions for other versions,
you must have build extensions (if there are any to include) with the
other Python version before - distutils will simply pick up the
extensions it finds in build subdirectories for the other version.

Anyway, whether you have extensions or not, you must also specify the
--skip-build command line flag, distutils will complain if you don't.
So, for a pure distribution you would typically run these commands to
build separate installers for 2.3 and 2.4:

\python24\python setup.py --skip-build --target-version 2.3 bdist_wininst
\python24\python setup.py --skip-build --target-version 2.4 bdist_wininst

and for non-pure packages you must compile with each version before
building the installer (if you want for some reason to use python 2.4
to build the installer for 2.3):

\python24\python setup.py build_ext
\python23\python setup.py build_ext

\python24\python setup.py --skip-build --target-version 2.3 bdist_wininst
\python24\python setup.py --skip-build --target-version 2.4 bdist_wininst

OTOH, it's no problem to install both python 2.3 and python 2.4 in
separate directories on the same machine and always make native builds.

--

To make this story even more complete, there have been also other
bugs caused by the different runtime dlls used in 2.3 and 2.4, most
only showing when you use the --install-script option.  The installer
was using msvcrt.dll and msvcr71.dll at the same time, which led to
crashes when the install script was started - the PythonCard installer
suffered from that, at least.  The bug only occurred with pure python
distributions, because then the dll problem occurred.

The bug is solved in Python 2.3.5, and also in the 2.4.1 release which
will be out soon, with one exception: if the install-script prints
something the output will be lost instead of displayed on the last
screen.  At least that's better than crashing the process.


Thomas

___
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] LinkedHashSet/LinkedHashMap equivalents

2005-03-10 Thread Raymond Hettinger
[BJörn Lindqvist]
 I would LOVE for **kwargs to be an ordered dict. It would allow me to
 write code like this:
 
 .class MyTuple:
 .def __init__(self, **kwargs):
 .self.__dict__ = ordereddict(kwargs)

This doesn't work.  The kwargs are already turned into a regular
dictionary before ordereddict sees it.


Raymond Hettinger

___
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] SWT PyCon Sprint?

2005-03-10 Thread Phillip J. Eby
At 01:38 AM 3/10/05 -0500, Nicholas Bastin wrote:
I realize that this is exceedingly late in the game, but is anybody 
interested in doing a Write-Python-Bindings-for-SWT sprint?  It's been 
brought up before in various places, and PyCon seems the likely place to 
get enough concentrated knowledge to actually get it kicked off and 
somewhat working...
I'm certainly interested in the concept in general, though I'm curious 
whether the planned approach is a GCJ/SWIG wrapper, or a javaclass 
(bytecode translation)+ctypes dynamic approach.  I'm somewhat more 
interested in the latter approach, as I find C++ a bit of a pain with 
respect to buildability.

An additional complication is that SWT is a different package on each 
platform, so it's not so much port SWT to Python as port SWT-windows to 
Python, port SWT-Mac to Python, etc.

(I assume that you're talking about porting to a JVM-less CPython 
extension, since if you were to leave it in Java you could just use Jython 
or one of the binary Python-Java bridges to access SWT as-is.)

___
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] Can't build Zope on Windows w/ 2.4.1c1

2005-03-10 Thread Tim Peters
I don't know how far I'll get with this.  Using the current
Zope-2_7-branch of the Zope module at cvs.zope.org:/cvs-repository,
building Zope via

python setup.py build_ext -i

worked fine when I got up today, using the released Python 2.4.  One
of its tests fails, because of a Python bug that should be fixed in
2.4.1.

So I wanted to test that.  After uninstalling 2.4, then installing
2.4.1c1, then deleting Zope's lib\python\build directory, the attempt
to build Zope works fine for quite a while (successfully compiles many
chunks of Zope C code), but dies here:

...

building 'ZODB.cPickleCache' extension
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc\bin\cl.exe
 /c /nologo /Ox /MD /W3 /GX /DNDEBUG
-IC:\Code\Zope-2_7-branch\lib\Components\ExtensionClass\src
-IC:\python24\include
-IC:\python24\PC
/TcZODB/cPickleCache.c
/Fobuild\temp.win32-2.4
\Release\ZODB/cPickleCache.obj
cPickleCache.c
error: No such file or directory

I don't know which file it's complaining about.  In contrast, output I
saved from building Zope with 2.4 this morning appears identical up to
this point:

...

building 'ZODB.cPickleCache' extension
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe
/c /nologo /Ox /MD /W3 /GX /DNDEBUG
-IC:\Code\Zope-2_7-branch\lib\Components\ExtensionClass\src
-IC:\python24\include
-IC:\python24\PC
/TcZODB/cPickleCache.c
/Fobuild\temp.win32-2.4
\Release\ZODB/cPickleCache.obj
cPickleCache.c

but then, instead of an error, it goes on to link (and build more C stuff):

C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\link.exe
/DLL /nologo /INCREMENTAL:NO
/LIBPATH:C:\python24\libs
/LIBPATH:C:\python24\PCBuild
/EXPORT:initcPickleCache
build\temp.win32-2.4\Release\ZODB/cPickleCache.obj
/OUT:ZODB\cPickleCache.pyd
/IMPLIB:build\temp.win32-2.4\Release\ZODB\cPickleCache.lib
Creating library build\temp.win32-2.4\Release\ZODB\cPickleCache.lib and
object build\temp.win32-2.4\Release\ZODB\cPickleCache.exp
building 'ZODB.TimeStamp' extension


Gets stranger:  cPickleCache.c is really part of ZODB, and

 python setup.py build

continues to work fine with 2.4.1c1 from a ZODB3 checkout (and using
the same branch tag as was used for Zope).

Anyone change anything here for 2.4.1 that rings a bell?

Can anyone confirm that they can or can't build current Zope 2.7 on
Windows with 2.4.1c1 too?

If it's not unique to my box, is it unique to Windows (e.g., can
anyone build current Zope on Linux with 2.4.1c1)?
___
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] Can't build Zope on Windows w/ 2.4.1c1

2005-03-10 Thread Anthony Baxter
It works on Linux, with Zope 2.7.4. Just as a note to others (I've mentioned 
this to Tim already) if you set an environment variable DISTUTILS_DEBUG
before running a setup.py, you get very verbose information about what's going
on, and, more importantly, full tracebacks rather than terse error messages.

error: No such file or directory 

looks like a distutils error message.

-- 
Anthony Baxter [EMAIL PROTECTED]
It's never too late to have a happy childhood.
___
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] Can't build Zope on Windows w/ 2.4.1c1

2005-03-10 Thread Tim Peters
[Anthony Baxter]
 It works on Linux, with Zope 2.7.4.

Thanks!

 Just as a note to others (I've mentioned this to Tim already) if you set an
 environment variable DISTUTILS_DEBUG before running a setup.py, you get
 very verbose information about what's going on, and, more importantly, full
 tracebacks rather than terse error messages.
 
 error: No such file or directory
 
 looks like a distutils error message.

This helped a lot, although I'm even more confused now:

building 'ZODB.cPickleCache' extension
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe
/c /nologo /Ox /MD /W3 /GX /DNDEBUG
-IC:\Code\Zope-2_7-branch\lib\Components\ExtensionClass\src
-IC:\python24\include
-IC:\python24\PC /TcZODB/cPickleCache.c
 /Fobuild\temp.win32-2.4\Release\ZODB/cPickleCache.obj
cPickleCache.c
error: No such file or directory
Traceback (most recent call last):
  File C:\Code\Zope-2_7-branch\setup.py, line 1094, in ?
distclass=ZopeDistribution,
  File C:\python24\lib\distutils\core.py, line 149, in setup
dist.run_commands()
  File C:\python24\lib\distutils\dist.py, line 946, in run_commands
self.run_command(cmd)
  File C:\python24\lib\distutils\dist.py, line 966, in run_command
cmd_obj.run()
  File C:\python24\lib\distutils\command\build_ext.py, line 279, in run
self.build_extensions()
  File C:\python24\lib\distutils\command\build_ext.py, line 405, in
build_extensions
self.build_extension(ext)
  File C:\python24\lib\distutils\command\build_ext.py, line 502, in
build_extension
target_lang=language)
  File C:\python24\lib\distutils\ccompiler.py, line 847, in link_shared_object
extra_preargs, extra_postargs, build_temp, target_lang)
  File C:\python24\lib\distutils\msvccompiler.py, line 422, in link
if not self.initialized: self.initialize()
  File C:\python24\lib\distutils\msvccompiler.py, line 239, in initialize
os.environ['path'] = string.join(self.__paths, ';')
  File C:\python24\lib\os.py, line 419, in __setitem__
putenv(key, item)
OSError: [Errno 2] No such file or directory

LOL -- or something wink.  Before going to sleep, Anthony suggested that

Bug #1110478: Revert os.environ.update to do putenv again.

might be relevant.  HTF can we get a no such file or directly out of
a putenv()?!  Don't be shy.
___
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] Can't build Zope on Windows w/ 2.4.1c1

2005-03-10 Thread Tim Peters
This is going to need someone who understands distutils internals. 
The strings we end up passing to putenv() grow absurdly large, and
sooner or later Windows gets very unhappy with them.

os.py has a

elif name in ('os2', 'nt'):  # Where Env Var Names Must Be UPPERCASE

class controlling introduction of a _Environ class.  I changed its
__setitem__ like so:

def __setitem__(self, key, item):
if key.upper() == PATH:   # new line
print len(item), len(item)   # new line
putenv(key, item)
self.data[key.upper()] = item

As setup.py build_ext -i goes on while compiling Zope, this is the
output before putenv barfs:

len(item) 1025
len(item) 1680
len(item) 2335
len(item) 2990
len(item) 3645
len(item) 4300
len(item) 4955
len(item) 5610
len(item) 6265
len(item) 6920
len(item) 7575
len(item) 8230
len(item) 8885
len(item) 9540
len(item) 10195
len(item) 10850
len(item) 11505
len(item) 12160
len(item) 12815
len(item) 13470
len(item) 14125
len(item) 14780
len(item) 15435
len(item) 16090
len(item) 16745
len(item) 17400
len(item) 18055
len(item) 18710
len(item) 19365
len(item) 20020
len(item) 20675
len(item) 21330
len(item) 21985
len(item) 22640
len(item) 23295
len(item) 23950
len(item) 24605
len(item) 25260
len(item) 25915
len(item) 26570
len(item) 27225
len(item) 27880
len(item) 28535
len(item) 29190
len(item) 29845
len(item) 30500
len(item) 31155
len(item) 31810
len(item) 32465

The PATH isn't gibberish at this point -- it just keeps adding the
MSVC directories (like

 C:\\Program Files\\Microsoft Visual Studio .NET 2003\\Vc7\\bin

) again and again and again.  I don't know what the environ limits are
on various flavors of Windows; empirically, on my Win XP Pro SP2 box,
the values have to be  32K or putenv() dies.  But there's surely no
need for distutils to make PATH grow without bound, so I think this is
a distutils bug.

A workaround for building Zope is easy but embarrassing wink:  kill
setup.py before it hits this error, then start it again.  Lather,
rinse, repeat.  After a few iterations, everything builds fine.
___
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] Can't build Zope on Windows w/ 2.4.1c1

2005-03-10 Thread A.M. Kuchling
On Thu, Mar 10, 2005 at 12:46:23PM -0500, Tim Peters wrote:
 This is going to need someone who understands distutils internals. 
 The strings we end up passing to putenv() grow absurdly large, and
 sooner or later Windows gets very unhappy with them.

In distutils.msvccompiler:

def __init__ (self, verbose=0, dry_run=0, force=0):
...
self.initialized = False

def compile(self, sources,
output_dir=None, macros=None, include_dirs=None, debug=0,
extra_preargs=None, extra_postargs=None, depends=None):

if not self.initialized: self.initialize()
...

def initialize(self):
... does not seem to set self.initialized to True!

I think the fix is to add 'self.initialized = True' to the
initialize() method, but can't test it (no Windows).  This fix should
also go into 2.4.1-final, I expect.

--amk
___
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] Can't build Zope on Windows w/ 2.4.1c1

2005-03-10 Thread Tim Peters
[ A.M. Kuchling]
 In distutils.msvccompiler:
 
def __init__ (self, verbose=0, dry_run=0, force=0):
...
self.initialized = False
 
def compile(self, sources,
output_dir=None, macros=None, include_dirs=None, debug=0,
extra_preargs=None, extra_postargs=None, depends=None):
 
if not self.initialized: self.initialize()
...
 
def initialize(self):
... does not seem to set self.initialized to True!
 
 I think the fix is to add 'self.initialized = True' to the
 initialize() method, but can't test it (no Windows).  This fix should
 also go into 2.4.1-final, I expect.

Dunno, but sounds good.  We certainly ought to fix it for 2.4.1
final, whatever the fix is.  I opened a bug report:

http://www.python.org/sf/1160802
___
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] SWT PyCon Sprint?

2005-03-10 Thread Nicholas Bastin
On Mar 10, 2005, at 11:00 AM, Phillip J. Eby wrote:
At 01:38 AM 3/10/05 -0500, Nicholas Bastin wrote:
I realize that this is exceedingly late in the game, but is anybody 
interested in doing a Write-Python-Bindings-for-SWT sprint?  It's 
been brought up before in various places, and PyCon seems the likely 
place to get enough concentrated knowledge to actually get it kicked 
off and somewhat working...
I'm certainly interested in the concept in general, though I'm curious 
whether the planned approach is a GCJ/SWIG wrapper, or a javaclass 
(bytecode translation)+ctypes dynamic approach.  I'm somewhat more 
interested in the latter approach, as I find C++ a bit of a pain with 
respect to buildability.
I'm open to either approach.  I don't know a lot about JNI, so I was 
hoping somebody would come along for the ride who could answer certain 
questions about how SWT is implemented.  A third option would be to 
grovel over SWT and implement an identical functionality in Python 
(pure-python plus ctypes), and make a mirror implementation, rather 
than a wrapper.  What approach we take depends largely on who shows up 
and what they feel comfortable with.

An additional complication is that SWT is a different package on each 
platform, so it's not so much port SWT to Python as port 
SWT-windows to Python, port SWT-Mac to Python, etc.
The API is identical for each platform, however, so depending on the 
level at which you wrapped it, this is only a build problem.

(I assume that you're talking about porting to a JVM-less CPython 
extension, since if you were to leave it in Java you could just use 
Jython or one of the binary Python-Java bridges to access SWT as-is.)
Yes, JVM-less CPython extension would be the plan.
--
Nick
___
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] Re: Can't build Zope on Windows w/ 2.4.1c1

2005-03-10 Thread Tres Seaver
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Tim Peters wrote:
| [Tres Seaver]
|
|Unit tests for Zope 2.7.4's 'zdaemon' package, which passed under Python
|2.4, now fail under 2.4.1c1:
|
|
| Are you sure they passed under 2.4?
Yep.  I showed output from that in the original post (and below).
|  Derrick Hudson changed run() to
| _run() in the SVN version of zdaemon way back on Jan 19, with this
| checkin comment:
|
|  Log message for revision 28881:
|  Renamed run() method to _run().  Python 2.4's unittest.TestCase class
|  defines all of the test logic in the run() method instead of in
__call__()
|  (as 2.3 did).  The rename prevents overriding the base
implementation and
|  causing the tests to fail.
|
|  Changed:
|  U   Zope3/trunk/src/zdaemon/tests/testzdrun.py
|
| I then ported that to where it belonged (zdaemon isn't part of Zope3
| under SVN, it's stitched in to Zope3, from time to time, from the
| distinct zdaemon SVN trunk).
|
| I suppose that never got ported to the CVS version -- well, until
| today, cuz it looks like Stefan Holek checked in the same kinds of
| changes to testzdrun.py about 2.5 hours ago.
Right.  In fact, he beat me to the commit, and gave me a nice CVS
conflict as lagniappe.
| [BTW, the zdaemon tests don't run at all on Windows, so I'll never
| notice anything wrong with them]
|
|
|$ uname -a
|Linux secretariat 2.6.8.1-5-686 #1 Sat Feb 12 00:50:37 UTC 2005 i686 \
|GNU/Linux
|$ ../Python-2.4/python test.py -v zdaemon
|Running unit tests at level 1
|Running unit tests from
|/home/tseaver/projects/Zope-CVS/Zope-2.7.4/lib/python
|/home/tseaver/projects/Zope-CVS/Python-2.4/Lib/whrandom.py:38:
|DeprecationWarning: the whrandom module is deprecated; please use the
|random module
|~  DeprecationWarning)
|
|- --
|Ran 28 tests in 2.278s
|
|OK
|$ ../Python-2.4.1c1/python test.py -v zdaemon
|Running unit tests at level 1
|Running unit tests from
|/home/tseaver/projects/Zope-CVS/Zope-2.7.4/lib/python
|/home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/whrandom.py:38:
|DeprecationWarning: the whrandom module is deprecated; please use the
|random module
|~  DeprecationWarning)
|...Traceback (most recent call last):
|~  File test.py, line 918, in ?
|~process_args()
|~  File test.py, line 908, in process_args
|~bad = main(module_filter, test_filter, libdir)
|~  File test.py, line 698, in main
|~runner(files, test_filter, debug)
|~  File test.py, line 599, in runner
|~r = runner.run(suite)
|~  File test.py, line 366, in run
|~return unittest.TextTestRunner.run(self, test)
|~  File /home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py,
|line 696, in run
|~test(result)
|~  File /home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py,
|line 428, in __call__
|~return self.run(*args, **kwds)
|~  File /home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py,
|line 424, in run
|~test(result)
|~  File /home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py,
|line 428, in __call__
|~return self.run(*args, **kwds)
|~  File /home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py,
|line 424, in run
|~test(result)
|~  File /home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py,
|line 428, in __call__
|~return self.run(*args, **kwds)
|~  File /home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py,
|line 424, in run
|~test(result)
|~  File /home/tseaver/projects/Zope-CVS/Python-2.4.1c1/Lib/unittest.py,
|line 281, in __call__
|~return self.run(*args, **kwds)
|~  File
|/home/tseaver/projects/Zope-CVS/Zope-2.7.4/lib/python/zdaemon/tests/testzdrun.py,
|line 97, in run
|~zdctl.main([-s, self.zdsock] + args)
|AttributeError: 'ZDaemonTests' object has no attribute 'zdsock'
|
|By staring at the code of the failing test, it looks like the MRO of the
|testcase class has changed:  it declares a 'run' method, which is
|supposed to run the external process, which clashes with the 'run'
|method of unittest.TestCase.  I don't know what change in the 2.4 -
|2.4.1c1 update would have mucked with the MRO (if a MRO issue is
involved).
|
|Tres.
|
|
| Pretty baffling.  I assume that if you did cvs up, the test would
| pass now (because of Stefan's recent checkin).
|
| Sounds anyway like an unintended unittest incompatibility snuck in
| somewhere between 2.3 and 2.4.
I think somebody tweaked either the base classes of unittest.TestCase or
else the MRO algoritm (if it *is* algorithmic, that is ;)
Tres.
- --
===
Tres Seaver[EMAIL PROTECTED]
Zope Corporation  Zope Dealers   http://www.zope.com
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFCMLekGqWXf00rNCgRAofeAJ9nEbAMmklXhH3BpRzihinTVFuiiQCfZA2q

Re: [Python-Dev] SWT PyCon Sprint?

2005-03-10 Thread Phillip J. Eby
At 04:06 PM 3/10/05 -0500, Nicholas Bastin wrote:
On Mar 10, 2005, at 11:00 AM, Phillip J. Eby wrote:
At 01:38 AM 3/10/05 -0500, Nicholas Bastin wrote:
I realize that this is exceedingly late in the game, but is anybody 
interested in doing a Write-Python-Bindings-for-SWT sprint?  It's been 
brought up before in various places, and PyCon seems the likely place to 
get enough concentrated knowledge to actually get it kicked off and 
somewhat working...
I'm certainly interested in the concept in general, though I'm curious 
whether the planned approach is a GCJ/SWIG wrapper, or a javaclass 
(bytecode translation)+ctypes dynamic approach.  I'm somewhat more 
interested in the latter approach, as I find C++ a bit of a pain with 
respect to buildability.
I'm open to either approach.  I don't know a lot about JNI, so I was 
hoping somebody would come along for the ride who could answer certain 
questions about how SWT is implemented.
By design, SWT is pure Java with an as-thin-as-possible JNI wrapping of the 
native platform GUI.  It's akin to writing a pure Python GUI for Windows 
using ctypes or simple Pyrex wrappers to directly call Windows C APIs.

The important thing to be aware of here is that this means that you can't 
just take the SWT .dll's or .so's and put a Python binding on them, because 
all you'd end up with is a wrapper to the Windows or Mac or GTK API.

I'll repeat this, because it's a common source of confusion about SWT: the 
SWT implementation is *all* Java.  The native dynamic libraries for SWT are 
just the glue to be able to call platform API's, they do not contain *any* 
high-level code.  This is both good and bad.  It's good in that you don't 
have to worry about the JNI issue if you want to port SWT to another 
platform, you just have to have a way to call the platform's APIs.  It's 
bad in that you can't just put a new language binding on the native 
libraries and have an SWT port.


  A third option would be to grovel over SWT and implement an identical 
functionality in Python (pure-python plus ctypes), and make a mirror 
implementation, rather than a wrapper.
If you're going to do that, you might as well use javaclass to do the grunt 
work of the translation, and simply replace the native library with a 
ctypes-based module.


An additional complication is that SWT is a different package on each 
platform, so it's not so much port SWT to Python as port SWT-windows 
to Python, port SWT-Mac to Python, etc.
The API is identical for each platform, however, so depending on the level 
at which you wrapped it, this is only a build problem.
I'm just pointing out that the source code for each platform is 
different.  The native library for each platform is different.  The native 
libraries also expose different APIs on each platform, because they just 
expose that platform's native API.

So sure, there's probably some code that's similar or identical, but the 
whole point of SWT is that each one is a custom implementation for its 
platform, as distinct from approaches like AWT, Swing, wxWidgets, et al.


(I assume that you're talking about porting to a JVM-less CPython 
extension, since if you were to leave it in Java you could just use 
Jython or one of the binary Python-Java bridges to access SWT as-is.)
Yes, JVM-less CPython extension would be the plan.
Then here are the possible architectures, as I understand them:
Layer 1: Native Platform Interface
Option 1: Use the JNI libraries supplied with SWT (forces GCJ at layer 2)
Option 2: Create a Python wrapper for the corresponding APIs
  * Possibly semi-autogenerated from JNI metadata
  * ctypes, Pyrex, or C
Layer 2: SWT Java Implementations
Option 1: Compile with GCJ (requires JNI approach at layer 1)
Option 2: Translate Java bytecode to Python bytecode w/javaclass
Option 3: Translate Java bytecode to Pyrex or C (by modifying javaclass)
Option 4: Translate Java source to Python or Pyrex by hand (for *each* 
platform!)

Layer 3: Python wrapper (only needed for GCJ scenario)
Option 1: SWIG (needs a C++/SWIG guru)
Option 2: Boost::Python
Option 3: Plain C++
So as you can see, the choices are basically GCJ versus everything else, 
but the GCJ approach forces C++ into the mix and requires good knowledge of 
either C++ or SWIG, maybe both.  But it only needs to be done once, and 
should then be buildable on all platforms.  OTOH, if I had the necessary 
skills, I'd have probably already taken on the effort.  It would be cool if 
somebody created a SWIG wrapper generator that could pull the necessary 
info from Java class files to make a GCJ wrapper.  But as far as I know, 
everybody who's wrapped Java libraries for Python using GCJ wrote their 
wrappers by hand.

Anyway, this is now getting *way* off topic for Python-Dev, so if there 
aren't any other interested parties we should take this off-list.

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev

[Python-Dev] FWD: SD MAgazine.com - Jolt Awards Winners

2005-03-10 Thread Aahz
Guido may not be able to go.  Anyone else already going?

- Forwarded message from [EMAIL PROTECTED] -

 Subject: Request - SD MAgazine.com - Jolt Awards Winners 
 To: [EMAIL PROTECTED]
 From: [EMAIL PROTECTED]
 Date: Thu, 10 Mar 2005 16:02:35 -0800
 
 HI Python.org,
 
 You may or may not be aware that Python is a finalist in the 15th
 Annual Jolt Awards in the Languages and Development Category.The
 awards ceremony will take place at SD West, in the Santa Clara
 Convention Center, Auditorium, on March 16th from 6:30-7:30 p.m., when
 the winners will be announced.  Is there anyway that a representative
 of Python.org be present to accept the award if they should win?  I
 will have badges for these individuals at the registration desk to
 attend the awards ceremony.

 I understand the Guido van Rossum will be attending SD West. Is there
 anyway that he can be present?

 All finalists and conference alumni are invited to a poolside party
 with food, drinks and entertainment after the ceremony at the
 Westin, which is adjacent to the Conference Center. Hope to see you
 there. Dress should be business casual.

 Looking forward to hearing from you.

 Rosalyn
 (415) 947-6182
 
 
 =
 Rosalyn Lum
 Technical Editor
 Software Development Magazine
 CMP Media
 600 Harrison St., 6th Floor
 San Francisco, CA 94107
 www.sdmagazine.com

- End forwarded message -

-- 
Aahz ([EMAIL PROTECTED])   * http://www.pythoncraft.com/

The joy of coding Python should be in seeing short, concise, readable
classes that express a lot of action in a small amount of clear code -- 
not in reams of trivial code that bores the reader to death.  --GvR
___
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] Adding any() and all()

2005-03-10 Thread Guido van Rossum
See my blog: http://www.artima.com/forums/flat.jsp?forum=106thread=98196

Do we even need a PEP or is there a volunteer who'll add any() and all() for me?

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)
___
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] RELEASED Python 2.4.1, release candidate 1

2005-03-10 Thread Martin v. Löwis
Anthony Baxter wrote:
On behalf of the Python development team and the Python community, I'm
happy to announce the release of Python 2.4.1 (release candidate 1).
Python 2.4.1 is a bug-fix release. See the release notes at the website
(also available as Misc/NEWS in the source distribution) for details of
the bugs squished in this release.
I'd like to encourage feedback on whether the Windows installer works
for people. It replaces the VBScript part in the MSI package with native
code, which ought to drop the dependency on VBScript, but might
introduce new incompatibilities.
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] Adding any() and all()

2005-03-10 Thread Raymond Hettinger
 See my blog:
http://www.artima.com/forums/flat.jsp?forum=106thread=98196
 
 Do we even need a PEP or is there a volunteer who'll add any() and
all()
 for me?

I'll volunteer for this one.

Will leave it open for discussion for a bit so that folks can voice any
thoughts on the design.


Raymond Hettinger
___
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 any() and all()

2005-03-10 Thread Phillip J. Eby
At 06:38 PM 3/10/05 -0800, Bill Janssen wrote:
Guido,
I think there should be a PEP.  For instance, I think I'd want them to be:
def any(S):
  for x in S:
if x:
  return x
  return S[-1]
def all(S):
  for x in S:
if not x:
  return x
  return S[-1]
Or perhaps these should be called first and last.
More precisely (since S might be an iterator, or empty):
def any(S):
x = False
for x in S:
if x: break
return x
def all(S):
x = True
for x in S:
if not x: break
return x
However, first and last don't make sense to me as names.  First 
what?   Last what?  Actually, any and all don't make that much sense to 
me either.  I find myself wanting to call them or and and, or maybe 
or_iter and and_iter.  Or perhaps until_false or until_true.  Nah, 
the and/or names make more sense, as they exactly match the behavior of the 
corresponding logical operators, if you could call them as a function.  At 
least, if they took *args anyway.

___
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 any() and all()

2005-03-10 Thread Raymond Hettinger
[Bill Janssen]
 I think I'd want them to be:
 
 def any(S):
   for x in S:
 if x:
   return x
   return S[-1]
 
 def all(S):
   for x in S:
 if not x:
   return x
   return S[-1]
 
 Or perhaps these should be called first and last.

-1

Over time, I've gotten feedback about these and other itertools recipes.
No one has objected to the True/False return values in those recipes or
in Guido's version.  

Guido's version matches the normal expectation of any/all being a
predicate.  Also, it avoids the kind of errors/confusion that people
currently experience with Python's unique implementation of and and
or.

Returning the last element is not evil; it's just weird, unexpected, and
non-obvious.  Resist the urge to get tricky with this one.  


Raymond Hettinger
___
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] Re: Can't build Zope on Windows w/ 2.4.1c1

2005-03-10 Thread Anthony Baxter
On Friday 11 March 2005 08:09, Tres Seaver wrote:
 |By staring at the code of the failing test, it looks like the MRO of the
 |testcase class has changed:  it declares a 'run' method, which is
 |supposed to run the external process, which clashes with the 'run'
 |method of unittest.TestCase.  I don't know what change in the 2.4 -
 |2.4.1c1 update would have mucked with the MRO (if a MRO issue is
 |involved).

Looking in Misc/NEWS, I suspect that this fix is responsible.

- unittest.TestCase.run() and unittest.TestSuite.run() can now be successfully
  extended or overridden by subclasses.  Formerly, the subclassed method would
  be ignored by the rest of the module.  (Bug #1078905).


-- 
Anthony Baxter [EMAIL PROTECTED]
It's never too late to have a happy childhood.
___
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] branch release24-maint is unfrozen, 2.4.1rc2?

2005-03-10 Thread Anthony Baxter
Ok, the branch is unfrozen. At the current point in time, I think
we're going to need an rc2.

Anthony
-- 
Anthony Baxter [EMAIL PROTECTED]
It's never too late to have a happy childhood.
___
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 any() and all()

2005-03-10 Thread Bill Janssen
 Over time, I've gotten feedback about these and other itertools recipes.
 No one has objected to the True/False return values in those recipes or
 in Guido's version.  
 
 Guido's version matches the normal expectation of any/all being a
 predicate.  Also, it avoids the kind of errors/confusion that people
 currently experience with Python's unique implementation of and and
 or.
 
 Returning the last element is not evil; it's just weird, unexpected, and
 non-obvious.  Resist the urge to get tricky with this one.  

Fine, but then let's keep reduce(), which has this nice property.

Bill
___
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 any() and all()

2005-03-10 Thread Jack Diederich
On Thu, Mar 10, 2005 at 10:22:45PM -0500, Raymond Hettinger wrote:
 [Bill Janssen]
  I think I'd want them to be:
  
  def any(S):
for x in S:
  if x:
return x
return S[-1]
  
  def all(S):
for x in S:
  if not x:
return x
return S[-1]
  
  Or perhaps these should be called first and last.
 
 -1
 
 Over time, I've gotten feedback about these and other itertools recipes.
 No one has objected to the True/False return values in those recipes or
 in Guido's version.  
 
 Guido's version matches the normal expectation of any/all being a
 predicate.  Also, it avoids the kind of errors/confusion that people
 currently experience with Python's unique implementation of and and
 or.
 
 Returning the last element is not evil; it's just weird, unexpected, and
 non-obvious.  Resist the urge to get tricky with this one.  

Perl returns the last true/false value as well, and it is a subtle trap.
I worked at a perl shop that had a long style guide which outlawed using
that side effect but people did anyway.  I'm +1 on having it return a
true boolean for the same reason if (x = calc_foo()): isn't supported,
if there is a quirky side effect available someone will use it and someone
else won't notice.
[in fact we had a guy who was downsized for doing things like calling
database queries on the return value of a function that was documented
as returning True/False]

Perl shops require long style guides becuase perl is, ummm, perl. Python
is a boon because YAGN (a style guide).  The fewer side effects the better.

-Jack
___
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] Urllib code or the docs appear wrong

2005-03-10 Thread Skip Montanaro
 It seems to me that either urllib's docs are wrong or its code is
 wrong w.r.t. how the User-agent header is handled.

Guido I propose fixing the docs...

Done (also backported to 2.4 branch).

Skip
___
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: No new features (was Re: [Python-Dev] Re: [Python-checkins] python/dist/src/Modules ossaudiodev.c, 1.35, 1.36)

2005-03-10 Thread Skip Montanaro

Anthony Initially, I was inclined to be much less anal about the
Anthony no-new-features thing. But since doing it, I've had a quite
Anthony large number of people tell me how much they appreciate this
Anthony approach - vendors, large companies with huge installed bases
Anthony of Python, and also from people releasing software written in
Anthony Python.

Same here.  People are amazed at work when I tell them I can just install a
micro release without any breakage.

Anthony I should also add that the above is really just policy as it's
Anthony evolved - if people want to discuss this (am I being too
Anthony strict?) I'm happy to talk about it.

Current policy gets a big +1 from me.

Skip
___
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] rationale for the no-new-features approach

2005-03-10 Thread Skip Montanaro

Anthony Goal 4: Try and prevent something like
Anthony try:
Anthony   True, False
Anthony except NameError:
Anthony   True, False = 1, 0
Anthony from ever ever happening again. 

I will point out that in the transition from 2.3 to 2.4 our code that uses
sets has

try:
x = set
except NameError:
from sets import Set as set
else:
del x

Rather ugly.  I suppose I could just put the necessary incantation in
sitecustomize to dump the set name in builtins, but it would be kinda nice
if this sort of thing could be avoided in the future.

Skip
___
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] RELEASED Python 2.4.1, release candidate 1

2005-03-10 Thread Tim Peters
[Martin v. Löwis]
 I'd like to encourage feedback on whether the Windows installer works
 for people. It replaces the VBScript part in the MSI package with native
 code, which ought to drop the dependency on VBScript, but might
 introduce new incompatibilities.

Worked fine here.  Did an all-default all users install, WinXP Pro
SP2, from local disk, and under an account with Admin rights.  I
uninstalled 2.4 first.  I suppose that's the least stressful set of
choices I could possibly have made, but at least it confirms a happy
baseline.
___
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] rationale for the no-new-features approach

2005-03-10 Thread Bob Ippolito
On Mar 9, 2005, at 8:03 AM, Skip Montanaro wrote:
Anthony Goal 4: Try and prevent something like
Anthony try:
Anthony   True, False
Anthony except NameError:
Anthony   True, False = 1, 0
Anthony from ever ever happening again.
I will point out that in the transition from 2.3 to 2.4 our code that 
uses
sets has

try:
x = set
except NameError:
from sets import Set as set
else:
del x
Rather ugly.  I suppose I could just put the necessary incantation in
sitecustomize to dump the set name in builtins, but it would be kinda 
nice
if this sort of thing could be avoided in the future.
try:
set
except NameError:
from sets import Set as set
You don't need the rest.
-bob
___
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 any() and all()

2005-03-10 Thread Aahz
On Thu, Mar 10, 2005, Bill Janssen wrote:
Raymond Hettinger:

 Over time, I've gotten feedback about these and other itertools recipes.
 No one has objected to the True/False return values in those recipes or
 in Guido's version.  
 
 Guido's version matches the normal expectation of any/all being a
 predicate.  Also, it avoids the kind of errors/confusion that people
 currently experience with Python's unique implementation of and and
 or.
 
 Returning the last element is not evil; it's just weird, unexpected, and
 non-obvious.  Resist the urge to get tricky with this one.  

+1

 Fine, but then let's keep reduce(), which has this nice property.

-1
-- 
Aahz ([EMAIL PROTECTED])   * http://www.pythoncraft.com/

The joy of coding Python should be in seeing short, concise, readable
classes that express a lot of action in a small amount of clear code -- 
not in reams of trivial code that bores the reader to death.  --GvR
___
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] RELEASED Python 2.4.1, release candidate 1

2005-03-10 Thread Tony Meyer
[Martin v. Löwis]
 I'd like to encourage feedback on whether the Windows 
 installer works for people. It replaces the VBScript part in the
 MSI package with native code, which ought to drop the dependency on 
 VBScript, but might introduce new incompatibilities.

[Tim Peters]
 Worked fine here.  Did an all-default all users install, 
 WinXP Pro SP2, from local disk, and under an account with 
 Admin rights.  I uninstalled 2.4 first.  I suppose that's the 
 least stressful set of choices I could possibly have made, 
 but at least it confirms a happy baseline. 

Also works fine for me with:

 * WinXP Pro SP2, from local disk, with admin rights, all defaults, over the
top of 2.4.0
 
 * Win2k SP4, from network disk, without admin rights, all defaults, with no
previous 2.4

 * Win2k SP4 (different machine), from local disk, with admin rights,
defaults apart from skipped test suite, over the top of 2.4.0

=Tony.Meyer

___
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