onnxscript 0.7.2.dev20260825__tar.gz → 0.7.2.dev20260903__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 (203) hide show
  1. {onnxscript-0.7.2.dev20260825/onnxscript.egg-info → onnxscript-0.7.2.dev20260903}/PKG-INFO +2 -2
  2. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_framework_apis/torch_2_5.py +6 -2
  3. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/ops/core.py +128 -16
  4. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_fuse_batchnorm.py +10 -2
  5. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/version_converter/_version_converter.py +8 -5
  6. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903/onnxscript.egg-info}/PKG-INFO +2 -2
  7. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/LICENSE +0 -0
  8. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/MANIFEST.in +0 -0
  9. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/README.md +0 -0
  10. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/VERSION +0 -0
  11. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/__init__.py +0 -0
  12. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_framework_apis/__init__.py +0 -0
  13. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_framework_apis/torch_2_11.py +0 -0
  14. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_framework_apis/torch_2_6.py +0 -0
  15. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_framework_apis/torch_2_7.py +0 -0
  16. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_framework_apis/torch_2_8.py +0 -0
  17. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_framework_apis/torch_2_9.py +0 -0
  18. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/__init__.py +0 -0
  19. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/_inference.py +0 -0
  20. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/_inliner.py +0 -0
  21. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/analysis.py +0 -0
  22. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/ast_utils.py +0 -0
  23. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/autocast.py +0 -0
  24. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/builder.py +0 -0
  25. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/converter.py +0 -0
  26. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/deprecation.py +0 -0
  27. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/evaluator.py +0 -0
  28. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/irbuilder.py +0 -0
  29. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/main.py +0 -0
  30. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/param_manipulation.py +0 -0
  31. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/sourceinfo.py +0 -0
  32. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/tape_builder.py +0 -0
  33. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/type_annotation.py +0 -0
  34. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/utils.py +0 -0
  35. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/values.py +0 -0
  36. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/_internal/version_utils.py +0 -0
  37. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/backend/__init__.py +0 -0
  38. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/backend/onnx_backend.py +0 -0
  39. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/backend/onnx_export.py +0 -0
  40. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/evaluator.py +0 -0
  41. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/tools/torch_lib/deduce_type_constraints.py +0 -0
  42. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/tools/torch_lib/generate_aten_signatures.py +0 -0
  43. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/tools/torch_lib/generate_prims_signatures.py +0 -0
  44. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/__init__.py +0 -0
  45. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/_constants.py +0 -0
  46. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/_flags.py +0 -0
  47. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/graph_building/__init__.py +0 -0
  48. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/ops/__init__.py +0 -0
  49. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/ops/common.py +0 -0
  50. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/ops/fft.py +0 -0
  51. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/ops/linalg.py +0 -0
  52. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/ops/nested.py +0 -0
  53. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/ops/nn.py +0 -0
  54. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/ops/prims.py +0 -0
  55. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/ops/quantized_decomposed.py +0 -0
  56. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/ops/sparse.py +0 -0
  57. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/ops/special.py +0 -0
  58. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/ops/vision.py +0 -0
  59. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/registration.py +0 -0
  60. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/function_libs/torch_lib/tensor_typing.py +0 -0
  61. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/ir/__init__.py +0 -0
  62. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/ir/_schemas.py +0 -0
  63. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/ir/convenience.py +0 -0
  64. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/ir/passes/__init__.py +0 -0
  65. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/ir/passes/common/__init__.py +0 -0
  66. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/nn/__init__.py +0 -0
  67. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/nn/_module.py +0 -0
  68. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/nn/_module_list.py +0 -0
  69. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/nn/_parameter.py +0 -0
  70. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/nn/_sequential.py +0 -0
  71. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/__init__.py +0 -0
  72. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset1.py +0 -0
  73. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset10.py +0 -0
  74. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset11.py +0 -0
  75. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset12.py +0 -0
  76. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset13.py +0 -0
  77. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset14.py +0 -0
  78. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset15.py +0 -0
  79. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset16.py +0 -0
  80. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset17.py +0 -0
  81. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset18.py +0 -0
  82. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset19.py +0 -0
  83. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset2.py +0 -0
  84. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset20.py +0 -0
  85. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset21.py +0 -0
  86. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset22.py +0 -0
  87. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset23.py +0 -0
  88. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset24.py +0 -0
  89. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset25.py +0 -0
  90. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset26.py +0 -0
  91. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset27.py +0 -0
  92. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset3.py +0 -0
  93. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset4.py +0 -0
  94. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset5.py +0 -0
  95. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset6.py +0 -0
  96. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset7.py +0 -0
  97. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset8.py +0 -0
  98. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset9.py +0 -0
  99. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset_ai_onnx_ml1.py +0 -0
  100. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset_ai_onnx_ml2.py +0 -0
  101. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset_ai_onnx_ml3.py +0 -0
  102. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset_ai_onnx_ml4.py +0 -0
  103. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset_ai_onnx_ml5.py +0 -0
  104. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_opset/_impl/opset_ai_onnx_preview1.py +0 -0
  105. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/onnx_types.py +0 -0
  106. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/optimizer/__init__.py +0 -0
  107. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/optimizer/_constant_folding.py +0 -0
  108. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/optimizer/_optimizer.py +0 -0
  109. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/py.typed +0 -0
  110. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/__init__.py +0 -0
  111. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/_basics.py +0 -0
  112. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/_context.py +0 -0
  113. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/_fusion_utils.py +0 -0
  114. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/_ir_utils.py +0 -0
  115. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/_matcher.py +0 -0
  116. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/_pattern_ir.py +0 -0
  117. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/_rewrite_rule.py +0 -0
  118. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/models/_bart_encoder.py +0 -0
  119. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/models/_phi2lm.py +0 -0
  120. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/models/_phi4lm.py +0 -0
  121. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/models/_rotary_embedding_models.py +0 -0
  122. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/models/_smollm_1.py +0 -0
  123. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/models/_smollm_2.py +0 -0
  124. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/models/_test_models.py +0 -0
  125. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/models/_whisper_decoder.py +0 -0
  126. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/models/_whisper_encoder.py +0 -0
  127. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/onnx_fusions/__init__.py +0 -0
  128. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/onnx_fusions/_onnx_fusions.py +0 -0
  129. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/onnxruntime/__init__.py +0 -0
  130. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/onnxruntime/bfloat16_utils/bfloat16_converter.py +0 -0
  131. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/__init__.py +0 -0
  132. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/_core.py +0 -0
  133. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/_test_utils.py +0 -0
  134. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/attention.py +0 -0
  135. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/bias_gelu.py +0 -0
  136. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/cos_sin_cache.py +0 -0
  137. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/erfgelu.py +0 -0
  138. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/fused_matmul_rule_sets.py +0 -0
  139. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/gelu.py +0 -0
  140. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/gqa.py +0 -0
  141. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/gqa_packed_qkv.py +0 -0
  142. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/group_normalization_merge_silu.py +0 -0
  143. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/instance_to_group_normalization.py +0 -0
  144. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/mha.py +0 -0
  145. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/mha_bias.py +0 -0
  146. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/mha_scale.py +0 -0
  147. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/rms_normalization.py +0 -0
  148. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/rotary_embedding.py +0 -0
  149. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/sdpa.py +0 -0
  150. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/sdpa_via_mha.py +0 -0
  151. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/shape_optimization.py +0 -0
  152. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/skip_normalization.py +0 -0
  153. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/ort_fusions/softmax.py +0 -0
  154. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/pattern.py +0 -0
  155. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/__init__.py +0 -0
  156. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/__init__.py +0 -0
  157. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_basic_rules.py +0 -0
  158. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_broadcast_to_matmul.py +0 -0
  159. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_cast_constant_of_shape.py +0 -0
  160. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_collapse_slices.py +0 -0
  161. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_fuse_conv_affine.py +0 -0
  162. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_fuse_hardswish.py +0 -0
  163. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_fuse_pad_into_conv.py +0 -0
  164. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_fuse_relus_clips.py +0 -0
  165. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_gemm_to_matmul_add.py +0 -0
  166. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_materialize_reshape_shape.py +0 -0
  167. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_matmul_add_to_gemm.py +0 -0
  168. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_min_max_to_clip.py +0 -0
  169. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_no_op.py +0 -0
  170. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_redundant_scatter_nd.py +0 -0
  171. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_remove_expand_before_binary_op.py +0 -0
  172. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/common/_remove_optional_bias.py +0 -0
  173. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/fusion/__init__.py +0 -0
  174. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/fusion/_gqa.py +0 -0
  175. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/fusion/_layer_norm.py +0 -0
  176. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/fusion/_rms_normalization.py +0 -0
  177. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/rules/fusion/_rotary_embedding.py +0 -0
  178. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/rewriter/testing.py +0 -0
  179. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/tensor.py +0 -0
  180. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/testing/__init__.py +0 -0
  181. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/tools/__init__.py +0 -0
  182. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/tools/memory_peak.py +0 -0
  183. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/tools/transformers_models/__init__.py +0 -0
  184. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/tools/transformers_models/llama.py +0 -0
  185. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/tools/transformers_models/mistral.py +0 -0
  186. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/tools/transformers_models/phi.py +0 -0
  187. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/tools/transformers_models/phi3.py +0 -0
  188. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/utils/__init__.py +0 -0
  189. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/utils/evaluation_utils.py +0 -0
  190. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/utils/metadata_merger.py +0 -0
  191. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/utils/replace.py +0 -0
  192. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/utils/timing_utils.py +0 -0
  193. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/utils/utils.py +0 -0
  194. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/values.py +0 -0
  195. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/version_converter/__init__.py +0 -0
  196. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript/version_converter/_c_api_utils.py +0 -0
  197. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript.egg-info/SOURCES.txt +0 -0
  198. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript.egg-info/dependency_links.txt +0 -0
  199. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript.egg-info/requires.txt +0 -0
  200. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/onnxscript.egg-info/top_level.txt +0 -0
  201. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/pyproject.toml +0 -0
  202. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/setup.cfg +0 -0
  203. {onnxscript-0.7.2.dev20260825 → onnxscript-0.7.2.dev20260903}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: onnxscript
