~widelands-dev/widelands-website/trunk

« back to all changes in this revision

Viewing changes to pybb/lib/phpserialize.py

  • Committer: kaputtnik
  • Date: 2019-06-14 18:40:56 UTC
  • mfrom: (532.1.31 widelands)
  • Revision ID: kaputtnik-20190614184056-l0ha8pm5zais9mxk
Adapted code for use with python 3.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
96
96
    :copyright: 2007-2008 by Armin Ronacher.
97
97
    license: BSD
98
98
"""
99
 
from StringIO import StringIO
 
99
from io import StringIO
100
100
 
101
101
__author__ = 'Armin Ronacher <armin.ronacher@active-4.com>'
102
102
__version__ = '1.1'
108
108
    """
109
109
    def _serialize(obj, keypos):
110
110
        if keypos:
111
 
            if isinstance(obj, (int, long, float, bool)):
 
111
            if isinstance(obj, (int, float, bool)):
112
112
                return 'i:%i;' % obj
113
 
            if isinstance(obj, basestring):
114
 
                if isinstance(obj, unicode):
 
113
            if isinstance(obj, str):
 
114
                if isinstance(obj, str):
115
115
                    obj = obj.encode(charset, errors)
116
116
                return 's:%i:"%s";' % (len(obj), obj)
117
117
            if obj is None:
122
122
                return 'N;'
123
123
            if isinstance(obj, bool):
124
124
                return 'b:%i;' % obj
125
 
            if isinstance(obj, (int, long)):
 
125
            if isinstance(obj, int):
126
126
                return 'i:%s;' % obj
127
127
            if isinstance(obj, float):
128
128
                return 'd:%s;' % obj
129
 
            if isinstance(obj, basestring):
130
 
                if isinstance(obj, unicode):
 
129
            if isinstance(obj, str):
 
130
                if isinstance(obj, str):
131
131
                    obj = obj.encode(charset, errors)
132
132
                return 's:%i:"%s";' % (len(obj), obj)
133
133
            if isinstance(obj, (list, tuple, dict)):
134
134
                out = []
135
135
                if isinstance(obj, dict):
136
 
                    iterable = obj.iteritems()
 
136
                    iterable = iter(obj.items())
137
137
                else:
138
138
                    iterable = enumerate(obj)
139
139
                for key, value in iterable:
202
202
            _expect('{')
203
203
            result = {}
204
204
            last_item = Ellipsis
205
 
            for idx in xrange(items):
 
205
            for idx in range(items):
206
206
                item = _unserialize()
207
207
                if last_item is Ellipsis:
208
208
                    last_item = item
238
238
def dict_to_list(d):
239
239
    """Converts an ordered dict into a list."""
240
240
    try:
241
 
        return [d[x] for x in xrange(len(d))]
 
241
        return [d[x] for x in range(len(d))]
242
242
    except KeyError:
243
243
        raise ValueError('dict is not a sequence')
244
244