Added PEP 294, Type Names in the types Module, Oren Tirosh
This commit is contained in:
parent
a5c763ede9
commit
f5e3e7bad4
|
@ -97,6 +97,7 @@ Index by Category
|
||||||
I 291 Backward Compatibility for Standard Library Norwitz
|
I 291 Backward Compatibility for Standard Library Norwitz
|
||||||
S 292 Simpler String Substitutions Warsaw
|
S 292 Simpler String Substitutions Warsaw
|
||||||
S 293 Codec Error Handling Callbacks Dörwald
|
S 293 Codec Error Handling Callbacks Dörwald
|
||||||
|
S 294 Type Names in the types Module Tirosh
|
||||||
|
|
||||||
Finished PEPs (done, implemented in CVS)
|
Finished PEPs (done, implemented in CVS)
|
||||||
|
|
||||||
|
@ -275,6 +276,7 @@ Numerical Index
|
||||||
I 291 Backward Compatibility for Standard Library Norwitz
|
I 291 Backward Compatibility for Standard Library Norwitz
|
||||||
S 292 Simpler String Substitutions Warsaw
|
S 292 Simpler String Substitutions Warsaw
|
||||||
S 293 Codec Error Handling Callbacks Dörwald
|
S 293 Codec Error Handling Callbacks Dörwald
|
||||||
|
S 294 Type Names in the types Module Tirosh
|
||||||
SR 666 Reject Foolish Indentation Creighton
|
SR 666 Reject Foolish Indentation Creighton
|
||||||
|
|
||||||
|
|
||||||
|
@ -335,6 +337,7 @@ Owners
|
||||||
Schemenauer, Neil nas@arctrix.com
|
Schemenauer, Neil nas@arctrix.com
|
||||||
Schneider-Kamp, Peter nowonder@nowonder.de
|
Schneider-Kamp, Peter nowonder@nowonder.de
|
||||||
Stein, Greg gstein@lyra.org
|
Stein, Greg gstein@lyra.org
|
||||||
|
Tirosh, Oren oren at hishome.net
|
||||||
Warsaw, Barry barry@zope.com
|
Warsaw, Barry barry@zope.com
|
||||||
Wilson, Greg gvwilson@ddj.com
|
Wilson, Greg gvwilson@ddj.com
|
||||||
Wouters, Thomas thomas@xs4all.net
|
Wouters, Thomas thomas@xs4all.net
|
||||||
|
|
|
@ -0,0 +1,90 @@
|
||||||
|
PEP: 294
|
||||||
|
Title: Type Names in the types Module
|
||||||
|
Version: $Revision$
|
||||||
|
Last-Modified: $Date$
|
||||||
|
Author: oren at hishome.net (Oren Tirosh)
|
||||||
|
Status: Draft
|
||||||
|
Type: Standards track
|
||||||
|
Created: 19-Jun-2002
|
||||||
|
Python-Version: 2.3
|
||||||
|
Post-History:
|
||||||
|
|
||||||
|
|
||||||
|
Abstract
|
||||||
|
|
||||||
|
This PEP proposes that symbols matching the type name should be
|
||||||
|
added to the types module for all basic Python types in the types
|
||||||
|
module:
|
||||||
|
|
||||||
|
types.IntegerType -> types.int
|
||||||
|
types.FunctionType -> types.function
|
||||||
|
types.TracebackType -> types.traceback
|
||||||
|
...
|
||||||
|
|
||||||
|
The long capitalized names currently in the types module will be
|
||||||
|
deprecated.
|
||||||
|
|
||||||
|
With this change the types module can serve as a replacement for
|
||||||
|
the new module. The new module shall be deprecated and listed in
|
||||||
|
PEP 4.
|
||||||
|
|
||||||
|
|
||||||
|
Rationale
|
||||||
|
|
||||||
|
Using two sets of names for the same objects is redundant and
|
||||||
|
confusing.
|
||||||
|
|
||||||
|
In Python versions prior to 2.2 the symbols matching many type
|
||||||
|
names were taken by the factory functions for those types. Now
|
||||||
|
all basic types have been unified with their factory functions and
|
||||||
|
therefore the type names are available to be consistently used to
|
||||||
|
refer to the type object.
|
||||||
|
|
||||||
|
Most types are accessible as either builtins or in the new module
|
||||||
|
but some types such as traceback and generator are only accssible
|
||||||
|
through the types module under names which do not match the type
|
||||||
|
name. This PEP provides a uniform way to access all basic types
|
||||||
|
under a single set of names.
|
||||||
|
|
||||||
|
|
||||||
|
Specification
|
||||||
|
|
||||||
|
The types module shall pass the following test:
|
||||||
|
|
||||||
|
import types
|
||||||
|
for t in vars(types).values():
|
||||||
|
if type(t) is type:
|
||||||
|
assert getattr(types, t.__name__) is t
|
||||||
|
|
||||||
|
The types 'class', 'instance method' and 'dict-proxy' have already
|
||||||
|
been renamed to the valid Python identifiers 'classobj',
|
||||||
|
'instancemethod' and 'dictproxy', making this possible.
|
||||||
|
|
||||||
|
|
||||||
|
Backward compatibility
|
||||||
|
|
||||||
|
Because of their widespread use it is not planned to actually
|
||||||
|
remove the long names from the types module in some future
|
||||||
|
version. However, the long names should be changed in
|
||||||
|
documentation and library sources to discourage their use in new
|
||||||
|
code.
|
||||||
|
|
||||||
|
|
||||||
|
Reference Implementation
|
||||||
|
|
||||||
|
A reference implementation is available in SourceForge patch
|
||||||
|
#569328: http://www.python.org/sf/569328
|
||||||
|
|
||||||
|
|
||||||
|
Copyright
|
||||||
|
|
||||||
|
This document has been placed in the public domain.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Local Variables:
|
||||||
|
mode: indented-text
|
||||||
|
indent-tabs-mode: nil
|
||||||
|
sentence-end-double-space: t
|
||||||
|
fill-column: 70
|
||||||
|
End:
|
Loading…
Reference in New Issue