tritonparse 0.2.4.dev20251012071503__tar.gz → 0.2.4.dev20251014071550__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.

Potentially problematic release.


This version of tritonparse might be problematic. Click here for more details.

Files changed (118) hide show
  1. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/PKG-INFO +1 -1
  2. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/cli.py +1 -0
  3. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/reproducer/cli.py +14 -0
  4. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/reproducer/orchestrator.py +7 -1
  5. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/reproducer/placeholder_replacer.py +48 -4
  6. tritonparse-0.2.4.dev20251014071550/tritonparse/reproducer/types.py +15 -0
  7. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse.egg-info/PKG-INFO +1 -1
  8. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse.egg-info/SOURCES.txt +1 -0
  9. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/.ci/README.md +0 -0
  10. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/.ci/install-project.sh +0 -0
  11. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/.ci/install-triton.sh +0 -0
  12. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/.ci/run-tests.sh +0 -0
  13. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/.ci/setup.sh +0 -0
  14. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/.github/PAGES_SETUP.md +0 -0
  15. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/.github/workflows/deploy-pages-standalone.yml +0 -0
  16. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/.github/workflows/deploy-pages.yml +0 -0
  17. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/.github/workflows/nightly-pypi.yml +0 -0
  18. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/.github/workflows/test.yml +0 -0
  19. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/.gitignore +0 -0
  20. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/CHANGELOG.md +0 -0
  21. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/CODE_OF_CONDUCT.md +0 -0
  22. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/CONTRIBUTING.md +0 -0
  23. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/LICENSE +0 -0
  24. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/Makefile +0 -0
  25. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/README.md +0 -0
  26. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/__init__.py +0 -0
  27. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/docs/README.md +0 -0
  28. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/docs/screenshots/code-comparison.png +0 -0
  29. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/docs/screenshots/kernel-overview.png +0 -0
  30. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/pyproject.toml +0 -0
  31. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/run.py +0 -0
  32. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/setup.cfg +0 -0
  33. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tests/README.md +0 -0
  34. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tests/__init__.py +0 -0
  35. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tests/example_output/logs/dedicated_log_triton_trace_findhao_.ndjson +0 -0
  36. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tests/example_output/parsed_output/dedicated_log_triton_trace_findhao__mapped.ndjson.gz +0 -0
  37. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tests/example_output/parsed_output/f0_fc0_a0_cai-.ndjson.gz +0 -0
  38. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tests/example_output/parsed_output/log_file_list.json +0 -0
  39. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tests/example_output/parsed_output_complex/dedicated_log_triton_trace_findhao__mapped.ndjson.gz +0 -0
  40. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tests/example_output/parsed_output_complex/log_file_list.json +0 -0
  41. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tests/test_add.py +0 -0
  42. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tests/test_tritonparse.py +0 -0
  43. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/__init__.py +0 -0
  44. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/__main__.py +0 -0
  45. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/common.py +0 -0
  46. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/context_manager.py +0 -0
  47. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/event_diff.py +0 -0
  48. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/extract_source_mappings.py +0 -0
  49. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/ir_parser.py +0 -0
  50. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/mapper.py +0 -0
  51. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/reproducer/__init__.py +0 -0
  52. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/reproducer/ingestion/ndjson.py +0 -0
  53. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/reproducer/templates/__init__.py +0 -0
  54. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/reproducer/templates/example.py +0 -0
  55. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/reproducer/templates/loader.py +0 -0
  56. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/reproducer/utils.py +0 -0
  57. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/shared_vars.py +0 -0
  58. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/source_type.py +0 -0
  59. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/sourcemap_utils.py +0 -0
  60. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/structured_logging.py +0 -0
  61. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/tools/__init__.py +0 -0
  62. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/tools/decompress_bin_ndjson.py +0 -0
  63. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/tools/disasm.py +0 -0
  64. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/tools/format_fix.py +0 -0
  65. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/tools/load_tensor.py +0 -0
  66. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/tools/prettify_ndjson.py +0 -0
  67. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/tools/readme.md +0 -0
  68. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/tp_logger.py +0 -0
  69. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/trace_processor.py +0 -0
  70. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse/utils.py +0 -0
  71. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse.egg-info/dependency_links.txt +0 -0
  72. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse.egg-info/entry_points.txt +0 -0
  73. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse.egg-info/requires.txt +0 -0
  74. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/tritonparse.egg-info/top_level.txt +0 -0
  75. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/eslint.config.js +0 -0
  76. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/index.html +0 -0
  77. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/package-lock.json +0 -0
  78. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/package.json +0 -0
  79. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/postcss.config.js +0 -0
  80. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/public/dedicated_log_triton_trace_findhao__mapped.ndjson.gz +0 -0
  81. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/public/f0_fc0_a0_cai-.ndjson +0 -0
  82. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/public/favicon.ico +0 -0
  83. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/public/logo.svg +0 -0
  84. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/scripts/inline-html.js +0 -0
  85. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/App.css +0 -0
  86. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/App.tsx +0 -0
  87. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/assets/react.svg +0 -0
  88. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/ArgumentViewer.tsx +0 -0
  89. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/Callstack.tsx +0 -0
  90. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/CodeComparisonView.tsx +0 -0
  91. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/CodeViewer.tsx +0 -0
  92. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/CompilationInfo.tsx +0 -0
  93. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/CopyCodeButton.tsx +0 -0
  94. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/DataSourceSelector.tsx +0 -0
  95. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/DiffComparisonView.tsx +0 -0
  96. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/DiffViewer.tsx +0 -0
  97. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/ExternalLink.tsx +0 -0
  98. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/SingleCodeViewer.tsx +0 -0
  99. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/StackDiffViewer.tsx +0 -0
  100. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/ToggleSwitch.tsx +0 -0
  101. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/TritonIRs.tsx +0 -0
  102. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/components/WelcomeScreen.tsx +0 -0
  103. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/context/FileDiffSession.tsx +0 -0
  104. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/index.css +0 -0
  105. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/main.tsx +0 -0
  106. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/pages/CodeView.tsx +0 -0
  107. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/pages/FileDiffView.tsx +0 -0
  108. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/pages/KernelOverview.tsx +0 -0
  109. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/utils/dataLoader.ts +0 -0
  110. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/utils/fbDetection.ts +0 -0
  111. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/utils/safeImport.ts +0 -0
  112. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/utils/tensor.ts +0 -0
  113. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/src/vite-env.d.ts +0 -0
  114. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/tailwind.config.js +0 -0
  115. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/tsconfig.app.json +0 -0
  116. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/tsconfig.json +0 -0
  117. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/tsconfig.node.json +0 -0
  118. {tritonparse-0.2.4.dev20251012071503 → tritonparse-0.2.4.dev20251014071550}/website/vite.config.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tritonparse
