From f5e3e7bad452dd9a39ba1e91532c16f44b1029c3 Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Sun, 23 Jun 2002 23:52:19 +0000 Subject: [PATCH] Added PEP 294, Type Names in the types Module, Oren Tirosh --- pep-0000.txt | 3 ++ pep-0294.txt | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 pep-0294.txt diff --git a/pep-0000.txt b/pep-0000.txt index bbac2f320..b610a14d1 100644 --- a/pep-0000.txt +++ b/pep-0000.txt @@ -97,6 +97,7 @@ Index by Category I 291 Backward Compatibility for Standard Library Norwitz S 292 Simpler String Substitutions Warsaw S 293 Codec Error Handling Callbacks Dörwald + S 294 Type Names in the types Module Tirosh Finished PEPs (done, implemented in CVS) @@ -275,6 +276,7 @@ Numerical Index I 291 Backward Compatibility for Standard Library Norwitz S 292 Simpler String Substitutions Warsaw S 293 Codec Error Handling Callbacks Dörwald + S 294 Type Names in the types Module Tirosh SR 666 Reject Foolish Indentation Creighton @@ -335,6 +337,7 @@ Owners Schemenauer, Neil nas@arctrix.com Schneider-Kamp, Peter nowonder@nowonder.de Stein, Greg gstein@lyra.org + Tirosh, Oren oren at hishome.net Warsaw, Barry barry@zope.com Wilson, Greg gvwilson@ddj.com Wouters, Thomas thomas@xs4all.net diff --git a/pep-0294.txt b/pep-0294.txt new file mode 100644 index 000000000..7786f3b17 --- /dev/null +++ b/pep-0294.txt @@ -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: