[Python-Dev] Symbolic errno values in error messages
Georg Brandl
g.brandl at gmx.net
Mon May 19 22:04:41 CEST 2008
Yannick Gingras schrieb:
> "Alexandre Vassalotti" <alexandre at peadrop.com> writes:
>
>>>> So now I am not sure what OP is proposing. Do you want to replace 21
>>>> with EISDIR in the above?
>>>
>>> Yes, that's what I had in mind.
>>>
>>
>> Then, check out EnvironmentError_str in Objects/exceptions.c. You
>> should be able import the errno module and fetch its errorcode
>> dictionary.
>
> It wasn't as hard as I expected. It's the first time that I play with
> the Python C API; I didn't expect the API to be that high level.
>
> I attached a patch to convert errno to its symbolic value when an
> EnvironmentError is printed. Should attach it to a ticket on
> bugs.python.org?
>
> I'm sure there is a style guide like PEP-8 for C code, feel free to
> point me to it because my patch is probably not fully style compliant.
>
> With Emacs, doing
>
> M-x c-set-style python
>
> doesn't seems to do the right thing. Are you all using a bunch of
> shared settings in you .emacs files?
For new-style Python C files, this style definition works well:
(c-add-style
"python-new"
'((indent-tabs-mode . nil)
(fill-column . 78)
(c-basic-offset . 4)
(c-offsets-alist . ((substatement-open . 0)
(inextern-lang . 0)
(arglist-intro . +)
(knr-argdecl-intro . +)))
(c-hanging-braces-alist . ((brace-list-open)
(brace-list-intro)
(brace-list-close)
(brace-entry-open)
(substatement-open after)
(block-close . c-snug-do-while)))
(c-block-comment-prefix . "* "))
)
This is a very crude hook that auto-selects the C style depending on
whether it finds a line starting with tab in the first 3000 characters
in the file:
(defun c-select-style ()
(save-excursion
(if (re-search-forward "^\t" 3000 t)
(c-set-style "python")
(c-set-style "python-new"))))
(add-hook 'c-mode-hook 'c-select-style)
HTH,
Georg
More information about the Python-Dev
mailing list