3
- Version: 0.7.2.dev20260825
3
+ Version: 0.7.2.dev20260903
4
4
  Summary: Naturally author ONNX functions and models using a subset of Python
5
5
  Author-email: Microsoft Corporation <onnx@microsoft.com>
6
6
  License: MIT License
@@ -27,7 +27,7 @@ License: MIT License
27
27
 
28
28
  Project-URL: Homepage, https://microsoft.github.io/onnxscript/
29
29
  Project-URL: Repository, https://github.com/microsoft/onnxscript
30
- Project-URL: Commit, https://github.com/microsoft/onnxscript/tree/f78d33b568ec88ea78c3e5fbac89f703963f0e29
30
+ Project-URL: Commit, https://github.com/microsoft/onnxscript/tree/b4c10fab5b65d7f15bbaadae89512ba4fba74745
31
31
  Classifier: Development Status :: 4 - Beta
32
32
  Classifier: Environment :: Console
33
33
  Classifier: Intended Audience :: Developers
@@ -59,9 +59,13 @@ def convert_version(model: ir.Model, target_version: int) -> ir.Model:
59
59
 
60
60
 
61
61
  def check_model(model: ir.Model) -> None:
62
- """Check the model."""
62
+ """No-op retained for API compatibility.
63
63
 
64
- del model # Unused yet
64
+ This intentionally performs no validation. Running the ONNX checker here was
65
+ dropped because it can report false positives and adds overhead to export.
66
+ """
67
+
68
+ del model # Intentionally unused: this function performs no validation.
65
69
 
