Skip to content

Docs fix for 2.9 - #2302

Closed
pggPL wants to merge 2 commits into
NVIDIA:release_v2.9from
pggPL:29docs
Closed

Docs fix for 2.9#2302
pggPL wants to merge 2 commits into
NVIDIA:release_v2.9from
pggPL:29docs

Conversation

@pggPL

@pggPLpggPL commented Oct 24, 2025

Copy link
Copy Markdown
Collaborator

Description

Due to circular imports caused by #2256 docs are not properly generated.
This is not python issue, it affects only docs.

2.8
Zrzut ekranu 2025-10-24 o 12 59 29
current 2.9
Zrzut ekranu 2025-10-24 o 13 00 05
after fix
Zrzut ekranu 2025-10-24 o 13 00 49

Maybe it's not good idea to merge it, since this PR includes code changes, but maybe you can just take the docs from this PR for publishing.

Signed-off-by: Pawel Gadzinski <pgadzinski@nvidia.com>

@greptile-appsgreptile-appsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Greptile Overview

Greptile Summary

This PR fixes a circular import issue in the PyTorch backend that prevented documentation generation in v2.9. The problem arose from PR #2256's quantization API generalization, which created a circular dependency: utils.py imports torch_version from the parent package (line 15), while also defining its own torch_version() function (lines 780-782). The fix moves the torch_version import in jit.py from the package root to the utils module and adds a local torch_version() function definition in utils.py. This resolves the cycle by establishing a clear dependency hierarchy where utils.py provides the utility function and other modules consume it directly, allowing Sphinx autodoc to successfully traverse the module tree during documentation builds.

Important Files Changed

FilenameScoreOverview
transformer_engine/pytorch/jit.py5/5Changed import source for torch_version from package root to .utils module to break circular dependency
transformer_engine/pytorch/utils.py2/5Added torch_version() function definition but left conflicting import statement on line 15, creating incomplete circular-import fix; missing final newline

Confidence score: 2/5

  • This PR attempts to fix a documentation build issue but only partially resolves the circular import problem
  • Score lowered because transformer_engine/pytorch/utils.py still imports torch_version from the parent package (line 15) while also defining it locally (line 780), which does not fully break the circular dependency—the import statement on line 15 must be removed for a complete fix. Additionally, the file is missing a final newline at line 782, violating POSIX standards.
  • Pay close attention to transformer_engine/pytorch/utils.py—verify that removing the import on line 15 does not break other code that might depend on torch_version being re-exported from the parent module, and ensure the final newline is added to satisfy linters

2 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

import torch
from packaging.version import Version as PkgVersion

from . import torch_version

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: circular import – torch_version is imported from . (line 15) but also defined locally (line 780)

Prompt To Fix With AI
This is a comment left during a code review.
Path: transformer_engine/pytorch/utils.py
Line: 15:15
Comment:
**logic:** circular import – `torch_version` is imported from `.` (line 15) but also defined locally (line 780)
How can I resolve this? If you propose a fix, please make it concise.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, but the docs are generated properly

Comment threadtransformer_engine/pytorch/utils.py Outdated
@functools.lru_cache(maxsize=None)
def torch_version() -> tuple[int, ...]:
"""Get PyTorch version"""
return PkgVersion(str(torch.__version__)).release No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: missing newline at end of file (violates POSIX standard)

Prompt To Fix With AI
This is a comment left during a code review.
Path: transformer_engine/pytorch/utils.py
Line: 782:782
Comment:
**style:** missing newline at end of file (violates POSIX standard)
How can I resolve this? If you propose a fix, please make it concise.

@pggPL

Copy link
Copy Markdown
CollaboratorAuthor

/te-ci pytorch

import torch
from packaging.version import Version as PkgVersion

from . import torch_version

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
from . import torch_version

Comment on lines +779 to +782
@functools.lru_cache(maxsize=None)
def torch_version() -> tuple[int, ...]:
"""Get PyTorch version"""
return PkgVersion(str(torch.__version__)).release

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is already defined in __init__.py, which is the correct place for it.

@ksivaman

ksivaman commented Oct 24, 2025

Copy link
Copy Markdown
Member

Also, I do see the correct docs in our full CI. Maybe the github docs job has some issue?

