~tseaver/pkginfo/trunk

« back to all changes in this revision

Viewing changes to pkginfo/_compat.py

  • Committer: Tres Seaver
  • Date: 2022-11-29 18:54:18 UTC
  • Revision ID: tseaver@palladion.com-20221129185418-gmc545stk0mw1wiq
Remove 'pkginfo._compat' shim module.

In preparation for dropping Python 2.7 support.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
try:
2
 
    STRING_TYPES = (str, unicode)
3
 
except NameError:           #pragma NO COVER Python >= 3.0
4
 
    STRING_TYPES = (str,)
5
 
 
6
 
try:
7
 
    u = unicode
8
 
except NameError:           #pragma NO COVER Python >= 3.0
9
 
    u = str
10
 
    b = bytes
11
 
else:                       #pragma NO COVER Python < 3.0
12
 
    b = str
13
 
 
14
 
try:
15
 
    from StringIO import StringIO
16
 
except ImportError:         #pragma NO COVER Python >= 3.0
17
 
    from io import StringIO
18
 
    from io import BytesIO
19
 
else:                       #pragma NO COVER Python < 3.0
20
 
    BytesIO = StringIO
21
 
 
22
 
 
23
 
def must_decode(value):     #pragma NO COVER
24
 
    if type(value) is bytes:
25
 
        try:
26
 
            return value.decode('utf-8')
27
 
        except UnicodeDecodeError:
28
 
            return value.decode('latin1')
29
 
    return value
30
 
 
31
 
def must_encode(value):     #pragma NO COVER
32
 
    if type(value) is u:
33
 
        return value.encode('utf-8')
34
 
    return value