sphinx ext: include autosummary templates and extensions from cookiecutter-scverse - #60

Merged
ilia-kats merged 9 commits into
mainfrom
autosummary_templates
Jul 3, 2026
Merged

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse#60
ilia-kats merged 9 commits into
mainfrom
autosummary_templates

Conversation

@ilia-kats

Copy link
Copy Markdown
Collaborator

This moves the autosummary templates and custom Sphinx extensions from cookiecutter-scverse into our own Sphinx extension. See also the discussion in scverse/cookiecutter-scverse#483.

This moves the autosummary templates and custom Sphinx extensions from
cookiecutter-scverse into our own Sphinx extension. See also the
discussion in scverse/cookiecutter-scverse#483
@codecov

codecovBot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.72727% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.26%. Comparing base (a1e1f01) to head (d423a0f).
⚠️ Report is 2 commits behind head on main.

Files with missing linesPatch %Lines
src/scverse_misc/sphinx_ext/__init__.py92.72%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #60 +/- ##
==========================================
- Coverage 93.28% 93.26% -0.02% 
==========================================
Files 11 11 Lines 536 579 +43 ==========================================
+ Hits 500 540 +40 - Misses 36 39 +3 
Files with missing linesCoverage Δ
src/scverse_misc/sphinx_ext/__init__.py89.06% <92.72%> (+1.14%)⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@grst

grst commented Jul 1, 2026

Copy link
Copy Markdown

I don't see any issues from the technical side.
I think some lines would need to be added to the scverse_misc docs to describe this additional functionality of the sphinx extension, how to enable it, and why this is needed.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

I've added some docs. I would love to get rid of our own _templates/autosummary/class.rst and just dogfood, but that template contains a workaround for sphinx-doc/sphinx#14515, which we need. I'm also happy to include the workaround in the shipped template file or try to fix napoleon's _skip_member and ship the fixed version here until it's released as part of Sphinx.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown
  • Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?
  • Keeping the workaround until it's fixed upstream sounds reasonable. Maybe we can also track it in a ticket in scverse_misc so we don't forget to remove it eventually.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?

That's the plan, isn't it?

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

It is, but what do you mean by this then?

I'm also happy to include the workaround in the shipped template file

@ilia-kats

ilia-kats commented Jul 2, 2026

Copy link
Copy Markdown
CollaboratorAuthor