@pggPL

Copy link
Copy Markdown
CollaboratorAuthor

That's weird, I get wrong docs locally, but indeed it seems that docs from nightly pipeline are ok. Even if they also have warning about circular imports. But if you use main CI to get the docs which are published, that means this is not urgent and I can continue my work in #2301

@pggPLpggPL closed this Oct 24, 2025
@pggPL
pggPL deleted the 29docs branch August 5, 2026 16:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pggPL@ksivaman
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Docs fix for 2.9 by pggPL · Pull Request #2302 · NVIDIA/TransformerEngine · GitHub
Skip to content

Docs fix for 2.9 - #2302

Closed
pggPL wants to merge 2 commits into
NVIDIA:release_v2.9from
pggPL:29docs
Closed

Docs fix for 2.9#2302
pggPL wants to merge 2 commits into
NVIDIA:release_v2.9from
pggPL:29docs

Conversation

@pggPL

@pggPLpggPL commented Oct 24, 2025

Copy link
Copy Markdown
Collaborator

Description

Due to circular imports caused by #2256 docs are not properly generated.
This is not python issue, it affects only docs.

2.8
Zrzut ekranu 2025-10-24 o 12 59 29
current 2.9
Zrzut ekranu 2025-10-24 o 13 00 05
after fix
Zrzut ekranu 2025-10-24 o 13 00 49

Maybe it's not good idea to merge it, since this PR includes code changes, but maybe you can just take the docs from this PR for publishing.

Signed-off-by: Pawel Gadzinski <pgadzinski@nvidia.com>

@greptile-appsgreptile-appsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Greptile Overview

Greptile Summary

This PR fixes a circular import issue in the PyTorch backend that prevented documentation generation in v2.9. The problem arose from PR #2256's quantization API generalization, which created a circular dependency: utils.py imports torch_version from the parent package (line 15), while also defining its own torch_version() function (lines 780-782). The fix moves the torch_version import in jit.py from the package root to the utils module and adds a local torch_version() function definition in utils.py. This resolves the cycle by establishing a clear dependency hierarchy where utils.py provides the utility function and other modules consume it directly, allowing Sphinx autodoc to successfully traverse the module tree during documentation builds.

Important Files Changed

FilenameScoreOverview
transformer_engine/pytorch/jit.py5/5Changed import source for torch_version from package root to .utils module to break circular dependency
transformer_engine/pytorch/utils.py2/5Added torch_version() function definition but left conflicting import statement on line 15, creating incomplete circular-import fix; missing final newline

Confidence score: 2/5

  • This PR attempts to fix a documentation build issue but only partially resolves the circular import problem
  • Score lowered because transformer_engine/pytorch/utils.py still imports torch_version from the parent package (line 15) while also defining it locally (line 780), which does not fully break the circular dependency—the import statement on line 15 must be removed for a complete fix. Additionally, the file is missing a final newline at line 782, violating POSIX standards.
  • Pay close attention to transformer_engine/pytorch/utils.py—verify that removing the import on line 15 does not break other code that might depend on torch_version being re-exported from the parent module, and ensure the final newline is added to satisfy linters

2 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

import torch
from packaging.version import Version as PkgVersion

from . import torch_version

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: circular import – torch_version is imported from . (line 15) but also defined locally (line 780)

Prompt To Fix With AI
This is a comment left during a code review.
Path: transformer_engine/pytorch/utils.py
Line: 15:15
Comment:
**logic:** circular import – `torch_version` is imported from `.` (line 15) but also defined locally (line 780)
How can I resolve this? If you propose a fix, please make it concise.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, but the docs are generated properly

Comment threadtransformer_engine/pytorch/utils.py Outdated
@functools.lru_cache(maxsize=None)
def torch_version() -> tuple[int, ...]:
"""Get PyTorch version"""
return PkgVersion(str(torch.__version__)).release No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: missing newline at end of file (violates POSIX standard)

Prompt To Fix With AI
This is a comment left during a code review.
Path: transformer_engine/pytorch/utils.py
Line: 782:782
Comment:
**style:** missing newline at end of file (violates POSIX standard)
How can I resolve this? If you propose a fix, please make it concise.

