* Update keywords/builtins in python.el to Python v2.7 (patch included)
@ 2010-07-05 20:30 Christoph
2010-07-05 22:50 ` Glenn Morris
0 siblings, 1 reply; 8+ messages in thread
From: Christoph @ 2010-07-05 20:30 UTC (permalink / raw)
To: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 446 bytes --]
Hi,
Python v2.7 was released yesterday.
I saw that python.el was out of date in regards to fontifying of
keywords and builtins referencing v2.5.1.
The attached patch will bring python.el up to date with the latest
release of 2.7.
Note, that I not only updated the builtins but also checked for any
other keywords that might have been added (there were none) and updated
the referenced version accordingly, for example in l.96.
Christoph
[-- Attachment #2: python_keywords_builtins_v2_7.txt --]
[-- Type: text/plain, Size: 5167 bytes --]
=== modified file 'lisp/progmodes/python.el'
--- lisp/progmodes/python.el 2010-02-27 00:19:50 +0000
+++ lisp/progmodes/python.el 2010-07-05 20:13:59 +0000
@@ -93,7 +93,7 @@
(defvar python-font-lock-keywords
`(,(rx symbol-start
- ;; From v 2.5 reference, § keywords.
+ ;; From v 2.7 reference, § keywords.
;; def and class dealt with separately below
(or "and" "as" "assert" "break" "continue" "del" "elif" "else"
"except" "exec" "finally" "for" "from" "global" "if"
@@ -102,7 +102,7 @@
;; Not real keywords, but close enough to be fontified as such
"self" "True" "False")
symbol-end)
- (,(rx symbol-start "None" symbol-end) ; see § Keywords in 2.5 manual
+ (,(rx symbol-start "None" symbol-end) ; see § Keywords in 2.7 manual
. font-lock-constant-face)
;; Definitions
(,(rx symbol-start (group "class") (1+ space) (group (1+ (or word ?_))))
@@ -117,47 +117,47 @@
(0+ "." (1+ (or word ?_)))))
(1 font-lock-type-face))
;; Built-ins. (The next three blocks are from
- ;; `__builtin__.__dict__.keys()' in Python 2.5.1.) These patterns
+ ;; `__builtin__.__dict__.keys()' in Python 2.7) These patterns
;; are debateable, but they at least help to spot possible
;; shadowing of builtins.
(,(rx symbol-start (or
;; exceptions
- "ArithmeticError" "AssertionError" "AttributeError"
- "BaseException" "DeprecationWarning" "EOFError"
- "EnvironmentError" "Exception" "FloatingPointError"
- "FutureWarning" "GeneratorExit" "IOError" "ImportError"
- "ImportWarning" "IndentationError" "IndexError" "KeyError"
- "KeyboardInterrupt" "LookupError" "MemoryError" "NameError"
- "NotImplemented" "NotImplementedError" "OSError"
- "OverflowError" "PendingDeprecationWarning" "ReferenceError"
- "RuntimeError" "RuntimeWarning" "StandardError"
- "StopIteration" "SyntaxError" "SyntaxWarning" "SystemError"
- "SystemExit" "TabError" "TypeError" "UnboundLocalError"
- "UnicodeDecodeError" "UnicodeEncodeError" "UnicodeError"
- "UnicodeTranslateError" "UnicodeWarning" "UserWarning"
- "ValueError" "Warning" "ZeroDivisionError") symbol-end)
+ "ArithmeticError" "AssertionError" "AttributeError"
+ "BaseException" "BufferError" "BytesWarning"
+ "DeprecationWarning" "EOFError" "EnvironmentError"
+ "Exception" "FloatingPointError" "FutureWarning"
+ "GeneratorExit" "IOError" "ImportError"
+ "ImportWarning" "IndentationError" "IndexError"
+ "KeyError" "KeyboardInterrupt" "LookupError"
+ "MemoryError" "NameError" "NotImplemented"
+ "NotImplementedError" "OSError" "OverflowError"
+ "PendingDeprecationWarning" "ReferenceError"
+ "RuntimeError" "RuntimeWarning" "StandardError"
+ "StopIteration" "SyntaxError" "SyntaxWarning"
+ "SystemError" "SystemExit" "TabError"
+ "TypeError" "UnboundLocalError" "UnicodeDecodeError"
+ "UnicodeEncodeError" "UnicodeError" "UnicodeTranslateError"
+ "UnicodeWarning" "UserWarning" "ValueError"
+ "Warning" "WindowsError" "ZeroDivisionError") symbol-end)
. font-lock-type-face)
(,(rx (or line-start (not (any ". \t"))) (* (any " \t")) symbol-start
(group (or
;; callable built-ins, fontified when not appearing as
;; object attributes
- "abs" "all" "any" "apply" "basestring" "bool" "buffer" "callable"
- "chr" "classmethod" "cmp" "coerce" "compile" "complex"
- "copyright" "credits" "delattr" "dict" "dir" "divmod"
- "enumerate" "eval" "execfile" "exit" "file" "filter" "float"
- "frozenset" "getattr" "globals" "hasattr" "hash" "help"
- "hex" "id" "input" "int" "intern" "isinstance" "issubclass"
- "iter" "len" "license" "list" "locals" "long" "map" "max"
- "min" "object" "oct" "open" "ord" "pow" "property" "quit"
- "range" "raw_input" "reduce" "reload" "repr" "reversed"
- "round" "set" "setattr" "slice" "sorted" "staticmethod"
- "str" "sum" "super" "tuple" "type" "unichr" "unicode" "vars"
- "xrange" "zip")) symbol-end)
+ "abs" "all" "any" "apply" "basestring" "bin" "bool" "buffer"
+ "bytearray" "bytes" "callable" "chr" "classmethod" "cmp"
+ "coerce" "compile" "complex" "copyright" "credits" "delattr"
+ "dict" "dir" "divmod" "enumerate" "eval" "execfile" "exit"
+ "file" "filter" "float" "format" "frozenset" "getattr" "globals"
+ "hasattr" "hash" "help" "hex" "id" "input" "int" "intern"
+ "isinstance" "issubclass" "iter" "len" "license" "list" "locals"
+ "long" "map" "max" "memoryview" "min" "next" "object" "oct"
+ "open" "ord" "pow" "print" "property" "quit" "range" "raw_input"
+ "reduce" "reload" "repr" "reversed" "round" "set" "setattr"
+ "slice" "sorted" "staticmethod" "str" "sum" "super" "tuple"
+ "type" "unichr" "unicode" "vars" "xrange" "zip")) symbol-end)
(1 font-lock-builtin-face))
(,(rx symbol-start (or
;; other built-ins
"True" "False" "None" "Ellipsis"
- "_" "__debug__" "__doc__" "__import__" "__name__") symbol-end)
+ "_" "__debug__" "__doc__" "__import__" "__name__" "__package__")
+ symbol-end)
. font-lock-builtin-face)))
(defconst python-font-lock-syntactic-keywords
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Update keywords/builtins in python.el to Python v2.7 (patch included)
2010-07-05 20:30 Update keywords/builtins in python.el to Python v2.7 (patch included) Christoph
@ 2010-07-05 22:50 ` Glenn Morris
2010-07-05 23:14 ` Deniz Dogan
2010-07-06 1:49 ` Christoph
0 siblings, 2 replies; 8+ messages in thread
From: Glenn Morris @ 2010-07-05 22:50 UTC (permalink / raw)
To: Christoph; +Cc: emacs-devel
Please include a ChangeLog entry. This is especially necessary since
you have whitespace changes, which makes it hard to see what you
actually changed.
Also, I keep saying this, but I strongly advise people to post patches
like this to the bug list, since then they are much less likely to get
forgotten / overlooked. I used to forward things there, but have given
up. If you post things here, you basically rely on people keeping
things in their inbox until dealt with.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Update keywords/builtins in python.el to Python v2.7 (patch included)
2010-07-05 22:50 ` Glenn Morris
@ 2010-07-05 23:14 ` Deniz Dogan
2010-07-06 1:49 ` Christoph
1 sibling, 0 replies; 8+ messages in thread
From: Deniz Dogan @ 2010-07-05 23:14 UTC (permalink / raw)
To: Glenn Morris; +Cc: Christoph, emacs-devel
2010/7/6 Glenn Morris <rgm@gnu.org>:
>
> Please include a ChangeLog entry. This is especially necessary since
> you have whitespace changes, which makes it hard to see what you
> actually changed.
>
This is especially necessary in this case since the indentation has
changed and therefore deciphering what keywords were added is quite
unclear from reading just the patch.
--
Deniz Dogan
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Update keywords/builtins in python.el to Python v2.7 (patch included)
2010-07-05 22:50 ` Glenn Morris
2010-07-05 23:14 ` Deniz Dogan
@ 2010-07-06 1:49 ` Christoph
2010-07-06 17:28 ` Chong Yidong
2010-07-07 4:47 ` Glenn Morris
1 sibling, 2 replies; 8+ messages in thread
From: Christoph @ 2010-07-06 1:49 UTC (permalink / raw)
To: Glenn Morris; +Cc: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 1237 bytes --]
On 7/5/2010 4:50 PM, Glenn Morris wrote:
>
> Please include a ChangeLog entry. This is especially necessary since
> you have whitespace changes, which makes it hard to see what you
> actually changed.
I actually didn't mean to change the whitespace. It seems python.el uses
a mixture of spaces and tabs. It's a pain to reproduce some of the
indenting the way it is done in the original file. indent-region changes
the indenting even more (moves everything further to the right), but I
assume the current indenting is done to keep it within 80 columns.
Is a mixture of tabs and spaces allowed?
Maybe someone should convert the tabs to spaces.
> Also, I keep saying this, but I strongly advise people to post patches
> like this to the bug list, since then they are much less likely to get
> forgotten / overlooked. I used to forward things there, but have given
> up. If you post things here, you basically rely on people keeping
> things in their inbox until dealt with.
By bug list you mean bug-gnu-emacs?
I have attached a revised patch minimizing impact on original code and a
changelog entry. Hope this helps clarifying the changes. The callable
builtins section is a pain, because of the original formatting.
Christoph
[-- Attachment #2: python_Changelog.txt --]
[-- Type: text/plain, Size: 479 bytes --]
=== modified file 'ChangeLog'
--- ChangeLog 2010-07-02 12:55:51 +0000
+++ ChangeLog 2010-07-06 01:34:00 +0000
@@ -1,3 +1,9 @@
+2010-07-05 Christoph Scholtes <cschol2112@gmail.com>
+
+ * python.el: Add support for new keywords & builtins in Python v2.7.
+ New builtins: BufferError, BytesWarning, WindowsError
+ New callable builtins: bin, bytearray, bytes, format, memoryview, next, print
+
2010-07-02 Jan Djärv <jan.h.d@swipnet.se>
* configure.in: Remove define __P.
[-- Attachment #3: python_keywords_builtins_v2_7.txt --]
[-- Type: text/plain, Size: 4351 bytes --]
=== modified file 'lisp/progmodes/python.el'
--- lisp/progmodes/python.el 2010-02-27 00:19:50 +0000
+++ lisp/progmodes/python.el 2010-07-06 01:29:10 +0000
@@ -93,7 +93,7 @@
(defvar python-font-lock-keywords
`(,(rx symbol-start
- ;; From v 2.5 reference, § keywords.
+ ;; From v 2.7 reference, § keywords.
;; def and class dealt with separately below
(or "and" "as" "assert" "break" "continue" "del" "elif" "else"
"except" "exec" "finally" "for" "from" "global" "if"
@@ -102,7 +102,7 @@
;; Not real keywords, but close enough to be fontified as such
"self" "True" "False")
symbol-end)
- (,(rx symbol-start "None" symbol-end) ; see § Keywords in 2.5 manual
+ (,(rx symbol-start "None" symbol-end) ; see § Keywords in 2.7 manual
. font-lock-constant-face)
;; Definitions
(,(rx symbol-start (group "class") (1+ space) (group (1+ (or word ?_))))
@@ -117,15 +117,16 @@
(0+ "." (1+ (or word ?_)))))
(1 font-lock-type-face))
;; Built-ins. (The next three blocks are from
- ;; `__builtin__.__dict__.keys()' in Python 2.5.1.) These patterns
+ ;; `__builtin__.__dict__.keys()' in Python 2.7) These patterns
;; are debateable, but they at least help to spot possible
;; shadowing of builtins.
(,(rx symbol-start (or
;; exceptions
"ArithmeticError" "AssertionError" "AttributeError"
- "BaseException" "DeprecationWarning" "EOFError"
- "EnvironmentError" "Exception" "FloatingPointError"
- "FutureWarning" "GeneratorExit" "IOError" "ImportError"
+ "BaseException" "BufferError" "BytesWarning"
+ "DeprecationWarning" "EOFError" "EnvironmentError"
+ "Exception" "FloatingPointError" "FutureWarning"
+ "GeneratorExit" "IOError" "ImportError"
"ImportWarning" "IndentationError" "IndexError" "KeyError"
"KeyboardInterrupt" "LookupError" "MemoryError" "NameError"
"NotImplemented" "NotImplementedError" "OSError"
@@ -135,29 +136,30 @@
"SystemExit" "TabError" "TypeError" "UnboundLocalError"
"UnicodeDecodeError" "UnicodeEncodeError" "UnicodeError"
"UnicodeTranslateError" "UnicodeWarning" "UserWarning"
- "ValueError" "Warning" "ZeroDivisionError") symbol-end)
+ "ValueError" "Warning" "WindowsError" "ZeroDivisionError") symbol-end)
. font-lock-type-face)
(,(rx (or line-start (not (any ". \t"))) (* (any " \t")) symbol-start
(group (or
;; callable built-ins, fontified when not appearing as
;; object attributes
- "abs" "all" "any" "apply" "basestring" "bool" "buffer" "callable"
- "chr" "classmethod" "cmp" "coerce" "compile" "complex"
- "copyright" "credits" "delattr" "dict" "dir" "divmod"
- "enumerate" "eval" "execfile" "exit" "file" "filter" "float"
- "frozenset" "getattr" "globals" "hasattr" "hash" "help"
- "hex" "id" "input" "int" "intern" "isinstance" "issubclass"
- "iter" "len" "license" "list" "locals" "long" "map" "max"
- "min" "object" "oct" "open" "ord" "pow" "property" "quit"
- "range" "raw_input" "reduce" "reload" "repr" "reversed"
- "round" "set" "setattr" "slice" "sorted" "staticmethod"
- "str" "sum" "super" "tuple" "type" "unichr" "unicode" "vars"
- "xrange" "zip")) symbol-end)
+ "abs" "all" "any" "apply" "basestring" "bin" "bool" "buffer"
+ "bytearray" "bytes" "callable" "chr" "classmethod" "cmp"
+ "coerce" "compile" "complex" "copyright" "credits" "delattr"
+ "dict" "dir" "divmod" "enumerate" "eval" "execfile" "exit"
+ "file" "filter" "float" "format" "frozenset" "getattr" "globals"
+ "hasattr" "hash" "help" "hex" "id" "input" "int" "intern"
+ "isinstance" "issubclass" "iter" "len" "license" "list" "locals"
+ "long" "map" "max" "memoryview" "min" "next" "object" "oct"
+ "open" "ord" "pow" "print" "property" "quit" "range" "raw_input"
+ "reduce" "reload" "repr" "reversed" "round" "set" "setattr"
+ "slice" "sorted" "staticmethod" "str" "sum" "super" "tuple"
+ "type" "unichr" "unicode" "vars" "xrange" "zip")) symbol-end)
(1 font-lock-builtin-face))
(,(rx symbol-start (or
;; other built-ins
"True" "False" "None" "Ellipsis"
- "_" "__debug__" "__doc__" "__import__" "__name__") symbol-end)
+ "_" "__debug__" "__doc__" "__import__" "__name__" "__package__")
+ symbol-end)
. font-lock-builtin-face)))
(defconst python-font-lock-syntactic-keywords
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Update keywords/builtins in python.el to Python v2.7 (patch included)
2010-07-06 1:49 ` Christoph
@ 2010-07-06 17:28 ` Chong Yidong
2010-07-07 4:47 ` Glenn Morris
1 sibling, 0 replies; 8+ messages in thread
From: Chong Yidong @ 2010-07-06 17:28 UTC (permalink / raw)
To: Christoph; +Cc: emacs-devel
Christoph <cschol2112@googlemail.com> writes:
> Is a mixture of tabs and spaces allowed?
This is the default for all Emacs source files, and the default behavior
for Emacs.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Update keywords/builtins in python.el to Python v2.7 (patch included)
2010-07-06 1:49 ` Christoph
2010-07-06 17:28 ` Chong Yidong
@ 2010-07-07 4:47 ` Glenn Morris
2010-07-07 12:21 ` Christoph
1 sibling, 1 reply; 8+ messages in thread
From: Glenn Morris @ 2010-07-07 4:47 UTC (permalink / raw)
To: Christoph; +Cc: emacs-devel
Christoph wrote:
> By bug list you mean bug-gnu-emacs?
Yep.
> I have attached a revised patch minimizing impact on original code
> and a changelog entry. Hope this helps clarifying the changes. The
> callable builtins section is a pain, because of the original formatting.
No need to be a slave to alphabetical order.
Applied to emacs-23.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Update keywords/builtins in python.el to Python v2.7 (patch included)
2010-07-07 4:47 ` Glenn Morris
@ 2010-07-07 12:21 ` Christoph
2010-07-07 13:47 ` Davis Herring
0 siblings, 1 reply; 8+ messages in thread
From: Christoph @ 2010-07-07 12:21 UTC (permalink / raw)
To: Glenn Morris; +Cc: emacs-devel
On 7/6/2010 10:47 PM, Glenn Morris wrote:
> Christoph wrote:
>
>> By bug list you mean bug-gnu-emacs?
>
> Yep.
OK. I will send patches like this to bug-gnu-emacs then. Do I open a bug
report for every patch or do I just send it to the list directly?
>> I have attached a revised patch minimizing impact on original code
>> and a changelog entry. Hope this helps clarifying the changes. The
>> callable builtins section is a pain, because of the original formatting.
>
> No need to be a slave to alphabetical order.
dir(__builtin__) in Python spits these out in alphabetical order so I
think it makes sense to keep that for future updates. Ideally, it would
be formatted as one keyword per line.
> Applied to emacs-23.
Thanks!
Christoph
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Update keywords/builtins in python.el to Python v2.7 (patch included)
2010-07-07 12:21 ` Christoph
@ 2010-07-07 13:47 ` Davis Herring
0 siblings, 0 replies; 8+ messages in thread
From: Davis Herring @ 2010-07-07 13:47 UTC (permalink / raw)
To: Christoph; +Cc: emacs-devel
> OK. I will send patches like this to bug-gnu-emacs then. Do I open a bug
> report for every patch or do I just send it to the list directly?
Writing to that list creates a bug report.
Davis
--
This product is sold by volume, not by mass. If it appears too dense or
too sparse, it is because mass-energy conversion has occurred during
shipping.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-07-07 13:47 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-05 20:30 Update keywords/builtins in python.el to Python v2.7 (patch included) Christoph
2010-07-05 22:50 ` Glenn Morris
2010-07-05 23:14 ` Deniz Dogan
2010-07-06 1:49 ` Christoph
2010-07-06 17:28 ` Chong Yidong
2010-07-07 4:47 ` Glenn Morris
2010-07-07 12:21 ` Christoph
2010-07-07 13:47 ` Davis Herring
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.