Changeset 3298 for pykota/trunk/pykota
- Timestamp:
- 01/24/08 10:12:48 (16 years ago)
- Location:
- pykota/trunk/pykota
- Files:
-
- 4 modified
Legend:
- Unmodified
- Added
- Removed
-
pykota/trunk/pykota/appinit.py
r3294 r3298 23 23 24 24 import sys 25 import os 25 26 import locale 26 27 import gettext … … 28 29 from pykota.utils import * 29 30 30 (lang, charset) = initlocale() 31 (lang, charset) = initlocale(os.environ.get("PYKOTALANG", ""), 32 os.environ.get("PYKOTACHARSET")) 31 33 initgettext(lang, charset) 32 34 -
pykota/trunk/pykota/tool.py
r3295 r3298 96 96 # Saves a copy of the locale settings 97 97 (self.language, self.charset) = locale.getlocale() 98 if not self.language : 99 self.language = "C" 98 100 if not self.charset : 99 101 self.charset = "UTF-8" … … 165 167 """Display a message but only if stdout is a tty.""" 166 168 if sys.stdout.isatty() : 167 sys.stdout.write(message.encode(s ys.stdout.encoding or "UTF-8", \169 sys.stdout.write(message.encode(self.charset, \ 168 170 "replace")) 169 171 sys.stdout.flush() … … 172 174 """Logs something to debug output if debug is enabled.""" 173 175 if self.debug : 174 self.logger.log_message(message.encode(sys.stdout.encoding \ 175 or "UTF-8", \ 176 self.logger.log_message(message.encode(self.charset, \ 176 177 "replace"), \ 177 178 "debug") … … 180 181 """Sends a message to standard error.""" 181 182 sys.stderr.write("%s: %s\n" % (level.upper(), \ 182 message.encode(sys.stdout.encoding \ 183 or "UTF-8", \ 183 message.encode(self.charset, \ 184 184 "replace"))) 185 185 sys.stderr.flush() -
pykota/trunk/pykota/utils.py
r3295 r3298 40 40 charset = sys.stdout.encoding or sys.getfilesystemencoding() 41 41 42 # Dirty hack : if the charset is ASCII, we can safely use UTF-8 instead 43 # This has the advantage of allowing transparent support for recent 44 # versions of CUPS which (en-)force charset to UTF-8 when printing. 45 # This should be needed only when printing, but is probably (?) safe 46 # to do when using interactive commands. 47 if charset.upper() in ('ASCII', 'ANSI_X3.4-1968') : 42 if (not charset) or charset in ("ASCII", "ANSI_X3.4-1968") : 48 43 charset = "UTF-8" 44 49 45 return (language, charset) 50 46 47 def setenv(varname, value, charset) : 48 """Sets an environment variable.""" 49 if value is None : 50 value = "None" 51 os.environ[varname] = value.encode(charset, "replace") 52 51 53 def initgettext(lang, cset) : 52 54 """Initializes gettext translations for PyKota.""" … … 86 88 87 89 def databaseToUnicode(text) : 88 """Converts from database format (UTF-8) to unicode.""" 90 """Converts from database format (UTF-8) to unicode. 91 92 We use "replace" to accomodate legacy datas which may not 93 have been recorded correctly. 94 """ 89 95 if text is not None : 90 96 return text.decode("UTF-8", "replace") … … 95 101 """Converts from unicode to database format (UTF-8).""" 96 102 if text is not None : 97 return text.encode("UTF-8" , "replace")103 return text.encode("UTF-8") 98 104 else : 99 105 return None … … 101 107 def logerr(text) : 102 108 """Logs an unicode text to stderr.""" 103 sys.stderr.write(text.encode(sys.stdout.encoding or locale.getlocale()[1], \ 109 sys.stderr.write(text.encode(sys.stdout.encoding \ 110 or locale.getlocale()[1] \ 111 or "ANSI_X3.4-1968", \ 104 112 "replace")) 105 113 sys.stderr.flush() -
pykota/trunk/pykota/version.py
r3275 r3298 22 22 """This module defines some application level constants.""" 23 23 24 __version__ = "1.27alpha 3_BROKEN_unofficial"24 __version__ = "1.27alpha4_unofficial" 25 25 26 26 __doc__ = "PyKota : a complete Printing Quota Solution for CUPS."