@pggPL

Copy link
Copy Markdown
CollaboratorAuthor

/te-ci pytorch

import torch
from packaging.version import Version as PkgVersion

from . import torch_version

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
from . import torch_version

Comment on lines +779 to +782
@functools.lru_cache(maxsize=None)
def torch_version() -> tuple[int, ...]:
"""Get PyTorch version"""
return PkgVersion(str(torch.__version__)).release

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is already defined in __init__.py, which is the correct place for it.

@ksivaman

ksivaman commented Oct 24, 2025

Copy link
Copy Markdown
Member

Also, I do see the correct docs in our full CI. Maybe the github docs job has some issue?

@pggPL

Copy link
Copy Markdown
CollaboratorAuthor

That's weird, I get wrong docs locally, but indeed it seems that docs from nightly pipeline are ok. Even if they also have warning about circular imports. But if you use main CI to get the docs which are published, that means this is not urgent and I can continue my work in #2301

@pggPLpggPL closed this Oct 24, 2025
@pggPL
pggPL deleted the 29docs branch August 5, 2026 16:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pggPL@ksivaman
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Docs fix for 2.9 by pggPL · Pull Request #2302 · NVIDIA/TransformerEngine · GitHub
Skip to content

Docs fix for 2.9 - #2302

Closed
pggPL wants to merge 2 commits into
NVIDIA:release_v2.9from
pggPL:29docs
Closed

Docs fix for 2.9#2302
pggPL wants to merge 2 commits into
NVIDIA:release_v2.9from
pggPL:29docs

Conversation

@pggPL

@pggPLpggPL commented Oct 24, 2025

Copy link
Copy Markdown
Collaborator

Description

Due to circular imports caused by #2256 docs are not properly generated.
This is not python issue, it affects only docs.

2.8
Zrzut ekranu 2025-10-24 o 12 59 29
current 2.9
Zrzut ekranu 2025-10-24 o 13 00 05
after fix
Zrzut ekranu 2025-10-24 o 13 00 49

Maybe it's not good idea to merge it, since this PR includes code changes, but maybe you can just take the docs from this PR for publishing.

Signed-off-by: Pawel Gadzinski <pgadzinski@nvidia.com>

@greptile-appsgreptile-appsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Greptile Overview

Greptile Summary

This PR fixes a circular import issue in the PyTorch backend that prevented documentation generation in v2.9. The problem arose from PR #2256's quantization API generalization, which created a circular dependency: utils.py imports torch_version from the parent package (line 15), while also defining its own torch_version() function (lines 780-782). The fix moves the torch_version import in jit.py from the package root to the utils module and adds a local torch_version() function definition in utils.py. This resolves the cycle by establishing a clear dependency hierarchy where utils.py provides the utility function and other modules consume it directly, allowing Sphinx autodoc to successfully traverse the module tree during documentation builds.

Important Files Changed

FilenameScoreOverview
transformer_engine/pytorch/jit.py5/5Changed import source for torch_version from package root to .utils module to break circular dependency
transformer_engine/pytorch/utils.py2/5Added torch_version() function definition but left conflicting import statement on line 15, creating incomplete circular-import fix; missing final newline

Confidence score: 2/5

  • This PR attempts to fix a documentation build issue but only partially resolves the circular import problem
  • Score lowered because transformer_engine/pytorch/utils.py still imports torch_version from the parent package (line 15) while also defining it locally (line 780), which does not fully break the circular dependency—the import statement on line 15 must be removed for a complete fix. Additionally, the file is missing a final newline at line 782, violating POSIX standards.
  • Pay close attention to transformer_engine/pytorch/utils.py—verify that removing the import on line 15 does not break other code that might depend on torch_version being re-exported from the parent module, and ensure the final newline is added to satisfy linters

2 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

import torch
from packaging.version import Version as PkgVersion

from . import torch_version

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: circular import – torch_version is imported from . (line 15) but also defined locally (line 780)

Prompt To Fix With AI
This is a comment left during a code review.
Path: transformer_engine/pytorch/utils.py
Line: 15:15
Comment:
**logic:** circular import – `torch_version` is imported from `.` (line 15) but also defined locally (line 780)
How can I resolve this? If you propose a fix, please make it concise.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, but the docs are generated properly