66
70
 
67
71
  def save_model_with_external_data(
@@ -11,6 +11,7 @@
11
11
 
12
12
  from __future__ import annotations
13
13
 
14
+ import functools
14
15
  import math
15
16
  from typing import Any, Optional, Sequence, Tuple, Union
16
17
 
@@ -58,6 +59,17 @@ _INT64_MIN = -9223372036854775808
58
59
  _MATH_PI = math.pi
59
60
 
60
61
 
62
+ @functools.lru_cache(maxsize=None)
63
+ def _int64_arange_non_integral_uses_float_length() -> bool:
64
+ """Whether torch computes the arange length in float when dtype is integral.
65
+
66
+ Newer versions of torch return 4 elements for ``torch.arange(3.1, dtype=torch.int64)``,
67
+ while older versions return 3. This is evaluated lazily to avoid running torch code
68
+ at import time.
69
+ """
70
+ return torch.arange(3.1, dtype=torch.int64, device="cpu").numel() == 4
71
+
72
+
61
73
  @torch_op("aten::_local_scalar_dense", trace_only=True)
62
74
  def aten__local_scalar_dense(self: TensorType) -> TensorType:
63
75
  """_local_scalar_dense(Tensor self) -> Scalar"""
@@ -521,6 +533,56 @@ def _range_supported(dtype: int) -> bool:
521
533
  }
