Bug 4178 - python2.3 выдает DeprecationWarning на русские символы в комментариях
Summary: python2.3 выдает DeprecationWarning на русские символы в комментариях
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: python23 (show other bugs)
Version: unstable
Hardware: all Linux
: P4 minor
Assignee: Andrey Orlov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-05-16 16:45 MSD by Denis Kirienko
Modified: 2005-06-25 15:18 MSD (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Denis Kirienko 2004-05-16 16:45:52 MSD
python23-2.3.3-alt6.2.1, локаль ru_RU.KOI8-R

Русские символы в комментариях программы на питоне приводят к появлению
предупреждения.

Steps to Reproduce:
$ echo " # Бла-бла-бла" | python2.3

Actual Results:  
sys:1: DeprecationWarning: Non-ASCII character '\xe2' in file <stdin> on line 1,
but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Comment 1 Dmitry V. Levin 2004-05-16 20:41:14 MSD
bugzilla sux
Comment 2 Andrey Orlov 2004-05-16 23:29:49 MSD
Это не ошибка, это совершенно нормально поведение питона начиная с версии 2.3, 
которая появилась полтора года назад (т.е. еще на беттах). 
Ошибка в тех программах, для которых это происходит. Для того что бы этого не 
было, должно быть выполнено одно из двух условий: 
 
 1. Все комментарии набраны латиницей (и на английском языке, что является 
рекомендацией Гвидо); 
 
 2. В начале файла с исходником указана кодировка исходника в формате emacs, 
например:  
 
# -*- coding: KOI8-R -*- 
 
Необходимо отметить, что данная строка затрангивает не только комментарии но 
и строковые литералы (которые будут преобразоваываться различным образом при 
компиляции в зависимости от указанного значения). 
 
Comment 3 Denis Kirienko 2004-05-16 23:44:15 MSD
Ok. Это не баг, это фича :)

Плохо то, что это мешает использовать Питон в качестве учебного языка в школе.
Ни пункт 1, ни пункт 2 в качестве решения не подходит.
Пункт 1 потому, что комментарии для школьников/школьникам надо писать по-русски.
Пункт 2 потому, что это загромождает программу ненужными и малопонятными
инструкциями.
Идеальное решение для моего случая - чтобы эту фичу можно было отключить
каким-нибудь конфигурационным файлом или ключом запуска (я бы тогда на него
alias сделал).
Comment 4 Andrey Orlov 2004-05-17 08:38:18 MSD
К пункту 1 я тоже отношусь довольно скептически, хотя и стараюсь ему следовать, 
что до пункта 2.... Начиная с версия 2.3 эта "ненужная и непонятная конструкция" часть 
языка питон. Язык питон (да и вообще любой язык программирования) полон "ненужных 
и непонятных" конструкций, задача преподавателя - не только понимать их назначение 
самому, но и уметь объяснить ученикам. Что касается возможности (и необходимости) 
указать кодировку файла с исходным текстом программы, то в современном мире это 
крайне полезная и своевременная мера, нормальная работа без которой затруднена. 
 
Все это было терто и перетерто вдоль и поперек в питоновских списках рассылки 
полтора-два года назад и возвращатся к этому спору я не вижу смысла - посмотрите 
архивы. 
 
(кстати, отключить deprication warning ключом или конфгурационным файлом - не очень 
большая проблема, попробуйте посмотреть man python или доки на модули warning, 
site.py, etc - наверно поможет).