Comment threadtransformer_engine/pytorch/utils.py Outdated
@functools.lru_cache(maxsize=None)
def torch_version() -> tuple[int, ...]:
"""Get PyTorch version"""
return PkgVersion(str(torch.__version__)).release No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: missing newline at end of file (violates POSIX standard)

Prompt To Fix With AI
This is a comment left during a code review.
Path: transformer_engine/pytorch/utils.py
Line: 782:782
Comment:
**style:** missing newline at end of file (violates POSIX standard)
How can I resolve this? If you propose a fix, please make it concise.

@pggPL

Copy link
Copy Markdown
CollaboratorAuthor

/te-ci pytorch

import torch
from packaging.version import Version as PkgVersion

from . import torch_version

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
from . import torch_version

Comment on lines +779 to +782
@functools.lru_cache(maxsize=None)
def torch_version() -> tuple[int, ...]:
"""Get PyTorch version"""
return PkgVersion(str(torch.__version__)).release

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is already defined in __init__.py, which is the correct place for it.

@ksivaman

ksivaman commented Oct 24, 2025

Copy link
Copy Markdown
Member

Also, I do see the correct docs in our full CI. Maybe the github docs job has some issue?

@pggPL

Copy link
Copy Markdown
CollaboratorAuthor

That's weird, I get wrong docs locally, but indeed it seems that docs from nightly pipeline are ok. Even if they also have warning about circular imports. But if you use main CI to get the docs which are published, that means this is not urgent and I can continue my work in #2301

@pggPLpggPL closed this Oct 24, 2025
@pggPL
pggPL deleted the 29docs branch August 5, 2026 16:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pggPL@ksivaman
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Docs fix for 2.9 by pggPL · Pull Request #2302 · NVIDIA/TransformerEngine · GitHub
Skip to content

Docs fix for 2.9 - #2302

Closed
pggPL wants to merge 2 commits into
NVIDIA:release_v2.9from
pggPL:29docs
Closed

Docs fix for 2.9#2302
pggPL wants to merge 2 commits into
NVIDIA:release_v2.9from
pggPL:29docs

Conversation

@pggPL

@pggPLpggPL commented Oct 24, 2025

Copy link
Copy Markdown
Collaborator

Description

Due to circular imports caused by #2256 docs are not properly generated.
This is not python issue, it affects only docs.

2.8
Zrzut ekranu 2025-10-24 o 12 59 29
current 2.9
Zrzut ekranu 2025-10-24 o 13 00 05
after fix
Zrzut ekranu 2025-10-24 o 13 00 49

Maybe it's not good idea to merge it, since this PR includes code changes, but maybe you can just take the docs from this PR for publishing.

Signed-off-by: Pawel Gadzinski <pgadzinski@nvidia.com>

@greptile-appsgreptile-appsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Greptile Overview

Greptile Summary

This PR fixes a circular import issue in the PyTorch backend that prevented documentation generation in v2.9. The problem arose from PR #2256's quantization API generalization, which created a circular dependency: utils.py imports torch_version from the parent package (line 15), while also defining its own torch_version() function (lines 780-782). The fix moves the torch_version import in jit.py from the package root to the utils module and adds a local torch_version() function definition in utils.py. This resolves the cycle by establishing a clear dependency hierarchy where utils.py provides the utility function and other modules consume it directly, allowing Sphinx autodoc to successfully traverse the module tree during documentation builds.

Important Files Changed

FilenameScoreOverview
transformer_engine/pytorch/jit.py5/5Changed import source for torch_version from package root to .utils module to break circular dependency
transformer_engine/pytorch/utils.py2/5Added torch_version() function definition but left conflicting import statement on line 15, creating incomplete circular-import fix; missing final newline

Confidence score: 2/5

  • This PR attempts to fix a documentation build issue but only partially resolves the circular import problem
  • Score lowered because transformer_engine/pytorch/utils.py still imports torch_version from the parent package (line 15) while also defining it locally (line 780), which does not fully break the circular dependency—the import statement on line 15 must be removed for a complete fix. Additionally, the file is missing a final newline at line 782, violating POSIX standards.
  • Pay close attention to transformer_engine/pytorch/utils.py—verify that removing the import on line 15 does not break other code that might depend on torch_version being re-exported from the parent module, and ensure the final newline is added to satisfy linters

