chromonic 0.0.1__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 (93) hide show
  1. chromonic-0.0.1/.github/workflows/release.yml +91 -0
  2. chromonic-0.0.1/.gitignore +14 -0
  3. chromonic-0.0.1/Cargo.lock +853 -0
  4. chromonic-0.0.1/Cargo.toml +14 -0
  5. chromonic-0.0.1/Makefile +28 -0
  6. chromonic-0.0.1/PKG-INFO +15 -0
  7. chromonic-0.0.1/PLAN.md +3 -0
  8. chromonic-0.0.1/README.md +88 -0
  9. chromonic-0.0.1/benchmarks/README.md +166 -0
  10. chromonic-0.0.1/benchmarks/compare_particles.py +81 -0
  11. chromonic-0.0.1/benchmarks/profile_browse.py +116 -0
  12. chromonic-0.0.1/benchmarks/profile_browse2.py +142 -0
  13. chromonic-0.0.1/benchmarks/results/500-nodes-after.json +141 -0
  14. chromonic-0.0.1/benchmarks/results/500-nodes-before.json +81 -0
  15. chromonic-0.0.1/benchmarks/results/google-after.json +123 -0
  16. chromonic-0.0.1/benchmarks/results/google-before.json +53 -0
  17. chromonic-0.0.1/benchmarks/results/particles-gpu.json +177 -0
  18. chromonic-0.0.1/benchmarks/smoke_native.py +74 -0
  19. chromonic-0.0.1/chromonic.png +0 -0
  20. chromonic-0.0.1/dist/chromonic-0.0.1-cp313-cp313-macosx_11_0_arm64.whl +0 -0
  21. chromonic-0.0.1/examples/animate.py +65 -0
  22. chromonic-0.0.1/examples/browse.py +31 -0
  23. chromonic-0.0.1/examples/browse2.py +33 -0
  24. chromonic-0.0.1/examples/containing_block_and_select_demo.py +74 -0
  25. chromonic-0.0.1/examples/hello_canvas.py +490 -0
  26. chromonic-0.0.1/examples/inline_flow_demo.py +56 -0
  27. chromonic-0.0.1/examples/interactive_canvas.py +1021 -0
  28. chromonic-0.0.1/examples/lazy_images_demo.py +103 -0
  29. chromonic-0.0.1/examples/live.py +56 -0
  30. chromonic-0.0.1/examples/parley_demo.py +43 -0
  31. chromonic-0.0.1/examples/particles.py +153 -0
  32. chromonic-0.0.1/examples/particles2.py +183 -0
  33. chromonic-0.0.1/examples/particles_test.py +558 -0
  34. chromonic-0.0.1/examples/particles_variation.py +321 -0
  35. chromonic-0.0.1/examples/poc.py +144 -0
  36. chromonic-0.0.1/examples/pyscript_app.py +19 -0
  37. chromonic-0.0.1/examples/pyscript_demo.py +67 -0
  38. chromonic-0.0.1/examples/pyscript_page.html +12 -0
  39. chromonic-0.0.1/examples/pyscript_src_demo.py +34 -0
  40. chromonic-0.0.1/examples/ua_and_images_demo.py +80 -0
  41. chromonic-0.0.1/examples/wrap_and_fonts_demo.py +44 -0
  42. chromonic-0.0.1/pyproject.toml +30 -0
  43. chromonic-0.0.1/python/chromonic/__init__.py +40 -0
  44. chromonic-0.0.1/python/chromonic/browser.py +357 -0
  45. chromonic-0.0.1/python/chromonic/browser_images.py +177 -0
  46. chromonic-0.0.1/python/chromonic/canvas2d.py +107 -0
  47. chromonic-0.0.1/python/chromonic/domonic_canvas_patch.py +74 -0
  48. chromonic-0.0.1/python/chromonic/fonts.py +174 -0
  49. chromonic-0.0.1/python/chromonic/hittest.py +32 -0
  50. chromonic-0.0.1/python/chromonic/native_browser.py +465 -0
  51. chromonic-0.0.1/python/chromonic/paint.py +281 -0
  52. chromonic-0.0.1/python/chromonic/pyscript.py +167 -0
  53. chromonic-0.0.1/python/chromonic/style_bridge.py +165 -0
  54. chromonic-0.0.1/python/chromonic/tree.py +1729 -0
  55. chromonic-0.0.1/python/chromonic/ua_style.py +133 -0
  56. chromonic-0.0.1/python/chromonic/webfonts.py +215 -0
  57. chromonic-0.0.1/python/chromonic/window.py +204 -0
  58. chromonic-0.0.1/src/lib.rs +592 -0
  59. chromonic-0.0.1/tests/layout/README.md +119 -0
  60. chromonic-0.0.1/tests/layout/conftest.py +4 -0
  61. chromonic-0.0.1/tests/layout/fixtures/block_flow.html +5 -0
  62. chromonic-0.0.1/tests/layout/fixtures/box_model.html +4 -0
  63. chromonic-0.0.1/tests/layout/fixtures/flex.html +4 -0
  64. chromonic-0.0.1/tests/layout/fixtures/grid.html +4 -0
  65. chromonic-0.0.1/tests/layout/fixtures/images.html +5 -0
  66. chromonic-0.0.1/tests/layout/fixtures/inline_rich.html +4 -0
  67. chromonic-0.0.1/tests/layout/fixtures/inline_text.html +4 -0
  68. chromonic-0.0.1/tests/layout/fixtures/lists_tables.html +3 -0
  69. chromonic-0.0.1/tests/layout/fixtures/min_max_sizes.html +4 -0
  70. chromonic-0.0.1/tests/layout/fixtures/nested_blocks.html +3 -0
  71. chromonic-0.0.1/tests/layout/fixtures/overflow.html +4 -0
  72. chromonic-0.0.1/tests/layout/fixtures/paint_styles.html +3 -0
  73. chromonic-0.0.1/tests/layout/fixtures/percentages.html +4 -0
  74. chromonic-0.0.1/tests/layout/fixtures/position_stack.html +3 -0
  75. chromonic-0.0.1/tests/layout/fixtures/positioning.html +4 -0
  76. chromonic-0.0.1/tests/layout/fixtures/typography.html +4 -0
  77. chromonic-0.0.1/tests/layout/fixtures/ua_defaults.html +1 -0
  78. chromonic-0.0.1/tests/layout/fixtures/viewport_inheritance.html +3 -0
  79. chromonic-0.0.1/tests/layout/harness/__init__.py +1 -0
  80. chromonic-0.0.1/tests/layout/harness/chrome_runner.py +156 -0
  81. chromonic-0.0.1/tests/layout/harness/compare.py +155 -0
  82. chromonic-0.0.1/tests/layout/harness/native_runner.py +150 -0
  83. chromonic-0.0.1/tests/layout/harness/run_suite.py +83 -0
  84. chromonic-0.0.1/tests/layout/harness/schema.py +36 -0
  85. chromonic-0.0.1/tests/layout/pages/catalog_page.html +3 -0
  86. chromonic-0.0.1/tests/layout/pages/docs_page.html +4 -0
  87. chromonic-0.0.1/tests/layout/pages/news_page.html +3 -0
  88. chromonic-0.0.1/tests/layout/test_comparison.py +120 -0
  89. chromonic-0.0.1/tests/test_canvas2d.py +82 -0
  90. chromonic-0.0.1/tests/test_chromonic.py +1785 -0
  91. chromonic-0.0.1/tests/test_native_browser.py +394 -0
  92. chromonic-0.0.1/tests/test_particles2.py +53 -0
  93. chromonic-0.0.1/tests/test_webfonts.py +162 -0