522
534
 
523
535
 
536
+ def _is_integral_dtype(dtype: int) -> bool:
537
+ return dtype in {
538
+ INT8.dtype,
539
+ INT16.dtype,
540
+ INT32.dtype,
541
+ INT64.dtype,
542
+ }
543
+
544
+
545
+ def _is_integral_scalar(arg: TRealUnlessFloat16OrInt8) -> bool:
546
+ if isinstance(arg, int):
547
+ return True
548
+ if isinstance(arg, float):
549
+ return False
550
+ return arg.dtype in {
551
+ INT8.dtype,
552
+ INT16.dtype,
553
+ INT32.dtype,
554
+ INT64.dtype,
555
+ }
556
+
557
+
558
+ def _arange_integral_dtype_with_non_integral_args(
559
+ start: TRealUnlessFloat16OrInt8,
560
+ end: TRealUnlessFloat16OrInt8,
561
+ step: TRealUnlessFloat16OrInt8,
562
+ dtype: int,
563
+ ) -> TensorType:
564
+ """Implements torch.arange for integral dtypes when not all inputs are integral."""
565
+ start_float = op.Cast(start, to=FLOAT.dtype)
566
+ end_float = op.Cast(end, to=FLOAT.dtype)
567
+ step_float = op.Cast(step, to=FLOAT.dtype)
568
+
569
+ length = op.Cast(
570
+ op.Ceil(op.Div(op.Sub(end_float, start_float), step_float)), to=INT64.dtype
571
+ )
572
+ index = op.Range(op.Constant(value_int=0), length, op.Constant(value_int=1))
573
+
574
+ if _range_supported(dtype):
575
+ index = op.Cast(index, to=dtype)
576
+ start = op.Cast(start, to=dtype)
577
+ step = op.Cast(step, to=dtype)
578
+ return op.Add(start, op.Mul(step, index))
579
+
580
+ start = op.Cast(start, to=INT64.dtype)
581
+ step = op.Cast(step, to=INT64.dtype)
582
+ result = op.Add(start, op.Mul(step, index))
583
+ return op.Cast(result, to=dtype)
584
+
585
+
524
586
  def _integral_to_be_adjusted(dtype: int) -> bool:
525
587
  """Returns true if the dtype is special integral handled by torch."""