2 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

import torch
from packaging.version import Version as PkgVersion

from . import torch_version

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: circular import – torch_version is imported from . (line 15) but also defined locally (line 780)

Prompt To Fix With AI
This is a comment left during a code review.
Path: transformer_engine/pytorch/utils.py
Line: 15:15
Comment:
**logic:** circular import – `torch_version` is imported from `.` (line 15) but also defined locally (line 780)
How can I resolve this? If you propose a fix, please make it concise.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, but the docs are generated properly

Comment threadtransformer_engine/pytorch/utils.py Outdated
@functools.lru_cache(maxsize=None)
def torch_version() -> tuple[int, ...]:
"""Get PyTorch version"""
return PkgVersion(str(torch.__version__)).release No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: missing newline at end of file (violates POSIX standard)

Prompt To Fix With AI
This is a comment left during a code review.
Path: transformer_engine/pytorch/utils.py
Line: 782:782
Comment:
**style:** missing newline at end of file (violates POSIX standard)
How can I resolve this? If you propose a fix, please make it concise.

@pggPL

Copy link
Copy Markdown
CollaboratorAuthor

/te-ci pytorch

import torch
from packaging.version import Version as PkgVersion

from . import torch_version

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
from . import torch_version

Comment on lines +779 to +782
@functools.lru_cache(maxsize=None)
def torch_version() -> tuple[int, ...]:
"""Get PyTorch version"""
return PkgVersion(str(torch.__version__)).release

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is already defined in __init__.py, which is the correct place for it.

@ksivaman

ksivaman commented Oct 24, 2025

Copy link
Copy Markdown
Member

Also, I do see the correct docs in our full CI. Maybe the github docs job has some issue?

@pggPL

Copy link
Copy Markdown
CollaboratorAuthor

That's weird, I get wrong docs locally, but indeed it seems that docs from nightly pipeline are ok. Even if they also have warning about circular imports. But if you use main CI to get the docs which are published, that means this is not urgent and I can continue my work in #2301

@pggPLpggPL closed this Oct 24, 2025
@pggPL
pggPL deleted the 29docs branch August 5, 2026 16:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pggPL@ksivaman
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Docs fix for 2.9 by pggPL · Pull Request #2302 · NVIDIA/TransformerEngine · GitHub
Skip to content

Docs fix for 2.9 - #2302

Closed
pggPL wants to merge 2 commits into
NVIDIA:release_v2.9from
pggPL:29docs
Closed

Docs fix for 2.9#2302
pggPL wants to merge 2 commits into
NVIDIA:release_v2.9from
pggPL:29docs

Conversation

@pggPL

@pggPLpggPL commented Oct 24, 2025

Copy link
Copy Markdown
Collaborator

Description

Due to circular imports caused by #2256 docs are not properly generated.
This is not python issue, it affects only docs.

2.8
Zrzut ekranu 2025-10-24 o 12 59 29
current 2.9
Zrzut ekranu 2025-10-24 o 13 00 05
after fix
Zrzut ekranu 2025-10-24 o 13 00 49

Maybe it's not good idea to merge it, since this PR includes code changes, but maybe you can just take the docs from this PR for publishing.

Signed-off-by: Pawel Gadzinski <pgadzinski@nvidia.com>

@greptile-appsgreptile-appsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Greptile Overview

Greptile Summary

This PR fixes a circular import issue in the PyTorch backend that prevented documentation generation in v2.9. The problem arose from PR #2256's quantization API generalization, which created a circular dependency: utils.py imports torch_version from the parent package (line 15), while also defining its own torch_version() function (lines 780-782). The fix moves the torch_version import in jit.py from the package root to the utils module and adds a local torch_version() function definition in utils.py. This resolves the cycle by establishing a clear dependency hierarchy where utils.py provides the utility function and other modules consume it directly, allowing Sphinx autodoc to successfully traverse the module tree during documentation builds.

Important Files Changed

