Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": "1",
"generated": "2026-09-15T09:30:11.658018+00:00",
"generated": "2026-09-24T06:30:59.840333+00:00",
"modules": {
"a2a": {
"description": "A2A (Agent-to-Agent Protocol) - Zero-dependency Python implementation",
Expand Down Expand Up @@ -199,12 +199,12 @@
"files": [
"jsonschema/jsonschema.py"
],
"version": "0.4.0",
"version": "0.4.1",
"deps": [],
"tier": "subsystem",
"category": "validation",
"last_updated": "2026-09-14T17:04:46-05:00",
"content_hash": "39c67c20198220cfe3b0496a77dca2e36093e460e624b43fdae0175fe99b6512"
"last_updated": "2026-09-23T19:15:39-05:00",
"content_hash": "9b4f8684930617202004f8024e3e1e7b6e248982060e5d6caacdbf544e3ab0ab"
},
"jsonx": {
"description": "Extended JSON parser β€” zero dependencies, stdlib only, Python 3.10+",
Expand Down Expand Up @@ -283,12 +283,12 @@
"files": [
"profiler/profiler.py"
],
"version": "0.1.0",
"version": "0.1.1",
"deps": [],
"tier": "medium",
"category": "devtools",
"last_updated": "2026-09-15T03:31:09-05:00",
"content_hash": "cb2480fee4939b1cb869047df0b343762fb416e33638536db389407a4dc3d9ee"
"content_hash": "e9ccd8c5f87e53ec0eee622fc34f778c004cd234acbb7b9a1748a690e6574373"
},
"prompt": {
"description": "Zero-dependency interactive CLI prompts (confirm, select, text)",
Expand Down
25 changes: 20 additions & 5 deletions profiler/profiler.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# /// zerodep
# version = "0.1.0"
# version = "0.1.1"
# deps = []
# tier = "medium"
# category = "devtools"
Expand Down Expand Up @@ -971,7 +971,8 @@ def _render_flame_html(
'placeholder="Search functions\u2026" autocomplete="off">\n'
'<button id="reset-zoom" class="btn">Reset Zoom</button>\n'
'<button id="theme-toggle" class="btn" title="Toggle theme">'
"\U0001f319</button>\n"
f"{_SVG_MOON}{_SVG_SUN}"
"</button>\n"
"</div>\n"
f'<div id="flame-container" class="flame-container'
f'{" inverted" if inverted else ""}">\n'
Expand Down Expand Up @@ -1039,7 +1040,8 @@ def _render_table_html(
'<input type="text" id="filter-input" class="filter-input" '
'placeholder="Filter functions\u2026" autocomplete="off">\n'
'<button id="theme-toggle" class="btn" title="Toggle theme">'
"\U0001f319</button>\n"
f"{_SVG_MOON}{_SVG_SUN}"
"</button>\n"
"</div>\n"
'<div class="table-wrap">\n'
'<table id="profile-table">\n<thead><tr>\n'
Expand All @@ -1063,6 +1065,13 @@ def _render_table_html(
)


# ---------------------------------------------------------------------------
# Inline SVG icons for theme toggle
# ---------------------------------------------------------------------------

_SVG_MOON = '<svg id="icon-moon" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>'
_SVG_SUN = '<svg id="icon-sun" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:none"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>'

# ---------------------------------------------------------------------------
# Inline CSS for HTML table output
# ---------------------------------------------------------------------------
Expand Down Expand Up @@ -1172,7 +1181,10 @@ def _render_table_html(
next=mq&&mq.matches?'light':'dark';
}
html.setAttribute('data-theme',next);
tb.textContent=next==='dark'?'\\u2600':'\\uD83C\\uDF19';
var moon=document.getElementById('icon-moon');
var sun=document.getElementById('icon-sun');
if(moon)moon.style.display=next==='dark'?'none':'';
if(sun)sun.style.display=next==='dark'?'':'none';
});
});
})();
Expand Down Expand Up @@ -1364,7 +1376,10 @@ def _render_table_html(
next=mq&&mq.matches?'light':'dark';
}
html.setAttribute('data-theme',next);
tb.textContent=next==='dark'?'\\u2600':'\\uD83C\\uDF19';
var moon=document.getElementById('icon-moon');
var sun=document.getElementById('icon-sun');
if(moon)moon.style.display=next==='dark'?'none':'';
if(sun)sun.style.display=next==='dark'?'':'none';
});

render(FLAME_DATA,TOTAL_TIME);
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ max-complexity = 20
"validate/validate.py" = ["E501"]
"diff/diff.py" = ["E501"]
"vcs/vcs.py" = ["E501"]
"profiler/profiler.py" = ["E501"]
"httpserver/test_httpserver_unix_socket.py" = ["ASYNC240"]
"httpserver/test_httpserver_tls.py" = ["ASYNC240"]
"xml/xml.py" = ["E501"]
Expand Down
Loading