pycep-parser 0.7.0.dev5__tar.gz → 0.7.0.dev6__tar.gz

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.
Files changed (285) hide show
  1. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/PKG-INFO +1 -1
  2. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/pycep/bicep.lark +1 -1
  3. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/pycep/main.py +1 -1
  4. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/pycep/rules/decorators.py +2 -2
  5. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/pycep/rules/functions.py +21 -23
  6. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/pycep/transformer.py +10 -9
  7. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/pyproject.toml +15 -19
  8. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/LICENSE +0 -0
  9. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/README.md +0 -0
  10. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/pycep/__init__.py +0 -0
  11. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/pycep/models.py +0 -0
  12. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/pycep/py.typed +0 -0
  13. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/pycep/rules/__init__.py +0 -0
  14. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/pycep/typing.py +0 -0
  15. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/pycep/utils.py +0 -0
  16. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/pycep/validator.py +0 -0
  17. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/__init__.py +0 -0
  18. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/basic/01-param/main.bicep +0 -0
  19. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/basic/01-param/result.json +0 -0
  20. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/basic/02-var/main.bicep +0 -0
  21. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/basic/02-var/result.json +0 -0
  22. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/basic/03-output/main.bicep +0 -0
  23. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/basic/03-output/result.json +0 -0
  24. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/basic/04-resource/main.bicep +0 -0
  25. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/basic/04-resource/result.json +0 -0
  26. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/basic/05-module/main.bicep +0 -0
  27. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/basic/05-module/result.json +0 -0
  28. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/basic/06-type/main.bicep +0 -0
  29. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/basic/06-type/result.json +0 -0
  30. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complete/playground/main.bicep +0 -0
  31. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complete/playground/result-line-numbers.json +0 -0
  32. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complete/playground/result.json +0 -0
  33. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/01-param-decorator/main.bicep +0 -0
  34. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/01-param-decorator/result.json +0 -0
  35. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/02-resource-module-decorator/main.bicep +0 -0
  36. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/02-resource-module-decorator/result.json +0 -0
  37. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/03-resource-existing/main.bicep +0 -0
  38. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/03-resource-existing/result.json +0 -0
  39. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/04-child-resource/main.bicep +0 -0
  40. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/04-child-resource/result.json +0 -0
  41. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/05-deploy-condition/main.bicep +0 -0
  42. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/05-deploy-condition/result.json +0 -0
  43. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/06-output-decorator/main.bicep +0 -0
  44. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/06-output-decorator/result.json +0 -0
  45. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/07-module-alias/main.bicep +0 -0
  46. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/07-module-alias/result.json +0 -0
  47. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/08-var-decorator/main.bicep +0 -0
  48. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/08-var-decorator/result.json +0 -0
  49. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/09-metadata/main.bicep +0 -0
  50. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/09-metadata/result.json +0 -0
  51. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/10-extension/main.bicep +0 -0
  52. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/10-extension/result.json +0 -0
  53. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/11-typed-var/main.bicep +0 -0
  54. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/11-typed-var/result.json +0 -0
  55. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/12-nullable-type/main.bicep +0 -0
  56. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/12-nullable-type/result.json +0 -0
  57. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/13-import/main.bicep +0 -0
  58. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/13-import/result.json +0 -0
  59. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/14-type-decorator/main.bicep +0 -0
  60. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/complex/14-type-decorator/result.json +0 -0
  61. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/invalid/invalid_multi_line.bicep +0 -0
  62. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/loop/array/main.bicep +0 -0
  63. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/loop/array/result.json +0 -0
  64. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/loop/array-index/main.bicep +0 -0
  65. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/loop/array-index/result.json +0 -0
  66. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/loop/array-w-newline/main.bicep +0 -0
  67. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/loop/array-w-newline/result.json +0 -0
  68. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/loop/child/main.bicep +0 -0
  69. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/loop/child/result.json +0 -0
  70. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/loop/condition/main.bicep +0 -0
  71. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/loop/condition/result.json +0 -0
  72. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/loop/object/main.bicep +0 -0
  73. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/loop/object/result.json +0 -0
  74. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/scope/management_group/main.bicep +0 -0
  75. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/scope/management_group/result.json +0 -0
  76. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/scope/resource_group/main.bicep +0 -0
  77. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/scope/resource_group/result.json +0 -0
  78. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/scope/subscription/main.bicep +0 -0
  79. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/scope/subscription/result.json +0 -0
  80. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/scope/tenant/main.bicep +0 -0
  81. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/examples/scope/tenant/result.json +0 -0
  82. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/__init__.py +0 -0
  83. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/any/any/main.bicep +0 -0
  84. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/any/any/result.json +0 -0
  85. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/array/main.bicep +0 -0
  86. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/array/result.json +0 -0
  87. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/concat/main.bicep +0 -0
  88. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/concat/result.json +0 -0
  89. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/contains/main.bicep +0 -0
  90. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/contains/result.json +0 -0
  91. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/empty/main.bicep +0 -0
  92. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/empty/result.json +0 -0
  93. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/first/main.bicep +0 -0
  94. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/first/result.json +0 -0
  95. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/flatten/main.bicep +0 -0
  96. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/flatten/result.json +0 -0
  97. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/intersection/main.bicep +0 -0
  98. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/intersection/result.json +0 -0
  99. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/last/main.bicep +0 -0
  100. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/last/result.json +0 -0
  101. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/length/main.bicep +0 -0
  102. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/length/result.json +0 -0
  103. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/max/main.bicep +0 -0
  104. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/max/result.json +0 -0
  105. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/min/main.bicep +0 -0
  106. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/min/result.json +0 -0
  107. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/skip/main.bicep +0 -0
  108. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/skip/result.json +0 -0
  109. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/take/main.bicep +0 -0
  110. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/take/result.json +0 -0
  111. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/union/main.bicep +0 -0
  112. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/array/union/result.json +0 -0
  113. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/date/date_time_add/main.bicep +0 -0
  114. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/date/date_time_add/result.json +0 -0
  115. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/date/date_time_from_epoch/main.bicep +0 -0
  116. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/date/date_time_from_epoch/result.json +0 -0
  117. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/date/date_time_to_epoch/main.bicep +0 -0
  118. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/date/date_time_to_epoch/result.json +0 -0
  119. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/date/utc_now/main.bicep +0 -0
  120. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/date/utc_now/result.json +0 -0
  121. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/deployment/deployment/main.bicep +0 -0
  122. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/deployment/deployment/result.json +0 -0
  123. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/deployment/environment/main.bicep +0 -0
  124. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/deployment/environment/result.json +0 -0
  125. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/file/load_file_as_base64/main.bicep +0 -0
  126. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/file/load_file_as_base64/result.json +0 -0
  127. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/file/load_json_content/main.bicep +0 -0
  128. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/file/load_json_content/result.json +0 -0
  129. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/file/load_text_content/main.bicep +0 -0
  130. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/file/load_text_content/result.json +0 -0
  131. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/file/load_yaml_content/main.bicep +0 -0
  132. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/file/load_yaml_content/result.json +0 -0
  133. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/lambda/filter/main.bicep +0 -0
  134. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/lambda/filter/result.json +0 -0
  135. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/logical/bool/main.bicep +0 -0
  136. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/logical/bool/result.json +0 -0
  137. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/numeric/int/main.bicep +0 -0
  138. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/numeric/int/result.json +0 -0
  139. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/object/json/main.bicep +0 -0
  140. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/object/json/result.json +0 -0
  141. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/extension_resource_id/main.bicep +0 -0
  142. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/extension_resource_id/result.json +0 -0
  143. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/list_keys/main.bicep +0 -0
  144. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/list_keys/result.json +0 -0
  145. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/management_group_resource_id/main.bicep +0 -0
  146. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/management_group_resource_id/result.json +0 -0
  147. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/pick_zones/main.bicep +0 -0
  148. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/pick_zones/result.json +0 -0
  149. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/reference/main.bicep +0 -0
  150. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/reference/result.json +0 -0
  151. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/resource_id/main.bicep +0 -0
  152. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/resource_id/result.json +0 -0
  153. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/subscription_resource_id/main.bicep +0 -0
  154. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/subscription_resource_id/result.json +0 -0
  155. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/tenant_resource_id/main.bicep +0 -0
  156. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/resource/tenant_resource_id/result.json +0 -0
  157. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/scope/management_group/main.bicep +0 -0
  158. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/scope/management_group/result.json +0 -0
  159. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/scope/resource_group/main.bicep +0 -0
  160. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/scope/resource_group/result.json +0 -0
  161. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/scope/subscription/main.bicep +0 -0
  162. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/scope/subscription/result.json +0 -0
  163. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/scope/tenant/main.bicep +0 -0
  164. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/scope/tenant/result.json +0 -0
  165. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/base64/main.bicep +0 -0
  166. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/base64/result.json +0 -0
  167. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/base64_to_json/main.bicep +0 -0
  168. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/base64_to_json/result.json +0 -0
  169. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/base64_to_string/main.bicep +0 -0
  170. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/base64_to_string/result.json +0 -0
  171. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/data_uri/main.bicep +0 -0
  172. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/data_uri/result.json +0 -0
  173. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/data_uri_to_string/main.bicep +0 -0
  174. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/data_uri_to_string/result.json +0 -0
  175. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/ends_with/main.bicep +0 -0
  176. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/ends_with/result.json +0 -0
  177. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/format/main.bicep +0 -0
  178. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/format/result.json +0 -0
  179. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/guid/main.bicep +0 -0
  180. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/guid/result.json +0 -0
  181. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/index_of/main.bicep +0 -0
  182. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/index_of/result.json +0 -0
  183. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/join/main.bicep +0 -0
  184. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/join/result.json +0 -0
  185. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/last_index_of/main.bicep +0 -0
  186. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/last_index_of/result.json +0 -0
  187. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/new_guid/main.bicep +0 -0
  188. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/new_guid/result.json +0 -0
  189. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/pad_left/main.bicep +0 -0
  190. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/pad_left/result.json +0 -0
  191. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/replace/main.bicep +0 -0
  192. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/replace/result.json +0 -0
  193. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/split/main.bicep +0 -0
  194. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/split/result.json +0 -0
  195. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/starts_with/main.bicep +0 -0
  196. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/starts_with/result.json +0 -0
  197. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/string/main.bicep +0 -0
  198. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/string/result.json +0 -0
  199. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/substring/main.bicep +0 -0
  200. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/substring/result.json +0 -0
  201. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/to_lower/main.bicep +0 -0
  202. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/to_lower/result.json +0 -0
  203. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/to_upper/main.bicep +0 -0
  204. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/to_upper/result.json +0 -0
  205. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/trim/main.bicep +0 -0
  206. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/trim/result.json +0 -0
  207. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/unique_string/main.bicep +0 -0
  208. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/unique_string/result.json +0 -0
  209. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/uri/main.bicep +0 -0
  210. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/uri/result.json +0 -0
  211. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/uri_component/main.bicep +0 -0
  212. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/uri_component/result.json +0 -0
  213. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/uri_component_to_string/main.bicep +0 -0
  214. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/examples/string/uri_component_to_string/result.json +0 -0
  215. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/test_parse_any.py +0 -0
  216. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/test_parse_array.py +0 -0
  217. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/test_parse_date.py +0 -0
  218. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/test_parse_deployment.py +0 -0
  219. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/test_parse_file.py +0 -0
  220. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/test_parse_lambda.py +0 -0
  221. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/test_parse_logical.py +0 -0
  222. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/test_parse_numeric.py +0 -0
  223. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/test_parse_object.py +0 -0
  224. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/test_parse_resource.py +0 -0
  225. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/test_parse_scope.py +0 -0
  226. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_function/test_parse_string.py +0 -0
  227. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_main.py +0 -0
  228. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/accessor/function/main.bicep +0 -0
  229. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/accessor/function/result.json +0 -0
  230. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/accessor/index/main.bicep +0 -0
  231. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/accessor/index/result.json +0 -0
  232. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/accessor/nested_resource/main.bicep +0 -0
  233. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/accessor/nested_resource/result.json +0 -0
  234. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/accessor/non_null/main.bicep +0 -0
  235. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/accessor/non_null/result.json +0 -0
  236. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/accessor/property/main.bicep +0 -0
  237. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/accessor/property/result.json +0 -0
  238. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/equals/main.bicep +0 -0
  239. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/equals/result.json +0 -0
  240. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/equals_case_insensitive/main.bicep +0 -0
  241. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/equals_case_insensitive/result.json +0 -0
  242. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/greater_than/main.bicep +0 -0
  243. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/greater_than/result.json +0 -0
  244. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/greater_than_or_equals/main.bicep +0 -0
  245. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/greater_than_or_equals/result.json +0 -0
  246. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/less_than/main.bicep +0 -0
  247. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/less_than/result.json +0 -0
  248. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/less_than_or_equals/main.bicep +0 -0
  249. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/less_than_or_equals/result.json +0 -0
  250. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/not_equals/main.bicep +0 -0
  251. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/not_equals/result.json +0 -0
  252. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/not_equals_case_insensitive/main.bicep +0 -0
  253. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/comparison/not_equals_case_insensitive/result.json +0 -0
  254. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/logical/and/main.bicep +0 -0
  255. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/logical/and/result.json +0 -0
  256. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/logical/coalesce/main.bicep +0 -0
  257. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/logical/coalesce/result.json +0 -0
  258. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/logical/conditional/main.bicep +0 -0
  259. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/logical/conditional/result.json +0 -0
  260. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/logical/not/main.bicep +0 -0
  261. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/logical/not/result.json +0 -0
  262. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/logical/or/main.bicep +0 -0
  263. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/logical/or/result.json +0 -0
  264. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/numeric/add/main.bicep +0 -0
  265. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/numeric/add/result.json +0 -0
  266. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/numeric/divide/main.bicep +0 -0
  267. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/numeric/divide/result.json +0 -0
  268. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/numeric/minus/main.bicep +0 -0
  269. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/numeric/minus/result.json +0 -0
  270. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/numeric/modulo/main.bicep +0 -0
  271. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/numeric/modulo/result.json +0 -0
  272. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/numeric/multiply/main.bicep +0 -0
  273. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/numeric/multiply/result.json +0 -0
  274. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/numeric/substract/main.bicep +0 -0
  275. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/numeric/substract/result.json +0 -0
  276. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/safe_dereference/main.bicep +0 -0
  277. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/examples/safe_dereference/result.json +0 -0
  278. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/test_parse_accessor.py +0 -0
  279. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/test_parse_comparison.py +0 -0
  280. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/test_parse_logical.py +0 -0
  281. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/test_parse_numeric.py +0 -0
  282. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_operator/test_parse_safe_dereference.py +0 -0
  283. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_parse_general.py +0 -0
  284. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_parse_loop.py +0 -0
  285. {pycep_parser-0.7.0.dev5 → pycep_parser-0.7.0.dev6}/tests/test_parse_scope.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycep-parser
