diff options
| author | Adrian Torres <adt@odoo.com> | 2018-11-08 15:03:33 +0000 |
|---|---|---|
| committer | Adrian Torres <adt@odoo.com> | 2018-11-29 09:28:17 +0000 |
| commit | 758382b3a73da024d6e1dc04a474d2868223767a (patch) | |
| tree | e37ea57fb6efabf9a14d30b39a74af664ddd1ed3 /doc/_extensions/pyjsparser/parser.py | |
| parent | 52f5528cfb6d1152ee226e268247dc685a8ba329 (diff) | |
[REM] pycompat: remove python 2 shims and helpers
Odoo no longer supports python 2, thus some of these helpers can and
have been replaced by python 3 built-ins, therefore there is no need for
them to stay defined.
The removed helpers are:
* izip, imap and ifilter
* unichr, text_type
* implements_to_string, implements_iterator
* string_types, integer_types
* to_native
The python 2 shims have also been removed, and only the python 3 helpers
have been kept, because they can still be usable (i.e. accepting
both bytes and str for functions that can only accept one of the two)
[REM] pyjsparser: remove PY3 shims
They're no longer necessary as Odoo doesn't officially support python 2
anymore.
closes odoo/odoo#28519
Diffstat (limited to 'doc/_extensions/pyjsparser/parser.py')
| -rw-r--r-- | doc/_extensions/pyjsparser/parser.py | 38 |
1 files changed, 15 insertions, 23 deletions
diff --git a/doc/_extensions/pyjsparser/parser.py b/doc/_extensions/pyjsparser/parser.py index 28001886a8e..d47a94a8522 100644 --- a/doc/_extensions/pyjsparser/parser.py +++ b/doc/_extensions/pyjsparser/parser.py @@ -27,16 +27,8 @@ __all__ = ['PyJsParser', 'parse', 'ENABLE_JS2PY_ERRORS', 'ENABLE_PYIMPORT', 'JsS REGEXP_SPECIAL_SINGLE = ('\\', '^', '$', '*', '+', '?', '.', '[', ']', '(', ')', '{', '{', '|', '-') ENABLE_PYIMPORT = False ENABLE_JS2PY_ERRORS = False - -PY3 = sys.version_info >= (3,0) - -if PY3: - basestring = str - long = int - xrange = range - unicode = str - ESPRIMA_VERSION = '2.2.0' + DEBUG = False # Small naming convention changes # len -> leng @@ -179,7 +171,7 @@ class PyJsParser: def scanHexEscape(self, prefix): code = 0 leng = 4 if (prefix == 'u') else 2 - for i in xrange(leng): + for i in range(leng): if self.index < self.length and isHexDigit(self.source[self.index]): ch = self.source[self.index] self.index += 1 @@ -442,7 +434,7 @@ class PyJsParser: def isImplicitOctalLiteral(self): # Implicit octal, unless there is a non-octal digit. # (Annex B.1.1 on Numeric Literals) - for i in xrange(self.index + 1, self.length): + for i in range(self.index + 1, self.length): ch = self.source[i]; if (ch == '8' or ch == '9'): return False; @@ -992,20 +984,20 @@ class PyJsParser: except: raise Exception("ENABLE_JS2PY_ERRORS was set to True, but Js2Py was not found!") ENABLE_PYIMPORT = old_pyimport - error = ERRORS['SyntaxError']('Line ' + unicode(line) + ': ' + unicode(description)) + error = ERRORS['SyntaxError']('Line ' + str(line) + ': ' + str(description)) error.put('index', Js(pos)) error.put('lineNumber', Js(line)) error.put('column', Js(pos - (self.lineStart if self.scanning else self.lastLineStart) + 1)) error.put('description', Js(description)) return JsToPyException(error) else: - return JsSyntaxError('Line ' + unicode(line) + ': ' + unicode(description)) + return JsSyntaxError('Line ' + str(line) + ': ' + str(description)) # Throw an exception def throwError(self, messageFormat, *args): - msg = messageFormat % tuple(unicode(e) for e in args) + msg = messageFormat % tuple(str(e) for e in args) raise self.createError(self.lastLineNumber, self.lastIndex, msg); def tolerateError(self, messageFormat, *args): @@ -1038,7 +1030,7 @@ class PyJsParser: value = token['value']['raw'] if (typ == Token.Template) else token.get('value') else: value = 'ILLEGAL' - msg = msg.replace('%s', unicode(value)) + msg = msg.replace('%s', str(value)) return (self.createError(token['lineNumber'], token['start'], msg) if (token and token.get('lineNumber')) else self.createError(self.lineNumber if self.scanning else self.lastLineNumber, @@ -1445,12 +1437,12 @@ class PyJsParser: self.reinterpretExpressionAsPattern(expr.argument) elif typ == Syntax.ArrayExpression: expr['type'] = Syntax.ArrayPattern - for i in xrange(len(expr['elements'])): + for i in range(len(expr['elements'])): if (expr['elements'][i] != null): self.reinterpretExpressionAsPattern(expr['elements'][i]) elif typ == Syntax.ObjectExpression: expr['type'] = Syntax.ObjectPattern - for i in xrange(len(expr['properties'])): + for i in range(len(expr['properties'])): self.reinterpretExpressionAsPattern(expr['properties'][i]['value']); elif Syntax.AssignmentExpression: expr['type'] = Syntax.AssignmentPattern; @@ -1526,7 +1518,7 @@ class PyJsParser: if (not self.match('=>')): self.expect('=>'); self.isBindingElement = false - for i in xrange(len(expressions)): + for i in range(len(expressions)): self.reinterpretExpressionAsPattern(expressions[i]) return { 'type': PlaceHolders.ArrowParameterPlaceHolder, @@ -1539,7 +1531,7 @@ class PyJsParser: if (not self.isBindingElement): self.throwUnexpectedToken(self.lookahead); if (expr['type'] == Syntax.SequenceExpression): - for i in xrange(len(expr.expressions)): + for i in range(len(expr.expressions)): self.reinterpretExpressionAsPattern(expr['expressions'][i]) else: self.reinterpretExpressionAsPattern(expr); @@ -1880,12 +1872,12 @@ class PyJsParser: elif typ == Syntax.AssignmentPattern: self.checkPatternParam(options, param.left) elif typ == Syntax.ArrayPattern: - for i in xrange(len(param.elements)): + for i in range(len(param.elements)): if (param.elements[i] != null): self.checkPatternParam(options, param.elements[i]); else: assert typ == Syntax.ObjectPattern, 'Invalid type' - for i in xrange(len(param.properties)): + for i in range(len(param.properties)): self.checkPatternParam(options, param.properties[i]['value']); def reinterpretAsCoverFormalsList(self, expr): @@ -1902,7 +1894,7 @@ class PyJsParser: options = { 'paramSet': {}} le = len(params) - for i in xrange(le): + for i in range(le): param = params[i] if param.type == Syntax.AssignmentPattern: params[i] = param.left; @@ -2870,7 +2862,7 @@ class PyJsParser: raise NotImplementedError('Options not implemented! You can only use default settings.') self.clean() - self.source = unicode(code) + ' \n ; //END' # I have to add it in order not to check for EOF every time + self.source = str(code) + ' \n ; //END' # I have to add it in order not to check for EOF every time self.index = 0 self.lineNumber = 1 if len(self.source) > 0 else 0 self.lineStart = 0 |
