Commit Graph

54 Commits

Author SHA1 Message Date
Guido van Rossum
1c917072ca Very subtle syntax change: in a list comprehension, the testlist in
"for <var> in <testlist> may no longer be a single test followed by
a comma.  This solves SF bug #431886.  Note that if the testlist
contains more than one test, a trailing comma is still allowed, for
maximum backward compatibility; but this example is not:

    [(x, y) for x in range(10), for y in range(10)]
                              ^

The fix involved creating a new nonterminal 'testlist_safe' whose
definition doesn't allow the trailing comma if there's only one test:

    testlist_safe: test [(',' test)+ [',']]
2001-10-15 15:44:05 +00:00
Guido van Rossum
4668b000a1 Implement PEP 238 in its (almost) full glory.
This introduces:

- A new operator // that means floor division (the kind of division
  where 1/2 is 0).

- The "future division" statement ("from __future__ import division)
  which changes the meaning of the / operator to implement "true
  division" (where 1/2 is 0.5).

- New overloadable operators __truediv__ and __floordiv__.

- New slots in the PyNumberMethods struct for true and floor division,
  new abstract APIs for them, new opcodes, and so on.

I emphasize that without the future division statement, the semantics
of / will remain unchanged until Python 3.0.

Not yet implemented are warnings (default off) when / is used with int
or long arguments.

This has been on display since 7/31 as SF patch #443474.

Flames to /dev/null.
2001-08-08 05:00:18 +00:00
Tim Peters
5ca576ed0a Merging the gen-branch into the main line, at Guido's direction. Yay!
Bugfix candidate in inspect.py:  it was referencing "self" outside of
a method.
2001-06-18 22:08:13 +00:00
Jeremy Hylton
bb40dc4892 remove commented-out vestiges of access statement 2001-02-27 18:36:14 +00:00
Neil Schemenauer
693291ba23 Superseded by $(srcdir)/Makefile.pre.in. 2001-02-03 17:18:21 +00:00
Fred Drake
0cdfc92a19 Fix typo: config.stat --> config.status 2000-09-28 20:53:39 +00:00
Thomas Wouters
434d0828d8 Support for three-token characters (**=, >>=, <<=) which was written by
Michael Hudson, and support in general for the augmented assignment syntax.
The graminit.c patch is large!
2000-08-24 20:11:32 +00:00
Fred Drake
abca14d8e2 Added note stating that the parser module will need updating for most
changes to this file.
2000-08-23 15:45:28 +00:00
Skip Montanaro
46dfa5f4ed require list comprehensions to start with a for clause 2000-08-22 02:43:07 +00:00
Barry Warsaw
0360663e8e PEP 214, Extended print Statement, has been accepted by the BDFL.
This change modifies Python's grammar to include the extended print
form.
2000-08-21 15:34:33 +00:00
Thomas Wouters
9b18adcd16 Ignore Grammar/Makefile now that it's a made Makefile. 2000-08-21 12:25:17 +00:00
Thomas Wouters
5215225ea1 Apply SF patch #101135, adding 'import module as m' and 'from module import
name as n'. By doing some twists and turns, "as" is not a reserved word.

There is a slight change in semantics for 'from module import name' (it will
now honour the 'global' keyword) but only in cases that are explicitly
undocumented.
2000-08-17 22:55:00 +00:00
Sjoerd Mullender
59bb0800df Fix up problems when compiling in a directory other than the source
directory.
2000-08-17 11:38:18 +00:00
Trent Mick
9f6e6c63ef add dummy 'add2lib' target to Grammar/Makefile so non-GNU makes don't bail out
This closes patch:
http://sourceforge.net/patch/index.php?func=detailpatch&patch_id=101176&group_id=5470
2000-08-16 19:02:06 +00:00
Skip Montanaro
803d6e5451 list comprehensions. see
http://sourceforge.net/patch/?func=detailpatch&patch_id=100654&group_id=5470

for details.
2000-08-12 18:09:51 +00:00
Skip Montanaro
c9bac09083 added .cvsignore so cvs doesn't complain about the generated graminit.h and
graminit.c files.
2000-07-27 20:31:12 +00:00
Jeremy Hylton
7690151c7e slightly modified version of Greg Ewing's extended call syntax patch
executive summary:
Instead of typing 'apply(f, args, kwargs)' you can type 'f(*arg, **kwargs)'.
Some file-by-file details follow.

Grammar/Grammar:
    simplify varargslist, replacing '*' '*' with '**'
    add * & ** options to arglist

Include/opcode.h & Lib/dis.py:
    define three new opcodes
        CALL_FUNCTION_VAR
        CALL_FUNCTION_KW
        CALL_FUNCTION_VAR_KW

Python/ceval.c:
    extend TypeError "keyword parameter redefined" message to include
        the name of the offending keyword
    reindent CALL_FUNCTION using four spaces
    add handling of sequences and dictionaries using extend calls
    fix function import_from to use PyErr_Format
2000-03-28 23:49:17 +00:00
Guido van Rossum
d295f120ae Make first raise argument optional 1998-04-09 21:39:57 +00:00
Guido van Rossum
03a7466b8f OK, ready to make 'assert' a keyword (instead of '__assert__'). 1997-04-16 00:34:46 +00:00
Guido van Rossum
556440d278 Added __assert__ statement (later to be renamed) 1997-04-02 05:22:18 +00:00
Guido van Rossum
0dfcf753ad Disable support for access statement 1996-08-12 22:00:53 +00:00
Guido van Rossum
14f44516a4 Changes for stride in slices (x[a:b:c]) and ellipses (x[a,...,z]) 1996-07-30 16:43:44 +00:00
Guido van Rossum
0bfd6c33fa Added power (**) operator 1996-01-12 01:00:58 +00:00
Guido van Rossum
a996b910f2 new grammar for 3rd raise arg and keyword parameters 1995-07-07 22:26:23 +00:00
Guido van Rossum
4a1da26891 changed import to support NAME.NAME...NAME 1995-01-07 10:25:36 +00:00