3
- Version: 0.7.0.dev5
3
+ Version: 0.7.0.dev6
4
4
  Summary: A Python based Bicep parser
5
5
  Keywords: bicep,parser,lark
6
6
  Author: Anton Grübel
@@ -14,7 +14,7 @@ element: "targetScope" "=" QUOTED_INTERPOLATION
14
14
  ?value: _NEWLINE? "null" -> null
15
15
  | _NEWLINE? "true" -> true
16
16
  | _NEWLINE? "false" -> false
17
- | _NEWLINE? INT -> int
17
+ | _NEWLINE? INT -> int_type
18
18
  | _NEWLINE? STRING -> string
19
19
  | _NEWLINE? QUOTED_INTERPOLATION -> string
20
20
  | MULTI_LINE_STRING -> multi_line_string
@@ -14,7 +14,7 @@ if TYPE_CHECKING:
14
14
  from pycep import typing as pycep_typing
15
15
 
16
16
 
17
- LARK_GRAMMAR = (files(__package__) / "bicep.lark").read_text()
17
+ LARK_GRAMMAR = (files(__package__) / "bicep.lark").read_text() # ty: ignore[invalid-argument-type] # can't be `None` here
18
18
 
19
19
 
20
20
  class BicepParser:
@@ -62,9 +62,9 @@ def deco_min_val(_deco_name: str, args: tuple[int | dict[str, Any]]) -> pycep_ty
62
62
  if isinstance(arg, dict) and (operator := arg.get("operator", {})).get("type") == "minus":
