mangleframes 0.1.7__tar.gz → 0.1.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. {mangleframes-0.1.7 → mangleframes-0.1.8}/PKG-INFO +1 -1
  2. {mangleframes-0.1.7 → mangleframes-0.1.8}/pyproject.toml +1 -1
  3. {mangleframes-0.1.7 → mangleframes-0.1.8}/python/mangleframes/__init__.py +1 -1
  4. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/static/app.js +3 -0
  5. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/static/style.css +20 -3
  6. {mangleframes-0.1.7 → mangleframes-0.1.8}/Cargo.lock +0 -0
  7. {mangleframes-0.1.7 → mangleframes-0.1.8}/Cargo.toml +0 -0
  8. {mangleframes-0.1.7 → mangleframes-0.1.8}/python/mangleframes/launcher.py +0 -0
  9. {mangleframes-0.1.7 → mangleframes-0.1.8}/python/mangleframes/protocol.py +0 -0
  10. {mangleframes-0.1.7 → mangleframes-0.1.8}/python/mangleframes/server.py +0 -0
  11. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/Cargo.toml +0 -0
  12. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/src/arrow_reader.rs +0 -0
  13. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/src/export.rs +0 -0
  14. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/src/handlers.rs +0 -0
  15. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/src/history_analysis.rs +0 -0
  16. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/src/history_handlers.rs +0 -0
  17. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/src/join_analysis.rs +0 -0
  18. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/src/join_handlers.rs +0 -0
  19. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/src/main.rs +0 -0
  20. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/src/perf.rs +0 -0
  21. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/src/query_engine.rs +0 -0
  22. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/src/socket_client.rs +0 -0
  23. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/src/stats.rs +0 -0
  24. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/src/web_server.rs +0 -0
  25. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/src/websocket.rs +0 -0
  26. {mangleframes-0.1.7 → mangleframes-0.1.8}/viewer/static/index.html +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mangleframes
3
- Version: 0.1.7
3
+ Version: 0.1.8
4
4
  Classifier: Programming Language :: Python :: 3
5
5
  Classifier: Programming Language :: Rust
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "mangleframes"
7
- version = "0.1.7"
7
+ version = "0.1.8"
8
8
  description = "PySpark DataFrame viewer with modern web UI"
9
9
  requires-python = ">=3.11"
10
10
  license = { text = "MIT" }
@@ -16,7 +16,7 @@ from .server import DataFrameServer
16
16
  if TYPE_CHECKING:
17
17
  from pyspark.sql import DataFrame
18
18
 
19
- __version__ = "0.1.7"
19
+ __version__ = "0.1.8"
20
20
  __all__ = ["register", "unregister", "show", "cleanup"]
21
21
 
22
22
  _registry: dict[str, DataFrame] = {}
@@ -1146,6 +1146,9 @@ function renderCoverageTimeline(result) {
1146
1146
 
1147
1147
  const frames = result.frames;
1148
1148
  const timeline = result.timeline;
1149
+
1150
+ // Add dense class for many buckets to reduce bar width
1151
+ chart.classList.toggle('dense', timeline.length > 200);
1149
1152
  const buckets = timeline.map(t => t.bucket);
1150
1153
 
1151
1154
  // Create row for each frame
@@ -787,6 +787,10 @@ details.drag-over {
787
787
  color: var(--text-muted);
788
788
  }
789
789
 
790
+ #timeline-chart {
791
+ overflow-x: auto;
792
+ }
793
+
790
794
  .timeline-legend {
791
795
  display: flex;
792
796
  gap: 16px;
@@ -834,22 +838,35 @@ details.drag-over {
834
838
  text-overflow: ellipsis;
835
839
  white-space: nowrap;
836
840
  flex-shrink: 0;
841
+ position: sticky;
842
+ left: 0;
843
+ background: var(--bg);
844
+ z-index: 1;
845
+ padding-right: 8px;
837
846
  }
838
847
 
839
848
  .timeline-bars {
840
849
  display: flex;
841
- flex: 1;
842
850
  gap: 2px;
851
+ min-width: max-content;
843
852
  }
844
853
 
845
854
  .timeline-bar {
846
- flex: 1;
855
+ width: 4px;
856
+ flex-shrink: 0;
847
857
  height: 20px;
848
858
  border-radius: 2px;
849
- min-width: 4px;
850
859
  transition: opacity 0.15s;
851
860
  }
852
861
 
862
+ #timeline-chart.dense .timeline-bar {
863
+ width: 2px;
864
+ }
865
+
866
+ #timeline-chart.dense .timeline-bars {
867
+ gap: 1px;
868
+ }
869
+
853
870
  .timeline-bar:hover {
854
871
  opacity: 0.8;
855
872
  }
File without changes
File without changes