So scverse_misc currently has two sets of templates: One in docs/_templates, which was inherited from the cookiecutter template and is currently used to build the scverse_misc docs, and one in src/scverse_misc/sphinx_ext/templates (added in this PR), which will be used by downstream packages. The former contains the workaround (introduced in #40), the latter does not. So we can either also apply the workaround to the sphinx_ext template, or I attempt to fix the napoleon bug and make the fix part of our sphinx extension.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

IIUC, this bug only affects a minority of repos that want to document "special" functions with sphinx autodocs.
In that case I would keep the workaround in the local docs/_template fix and leave the sphinx_ext umodified and work on the napoleon fix in parallel.

Comment threadtests/test_sphinx.py
Comment threadsrc/scverse_misc/sphinx_ext/__init__.py
yield line


def _parse_returns_section(self: NumpyDocstring, section: str) -> list[str]:

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.

we should document that we do this (and what “this” is).

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.

Done. Not sure if that one sentence is enough, but the cookiecutter thing wasn't documented at all, so better than it used to be, I guess?

Comment threadtests/deprecation_decorator/test_sphinx.py Outdated
@ilia-kats
ilia-kats enabled auto-merge (squash) July 3, 2026 14:04
@ilia-kats
ilia-kats merged commit 3632417 into mainJul 3, 2026
12 checks passed
@ilia-kats
ilia-kats deleted the autosummary_templates branch July 3, 2026 14:06
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.

3 participants

@ilia-kats@grst@flying-sheep
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n 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;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse - #60

Merged
ilia-kats merged 9 commits into
mainfrom
autosummary_templates
Jul 3, 2026
Merged

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse#60
ilia-kats merged 9 commits into
mainfrom
autosummary_templates

Conversation

@ilia-kats

Copy link
Copy Markdown
Collaborator

This moves the autosummary templates and custom Sphinx extensions from cookiecutter-scverse into our own Sphinx extension. See also the discussion in scverse/cookiecutter-scverse#483.

This moves the autosummary templates and custom Sphinx extensions from
cookiecutter-scverse into our own Sphinx extension. See also the
discussion in scverse/cookiecutter-scverse#483
@codecov

codecovBot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.72727% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.26%. Comparing base (a1e1f01) to head (d423a0f).
⚠️ Report is 2 commits behind head on main.

Files with missing linesPatch %Lines
src/scverse_misc/sphinx_ext/__init__.py92.72%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #60 +/- ##
==========================================
- Coverage 93.28% 93.26% -0.02% 
==========================================
Files 11 11 Lines 536 579 +43 ==========================================
+ Hits 500 540 +40 - Misses 36 39 +3 
Files with missing linesCoverage Δ
src/scverse_misc/sphinx_ext/__init__.py89.06% <92.72%> (+1.14%)⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@grst

grst commented Jul 1, 2026

Copy link
Copy Markdown

I don't see any issues from the technical side.
I think some lines would need to be added to the scverse_misc docs to describe this additional functionality of the sphinx extension, how to enable it, and why this is needed.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

I've added some docs. I would love to get rid of our own _templates/autosummary/class.rst and just dogfood, but that template contains a workaround for sphinx-doc/sphinx#14515, which we need. I'm also happy to include the workaround in the shipped template file or try to fix napoleon's _skip_member and ship the fixed version here until it's released as part of Sphinx.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown
  • Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?
  • Keeping the workaround until it's fixed upstream sounds reasonable. Maybe we can also track it in a ticket in scverse_misc so we don't forget to remove it eventually.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?

That's the plan, isn't it?

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

It is, but what do you mean by this then?

I'm also happy to include the workaround in the shipped template file

@ilia-kats

ilia-kats commented Jul 2, 2026

Copy link
Copy Markdown
CollaboratorAuthor

So scverse_misc currently has two sets of templates: One in docs/_templates, which was inherited from the cookiecutter template and is currently used to build the scverse_misc docs, and one in src/scverse_misc/sphinx_ext/templates (added in this PR), which will be used by downstream packages. The former contains the workaround (introduced in #40), the latter does not. So we can either also apply the workaround to the sphinx_ext template, or I attempt to fix the napoleon bug and make the fix part of our sphinx extension.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

IIUC, this bug only affects a minority of repos that want to document "special" functions with sphinx autodocs.
In that case I would keep the workaround in the local docs/_template fix and leave the sphinx_ext umodified and work on the napoleon fix in parallel.

Comment threadtests/test_sphinx.py
Comment threadsrc/scverse_misc/sphinx_ext/__init__.py
yield line


def _parse_returns_section(self: NumpyDocstring, section: str) -> list[str]:

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.

we should document that we do this (and what “this” is).

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.

Done. Not sure if that one sentence is enough, but the cookiecutter thing wasn't documented at all, so better than it used to be, I guess?

Comment threadtests/deprecation_decorator/test_sphinx.py Outdated
@ilia-kats
ilia-kats enabled auto-merge (squash) July 3, 2026 14:04
@ilia-kats
ilia-kats merged commit 3632417 into mainJul 3, 2026
12 checks passed
@ilia-kats
ilia-kats deleted the autosummary_templates branch July 3, 2026 14:06
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.

3 participants

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

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse - #60

Merged
ilia-kats merged 9 commits into
mainfrom
autosummary_templates
Jul 3, 2026
Merged

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse#60
ilia-kats merged 9 commits into
mainfrom
autosummary_templates

Conversation

@ilia-kats

Copy link
Copy Markdown
Collaborator

This moves the autosummary templates and custom Sphinx extensions from cookiecutter-scverse into our own Sphinx extension. See also the discussion in scverse/cookiecutter-scverse#483.

This moves the autosummary templates and custom Sphinx extensions from
cookiecutter-scverse into our own Sphinx extension. See also the
discussion in scverse/cookiecutter-scverse#483
@codecov

codecovBot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.72727% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.26%. Comparing base (a1e1f01) to head (d423a0f).
⚠️ Report is 2 commits behind head on main.

Files with missing linesPatch %Lines
src/scverse_misc/sphinx_ext/__init__.py92.72%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #60 +/- ##
==========================================
- Coverage 93.28% 93.26% -0.02% 
==========================================
Files 11 11 Lines 536 579 +43 ==========================================
+ Hits 500 540 +40 - Misses 36 39 +3 
Files with missing linesCoverage Δ
src/scverse_misc/sphinx_ext/__init__.py89.06% <92.72%> (+1.14%)⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@grst

grst commented Jul 1, 2026

Copy link
Copy Markdown

I don't see any issues from the technical side.
I think some lines would need to be added to the scverse_misc docs to describe this additional functionality of the sphinx extension, how to enable it, and why this is needed.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

I've added some docs. I would love to get rid of our own _templates/autosummary/class.rst and just dogfood, but that template contains a workaround for sphinx-doc/sphinx#14515, which we need. I'm also happy to include the workaround in the shipped template file or try to fix napoleon's _skip_member and ship the fixed version here until it's released as part of Sphinx.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown
  • Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?
  • Keeping the workaround until it's fixed upstream sounds reasonable. Maybe we can also track it in a ticket in scverse_misc so we don't forget to remove it eventually.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?

That's the plan, isn't it?

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

It is, but what do you mean by this then?

I'm also happy to include the workaround in the shipped template file

@ilia-kats

ilia-kats commented Jul 2, 2026

Copy link
Copy Markdown
CollaboratorAuthor

So scverse_misc currently has two sets of templates: One in docs/_templates, which was inherited from the cookiecutter template and is currently used to build the scverse_misc docs, and one in src/scverse_misc/sphinx_ext/templates (added in this PR), which will be used by downstream packages. The former contains the workaround (introduced in #40), the latter does not. So we can either also apply the workaround to the sphinx_ext template, or I attempt to fix the napoleon bug and make the fix part of our sphinx extension.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

IIUC, this bug only affects a minority of repos that want to document "special" functions with sphinx autodocs.
In that case I would keep the workaround in the local docs/_template fix and leave the sphinx_ext umodified and work on the napoleon fix in parallel.

Comment threadtests/test_sphinx.py
Comment threadsrc/scverse_misc/sphinx_ext/__init__.py
yield line


def _parse_returns_section(self: NumpyDocstring, section: str) -> list[str]:

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.

we should document that we do this (and what “this” is).

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.

Done. Not sure if that one sentence is enough, but the cookiecutter thing wasn't documented at all, so better than it used to be, I guess?

Comment threadtests/deprecation_decorator/test_sphinx.py Outdated
@ilia-kats
ilia-kats enabled auto-merge (squash) July 3, 2026 14:04
@ilia-kats
ilia-kats merged commit 3632417 into mainJul 3, 2026
12 checks passed
@ilia-kats
ilia-kats deleted the autosummary_templates branch July 3, 2026 14:06
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.

3 participants

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

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse - #60

Merged
ilia-kats merged 9 commits into
mainfrom
autosummary_templates
Jul 3, 2026
Merged

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse#60
ilia-kats merged 9 commits into
mainfrom
autosummary_templates

Conversation

@ilia-kats

Copy link
Copy Markdown
Collaborator

This moves the autosummary templates and custom Sphinx extensions from cookiecutter-scverse into our own Sphinx extension. See also the discussion in scverse/cookiecutter-scverse#483.

This moves the autosummary templates and custom Sphinx extensions from
cookiecutter-scverse into our own Sphinx extension. See also the
discussion in scverse/cookiecutter-scverse#483
@codecov

codecovBot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.72727% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.26%. Comparing base (a1e1f01) to head (d423a0f).
⚠️ Report is 2 commits behind head on main.

Files with missing linesPatch %Lines
src/scverse_misc/sphinx_ext/__init__.py92.72%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #60 +/- ##
==========================================
- Coverage 93.28% 93.26% -0.02% 
==========================================
Files 11 11 Lines 536 579 +43 ==========================================
+ Hits 500 540 +40 - Misses 36 39 +3 
Files with missing linesCoverage Δ
src/scverse_misc/sphinx_ext/__init__.py89.06% <92.72%> (+1.14%)⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@grst

grst commented Jul 1, 2026

Copy link
Copy Markdown

I don't see any issues from the technical side.
I think some lines would need to be added to the scverse_misc docs to describe this additional functionality of the sphinx extension, how to enable it, and why this is needed.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

I've added some docs. I would love to get rid of our own _templates/autosummary/class.rst and just dogfood, but that template contains a workaround for sphinx-doc/sphinx#14515, which we need. I'm also happy to include the workaround in the shipped template file or try to fix napoleon's _skip_member and ship the fixed version here until it's released as part of Sphinx.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown
  • Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?
  • Keeping the workaround until it's fixed upstream sounds reasonable. Maybe we can also track it in a ticket in scverse_misc so we don't forget to remove it eventually.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?

That's the plan, isn't it?

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

It is, but what do you mean by this then?

I'm also happy to include the workaround in the shipped template file

@ilia-kats

ilia-kats commented Jul 2, 2026

Copy link
Copy Markdown
CollaboratorAuthor

So scverse_misc currently has two sets of templates: One in docs/_templates, which was inherited from the cookiecutter template and is currently used to build the scverse_misc docs, and one in src/scverse_misc/sphinx_ext/templates (added in this PR), which will be used by downstream packages. The former contains the workaround (introduced in #40), the latter does not. So we can either also apply the workaround to the sphinx_ext template, or I attempt to fix the napoleon bug and make the fix part of our sphinx extension.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

IIUC, this bug only affects a minority of repos that want to document "special" functions with sphinx autodocs.
In that case I would keep the workaround in the local docs/_template fix and leave the sphinx_ext umodified and work on the napoleon fix in parallel.

Comment threadtests/test_sphinx.py
Comment threadsrc/scverse_misc/sphinx_ext/__init__.py
yield line


def _parse_returns_section(self: NumpyDocstring, section: str) -> list[str]:

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.

we should document that we do this (and what “this” is).

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.

Done. Not sure if that one sentence is enough, but the cookiecutter thing wasn't documented at all, so better than it used to be, I guess?

Comment threadtests/deprecation_decorator/test_sphinx.py Outdated
@ilia-kats
ilia-kats enabled auto-merge (squash) July 3, 2026 14:04
@ilia-kats
ilia-kats merged commit 3632417 into mainJul 3, 2026
12 checks passed
@ilia-kats
ilia-kats deleted the autosummary_templates branch July 3, 2026 14:06
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.

3 participants

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

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse - #60

Merged
ilia-kats merged 9 commits into
mainfrom
autosummary_templates
Jul 3, 2026
Merged

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse#60
ilia-kats merged 9 commits into
mainfrom
autosummary_templates

Conversation

@ilia-kats

Copy link
Copy Markdown
Collaborator

This moves the autosummary templates and custom Sphinx extensions from cookiecutter-scverse into our own Sphinx extension. See also the discussion in scverse/cookiecutter-scverse#483.

This moves the autosummary templates and custom Sphinx extensions from
cookiecutter-scverse into our own Sphinx extension. See also the
discussion in scverse/cookiecutter-scverse#483
@codecov

codecovBot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.72727% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.26%. Comparing base (a1e1f01) to head (d423a0f).
⚠️ Report is 2 commits behind head on main.

Files with missing linesPatch %Lines
src/scverse_misc/sphinx_ext/__init__.py92.72%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #60 +/- ##
==========================================
- Coverage 93.28% 93.26% -0.02% 
==========================================
Files 11 11 Lines 536 579 +43 ==========================================
+ Hits 500 540 +40 - Misses 36 39 +3 
Files with missing linesCoverage Δ
src/scverse_misc/sphinx_ext/__init__.py89.06% <92.72%> (+1.14%)⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@grst

grst commented Jul 1, 2026

Copy link
Copy Markdown

I don't see any issues from the technical side.
I think some lines would need to be added to the scverse_misc docs to describe this additional functionality of the sphinx extension, how to enable it, and why this is needed.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

I've added some docs. I would love to get rid of our own _templates/autosummary/class.rst and just dogfood, but that template contains a workaround for sphinx-doc/sphinx#14515, which we need. I'm also happy to include the workaround in the shipped template file or try to fix napoleon's _skip_member and ship the fixed version here until it's released as part of Sphinx.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown
  • Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?
  • Keeping the workaround until it's fixed upstream sounds reasonable. Maybe we can also track it in a ticket in scverse_misc so we don't forget to remove it eventually.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?

That's the plan, isn't it?

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

It is, but what do you mean by this then?

I'm also happy to include the workaround in the shipped template file

@ilia-kats

ilia-kats commented Jul 2, 2026

Copy link
Copy Markdown
CollaboratorAuthor

So scverse_misc currently has two sets of templates: One in docs/_templates, which was inherited from the cookiecutter template and is currently used to build the scverse_misc docs, and one in src/scverse_misc/sphinx_ext/templates (added in this PR), which will be used by downstream packages. The former contains the workaround (introduced in #40), the latter does not. So we can either also apply the workaround to the sphinx_ext template, or I attempt to fix the napoleon bug and make the fix part of our sphinx extension.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

IIUC, this bug only affects a minority of repos that want to document "special" functions with sphinx autodocs.
In that case I would keep the workaround in the local docs/_template fix and leave the sphinx_ext umodified and work on the napoleon fix in parallel.

Comment threadtests/test_sphinx.py
Comment threadsrc/scverse_misc/sphinx_ext/__init__.py
yield line


def _parse_returns_section(self: NumpyDocstring, section: str) -> list[str]:

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.

we should document that we do this (and what “this” is).

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.

Done. Not sure if that one sentence is enough, but the cookiecutter thing wasn't documented at all, so better than it used to be, I guess?

Comment threadtests/deprecation_decorator/test_sphinx.py Outdated
@ilia-kats
ilia-kats enabled auto-merge (squash) July 3, 2026 14:04
@ilia-kats
ilia-kats merged commit 3632417 into mainJul 3, 2026
12 checks passed
@ilia-kats
ilia-kats deleted the autosummary_templates branch July 3, 2026 14:06
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.

3 participants

@ilia-kats@grst@flying-sheep
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse - #60

Merged
ilia-kats merged 9 commits into
mainfrom
autosummary_templates
Jul 3, 2026
Merged

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse#60
ilia-kats merged 9 commits into
mainfrom
autosummary_templates

Conversation

@ilia-kats

Copy link
Copy Markdown
Collaborator

This moves the autosummary templates and custom Sphinx extensions from cookiecutter-scverse into our own Sphinx extension. See also the discussion in scverse/cookiecutter-scverse#483.

This moves the autosummary templates and custom Sphinx extensions from
cookiecutter-scverse into our own Sphinx extension. See also the
discussion in scverse/cookiecutter-scverse#483
@codecov

codecovBot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.72727% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.26%. Comparing base (a1e1f01) to head (d423a0f).
⚠️ Report is 2 commits behind head on main.

Files with missing linesPatch %Lines
src/scverse_misc/sphinx_ext/__init__.py92.72%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #60 +/- ##
==========================================
- Coverage 93.28% 93.26% -0.02% 
==========================================
Files 11 11 Lines 536 579 +43 ==========================================
+ Hits 500 540 +40 - Misses 36 39 +3 
Files with missing linesCoverage Δ
src/scverse_misc/sphinx_ext/__init__.py89.06% <92.72%> (+1.14%)⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@grst

grst commented Jul 1, 2026

Copy link
Copy Markdown

I don't see any issues from the technical side.
I think some lines would need to be added to the scverse_misc docs to describe this additional functionality of the sphinx extension, how to enable it, and why this is needed.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

I've added some docs. I would love to get rid of our own _templates/autosummary/class.rst and just dogfood, but that template contains a workaround for sphinx-doc/sphinx#14515, which we need. I'm also happy to include the workaround in the shipped template file or try to fix napoleon's _skip_member and ship the fixed version here until it's released as part of Sphinx.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown
  • Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?
  • Keeping the workaround until it's fixed upstream sounds reasonable. Maybe we can also track it in a ticket in scverse_misc so we don't forget to remove it eventually.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?

That's the plan, isn't it?

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

It is, but what do you mean by this then?

I'm also happy to include the workaround in the shipped template file

@ilia-kats

ilia-kats commented Jul 2, 2026

Copy link
Copy Markdown
CollaboratorAuthor

So scverse_misc currently has two sets of templates: One in docs/_templates, which was inherited from the cookiecutter template and is currently used to build the scverse_misc docs, and one in src/scverse_misc/sphinx_ext/templates (added in this PR), which will be used by downstream packages. The former contains the workaround (introduced in #40), the latter does not. So we can either also apply the workaround to the sphinx_ext template, or I attempt to fix the napoleon bug and make the fix part of our sphinx extension.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

IIUC, this bug only affects a minority of repos that want to document "special" functions with sphinx autodocs.
In that case I would keep the workaround in the local docs/_template fix and leave the sphinx_ext umodified and work on the napoleon fix in parallel.

Comment threadtests/test_sphinx.py
Comment threadsrc/scverse_misc/sphinx_ext/__init__.py
yield line


def _parse_returns_section(self: NumpyDocstring, section: str) -> list[str]:

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.

we should document that we do this (and what “this” is).

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.

Done. Not sure if that one sentence is enough, but the cookiecutter thing wasn't documented at all, so better than it used to be, I guess?

Comment threadtests/deprecation_decorator/test_sphinx.py Outdated
@ilia-kats
ilia-kats enabled auto-merge (squash) July 3, 2026 14:04
@ilia-kats
ilia-kats merged commit 3632417 into mainJul 3, 2026
12 checks passed
@ilia-kats
ilia-kats deleted the autosummary_templates branch July 3, 2026 14:06
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.

3 participants

@ilia-kats@grst@flying-sheep
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse - #60

Merged
ilia-kats merged 9 commits into
mainfrom
autosummary_templates
Jul 3, 2026
Merged

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse#60
ilia-kats merged 9 commits into
mainfrom
autosummary_templates

Conversation

@ilia-kats

Copy link
Copy Markdown
Collaborator

This moves the autosummary templates and custom Sphinx extensions from cookiecutter-scverse into our own Sphinx extension. See also the discussion in scverse/cookiecutter-scverse#483.

This moves the autosummary templates and custom Sphinx extensions from
cookiecutter-scverse into our own Sphinx extension. See also the
discussion in scverse/cookiecutter-scverse#483
@codecov

codecovBot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.72727% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.26%. Comparing base (a1e1f01) to head (d423a0f).
⚠️ Report is 2 commits behind head on main.

Files with missing linesPatch %Lines
src/scverse_misc/sphinx_ext/__init__.py92.72%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #60 +/- ##
==========================================
- Coverage 93.28% 93.26% -0.02% 
==========================================
Files 11 11 Lines 536 579 +43 ==========================================
+ Hits 500 540 +40 - Misses 36 39 +3 
Files with missing linesCoverage Δ
src/scverse_misc/sphinx_ext/__init__.py89.06% <92.72%> (+1.14%)⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@grst

grst commented Jul 1, 2026

Copy link
Copy Markdown

I don't see any issues from the technical side.
I think some lines would need to be added to the scverse_misc docs to describe this additional functionality of the sphinx extension, how to enable it, and why this is needed.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

I've added some docs. I would love to get rid of our own _templates/autosummary/class.rst and just dogfood, but that template contains a workaround for sphinx-doc/sphinx#14515, which we need. I'm also happy to include the workaround in the shipped template file or try to fix napoleon's _skip_member and ship the fixed version here until it's released as part of Sphinx.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown
  • Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?
  • Keeping the workaround until it's fixed upstream sounds reasonable. Maybe we can also track it in a ticket in scverse_misc so we don't forget to remove it eventually.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?

That's the plan, isn't it?

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

It is, but what do you mean by this then?

I'm also happy to include the workaround in the shipped template file

@ilia-kats

ilia-kats commented Jul 2, 2026

Copy link
Copy Markdown
CollaboratorAuthor

So scverse_misc currently has two sets of templates: One in docs/_templates, which was inherited from the cookiecutter template and is currently used to build the scverse_misc docs, and one in src/scverse_misc/sphinx_ext/templates (added in this PR), which will be used by downstream packages. The former contains the workaround (introduced in #40), the latter does not. So we can either also apply the workaround to the sphinx_ext template, or I attempt to fix the napoleon bug and make the fix part of our sphinx extension.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

IIUC, this bug only affects a minority of repos that want to document "special" functions with sphinx autodocs.
In that case I would keep the workaround in the local docs/_template fix and leave the sphinx_ext umodified and work on the napoleon fix in parallel.

Comment threadtests/test_sphinx.py
Comment threadsrc/scverse_misc/sphinx_ext/__init__.py
yield line


def _parse_returns_section(self: NumpyDocstring, section: str) -> list[str]:

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.

we should document that we do this (and what “this” is).

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.

Done. Not sure if that one sentence is enough, but the cookiecutter thing wasn't documented at all, so better than it used to be, I guess?

Comment threadtests/deprecation_decorator/test_sphinx.py Outdated
@ilia-kats
ilia-kats enabled auto-merge (squash) July 3, 2026 14:04
@ilia-kats
ilia-kats merged commit 3632417 into mainJul 3, 2026
12 checks passed
@ilia-kats
ilia-kats deleted the autosummary_templates branch July 3, 2026 14:06
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.

3 participants

@ilia-kats@grst@flying-sheep
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse - #60

Merged
ilia-kats merged 9 commits into
mainfrom
autosummary_templates
Jul 3, 2026
Merged

sphinx ext: include autosummary templates and extensions from cookiecutter-scverse#60
ilia-kats merged 9 commits into
mainfrom
autosummary_templates

Conversation

@ilia-kats

Copy link
Copy Markdown
Collaborator

This moves the autosummary templates and custom Sphinx extensions from cookiecutter-scverse into our own Sphinx extension. See also the discussion in scverse/cookiecutter-scverse#483.

This moves the autosummary templates and custom Sphinx extensions from
cookiecutter-scverse into our own Sphinx extension. See also the
discussion in scverse/cookiecutter-scverse#483
@codecov

codecovBot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.72727% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.26%. Comparing base (a1e1f01) to head (d423a0f).
⚠️ Report is 2 commits behind head on main.

Files with missing linesPatch %Lines
src/scverse_misc/sphinx_ext/__init__.py92.72%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #60 +/- ##
==========================================
- Coverage 93.28% 93.26% -0.02% 
==========================================
Files 11 11 Lines 536 579 +43 ==========================================
+ Hits 500 540 +40 - Misses 36 39 +3 
Files with missing linesCoverage Δ
src/scverse_misc/sphinx_ext/__init__.py89.06% <92.72%> (+1.14%)⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@grst

grst commented Jul 1, 2026

Copy link
Copy Markdown

I don't see any issues from the technical side.
I think some lines would need to be added to the scverse_misc docs to describe this additional functionality of the sphinx extension, how to enable it, and why this is needed.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

I've added some docs. I would love to get rid of our own _templates/autosummary/class.rst and just dogfood, but that template contains a workaround for sphinx-doc/sphinx#14515, which we need. I'm also happy to include the workaround in the shipped template file or try to fix napoleon's _skip_member and ship the fixed version here until it's released as part of Sphinx.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown
  • Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?
  • Keeping the workaround until it's fixed upstream sounds reasonable. Maybe we can also track it in a ticket in scverse_misc so we don't forget to remove it eventually.

@ilia-kats

Copy link
Copy Markdown
CollaboratorAuthor

Once this is merged, can't we update the template to use scverse_misc and get rid of all custom sphinx extensions there?

That's the plan, isn't it?

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

It is, but what do you mean by this then?

I'm also happy to include the workaround in the shipped template file

@ilia-kats

ilia-kats commented Jul 2, 2026

Copy link
Copy Markdown
CollaboratorAuthor

So scverse_misc currently has two sets of templates: One in docs/_templates, which was inherited from the cookiecutter template and is currently used to build the scverse_misc docs, and one in src/scverse_misc/sphinx_ext/templates (added in this PR), which will be used by downstream packages. The former contains the workaround (introduced in #40), the latter does not. So we can either also apply the workaround to the sphinx_ext template, or I attempt to fix the napoleon bug and make the fix part of our sphinx extension.

@grst

grst commented Jul 2, 2026

Copy link
Copy Markdown

IIUC, this bug only affects a minority of repos that want to document "special" functions with sphinx autodocs.
In that case I would keep the workaround in the local docs/_template fix and leave the sphinx_ext umodified and work on the napoleon fix in parallel.

Comment threadtests/test_sphinx.py
Comment threadsrc/scverse_misc/sphinx_ext/__init__.py
yield line


def _parse_returns_section(self: NumpyDocstring, section: str) -> list[str]:

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.

we should document that we do this (and what “this” is).

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.

Done. Not sure if that one sentence is enough, but the cookiecutter thing wasn't documented at all, so better than it used to be, I guess?

Comment threadtests/deprecation_decorator/test_sphinx.py Outdated
@ilia-kats
ilia-kats enabled auto-merge (squash) July 3, 2026 14:04
@ilia-kats
ilia-kats merged commit 3632417 into mainJul 3, 2026
12 checks passed
@ilia-kats
ilia-kats deleted the autosummary_templates branch July 3, 2026 14:06
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.

3 participants

@ilia-kats@grst@flying-sheep