3
- Version: 0.2.4.dev20251012071503
3
+ Version: 0.2.4.dev20251014071550
4
4
  Summary: TritonParse: A Compiler Tracer, Visualizer, and mini-Reproducer Generator for Triton Kernels
5
5
  Author-email: Yueming Hao <yhao@meta.com>
6
6
  License-Expression: BSD-3-Clause
@@ -73,6 +73,7 @@ def main():
73
73
  line_index=args.line,
74
74
  out_dir=args.out_dir,
75
75
  template=args.template,
76
+ kernel_import=args.kernel_import,
76
77
  )
77
78
  else:
78
79
  raise RuntimeError(f"Unknown command: {args.func}")
@@ -1,5 +1,7 @@
1
1
  import argparse
2
2
 
3
+ from tritonparse.reproducer.types import KernelImportMode
4
+
3
5
 
4
6
  def _add_reproducer_args(parser: argparse.ArgumentParser) -> None:
5
7
  """Add common arguments for the reproducer to a parser."""
@@ -29,3 +31,15 @@ def _add_reproducer_args(parser: argparse.ArgumentParser) -> None:
29
31
  "Defaults to 'example'."
30
32
  ),
31
33
  )
34
+ parser.add_argument(
35
+ "--kernel-import",
36
+ type=KernelImportMode,
37
+ choices=list(KernelImportMode),
38
+ default=KernelImportMode.DEFAULT,
39
+ help=(
40
+ "Kernel import strategy:\n"
41
+ " default: Import kernel from original file (current behavior)\n"
42
+ " copy: Embed kernel source code directly in reproducer\n"
43
+ "Defaults to 'default'."
44
+ ),
45
+ )
@@ -7,6 +7,7 @@ from tritonparse.reproducer.placeholder_replacer import (
7
7
  PlaceholderReplacer,
8
8
  )
