Cool, I can live with that. Are all current __future__ statements still valid in 3.0?
On Thu, Mar 20, 2008 at 5:55 PM, Eric Smith <[EMAIL PROTECTED]> wrote: > Guido van Rossum wrote: > > Really? I though 2to3 was supposed to remove all __future__ imports? > > I was convinced when Christian pointed out the statement in > http://docs.python.org/lib/module-future.html: > "No feature description will ever be deleted from __future__." > > Admittedly, I implemented more than the minimum required for that, but > since the other future statements (absolute_import, with_statement, > etc.) were in py3k, I figured it would make sense to have print_function > behave the same way. Then, if we want to remove all __future__ imports > from py3k, it's more obvious (to me, anyway) how to extract them all. > > > > > > > On Thu, Mar 20, 2008 at 4:02 PM, eric.smith > > <[EMAIL PROTECTED]> wrote: > >> Author: eric.smith > >> Date: Fri Mar 21 00:02:08 2008 > >> New Revision: 61682 > >> > >> Modified: > >> python/branches/py3k/Include/code.h > >> python/branches/py3k/Include/compile.h > >> python/branches/py3k/Lib/__future__.py > >> python/branches/py3k/Lib/test/test_print.py > >> python/branches/py3k/Python/future.c > >> Log: > >> Add __future__ import for print_function. It's a no-op in 3.0, but it > needs to not be a syntax error. > >> Closes issue 2436. > >> > >> Modified: python/branches/py3k/Include/code.h > >> > ============================================================================== > >> --- python/branches/py3k/Include/code.h (original) > >> +++ python/branches/py3k/Include/code.h Fri Mar 21 00:02:08 2008 > >> @@ -48,6 +48,7 @@ > >> #define CO_FUTURE_DIVISION 0x2000 > >> #define CO_FUTURE_ABSOLUTE_IMPORT 0x4000 /* do absolute imports by > default */ > >> #define CO_FUTURE_WITH_STATEMENT 0x8000 > >> +#define CO_FUTURE_PRINT_FUNCTION 0x10000 > >> #endif > >> > >> /* This should be defined if a future statement modifies the syntax. > >> > >> Modified: python/branches/py3k/Include/compile.h > >> > ============================================================================== > >> --- python/branches/py3k/Include/compile.h (original) > >> +++ python/branches/py3k/Include/compile.h Fri Mar 21 00:02:08 2008 > >> @@ -24,6 +24,7 @@ > >> #define FUTURE_DIVISION "division" > >> #define FUTURE_ABSOLUTE_IMPORT "absolute_import" > >> #define FUTURE_WITH_STATEMENT "with_statement" > >> +#define FUTURE_PRINT_FUNCTION "print_function" > >> > >> struct _mod; /* Declare the existence of this type */ > >> PyAPI_FUNC(PyCodeObject *) PyAST_Compile(struct _mod *, const char *, > >> > >> Modified: python/branches/py3k/Lib/__future__.py > >> > ============================================================================== > >> --- python/branches/py3k/Lib/__future__.py (original) > >> +++ python/branches/py3k/Lib/__future__.py Fri Mar 21 00:02:08 2008 > >> @@ -53,6 +53,7 @@ > >> "division", > >> "absolute_import", > >> "with_statement", > >> + "print_function", > >> ] > >> > >> __all__ = ["all_feature_names"] + all_feature_names > >> @@ -66,6 +67,7 @@ > >> CO_FUTURE_DIVISION = 0x2000 # division > >> CO_FUTURE_ABSOLUTE_IMPORT = 0x4000 # perform absolute imports by default > >> CO_FUTURE_WITH_STATEMENT = 0x8000 # with statement > >> +CO_FUTURE_PRINT_FUNCTION = 0x10000 # print function > >> > >> class _Feature: > >> def __init__(self, optionalRelease, mandatoryRelease, compiler_flag): > >> @@ -114,3 +116,7 @@ > >> with_statement = _Feature((2, 5, 0, "alpha", 1), > >> (2, 6, 0, "alpha", 0), > >> CO_FUTURE_WITH_STATEMENT) > >> + > >> +print_function = _Feature((2, 6, 0, "alpha", 2), > >> + (3, 0, 0, "alpha", 0), > >> + CO_FUTURE_PRINT_FUNCTION) > >> > >> Modified: python/branches/py3k/Lib/test/test_print.py > >> > ============================================================================== > >> --- python/branches/py3k/Lib/test/test_print.py (original) > >> +++ python/branches/py3k/Lib/test/test_print.py Fri Mar 21 00:02:08 2008 > >> @@ -1,6 +1,8 @@ > >> """Test correct operation of the print function. > >> """ > >> > >> +from __future__ import print_function > >> + > >> import unittest > >> from test import test_support > >> > >> @@ -98,6 +100,11 @@ > >> x('*\n', (ClassWith__str__('*'),)) > >> x('abc 1\n', (ClassWith__str__('abc'), 1)) > >> > >> +# # 2.x unicode tests > >> +# x(u'1 2\n', ('1', u'2')) > >> +# x(u'u\1234\n', (u'u\1234',)) > >> +# x(u' abc 1\n', (' ', ClassWith__str__(u'abc'), 1)) > >> + > >> # errors > >> self.assertRaises(TypeError, print, '', sep=3) > >> self.assertRaises(TypeError, print, '', end=3) > >> > >> Modified: python/branches/py3k/Python/future.c > >> > ============================================================================== > >> --- python/branches/py3k/Python/future.c (original) > >> +++ python/branches/py3k/Python/future.c Fri Mar 21 00:02:08 2008 > >> @@ -33,6 +33,8 @@ > >> continue; > >> } else if (strcmp(feature, FUTURE_WITH_STATEMENT) == 0) { > >> continue; > >> + } else if (strcmp(feature, FUTURE_PRINT_FUNCTION) == 0) { > >> + continue; > >> } else if (strcmp(feature, "braces") == 0) { > >> PyErr_SetString(PyExc_SyntaxError, > >> "not a chance"); > >> _______________________________________________ > >> Python-3000-checkins mailing list > >> [EMAIL PROTECTED] > >> http://mail.python.org/mailman/listinfo/python-3000-checkins > >> > > > > > > > > -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com