[Pyrex] Proposed change to behaviour of "not None"

Kirill Smelkov kirr at mns.spb.ru
Fri Aug 22 09:47:36 CEST 2008


В сообщении от Четверг 21 августа 2008 Greg Ewing написал(a):
> Lisandro Dalcin wrote:
> 
> > I know, I can (and I do) use 'Type arg is not
> > None' in argument lists, but I never liked it.
> 
> Speaking of that, I've been thinking for a while now
> about making "not None" the default, and requiring
> "or None" to specify that None is an acceptable
> parameter value.
> 
> Having seen a number of pieces of Pyrex code that
> were susceptible to being crashed because "not None"
> wasn't used where it should have been, I think
> this would be a safer default. The change may
> break some existing code, though.
> 
> What do people think?

I'm +1 for having "not None" the default.

I was always wondering why was it the vice versa when I was stydying Pyrex --
for internal functions this was creating additional overhead and additional
inconvenience, and I'd better put "or None" explicitely where it makes sence
-- for high-level functions who interface with Python level.


Bearing backward compatibility in mind, maybe let's create a compile option to
switch this behaviour? And we'll remove old behaviour step-by-step:

o first declare there is new "not None" by default with explicit switch, saying
  it will be the default in the next release.
o then make default "not None" default and allow users to switch back with
  cython/pyrex option, but say this old behaviour will be removed in the next
  release
o remove old behaviour in the next release.

Sounds reasonable?

Thanks,
Kirill.



More information about the Pyrex mailing list