elbakramer / pynescript

Handle Pinescript using Python
GNU Lesser General Public License v3.0
45 stars 13 forks source link

TypeError: ParserElement.try_parse() takes 3 positional arguments but 4 were given #82

Closed sugizo closed 8 months ago

sugizo commented 9 months ago

env google colab

steps pip install -U pynescript

f = open('rsi_strategy.pine', "w")
f.write("""
//@version=5
strategy("RSI Strategy", overlay=true)
length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close
vrsi = ta.rsi(price, length)
co = ta.crossover(vrsi, overSold)
cu = ta.crossunder(vrsi, overBought)
if (not na(vrsi))
    if (co)
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
    if (cu)
        strategy.entry("RsiSE", strategy.short, comment="RsiSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
""")
f.close()

execute !pynescript parse-and-dump rsi_strategy.pine

result

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5553, in parseImpl
    prev_loc, prev_result = memo[loc, self, doActions]
KeyError: (224, ResultNameableForward: global_statement, True)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5553, in parseImpl
    prev_loc, prev_result = memo[loc, self, doActions]
KeyError: (224, Forward: expression, False)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5553, in parseImpl
    prev_loc, prev_result = memo[loc, self, doActions]
KeyError: (224, expression, False)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5553, in parseImpl
    prev_loc, prev_result = memo[loc, self, doActions]
KeyError: (224, ResultNameableForward: structure, False)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5553, in parseImpl
    prev_loc, prev_result = memo[loc, self, doActions]
KeyError: (224, if_structure, False)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5553, in parseImpl
    prev_loc, prev_result = memo[loc, self, doActions]
KeyError: (246, ResultNameableForward: local_block, False)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/pynescript", line 8, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/pynescript/__main__.py", line 40, in parse_and_dump
    script_node = parse_file(f, encoding=encoding)
  File "/usr/local/lib/python3.10/dist-packages/pynescript/ast/parser/helpers.py", line 152, in parse_file
    script_node = parse_string(
  File "/usr/local/lib/python3.10/dist-packages/pynescript/ast/parser/helpers.py", line 79, in parse_string
    parse_results = script_expr.parse_string(
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 1187, in parse_string
    loc, tokens = self._parse(instring, 0)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pynescript/ast/parser/parser_elements.py", line 219, in parseImpl
    loc, tokens = self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5102, in parseImpl
    return super().parseImpl(instring, loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5010, in parseImpl
    loc, tmptokens = self_expr_parse(instring, preloc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5572, in parseImpl
    new_loc, new_peek = super().parseImpl(instring, loc, False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4037, in parseImpl
    loc, resultlist = self.exprs[0]._parse(
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4293, in parseImpl
    return e._parse(
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pynescript/ast/parser/parser_elements.py", line 219, in parseImpl
    loc, tokens = self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5572, in parseImpl
    new_loc, new_peek = super().parseImpl(instring, loc, False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5572, in parseImpl
    new_loc, new_peek = super().parseImpl(instring, loc, False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4293, in parseImpl
    return e._parse(
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5572, in parseImpl
    new_loc, new_peek = super().parseImpl(instring, loc, False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4293, in parseImpl
    return e._parse(
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5572, in parseImpl
    new_loc, new_peek = super().parseImpl(instring, loc, False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pynescript/ast/parser/parser_elements.py", line 219, in parseImpl
    loc, tokens = self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4059, in parseImpl
    loc, exprtokens = e._parse(instring, loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5572, in parseImpl
    new_loc, new_peek = super().parseImpl(instring, loc, False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pynescript/ast/parser/parser_elements.py", line 86, in parseImpl
    self.expr.try_parse(instring, anchor_loc, doActions)
TypeError: ParserElement.try_parse() takes 3 positional arguments but 4 were given

execute !pynescript parse-and-unparse rsi_strategy.pine

result

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5553, in parseImpl
    prev_loc, prev_result = memo[loc, self, doActions]
KeyError: (224, ResultNameableForward: global_statement, True)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5553, in parseImpl
    prev_loc, prev_result = memo[loc, self, doActions]
KeyError: (224, Forward: expression, False)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5553, in parseImpl
    prev_loc, prev_result = memo[loc, self, doActions]
KeyError: (224, expression, False)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5553, in parseImpl
    prev_loc, prev_result = memo[loc, self, doActions]
KeyError: (224, ResultNameableForward: structure, False)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5553, in parseImpl
    prev_loc, prev_result = memo[loc, self, doActions]
KeyError: (224, if_structure, False)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5553, in parseImpl
    prev_loc, prev_result = memo[loc, self, doActions]
KeyError: (246, ResultNameableForward: local_block, False)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/pynescript", line 8, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/pynescript/__main__.py", line 71, in parse_and_unparse
    script_node = parse_file(f, encoding=encoding)
  File "/usr/local/lib/python3.10/dist-packages/pynescript/ast/parser/helpers.py", line 152, in parse_file
    script_node = parse_string(
  File "/usr/local/lib/python3.10/dist-packages/pynescript/ast/parser/helpers.py", line 79, in parse_string
    parse_results = script_expr.parse_string(
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 1187, in parse_string
    loc, tokens = self._parse(instring, 0)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pynescript/ast/parser/parser_elements.py", line 219, in parseImpl
    loc, tokens = self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5102, in parseImpl
    return super().parseImpl(instring, loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5010, in parseImpl
    loc, tmptokens = self_expr_parse(instring, preloc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5572, in parseImpl
    new_loc, new_peek = super().parseImpl(instring, loc, False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4037, in parseImpl
    loc, resultlist = self.exprs[0]._parse(
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4293, in parseImpl
    return e._parse(
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pynescript/ast/parser/parser_elements.py", line 219, in parseImpl
    loc, tokens = self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5572, in parseImpl
    new_loc, new_peek = super().parseImpl(instring, loc, False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5572, in parseImpl
    new_loc, new_peek = super().parseImpl(instring, loc, False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4293, in parseImpl
    return e._parse(
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5572, in parseImpl
    new_loc, new_peek = super().parseImpl(instring, loc, False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4293, in parseImpl
    return e._parse(
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5572, in parseImpl
    new_loc, new_peek = super().parseImpl(instring, loc, False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pynescript/ast/parser/parser_elements.py", line 219, in parseImpl
    loc, tokens = self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4059, in parseImpl
    loc, exprtokens = e._parse(instring, loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 5572, in parseImpl
    new_loc, new_peek = super().parseImpl(instring, loc, False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 4569, in parseImpl
    return self.expr._parse(instring, loc, doActions, callPreParse=False)
  File "/usr/local/lib/python3.10/dist-packages/pyparsing/core.py", line 850, in _parseNoCache
    loc, tokens = self.parseImpl(instring, pre_loc, doActions)
  File "/usr/local/lib/python3.10/dist-packages/pynescript/ast/parser/parser_elements.py", line 86, in parseImpl
    self.expr.try_parse(instring, anchor_loc, doActions)
TypeError: ParserElement.try_parse() takes 3 positional arguments but 4 were given

best regards

sefgit commented 8 months ago

pip install pyparsing==3.0.9 --upgrade

works