FilenameScoreOverview
transformer_engine/pytorch/jit.py5/5Changed import source for torch_version from package root to .utils module to break circular dependency
transformer_engine/pytorch/utils.py2/5Added torch_version() function definition but left conflicting import statement on line 15, creating incomplete circular-import fix; missing final newline

Confidence score: 2/5

  • This PR attempts to fix a documentation build issue but only partially resolves the circular import problem
  • Score lowered because transformer_engine/pytorch/utils.py still imports torch_version from the parent package (line 15) while also defining it locally (line 780), which does not fully break the circular dependency—the import statement on line 15 must be removed for a complete fix. Additionally, the file is missing a final newline at line 782, violating POSIX standards.
  • Pay close attention to transformer_engine/pytorch/utils.py—verify that removing the import on line 15 does not break other code that might depend on torch_version being re-exported from the parent module, and ensure the final newline is added to satisfy linters

2 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

import torch
from packaging.version import Version as PkgVersion

from . import torch_version

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: circular import – torch_version is imported from . (line 15) but also defined locally (line 780)

Prompt To Fix With AI
This is a comment left during a code review.
Path: transformer_engine/pytorch/utils.py
Line: 15:15
Comment:
**logic:** circular import – `torch_version` is imported from `.` (line 15) but also defined locally (line 780)
How can I resolve this? If you propose a fix, please make it concise.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, but the docs are generated properly

Comment threadtransformer_engine/pytorch/utils.py Outdated
@functools.lru_cache(maxsize=None)
def torch_version() -> tuple[int, ...]:
"""Get PyTorch version"""
return PkgVersion(str(torch.__version__)).release No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: missing newline at end of file (violates POSIX standard)

Prompt To Fix With AI
This is a comment left during a code review.
Path: transformer_engine/pytorch/utils.py
Line: 782:782
Comment:
**style:** missing newline at end of file (violates POSIX standard)
How can I resolve this? If you propose a fix, please make it concise.

@pggPL

Copy link
Copy Markdown
CollaboratorAuthor

/te-ci pytorch

import torch
from packaging.version import Version as PkgVersion

from . import torch_version

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
from . import torch_version

Comment on lines +779 to +782
@functools.lru_cache(maxsize=None)
def torch_version() -> tuple[int, ...]:
"""Get PyTorch version"""
return PkgVersion(str(torch.__version__)).release

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is already defined in __init__.py, which is the correct place for it.

@ksivaman

ksivaman commented Oct 24, 2025

Copy link
Copy Markdown
Member

Also, I do see the correct docs in our full CI. Maybe the github docs job has some issue?

@pggPL

Copy link
Copy Markdown
CollaboratorAuthor

That's weird, I get wrong docs locally, but indeed it seems that docs from nightly pipeline are ok. Even if they also have warning about circular imports. But if you use main CI to get the docs which are published, that means this is not urgent and I can continue my work in #2301

@pggPLpggPL closed this Oct 24, 2025
@pggPL
pggPL deleted the 29docs branch August 5, 2026 16:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pggPL@ksivaman
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Docs fix for 2.9 by pggPL · Pull Request #2302 · NVIDIA/TransformerEngine · GitHub
Skip to content

Docs fix for 2.9 - #2302

Closed
pggPL wants to merge 2 commits into
NVIDIA:release_v2.9from
pggPL:29docs
Closed

Docs fix for 2.9#2302
pggPL wants to merge 2 commits into
NVIDIA:release_v2.9from
pggPL:29docs

Conversation

@pggPL

@pggPLpggPL commented Oct 24, 2025

Copy link
Copy Markdown
Collaborator

Description

Due to circular imports caused by #2256 docs are not properly generated.
This is not python issue, it affects only docs.

2.8
Zrzut ekranu 2025-10-24 o 12 59 29
current 2.9
Zrzut ekranu 2025-10-24 o 13 00 05
after fix
Zrzut ekranu 2025-10-24 o 13 00 49

Maybe it's not good idea to merge it, since this PR includes code changes, but maybe you can just take the docs from this PR for publishing.

Signed-off-by: Pawel Gadzinski <pgadzinski@nvidia.com>

@greptile-appsgreptile-appsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Greptile Overview

Greptile Summary

