jsonata-python 0.4.0__py3-none-any.whl → 0.5.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
jsonata/cli/__main__.py CHANGED
@@ -34,7 +34,7 @@ def get_options(argv: Optional[list[str]] = None) -> argparse.ArgumentParser:
34
34
  """
35
35
  parser = argparse.ArgumentParser(prog="jsonata.cli", description="Pure Python JSONata CLI")
36
36
  parser.add_argument(
37
- "-v", "--version", action='version', version='%(prog)s 0.4.0')
37
+ "-v", "--version", action='version', version='%(prog)s 0.5.1')
38
38
 
39
39
  parser.add_argument(
40
40
  "-e", "--expression", metavar="<file>",
jsonata/functions.py CHANGED
@@ -1570,8 +1570,11 @@ class Functions:
1570
1570
  from jsonata import jsonata
1571
1571
  if isinstance(func, jsonata.Jsonata.JFunction):
1572
1572
  return func.signature.get_min_number_of_args()
1573
+ elif isinstance(func, jsonata.Jsonata.JLambda):
1574
+ from inspect import signature
1575
+
1576
+ return len(signature(func.function).parameters)
1573
1577
  else:
1574
- # Lambda
1575
1578
  return len(func.arguments)
1576
1579
 
1577
1580
  #
@@ -2007,15 +2010,9 @@ class Functions:
2007
2010
  arg1 = utils.Utils.create_sequence(arg1)
2008
2011
  if not (isinstance(arg2, list)):
2009
2012
  arg2 = utils.Utils.JList([arg2])
2010
- # else
2011
- # // Arg2 was a list: add it as a list element (don't flatten)
2012
- # ((List)arg1).add((List)arg2)
2013
2013
 
2014
2014
  arg1 = utils.Utils.JList(arg1) # create a new copy!
2015
- if isinstance(arg2, utils.Utils.JList) and arg2.cons:
2016
- arg1.append(arg2)
2017
- else:
2018
- arg1.extend(arg2)
2015
+ arg1.extend(arg2)
2019
2016
  return arg1
2020
2017
 
2021
2018
  @staticmethod
jsonata/parser.py CHANGED
@@ -1180,6 +1180,7 @@ class Parser:
1180
1180
  result.position = expr.position
1181
1181
  result.lhs = self.process_ast(expr.lhs)
1182
1182
  result.rhs = self.process_ast(expr.rhs)
1183
+ result.keep_array = result.lhs.keep_array or result.rhs.keep_array
1183
1184
  else:
1184
1185
  result = Parser.Infix(self, None)
1185
1186
  result.type = expr.type
jsonata/signature.py CHANGED
@@ -1,7 +1,5 @@
1
1
  #
2
- # jsonata-java is the JSONata Java reference port
3
- #
4
- # Copyright Dashjoin GmbH. https://dashjoin.com
2
+ # Copyright Robert Yokota
5
3
  #
6
4
  # Licensed under the Apache License, Version 2.0 (the "License")
7
5
  # you may not use this file except in compliance with the License.
@@ -307,6 +305,7 @@ class Signature:
307
305
  validated_args.append(arg)
308
306
  arg_index += 1
309
307
  else:
308
+ arg = args[arg_index] if arg_index < len(args) else None
310
309
  validated_args.append(arg)
311
310
  arg_index += 1
312
311
  return validated_args
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: jsonata-python
3
- Version: 0.4.0
3
+ Version: 0.5.1
4
4
  Summary: Pure Python implementation of JSONata
5
5
  Project-URL: Homepage, https://github.com/rayokota/jsonata-python
6
6
  Project-URL: Bug Reports, https://github.com/rayokota/jsonata-python/issues
@@ -207,7 +207,6 @@ License: Apache License
207
207
  See the License for the specific language governing permissions and
208
208
  limitations under the License.
209
209
 
210
- License-File: LICENSE
211
210
  Keywords: json,jsonata
212
211
  Classifier: Development Status :: 4 - Beta
213
212
  Classifier: License :: OSI Approved :: Apache Software License
@@ -1,17 +1,17 @@
1
1
  jsonata/__init__.py,sha256=4r8USHj4SoBy_TD8dLxt9HJIgpLfXApFrZBipi4rgr0,388
2
2
  jsonata/constants.py,sha256=WtdH_l_s5KD-SiOJ4GR2az7WpVgKB2HguXUnyfy4tvs,3017
3
3
  jsonata/datetimeutils.py,sha256=IzU6y-vwyhwobHyw9rsImBye-RfWDV7K8Vk0Xs-yiG0,48567
4
- jsonata/functions.py,sha256=CnbOa_C1cOxjch23bnEX-2PLfQ0ju3SyHN6c988vq58,75605
4
+ jsonata/functions.py,sha256=giAtWZ92cOlnBcH7Zkapnib-LPSPyBFHrz-9AMdkhqQ,75500
5
5
  jsonata/jexception.py,sha256=6Jz7WMsIiNlQ7-1Hq8RKiE2HxcHq2PDekw0qsSe3lqo,12885
6
6
  jsonata/jsonata.py,sha256=jZIxVrNcZI3aBvE0PURZ4-cxpaK9JiJVH5Q_cllCXS0,84247
7
- jsonata/parser.py,sha256=OSxO9eNQy2WrDOPX_Obow487PWwngRN7bCMtDoK55AI,53794
8
- jsonata/signature.py,sha256=zTO9zmT7XzxA4GHYf2Rgquu419D7UZ-NYzIwiqqNvCM,20184
7
+ jsonata/parser.py,sha256=U8nNxvsDIy0wVTfNCs2DNN7RjNVm0SqfociD9cRcsWM,53877
8
+ jsonata/signature.py,sha256=j7eNKUuGx_9vCt5Qv8BPM7iV5vH26U0Kx8zrkDcctME,20194
9
9
  jsonata/timebox.py,sha256=bnevNR_ONvKUiIZCJZEWsRiR0gCWTGOwn5RCY7dKqYc,2861
10
10
  jsonata/tokenizer.py,sha256=6WMK6M-XxmOwPtr7ZqWMTtaZPdGFhVMcGHxQlP97jdk,11856
11
11
  jsonata/utils.py,sha256=U13I49Ie3hEn3PKGR4361TPengDAkbyHmwipDFZJlXo,5192
12
12
  jsonata/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- jsonata/cli/__main__.py,sha256=feeC7SseB0jundIG7FiZE89fw1McrSjLn3kZofJB0pc,6971
14
- jsonata_python-0.4.0.dist-info/METADATA,sha256=rqzmGkyO3-moYxtXyNtq407d3rVrEdjXhGPrywntU5k,17297
15
- jsonata_python-0.4.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
16
- jsonata_python-0.4.0.dist-info/licenses/LICENSE,sha256=y16Ofl9KOYjhBjwULGDcLfdWBfTEZRXnduOspt-XbhQ,11325
17
- jsonata_python-0.4.0.dist-info/RECORD,,
13
+ jsonata/cli/__main__.py,sha256=G3bgRulCyS6nekd_7ulbsfJpWewQmZgiYylBREHgJx8,6971
14
+ jsonata_python-0.5.1.dist-info/METADATA,sha256=CHwsN5yZbO2z5AIiI6_tJxoh58Op91MYL2TCD26Ow6M,17275
15
+ jsonata_python-0.5.1.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
16
+ jsonata_python-0.5.1.dist-info/licenses/LICENSE,sha256=y16Ofl9KOYjhBjwULGDcLfdWBfTEZRXnduOspt-XbhQ,11325
17
+ jsonata_python-0.5.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.25.0
2
+ Generator: hatchling 1.26.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any