9
9
  from tritonparse.reproducer.templates.loader import load_template_code
10
+ from tritonparse.reproducer.types import KernelImportMode
10
11
  from tritonparse.reproducer.utils import determine_output_paths
11
12
 
12
13
  from tritonparse.tools.prettify_ndjson import load_ndjson, save_prettified_json
@@ -19,6 +20,7 @@ def reproduce(
19
20
  out_dir: str,
20
21
  template: str,
21
22
  replacer: Optional[PlaceholderReplacer] = None,
23
+ kernel_import: KernelImportMode = KernelImportMode.DEFAULT,
22
24
  ) -> dict[str, Path]:
23
25
  """
24
26
  Generate a reproducer script from NDJSON trace file.
@@ -29,6 +31,7 @@ def reproduce(
29
31
  out_dir: Output directory for reproducer files.
30
32
  template: Template name to use for the reproducer.
31
33
  replacer: Optional custom PlaceholderReplacer instance. If None, uses DefaultPlaceholderReplacer.
34
+ kernel_import: Kernel import mode (DEFAULT or COPY).
32
35
  """
33
36
  logger.debug(f"Building bundle from {input_path} at line {line_index}")
34
37
  events = load_ndjson(Path(input_path))
@@ -51,7 +54,10 @@ def reproduce(
51
54
  if replacer is None:
52
55
  replacer = DefaultPlaceholderReplacer()
53
56
  final_code = replacer.replace(
54
- template_code, context_bundle, temp_json_path=temp_json_path
57
+ template_code,
58
+ context_bundle,
59
+ temp_json_path=temp_json_path,
60
+ kernel_import=kernel_import,
55
61
  )
56
62
 
57
63
  out_py_path.write_text(final_code, encoding="utf-8")
@@ -3,6 +3,7 @@ from abc import ABC
3
3
  from typing import Any, Dict, Protocol
4
4
 
5
5
  from tritonparse.reproducer.ingestion.ndjson import ContextBundle
6
+ from tritonparse.reproducer.types import KernelImportMode
6
7
  from tritonparse.reproducer.utils import (
7
8
  _generate_import_statements,
8
9
  _generate_invocation_snippet,
@@ -95,15 +96,58 @@ class DefaultPlaceholderReplacer(PlaceholderReplacer):
95
96
  self, code: str, context_bundle: ContextBundle, **kwargs
96
97
  ) -> str:
97
98
  """Replace the kernel sys.path placeholder."""
98
- sys_stmt, _ = _generate_import_statements(context_bundle.kernel_info)
99
- return code.replace("# {{KERNEL_SYSPATH_PLACEHOLDER}}", sys_stmt)
99
+ kernel_import = kwargs.get("kernel_import", KernelImportMode.DEFAULT)
100
+
101
+ if kernel_import == KernelImportMode.DEFAULT:
102
+ sys_stmt, _ = _generate_import_statements(context_bundle.kernel_info)
103
+ return code.replace("# {{KERNEL_SYSPATH_PLACEHOLDER}}", sys_stmt)
104
+ elif kernel_import == KernelImportMode.COPY:
105
+ comment = (
106
+ "# Kernel sys.path setup skipped - kernel source code embedded below"
107
+ )
108
+ return code.replace("# {{KERNEL_SYSPATH_PLACEHOLDER}}", comment)
109
+ else:
110
+ raise ValueError(f"Unknown kernel_import mode: {kernel_import}")
100
111
 
101
112
  def _replace_kernel_import(
102
113
  self, code: str, context_bundle: ContextBundle, **kwargs
103
114
  ) -> str:
104
115
  """Replace the kernel import placeholder."""
105
- _, import_statement = _generate_import_statements(context_bundle.kernel_info)
106
- return code.replace("# {{KERNEL_IMPORT_PLACEHOLDER}}", import_statement)
116
+ kernel_import = kwargs.get("kernel_import", KernelImportMode.DEFAULT)
117
+
118
+ if kernel_import == KernelImportMode.DEFAULT:
119
+ _, import_statement = _generate_import_statements(
120
+ context_bundle.kernel_info
121
+ )
122
+ return code.replace("# {{KERNEL_IMPORT_PLACEHOLDER}}", import_statement)
123
+ elif kernel_import == KernelImportMode.COPY:
124
+ source_code = context_bundle.kernel_info.source_code
125
+ func_name = context_bundle.kernel_info.function_name
126
+
127
+ if not source_code or not source_code.strip():
128
+ raise ValueError("Kernel source code is empty, cannot use 'copy' mode")
129
+ if not func_name:
130
+ raise ValueError(
131
+ "Cannot determine kernel function name for 'copy' mode"
132
+ )
133
+
134
+ # Add common imports needed for most Triton kernels
135
+ import_lines = [
136
+ "import torch",
137
+ "import numpy as np",
138
+ "import triton",
139
+ "import triton.language as tl",
140
+ "",
141
+ ]
142
+
143
+ # Combine: imports + kernel source code + alias
144
+ embedded_code = "\n".join(import_lines)
145
+ embedded_code += "\n" + source_code
146
+ embedded_code += f"\n\n# Use kernel function directly\nimported_kernel_function = {func_name}"
147
+
148
+ return code.replace("# {{KERNEL_IMPORT_PLACEHOLDER}}", embedded_code)
149
+ else:
150
+ raise ValueError(f"Unknown kernel_import mode: {kernel_import}")
107
151
 
108
152
  def _replace_kernel_invocation(
109
153
  self, code: str, context_bundle: ContextBundle, **kwargs
@@ -0,0 +1,15 @@
1
+ from enum import Enum
2
+
3
+
4
+ class KernelImportMode(str, Enum):
5
+ """
6
+ Kernel import strategy for reproducer generation.
7
+
8
+ Inherits from str to allow direct string comparison and use in argparse.
9
+ """
10
+
11
+ DEFAULT = "default" # Import kernel from original file (current behavior)
12
+ COPY = "copy" # Embed kernel source code directly in reproducer
13
+
14
+ # Future modes can be added here:
15
+ # OVERRIDE_TTIR = "override-ttir" # Use TTIR from compilation event with monkeypatch
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tritonparse
3
- Version: 0.2.4.dev20251012071503
3
+ Version: 0.2.4.dev20251014071550
4
4
  Summary: TritonParse: A Compiler Tracer, Visualizer, and mini-Reproducer Generator for Triton Kernels
5
5
  Author-email: Yueming Hao <yhao@meta.com>
6
6
  License-Expression: BSD-3-Clause
@@ -57,6 +57,7 @@ tritonparse/reproducer/__init__.py
57
57
  tritonparse/reproducer/cli.py
58
58
  tritonparse/reproducer/orchestrator.py
59
59
  tritonparse/reproducer/placeholder_replacer.py
60
+ tritonparse/reproducer/types.py
60
61
  tritonparse/reproducer/utils.py
61
62
  tritonparse/reproducer/ingestion/ndjson.py
62
63
  tritonparse/reproducer/templates/__init__.py