526
588
  return dtype in {
@@ -544,6 +606,12 @@ def aten_arange(
544
606
  zero = op.CastLike(0.0, end)
545
607
  one = op.CastLike(1.0, end)
546
608
  result = op.Range(zero, end, one)
609
+ elif (
610
+ _is_integral_dtype(dtype)
611
+ and not _is_integral_scalar(end)
612
+ and (dtype != INT64.dtype or _int64_arange_non_integral_uses_float_length())
613
+ ):
614
+ result = _arange_integral_dtype_with_non_integral_args(0, end, 1, dtype)
547
615
  elif _range_supported(dtype):
548
616
  end = op.Cast(end, to=dtype)
549
617
  zero = op.Cast(0, to=dtype)
@@ -576,6 +644,12 @@ def aten_arange_start(
576
644
  if dtype == -1 or dtype is None:
577
645
  one = op.CastLike(1.0, end)
578
646
  result = op.Range(start, end, one)
647
+ elif (
648
+ _is_integral_dtype(dtype)
649
+ and not (_is_integral_scalar(start) and _is_integral_scalar(end))
650
+ and (dtype != INT64.dtype or _int64_arange_non_integral_uses_float_length())
651
+ ):
652
+ result = _arange_integral_dtype_with_non_integral_args(start, end, 1, dtype)
579
653
  elif _range_supported(dtype):
580
654
  end = op.Cast(end, to=dtype)
581
655
  start = op.Cast(start, to=dtype)
@@ -659,17 +733,26 @@ def aten_arange_start_step(
659
733
  end = op.Cast(end, to=FLOAT.dtype)
660
734
  step = op.Cast(step, to=FLOAT.dtype)
661
735
  result = op.Range(start, end, step)
662
- elif _integral_to_be_adjusted(dtype):
663
- # PyTorch arange op handles these integral types differently from INT64,
664
- # so we have to adjust these arguments accordingly.
665
- # https://github.com/pytorch/pytorch/blob/121cfb60c0817816fcbe2190303b7f6d05c77cf3/torch/_refs/__init__.py#L4794
666
- start, end, step = _adjust_args_for_arange_int_dtype(start, end, step)
667
- result = op.Cast(op.Range(start, end, step), to=dtype)
736
+ elif (
737
+ _is_integral_dtype(dtype)
738
+ and not (
739
+ _is_integral_scalar(start)
740
+ and _is_integral_scalar(end)
741
+ and _is_integral_scalar(step)
742
+ )
743
+ and (dtype != INT64.dtype or _int64_arange_non_integral_uses_float_length())
744
+ ):
745
+ result = _arange_integral_dtype_with_non_integral_args(start, end, step, dtype)
668
746
  elif dtype == INT64.dtype:
669
747
  end = op.Cast(end, to=dtype)
670
748
  start = op.Cast(start, to=dtype)
671
749
  step = op.Cast(step, to=dtype)
672
750
  result = op.Range(start, end, step)
751
+ elif _integral_to_be_adjusted(dtype):
752
+ # PyTorch arange op handles these integral types differently from INT64
753
+ # when all arguments are integral.
754
+ start, end, step = _adjust_args_for_arange_int_dtype(start, end, step)
755
+ result = op.Cast(op.Range(start, end, step), to=dtype)
673
756
  else:
674
757
  # Cast input to float if dtype is not supported by Range,
675
758
  # because the input dtype may be e.g. bfloat16,
@@ -3163,7 +3246,10 @@ def aten_div_mode(self: TReal, other: TReal, rounding_mode: Optional[str] = None
3163
3246
  if rounding_mode == "trunc":
3164
3247
  # Rounds the results of the division towards zero.
3165
3248
  # Equivalent to C-style integer division
3166
- return aten_trunc(op.Div(self, other))
3249
+ quotient = op.Div(self, other)
3250
+ if self.dtype == ir.DataType.FLOAT16:
3251
+ quotient = op.Cast(quotient, to=FLOAT16.dtype)
3252
+ return aten_trunc(quotient)
3167
3253
  if rounding_mode == "floor":
3168
3254
  return op.Floor(op.Div(self, other))
3169
3255
 
@@ -5445,7 +5531,7 @@ def aten_is_vulkan_available() -> bool:
5445
5531
  raise NotImplementedError()
5446
5532
 
5447
5533
 
5448
- @torch_op("aten::isclose")
5534
+ @torch_op("aten::isclose", trace_only=True)
5449
5535
  def aten_isclose(
5450
5536
  self: TReal,
5451
5537
  other: TReal,
@@ -5455,12 +5541,37 @@ def aten_isclose(
5455
5541
  ) -> BOOL:
5456
5542
  """isclose(Tensor self, Tensor other, float rtol=1e-05, float atol=1e-08, bool equal_nan=False) -> Tensor"""
5457
5543
 
5458
- # FIXME: check equal_nan when self and other are all NaN
5459
- # |input - other| <= atol + rtol x |other|
5460
- left_part = op.Abs(op.Sub(self, other))
5461
- right_part = op.Add(atol, op.Mul(rtol, op.Abs(other)))
5462
- result = op.LessOrEqual(left_part, right_part)
5463
- return result
5544
+ # torch builds isclose out of three terms in aten/src/ATen/native/TensorCompare.cpp:
5545
+ # exact equality, NaN against NaN when equal_nan is set, and the tolerance band
5546
+ # restricted to the elements whose error is finite.
5547
+ result = op.Equal(self, other)
5548
+
5549
+ # |self - other| <= atol + rtol x |other|
5550
+ actual_error = op.Abs(op.Sub(self, other))
5551
+ allowed_error = op.Add(
5552
+ op.CastLike(atol, other), op.Mul(op.CastLike(rtol, other), op.Abs(other))
5553
+ )
5554
+
5555
+ if self.dtype.is_floating_point():
5556
+ # Comparing the two sides of the band by subtraction carries the finiteness
5557
+ # restriction on its own, so no IsInf term is needed. An infinity on either side
5558
+ # puts a NaN into the subtraction whichever way it arrives: the error and the
5559
+ # allowance are both infinite and cancel, or the allowance is already NaN because
5560
+ # rtol is zero and zero times infinity is NaN. Every comparison against NaN is
5561
+ # false, which leaves the equality term above as the only way an infinity is
5562
+ # reported close. On finite values the sign of the difference and the direct
5563
+ # comparison agree exactly, so the band is unchanged.
5564
+ zero = op.Constant(value=ir.tensor(0, dtype=self.dtype))
5565
+ within_tolerance = op.LessOrEqual(op.Sub(actual_error, allowed_error), zero)
5566
+ if equal_nan:
5567
+ result = op.Or(result, op.And(op.IsNaN(self), op.IsNaN(other)))
5568
+ else:
5569
+ # Integers are never infinite and never NaN, so they need no finiteness term, and
5570
+ # IsNaN does not accept them. The subtraction is left off here because it can
5571
+ # overflow a narrow integer type where the direct comparison cannot.
5572
+ within_tolerance = op.LessOrEqual(actual_error, allowed_error)
5573
+
5574
+ return op.Or(result, within_tolerance)
5464
5575
 
5465
5576
 
5466
5577
  @torch_op("aten::isfinite")
@@ -5852,8 +5963,9 @@ def aten_logit(self: TFloat, eps: Optional[float] = None) -> TFloat:
5852
5963
  one_minus_eps = ir.tensor(1 - eps, dtype=self.dtype)
5853
5964
  eps = ir.tensor(eps, dtype=self.dtype)
5854
5965
 
5855
- temporary_self = op.Where(self <= one_minus_eps, self, one_minus_eps)
5856
- z = op.Where(temporary_self < eps, eps, temporary_self)
5966
+ # Match torch.clamp behavior for eps > 0.5 by applying max then min.
5967
+ z = op.Where(self < eps, eps, self)
5968
+ z = op.Where(z <= one_minus_eps, z, one_minus_eps)
5857
5969
 
5858
5970
  return op.Log(op.Div(z, op.Sub(one, z)))
5859
5971
 
@@ -69,6 +69,14 @@ class _FuseBatchNormBase(RewriteRuleClassBase, ABC):
69
69
  self._scale_weights(weights, scale_factor, inbound_node.attributes)
70
70
  )
71
71
 
72
+ # Gemm optionally scales its bias input C by the "beta" attribute (default 1.0,
73
+ # https://onnx.ai/onnx/operators/onnx__Gemm.html#attributes); Conv/ConvTranspose have
74
+ # no such attribute. Fold that scaling into the fused bias now, and drop "beta" from
75
+ # the re-emitted node's attributes so it is not applied a second time there.
76
+ new_attributes = dict(inbound_node.attributes)
77
+ gemm_beta_attr = new_attributes.pop("beta", None)
78
+ gemm_beta = gemm_beta_attr.as_float() if gemm_beta_attr is not None else 1.0
79
+
72
80
  # Update bias
73
81
  if len(inbound_node.inputs) > 2:
74
82
  original_bias = inbound_node.inputs[2].const_value.numpy()
@@ -79,14 +87,14 @@ class _FuseBatchNormBase(RewriteRuleClassBase, ABC):
79
87
  # to avoid name collision on initializer creation when there are multiple patterns
80
88
  # sharing the same parent nodes.
81
89
  bias_name = inbound_node.inputs[1].name + "_bias"
82
- fused_bias = ir.tensor((original_bias - input_mean) * scale_factor + beta)
90
+ fused_bias = ir.tensor((gemm_beta * original_bias - input_mean) * scale_factor + beta)
83
91
 
84
92
  return op.op(
85
93
  self.op_type,
86
94
  x,
87
95
  op.initializer(fused_weights, name=inbound_node.inputs[1].name),
88
96
  op.initializer(fused_bias, name=bias_name),
89
- **inbound_node.attributes,
97
+ **new_attributes,
90
98
  )
91
99
 
92
100
  def check(self, context, x, inbound_out: ir.Value, batchnorm_out: ir.Value) -> MatchResult:
@@ -160,11 +160,14 @@ def dft_19_20(node: ir.Node, op):
160
160
  dft_length = node.inputs[1] if len(node.inputs) > 1 else None
161
161
  inverse = _get_int_attribute(node, "inverse", 0)
162
162
  onesided = _get_int_attribute(node, "onesided", 0)
163
- axis = _get_int_attribute(node, "axis", None)
164
- if axis is not None:
165
- axis_value = op.Constant(value_int=axis)
166
- return op.DFT(input, dft_length, axis_value, inverse=inverse, onesided=onesided)
167
- return None
163
+ # In opset 19 `axis` is an attribute defaulting to 1; in opset 20 it became an
164
+ # input defaulting to -2. An omitted attribute must therefore be materialized
165
+ # explicitly, or the converted node silently transforms a different axis.
166
+ axis = _get_int_attribute(node, "axis", 1)
167
+ if axis is None:
168
+ return None
169
+ axis_value = op.Constant(value_int=axis)
170
+ return op.DFT(input, dft_length, axis_value, inverse=inverse, onesided=onesided)
168
171
 
169
172
 
170
173
  @register("GridSample", node_version=19, up_conversion=True)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: onnxscript
3
- Version: 0.7.2.dev20260825
3
+ Version: 0.7.2.dev20260903
4
4
  Summary: Naturally author ONNX functions and models using a subset of Python
5
5
  Author-email: Microsoft Corporation <onnx@microsoft.com>
6
6
  License: MIT License
@@ -27,7 +27,7 @@ License: MIT License
27
27
 
28
28
  Project-URL: Homepage, https://microsoft.github.io/onnxscript/
29
29
  Project-URL: Repository, https://github.com/microsoft/onnxscript
30
- Project-URL: Commit, https://github.com/microsoft/onnxscript/tree/f78d33b568ec88ea78c3e5fbac89f703963f0e29
30
+ Project-URL: Commit, https://github.com/microsoft/onnxscript/tree/b4c10fab5b65d7f15bbaadae89512ba4fba74745
31
31
  Classifier: Development Status :: 4 - Beta
32
32
  Classifier: Environment :: Console
33
33
  Classifier: Intended Audience :: Developers