63
63
  arg = operator["operands"]["integer_value"] * -1
64
64
 
65
- return {
65
+ return { # ty: ignore[invalid-return-type] # there is no real issue if this returns a dict
66
66
  "type": "min_value",
67
- "argument": arg, # type: ignore[typeddict-item] # there is no real issue, if this returns a dict
67
+ "argument": arg, # ty: ignore[invalid-argument-type]
68
68
  }
69
69
 
70
70
 
@@ -45,11 +45,11 @@ def array_func(_func_name: str, args: tuple[pycep_typing.PossibleValue, ...]) ->
45
45
  def concat(_func_name: str, args: tuple[pycep_typing.PossibleValue, ...]) -> pycep_typing.Concat:
46
46
  arg_1, *arg_x = args
47
47
 
48
- return {
48
+ return { # ty: ignore[invalid-return-type] # dynamic operand creation
49
49
  "type": "concat",
50
- "parameters": {
50
+ "parameters": { # ty: ignore[missing-typed-dict-key]
51
51
  "arg_1": arg_1,
52
- **{f"arg_{idx + 2}": arg for idx, arg in enumerate(arg_x)}, # type: ignore[typeddict-item] # dynamic operand creation
52
+ **{f"arg_{idx + 2}": arg for idx, arg in enumerate(arg_x)},
53
53
  },
54
54
  }
55
55
 
@@ -103,7 +103,7 @@ def intersection(_func_name: str, args: tuple[str, ...]) -> pycep_typing.Interse
103
103
  "parameters": {
104
104
  "arg_1": arg_1,
105
105
  "arg_2": arg_2,
106
- **{f"arg_{idx + 3}": arg for idx, arg in enumerate(arg_x)}, # type: ignore[typeddict-item] # dynamic operand creation
106
+ **{f"arg_{idx + 3}": arg for idx, arg in enumerate(arg_x)},
107
107
  },
108
108
  }
109
109
 
@@ -131,11 +131,11 @@ def length(_func_name: str, args: tuple[pycep_typing.PossibleValue]) -> pycep_ty
131
131
  def max_func(_func_name: str, args: tuple[pycep_typing.PossibleValue, ...]) -> pycep_typing.Max:
132
132
  arg_1, *arg_x = args
133
133
 
134
- return {
134
+ return { # ty: ignore[invalid-return-type] # dynamic operand creation
135
135
  "type": "max",
136
- "parameters": {
136
+ "parameters": { # ty: ignore[missing-typed-dict-key]
137
137
  "arg_1": arg_1,
138
- **{f"arg_{idx + 2}": arg for idx, arg in enumerate(arg_x)}, # type: ignore[typeddict-item] # dynamic operand creation
138
+ **{f"arg_{idx + 2}": arg for idx, arg in enumerate(arg_x)},
139
139
  },
140
140
  }
141
141
 
@@ -143,11 +143,11 @@ def max_func(_func_name: str, args: tuple[pycep_typing.PossibleValue, ...]) -> p
143
143
  def min_func(_func_name: str, args: tuple[pycep_typing.PossibleValue, ...]) -> pycep_typing.Min:
144
144
  arg_1, *arg_x = args
145
145
 
146
- return {
146
+ return { # ty: ignore[invalid-return-type] # dynamic operand creation
147
147
  "type": "min",
148
- "parameters": {
148
+ "parameters": { # ty: ignore[missing-typed-dict-key]
149
149
  "arg_1": arg_1,
150
- **{f"arg_{idx + 2}": arg for idx, arg in enumerate(arg_x)}, # type: ignore[typeddict-item] # dynamic operand creation
150
+ **{f"arg_{idx + 2}": arg for idx, arg in enumerate(arg_x)},
151
151
  },
152
152
  }
153
153
 
@@ -195,7 +195,7 @@ def union(_func_name: str, args: tuple[str, ...]) -> pycep_typing.UnionFunc:
195
195
  "parameters": {
196
196
  "arg_1": arg_1,
197
197
  "arg_2": arg_2,
198
- **{f"arg_{idx + 3}": arg for idx, arg in enumerate(arg_x)}, # type: ignore[typeddict-item] # dynamic operand creation
198
+ **{f"arg_{idx + 3}": arg for idx, arg in enumerate(arg_x)},
199
199
  },
200
200
  }
201
201
 
@@ -588,13 +588,11 @@ def resource_id(_func_name: str, args: list[Token]) -> pycep_typing.ResourceId:
588
588
  # resource_name_1 = args[3]
589
589
  # resource_name_2 = args[4]
590
590
 
591
- return {
591
+ return { # ty: ignore[invalid-return-type] # dynamic operand creation
592
592
  "type": "resource_id",
593
- "parameters": {
593
+ "parameters": { # ty: ignore[missing-typed-dict-key]
594
594
  "resource_type": resource_type,
595
- **{ # type: ignore[typeddict-item] # dynamic operand creation
596
- f"resource_name_{idx}": resource_name for idx, resource_name in enumerate(args[3:], start=1)
597
- },
595
+ **{f"resource_name_{idx}": resource_name for idx, resource_name in enumerate(args[3:], start=1)},
598
596
  "resource_group_name": resource_group_name,
599
597
  "subscription_id": subscription_id,
600
598
  },
@@ -793,11 +791,11 @@ def ends_with(
793
791
  def format_func(_func_name: str, args: tuple[pycep_typing.PossibleValue, ...]) -> pycep_typing.Format:
794
792
  format_string, *arg_x = args
795
793
 
796
- return {
794
+ return { # ty: ignore[invalid-return-type] # dynamic operand creation
797
795
  "type": "format",
798
- "parameters": {
796
+ "parameters": { # ty: ignore[missing-typed-dict-key]
799
797
  "format_string": format_string,
800
- **{f"arg_{idx + 1}": extra for idx, extra in enumerate(arg_x)}, # type: ignore[typeddict-item] # dynamic operand creation
798
+ **{f"arg_{idx + 1}": extra for idx, extra in enumerate(arg_x)},
801
799
  },
802
800
  }
803
801
 
@@ -809,7 +807,7 @@ def guid(_func_name: str, args: tuple[pycep_typing.PossibleValue, ...]) -> pycep
809
807
  "type": "guid",
810
808
  "parameters": {
811
809
  "base_string": base_string,
812
- **{f"extra_string_{idx + 1}": extra for idx, extra in enumerate(extra_string_x)}, # type: ignore[typeddict-item] # dynamic operand creation
810
+ **{f"extra_string_{idx + 1}": extra for idx, extra in enumerate(extra_string_x)},
813
811
  },
814
812
  }
815
813
 
@@ -970,7 +968,7 @@ def unique_string(_func_name: str, args: tuple[pycep_typing.PossibleValue, ...])
970
968
  "type": "unique_string",
971
969
  "parameters": {
972
970
  "base_string": base_string,
973
- **{f"extra_string_{idx + 1}": extra for idx, extra in enumerate(extra_string_x)}, # type: ignore[typeddict-item] # dynamic operand creation
971
+ **{f"extra_string_{idx + 1}": extra for idx, extra in enumerate(extra_string_x)},
974
972
  },
975
973
  }
976
974
 
@@ -1015,9 +1013,9 @@ def uri_component_to_string(
1015
1013
 
1016
1014
 
1017
1015
  def unknown_func(func_name: str, args: tuple[pycep_typing.PossibleValue, ...]) -> pycep_typing.UnknownFunction:
1018
- return {
1016
+ return { # ty: ignore[invalid-return-type] # dynamic operand creation
1019
1017
  "type": func_name,
1020
- "parameters": {f"arg_{idx + 1}": arg for idx, arg in enumerate(args)}, # type: ignore[typeddict-item] # dynamic operand creation
1018
+ "parameters": {f"arg_{idx + 1}": arg for idx, arg in enumerate(args)}, # ty: ignore[invalid-argument-type]
1021
1019
  }
1022
1020
 
1023
1021
 
@@ -63,7 +63,7 @@ class BicepToJson(Transformer[Token, pycep_typing.BicepJson]):
63
63
  # very unlikely this will happen in a real Bicep file, but in test files possible
64
64
  continue
65
65
  for key, value in arg.items():
66
- result.setdefault(key, {})[value["__name__"]] = value["__attrs__"] # type: ignore[misc, index]
66
+ result.setdefault(key, {})[value["__name__"]] = value["__attrs__"] # ty: ignore[non-subscriptable, no-matching-overload]
67
67
 
68
68
  return result
69
69
 
@@ -117,7 +117,7 @@ class BicepToJson(Transformer[Token, pycep_typing.BicepJson]):
117
117
  *name_alias_pairs, file_path = args
118
118
 
119
119
  for name_alias in name_alias_pairs:
120
- result = {
120
+ result: pycep_typing._Import = {
121
121
  "__name__": str(name_alias["name"]),
122
122
  "__attrs__": {
123
123
  "file_path": transform_string_token(file_path),
@@ -321,7 +321,8 @@ class BicepToJson(Transformer[Token, pycep_typing.BicepJson]):
321
321
  "__name__": str(name),
322
322
  "__attrs__": {
323
323
  "decorators": decorators or [],
324
- **path, # type: ignore[typeddict-item] # start and end line are not-required
324
+ "type": path["type"],
325
+ "detail": path["detail"],
325
326
  "config": config,
326
327
  },
327
328
  }
@@ -682,7 +683,7 @@ class BicepToJson(Transformer[Token, pycep_typing.BicepJson]):
682
683
  "operands": {
683
684
  "operand_1": operand_1,
684
685
  "operand_2": operand_2,
685
- **{f"operand_{idx + 3}": op for idx, op in enumerate(operand_x)}, # type: ignore[typeddict-item] # dynamic operand creation
686
+ **{f"operand_{idx + 3}": op for idx, op in enumerate(operand_x)},
686
687
  },
687
688
  }
688
689
 
@@ -694,7 +695,7 @@ class BicepToJson(Transformer[Token, pycep_typing.BicepJson]):
694
695
  "operands": {
695
696
  "operand_1": operand_1,
696
697
  "operand_2": operand_2,
697
- **{f"operand_{idx + 3}": op for idx, op in enumerate(operand_x)}, # type: ignore[typeddict-item] # dynamic operand creation
698
+ **{f"operand_{idx + 3}": op for idx, op in enumerate(operand_x)},
698
699
  },
699
700
  }
700
701
 
@@ -714,7 +715,7 @@ class BicepToJson(Transformer[Token, pycep_typing.BicepJson]):
714
715
  "operands": {
715
716
  "operand_1": operand_1,
716
717
  "operand_2": operand_2,
717
- **{f"operand_{idx + 3}": op for idx, op in enumerate(operand_x)}, # type: ignore[typeddict-item] # dynamic operand creation
718
+ **{f"operand_{idx + 3}": op for idx, op in enumerate(operand_x)},
718
719
  },
719
720
  }
720
721
 
@@ -820,7 +821,7 @@ class BicepToJson(Transformer[Token, pycep_typing.BicepJson]):
820
821
  "operands": {
821
822
  "operand_1": arg_1,
822
823
  "func_name": str(func_name),
823
- **{f"operand_{idx + 2}": extra for idx, extra in enumerate(arg_x) if extra}, # type: ignore[typeddict-item] # dynamic operand creation
824
+ **{f"operand_{idx + 2}": extra for idx, extra in enumerate(arg_x) if extra},
824
825
  },
825
826
  }
826
827
 
@@ -855,7 +856,7 @@ class BicepToJson(Transformer[Token, pycep_typing.BicepJson]):
855
856
  def key(self, arg: tuple[Token]) -> str:
856
857
  return str(arg[0])
857
858
 
858
- def int(self, arg: tuple[Token]) -> int:
859
+ def int_type(self, arg: tuple[Token]) -> int:
859
860
  return int(arg[0])
860
861
 
861
862
  def string(self, arg: tuple[Token]) -> str:
@@ -880,7 +881,7 @@ class BicepToJson(Transformer[Token, pycep_typing.BicepJson]):
880
881
  "type": "lambda_expression",
881
882
  "detail": {
882
883
  "var_1": str(arg_1),
883
- **{f"var_{idx + 2}": str(arg) for idx, arg in enumerate(arg_x)}, # type: ignore[typeddict-item] # dynamic variable creation
884
+ **{f"var_{idx + 2}": str(arg) for idx, arg in enumerate(arg_x)},
884
885
  "expression": expr,
885
886
  },
886
887
  }
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pycep-parser"
3
- version = "0.7.0.dev5"
3
+ version = "0.7.0.dev6"
4
4
  description = "A Python based Bicep parser"
5
5
  authors = [
6
6
  { name = "Anton Grübel", email = "anton.gruebel@gmail.com" }
@@ -37,8 +37,9 @@ Releases = "https://github.com/gruebel/pycep/releases"
37
37
  [dependency-groups]
38
38
  dev = [
39
39
  "assertpy>=1.1,<2.0",
40
- "prek>=0.2.18,<0.3.0",
40
+ "prek>=0.2.22,<0.3.0",
41
41
  "pytest>=8.4.2,<9.0.0",
42
+ "ty>=0.0.3,<0.1.0",
42
43
  ]
43
44
 
44
45
  [build-system]
@@ -53,23 +54,6 @@ source-include = ["tests/**"]
53
54
  [tool.uv]
54
55
  required-version = "~=0.9.0"
55
56
 
56
- [tool.mypy]
57
- files = "pycep"
58
-
59
- python_version = "3.9"
60
- local_partial_types = true # will become the new default from version 2
61
- allow_redefinition_new = true # will become the new default from version 2
62
- fixed_format_cache = true # new caching mechanism
63
- pretty = true
64
- strict = true
65
- implicit_reexport = true
66
-
67
- [[tool.mypy.overrides]]
68
- module = [
69
- "assertpy"
70
- ]
71
- ignore_missing_imports = true
72
-
73
57
  [tool.ruff]
74
58
  exclude = [
75
59
  ".git",
@@ -129,3 +113,15 @@ ignore = [
129
113
  ]
130
114
 
131
115
  fixable = ["I001"]
116
+
117
+ [tool.ty.environment]
118
+ python-version = "3.9"
119
+
120
+ [tool.ty.src]
121
+ include = [
122
+ "pycep",
123
+ "tests",
124
+ ]
125
+
126
+ [tool.ty.rules]
127
+ unused-ignore-comment = "error"