This PR fixes a circular import issue in the PyTorch backend that prevented documentation generation in v2.9. The problem arose from PR #2256's quantization API generalization, which created a circular dependency: utils.py imports torch_version from the parent package (line 15), while also defining its own torch_version() function (lines 780-782). The fix moves the torch_version import in jit.py from the package root to the utils module and adds a local torch_version() function definition in utils.py. This resolves the cycle by establishing a clear dependency hierarchy where utils.py provides the utility function and other modules consume it directly, allowing Sphinx autodoc to successfully traverse the module tree during documentation builds.

Important Files Changed

FilenameScoreOverview
transformer_engine/pytorch/jit.py5/5Changed import source for torch_version from package root to .utils module to break circular dependency
transformer_engine/pytorch/utils.py2/5Added torch_version() function definition but left conflicting import statement on line 15, creating incomplete circular-import fix; missing final newline

Confidence score: 2/5

  • This PR attempts to fix a documentation build issue but only partially resolves the circular import problem
  • Score lowered because transformer_engine/pytorch/utils.py still imports torch_version from the parent package (line 15) while also defining it locally (line 780), which does not fully break the circular dependency—the import statement on line 15 must be removed for a complete fix. Additionally, the file is missing a final newline at line 782, violating POSIX standards.
  • Pay close attention to transformer_engine/pytorch/utils.py—verify that removing the import on line 15 does not break other code that might depend on torch_version being re-exported from the parent module, and ensure the final newline is added to satisfy linters

2 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

import torch
from packaging.version import Version as PkgVersion

from . import torch_version

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: circular import – torch_version is imported from . (line 15) but also defined locally (line 780)

Prompt To Fix With AI
This is a comment left during a code review.
Path: transformer_engine/pytorch/utils.py
Line: 15:15
Comment:
**logic:** circular import – `torch_version` is imported from `.` (line 15) but also defined locally (line 780)
How can I resolve this? If you propose a fix, please make it concise.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, but the docs are generated properly

Comment threadtransformer_engine/pytorch/utils.py Outdated
@functools.lru_cache(maxsize=None)
def torch_version() -> tuple[int, ...]:
"""Get PyTorch version"""
return PkgVersion(str(torch.__version__)).release No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: missing newline at end of file (violates POSIX standard)

Prompt To Fix With AI
This is a comment left during a code review.
Path: transformer_engine/pytorch/utils.py
Line: 782:782
Comment:
**style:** missing newline at end of file (violates POSIX standard)
How can I resolve this? If you propose a fix, please make it concise.

@pggPL

Copy link
Copy Markdown
CollaboratorAuthor

/te-ci pytorch

import torch
from packaging.version import Version as PkgVersion

from . import torch_version

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
from . import torch_version

Comment on lines +779 to +782
@functools.lru_cache(maxsize=None)
def torch_version() -> tuple[int, ...]:
"""Get PyTorch version"""
return PkgVersion(str(torch.__version__)).release

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is already defined in __init__.py, which is the correct place for it.

@ksivaman

ksivaman commented Oct 24, 2025

Copy link
Copy Markdown
Member

Also, I do see the correct docs in our full CI. Maybe the github docs job has some issue?

@pggPL

Copy link
Copy Markdown
CollaboratorAuthor

That's weird, I get wrong docs locally, but indeed it seems that docs from nightly pipeline are ok. Even if they also have warning about circular imports. But if you use main CI to get the docs which are published, that means this is not urgent and I can continue my work in #2301

@pggPLpggPL closed this Oct 24, 2025
@pggPL
pggPL deleted the 29docs branch August 5, 2026 16:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pggPL@ksivaman
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Docs fix for 2.9 by pggPL · Pull Request #2302 · NVIDIA/TransformerEngine · GitHub
Skip to content

Docs fix for 2.9 - #2302

Closed
pggPL wants to merge 2 commits into
NVIDIA:release_v2.9from
pggPL:29docs
Closed

Docs fix for 2.9#2302
pggPL wants to merge 2 commits into
NVIDIA:release_v2.9from
pggPL:29docs

Conversation

@pggPL

@pggPLpggPL commented Oct 24, 2025

Copy link
Copy Markdown
Collaborator

Description

Due to circular imports caused by #2256 docs are not properly generated.
This is not python issue, it affects only docs.

