~ubuntu-branches/debian/stretch/phatch/stretch

« back to all changes in this revision

Viewing changes to phatch/core/lib/unicoding.py

  • Committer: Bazaar Package Importer
  • Author(s): Piotr Ożarowski, Stani M, Piotr Ożarowski
  • Date: 2008-03-06 20:09:11 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080306200911-4w5f664fx4fg6jun
Tags: 0.1.1-1
* New upstream release 

[ Stani M ]
* Short and long description updated

[ Piotr Ożarowski ]
* Add myself to Uploaders

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright (C) 2007-2008 www.stani.be
 
2
#
 
3
# This program is free software: you can redistribute it and/or modify
 
4
# it under the terms of the GNU General Public License as published by
 
5
# the Free Software Foundation, either version 3 of the License, or
 
6
# (at your option) any later version.
 
7
#
 
8
# This program is distributed in the hope that it will be useful,
 
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
# GNU General Public License for more details.
 
12
 
13
# You should have received a copy of the GNU General Public License
 
14
# along with this program.  If not, see http://www.gnu.org/licenses/
 
15
 
 
16
import locale
 
17
ENCODING    = locale.getdefaultlocale()[1]
 
18
 
 
19
def ensure_unicode(x,encoding=ENCODING,errors='replace'):
 
20
    if type(x) is unicode: return x
 
21
    try:
 
22
        return unicode(x)
 
23
    except UnicodeDecodeError:
 
24
        return unicode(x,encoding,errors)
 
25
    
 
26
def exception_to_unicode(x,encoding=ENCODING,errors='replace'):
 
27
    #python2.5
 
28
    if hasattr(x,'message'):
 
29
        return ensure_unicode(x.message,encoding,errors)
 
30
    #python2.4
 
31
    try:
 
32
        return ensure_unicode(str(x),encoding,errors)
 
33
    except:
 
34
        return u'?'