@@ -0,0 +1,91 @@
1
+ name: Release to PyPI
2
+
3
+ "on":
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ wheels:
9
+ name: Build wheel (${{ matrix.os }}, Python ${{ matrix.python }})
10
+ runs-on: ${{ matrix.os }}
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ os:
15
+ - ubuntu-latest
16
+ - windows-latest
17
+ - macos-13
18
+ - macos-14
19
+ python:
20
+ - "3.10"
21
+ - "3.11"
22
+ - "3.12"
23
+ - "3.13"
24
+
25
+ steps:
26
+ - uses: actions/checkout@v4
27
+
28
+ - uses: actions/setup-python@v5
29
+ with:
30
+ python-version: ${{ matrix.python }}
31
+
32
+ - name: Install maturin
33
+ run: python -m pip install "maturin>=1.7,<2"
34
+
35
+ - name: Build wheel
36
+ run: maturin build --release --out dist --interpreter python
37
+
38
+ - uses: actions/upload-artifact@v4
39
+ with:
40
+ name: wheels-${{ matrix.os }}-${{ matrix.python }}
41
+ path: dist/*
42
+
43
+ sdist:
44
+ name: Build sdist
45
+ runs-on: ubuntu-latest
46
+
47
+ steps:
48
+ - uses: actions/checkout@v4
49
+
50
+ - uses: actions/setup-python@v5
51
+ with:
52
+ python-version: "3.13"
53
+
54
+ - name: Install maturin
55
+ run: python -m pip install "maturin>=1.7,<2"
56
+
57
+ - name: Build sdist
58
+ run: maturin sdist --out dist
59
+
60
+ - uses: actions/upload-artifact@v4
61
+ with:
62
+ name: sdist
63
+ path: dist/*
64
+
65
+ publish:
66
+ name: Publish to PyPI
67
+ needs:
68
+ - wheels
69
+ - sdist
70
+ runs-on: ubuntu-latest
71
+ environment:
72
+ name: pypi
73
+ permissions:
74
+ id-token: write
75
+
76
+ steps:
77
+ - uses: actions/download-artifact@v4
78
+ with:
79
+ pattern: wheels-*
80
+ path: dist
81
+ merge-multiple: true
82
+
83
+ - uses: actions/download-artifact@v4
84
+ with:
85
+ name: sdist
86
+ path: dist
87
+
88
+ - name: Show artifacts
89
+ run: ls -lah dist
90
+
91
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,14 @@
1
+ /target/
2
+ .venv/
3
+ .pytest_cache/
4
+ tests/layout/artifacts/
5
+ __pycache__/
6
+ *.pyc
7
+ python/chromonic/*.so
8
+ python/chromonic/*.pyd
9
+
10
+ .DS_Store
11
+
12
+ # Cargo.lock IS committed (pins the exact dependency versions this POC was
13
+ # built and verified against) -- examples/poc.png and examples/poc_mutated.png ARE committed -- they're
14
+ # what the README embeds -- so nothing under examples/ is ignored here.