2.8
Zrzut ekranu 2025-10-24 o 12 59 29
current 2.9
Zrzut ekranu 2025-10-24 o 13 00 05
after fix
Zrzut ekranu 2025-10-24 o 13 00 49

Maybe it's not good idea to merge it, since this PR includes code changes, but maybe you can just take the docs from this PR for publishing.

Signed-off-by: Pawel Gadzinski <pgadzinski@nvidia.com>

@greptile-appsgreptile-appsBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Greptile Overview

Greptile Summary

This PR fixes a circular import issue in the PyTorch backend that prevented documentation generation in v2.9. The problem arose from PR #2256's quantization API generalization, which created a circular dependency: utils.py imports torch_version from the parent package (line 15), while also defining its own torch_version() function (lines 780-782). The fix moves the torch_version import in jit.py from the package root to the utils module and adds a local torch_version() function definition in utils.py. This resolves the cycle by establishing a clear dependency hierarchy where utils.py provides the utility function and other modules consume it directly, allowing Sphinx autodoc to successfully traverse the module tree during documentation builds.

Important Files Changed

FilenameScoreOverview
transformer_engine/pytorch/jit.py5/5Changed import source for torch_version from package root to .utils module to break circular dependency
transformer_engine/pytorch/utils.py2/5Added torch_version() function definition but left conflicting import statement on line 15, creating incomplete circular-import fix; missing final newline

Confidence score: 2/5

  • This PR attempts to fix a documentation build issue but only partially resolves the circular import problem
  • Score lowered because transformer_engine/pytorch/utils.py still imports torch_version from the parent package (line 15) while also defining it locally (line 780), which does not fully break the circular dependency—the import statement on line 15 must be removed for a complete fix. Additionally, the file is missing a final newline at line 782, violating POSIX standards.
  • Pay close attention to transformer_engine/pytorch/utils.py—verify that removing the import on line 15 does not break other code that might depend on torch_version being re-exported from the parent module, and ensure the final newline is added to satisfy linters

2 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

import torch
from packaging.version import Version as PkgVersion

from . import torch_version

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: circular import – torch_version is imported from . (line 15) but also defined locally (line 780)

Prompt To Fix With AI
This is a comment left during a code review.
Path: transformer_engine/pytorch/utils.py
Line: 15:15
Comment:
**logic:** circular import – `torch_version` is imported from `.` (line 15) but also defined locally (line 780)
How can I resolve this? If you propose a fix, please make it concise.

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, but the docs are generated properly

Comment threadtransformer_engine/pytorch/utils.py Outdated
@functools.lru_cache(maxsize=None)
def torch_version() -> tuple[int, ...]:
"""Get PyTorch version"""
return PkgVersion(str(torch.__version__)).release No newline at end of file

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: missing newline at end of file (violates POSIX standard)

Prompt To Fix With AI
This is a comment left during a code review.
Path: transformer_engine/pytorch/utils.py
Line: 782:782
Comment:
**style:** missing newline at end of file (violates POSIX standard)
How can I resolve this? If you propose a fix, please make it concise.

@pggPL

Copy link
Copy Markdown
CollaboratorAuthor

/te-ci pytorch

import torch
from packaging.version import Version as PkgVersion

from . import torch_version

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
from . import torch_version

Comment on lines +779 to +782
@functools.lru_cache(maxsize=None)
def torch_version() -> tuple[int, ...]:
"""Get PyTorch version"""
return PkgVersion(str(torch.__version__)).release

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is already defined in __init__.py, which is the correct place for it.

@ksivaman

ksivaman commented Oct 24, 2025

Copy link
Copy Markdown
Member

Also, I do see the correct docs in our full CI. Maybe the github docs job has some issue?

@pggPL

Copy link
Copy Markdown
CollaboratorAuthor

That's weird, I get wrong docs locally, but indeed it seems that docs from nightly pipeline are ok. Even if they also have warning about circular imports. But if you use main CI to get the docs which are published, that means this is not urgent and I can continue my work in #2301

@pggPLpggPL closed this Oct 24, 2025
@pggPL
pggPL deleted the 29docs branch August 5, 2026 16:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@pggPL@ksivaman