Guido van Rossum wrote: > Cool, I can live with that. Are all current __future__ statements > still valid in 3.0?
I believe so, yes. But I'll double check. > > 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 >> >> >> > >> > >> > >> >> > > > _______________________________________________ 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