<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>8366</bug_id>
          
          <creation_ts>2005-10-29 15:52:08 +0400</creation_ts>
          <short_desc>Не перекодирует строки из списков при выводе в консоль</short_desc>
          <delta_ts>2008-05-29 17:14:38 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>python-base</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Lipatov">lav</reporter>
          <assigned_to name="Fr. Br. George">george</assigned_to>
          <cc>vseleznv</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>32635</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2005-10-29 15:52:08 +0400</bug_when>
    <thetext>Просто строка выводится на экран нормально, но при выводе из списка или 
кортежа перекодирования не происходит. 
 
#!/usr/bin/python  
# -*- coding: koi8-r -*-  
a=&quot;проверка&quot;  
b=[&quot;корова&quot;,&quot;Москва&quot;,&quot;слово&quot;]  
print a  
print b</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65464</commentid>
    <comment_count>1</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2008-03-11 14:47:53 +0300</bug_when>
    <thetext>Reassign to real maintainer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70836</commentid>
    <comment_count>2</comment_count>
    <who name="Fr. Br. George">george</who>
    <bug_when>2008-05-28 23:10:37 +0400</bug_when>
    <thetext>Всегда так было. Метод repr() не обязан ходить к установленной локали (которая к
тому же может быть и не установлена, и установлена ошибочно) -- соответственно,
не производит перекодировки ни в какую локаль. Выход один: писать hex-байты как
они есть.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70855</commentid>
    <comment_count>3</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2008-05-29 01:01:05 +0400</bug_when>
    <thetext>Не пойму смысла такого глубокого отличия в отношении к строкам в случае a и b.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70856</commentid>
    <comment_count>4</comment_count>
    <who name="Mikhail Gusarov">dottedmag</who>
    <bug_when>2008-05-29 01:07:18 +0400</bug_when>
    <thetext>print зовёт str() от объекта. Для строки это даёт верный результат, а список 
зовёт repr() от своего содержимого для сборки своего строкового представления.

print b печаетет список. Некий объект. И что этот объект делает, и откуда у 
него там вообще строки, и есть ли они там, и как обрабатываются - глубоко 
интимное дело самого списка.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70937</commentid>
    <comment_count>5</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2008-05-29 17:01:02 +0400</bug_when>
    <thetext>Возможно первоначально задача неточно сформулирована. Про перекодирование я 
ошибся. Ничего перекодировать не нужно.
Я именно и хочу добиться, чтобы repr() писал &quot;байты как они есть.&quot;, не заменяя 
их шестнадцатеричным символьным представлением. Но так как repr менять никото 
не будет, даже не знаю что сказать.
Вывод у этой программы странный получается
$ python z.py
проверка
[&apos;\xcb\xcf\xd2\xcf\xd7\xc1&apos;, &apos;\xed\xcf\xd3\xcb\xd7\xc1&apos;, &apos;\xd3\xcc\xcf\xd7\xcf&apos;]

Ладно, пойдём обходным путём:
for x in b:
    print x
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70943</commentid>
    <comment_count>6</comment_count>
    <who name="Mikhail Gusarov">dottedmag</who>
    <bug_when>2008-05-29 17:14:38 +0400</bug_when>
    <thetext>Извратиться всегда можно.

&gt;&gt;&gt; a = [&quot;корова&quot;,&quot;Москва&quot;,&quot;слово&quot;]
&gt;&gt;&gt; a.__repr__ = lambda: &quot;[&quot; + &quot;,&quot;.join(self) + &quot;]&quot;
Traceback (most recent call last):
  File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
AttributeError: &apos;list&apos; object attribute &apos;__repr__&apos; is read-only

Гм. Не всегда :)

</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>