v8-python 0.1.0__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 (108) hide show
  1. v8_python-0.1.0/.github/workflows/docs.yml +53 -0
  2. v8_python-0.1.0/.github/workflows/lint-test.yml +71 -0
  3. v8_python-0.1.0/.github/workflows/release.yml +293 -0
  4. v8_python-0.1.0/.gitignore +76 -0
  5. v8_python-0.1.0/Cargo.lock +1815 -0
  6. v8_python-0.1.0/Cargo.toml +20 -0
  7. v8_python-0.1.0/PKG-INFO +126 -0
  8. v8_python-0.1.0/README.md +109 -0
  9. v8_python-0.1.0/docs/_stubs/v8/__init__.py +2550 -0
  10. v8_python-0.1.0/docs/_stubs/v8/api/__init__.py +190 -0
  11. v8_python-0.1.0/docs/api-reference/host-apis.md +21 -0
  12. v8_python-0.1.0/docs/api-reference/index.md +10 -0
  13. v8_python-0.1.0/docs/api-reference/js-object.md +33 -0
  14. v8_python-0.1.0/docs/api-reference/runtime-api.md +27 -0
  15. v8_python-0.1.0/docs/index.md +32 -0
  16. v8_python-0.1.0/docs/tutorial.md +78 -0
  17. v8_python-0.1.0/examples/_shared.py +37 -0
  18. v8_python-0.1.0/examples/buffers.py +15 -0
  19. v8_python-0.1.0/examples/console.py +17 -0
  20. v8_python-0.1.0/examples/dynamic_code_policy.py +12 -0
  21. v8_python-0.1.0/examples/embedder.py +22 -0
  22. v8_python-0.1.0/examples/errors.py +24 -0
  23. v8_python-0.1.0/examples/heap_gc.py +18 -0
  24. v8_python-0.1.0/examples/host_class.py +28 -0
  25. v8_python-0.1.0/examples/host_function.py +30 -0
  26. v8_python-0.1.0/examples/inspector.py +48 -0
  27. v8_python-0.1.0/examples/microtask_queue.py +17 -0
  28. v8_python-0.1.0/examples/module_loader.py +40 -0
  29. v8_python-0.1.0/examples/promise.py +20 -0
  30. v8_python-0.1.0/examples/promise_rejection_tracker.py +23 -0
  31. v8_python-0.1.0/examples/properties.py +24 -0
  32. v8_python-0.1.0/examples/script_code_cache.py +22 -0
  33. v8_python-0.1.0/examples/shadow_realm.py +19 -0
  34. v8_python-0.1.0/examples/shared_array_buffer_atomics.py +24 -0
  35. v8_python-0.1.0/examples/snapshot.py +15 -0
  36. v8_python-0.1.0/examples/structured_clone.py +26 -0
  37. v8_python-0.1.0/examples/timer.py +53 -0
  38. v8_python-0.1.0/examples/tutorial.py +13 -0
  39. v8_python-0.1.0/examples/value_operators.py +14 -0
  40. v8_python-0.1.0/examples/webassembly.py +34 -0
  41. v8_python-0.1.0/examples/wrappers.py +21 -0
  42. v8_python-0.1.0/pyproject.toml +54 -0
  43. v8_python-0.1.0/src/bin/stub_gen.rs +467 -0
  44. v8_python-0.1.0/src/context.rs +1246 -0
  45. v8_python-0.1.0/src/error.rs +685 -0
  46. v8_python-0.1.0/src/event_loop.rs +327 -0
  47. v8_python-0.1.0/src/heap.rs +141 -0
  48. v8_python-0.1.0/src/host_apis/atomics.rs +72 -0
  49. v8_python-0.1.0/src/host_apis/console.rs +545 -0
  50. v8_python-0.1.0/src/host_apis/dynamic_code_policy.rs +85 -0
  51. v8_python-0.1.0/src/host_apis/inspector.rs +409 -0
  52. v8_python-0.1.0/src/host_apis/microtask_queue.rs +106 -0
  53. v8_python-0.1.0/src/host_apis/mod.rs +198 -0
  54. v8_python-0.1.0/src/host_apis/module_loader.rs +652 -0
  55. v8_python-0.1.0/src/host_apis/promise_rejection_tracker.rs +229 -0
  56. v8_python-0.1.0/src/host_apis/shadow_realm.rs +86 -0
  57. v8_python-0.1.0/src/host_apis/shared_array_buffer.rs +155 -0
  58. v8_python-0.1.0/src/host_apis/timer.rs +243 -0
  59. v8_python-0.1.0/src/host_apis/web_assembly.rs +580 -0
  60. v8_python-0.1.0/src/isolate.rs +143 -0
  61. v8_python-0.1.0/src/lib.rs +226 -0
  62. v8_python-0.1.0/src/module.rs +329 -0
  63. v8_python-0.1.0/src/profile.rs +590 -0
  64. v8_python-0.1.0/src/runtime.rs +432 -0
  65. v8_python-0.1.0/src/scope.rs +123 -0
  66. v8_python-0.1.0/src/script.rs +131 -0
  67. v8_python-0.1.0/src/snapshot.rs +312 -0
  68. v8_python-0.1.0/src/structured_clone.rs +116 -0
  69. v8_python-0.1.0/src/templates.rs +436 -0
  70. v8_python-0.1.0/src/v8value/awaitable.rs +134 -0
  71. v8_python-0.1.0/src/v8value/convert.rs +609 -0
  72. v8_python-0.1.0/src/v8value/embedder.rs +341 -0
  73. v8_python-0.1.0/src/v8value/handle.rs +55 -0
  74. v8_python-0.1.0/src/v8value/kind.rs +217 -0
  75. v8_python-0.1.0/src/v8value/mod.rs +26 -0
  76. v8_python-0.1.0/src/v8value/operator.rs +225 -0
  77. v8_python-0.1.0/src/v8value/property.rs +655 -0
  78. v8_python-0.1.0/src/v8value/typed.rs +2382 -0
  79. v8_python-0.1.0/src/v8value/value.rs +1913 -0
  80. v8_python-0.1.0/src/v8value/wasm.rs +344 -0
  81. v8_python-0.1.0/tests/__init__.py +0 -0
  82. v8_python-0.1.0/tests/support.py +144 -0
  83. v8_python-0.1.0/tests/test_atomics.py +43 -0
  84. v8_python-0.1.0/tests/test_buffers.py +103 -0
  85. v8_python-0.1.0/tests/test_console_policy.py +111 -0
  86. v8_python-0.1.0/tests/test_embedder.py +92 -0
  87. v8_python-0.1.0/tests/test_errors.py +82 -0
  88. v8_python-0.1.0/tests/test_event_loop.py +145 -0
  89. v8_python-0.1.0/tests/test_gc.py +65 -0
  90. v8_python-0.1.0/tests/test_heap.py +69 -0
  91. v8_python-0.1.0/tests/test_host_functions.py +100 -0
  92. v8_python-0.1.0/tests/test_inspector.py +85 -0
  93. v8_python-0.1.0/tests/test_modules.py +134 -0
  94. v8_python-0.1.0/tests/test_profile.py +64 -0
  95. v8_python-0.1.0/tests/test_promises.py +113 -0
  96. v8_python-0.1.0/tests/test_properties.py +114 -0
  97. v8_python-0.1.0/tests/test_script_metadata.py +109 -0
  98. v8_python-0.1.0/tests/test_shadow_realm.py +44 -0
  99. v8_python-0.1.0/tests/test_snapshot.py +77 -0
  100. v8_python-0.1.0/tests/test_structured_clone.py +71 -0
  101. v8_python-0.1.0/tests/test_templates.py +100 -0
  102. v8_python-0.1.0/tests/test_values.py +208 -0
  103. v8_python-0.1.0/tests/test_wasm.py +206 -0
  104. v8_python-0.1.0/tests/test_wrappers.py +123 -0
  105. v8_python-0.1.0/typings/v8/__init__.pyi +2528 -0
  106. v8_python-0.1.0/typings/v8/api/__init__.pyi +190 -0
  107. v8_python-0.1.0/uv.lock +623 -0
  108. v8_python-0.1.0/zensical.toml +72 -0
@@ -0,0 +1,53 @@
1
+ name: Documentation
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - master
8
+ pull_request:
9
+ workflow_dispatch:
10
+
11
+ permissions:
12
+ contents: read
13
+
14
+ jobs:
15
+ build:
16
+ name: Build documentation
17
+ runs-on: ubuntu-latest
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+ - uses: actions/setup-python@v5
21
+ with:
22
+ python-version: "3.10"
23
+ - uses: astral-sh/setup-uv@v4
24
+ with:
25
+ enable-cache: true
26
+ - name: Sync documentation dependencies
27
+ run: uv sync --locked --only-group doc --no-install-project
28
+ - name: Build documentation
29
+ run: uv run --no-sync zensical build --strict
30
+ - name: Upload Pages artifact
31
+ if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') }}
32
+ uses: actions/upload-pages-artifact@v3
33
+ with:
34
+ path: site
35
+
36
+ deploy:
37
+ name: Deploy GitHub Pages
38
+ runs-on: ubuntu-latest
39
+ if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') }}
40
+ needs: build
41
+ permissions:
42
+ pages: write
43
+ id-token: write
44
+ concurrency:
45
+ group: pages
46
+ cancel-in-progress: false
47
+ environment:
48
+ name: github-pages
49
+ url: ${{ steps.deployment.outputs.page_url }}
50
+ steps:
51
+ - name: Deploy Pages
52
+ id: deployment
53
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,71 @@
1
+ name: Lint and Test
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - master
8
+ pull_request:
9
+ workflow_dispatch:
10
+
11
+ permissions:
12
+ contents: read
13
+
14
+ env:
15
+ CARGO_TERM_COLOR: always
16
+
17
+ jobs:
18
+ python:
19
+ name: Python static checks
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+ - uses: actions/setup-python@v5
24
+ with:
25
+ python-version: "3.10"
26
+ - uses: astral-sh/setup-uv@v4
27
+ with:
28
+ enable-cache: true
29
+ - name: Sync Python tooling
30
+ run: uv sync --locked --only-group dev --no-install-project
31
+ - name: Ruff
32
+ run: uv run --no-sync ruff check .
33
+ - name: Pyright
34
+ run: uv run --no-sync pyright tests examples
35
+
36
+ python-tests:
37
+ name: Python tests py${{ matrix.python_version }}
38
+ runs-on: macos-14
39
+ strategy:
40
+ fail-fast: false
41
+ matrix:
42
+ python_version: ["3.10", "3.14"]
43
+ steps:
44
+ - uses: actions/checkout@v4
45
+ - uses: actions/setup-python@v5
46
+ with:
47
+ python-version: ${{ matrix.python_version }}
48
+ - uses: astral-sh/setup-uv@v4
49
+ with:
50
+ enable-cache: true
51
+ - name: Sync Python tooling
52
+ run: uv sync --locked --only-group dev --no-install-project
53
+ - name: Build extension
54
+ run: uv run --no-sync maturin develop
55
+ - name: Python tests
56
+ run: uv run --no-sync python -m unittest discover
57
+
58
+ rust:
59
+ name: Rust
60
+ runs-on: macos-14
61
+ steps:
62
+ - uses: actions/checkout@v4
63
+ - uses: actions/setup-python@v5
64
+ with:
65
+ python-version: "3.10"
66
+ - name: Cargo check
67
+ run: cargo check --all-targets
68
+ - name: Cargo clippy
69
+ run: cargo clippy --all-targets -- -D warnings
70
+ - name: Cargo tests
71
+ run: cargo test --all-targets
@@ -0,0 +1,293 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*.*.*"
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ env:
13
+ CARGO_TERM_COLOR: always
14
+
15
+ jobs:
16
+ linux:
17
+ name: Linux ${{ matrix.target }} py3.10-3.14
18
+ runs-on: ${{ matrix.runner }}
19
+ strategy:
20
+ fail-fast: false
21
+ matrix:
22
+ include:
23
+ - runner: ubuntu-22.04
24
+ target: x86_64
25
+ rust_target: x86_64-unknown-linux-gnu
26
+ container: quay.io/pypa/manylinux_2_28_x86_64:latest
27
+ v8_from_source: "1"
28
+ extra_gn_args: v8_enable_temporal_support=false v8_monolithic=true v8_monolithic_for_shared_library=true v8_use_external_startup_data=false
29
+ docker_options: >-
30
+ -e V8_FROM_SOURCE=1
31
+ -e "EXTRA_GN_ARGS=v8_enable_temporal_support=false v8_monolithic=true v8_monolithic_for_shared_library=true v8_use_external_startup_data=false"
32
+ - runner: ubuntu-24.04-arm
33
+ target: aarch64
34
+ rust_target: aarch64-unknown-linux-gnu
35
+ container: quay.io/pypa/manylinux_2_28_aarch64:latest
36
+ v8_from_source: "0"
37
+ extra_gn_args: ""
38
+ docker_options: -e V8_FROM_SOURCE=0
39
+ steps:
40
+ - uses: actions/checkout@v4
41
+ - name: Build wheel
42
+ uses: PyO3/maturin-action@v1
43
+ env:
44
+ # rusty_v8's prebuilt Linux archive uses a TLS model that cannot be
45
+ # linked into a Python extension module on x86_64. Source builds set
46
+ # v8_monolithic + v8_monolithic_for_shared_library so V8 uses
47
+ # shared-library-safe TLS.
48
+ # aarch64 uses the published rusty_v8 archive.
49
+ V8_FROM_SOURCE: ${{ matrix.v8_from_source }}
50
+ # The crates.io v8 archive does not include Chromium's
51
+ # third_party/rust/chromium_crates_io/vendor tree needed by the
52
+ # Temporal Rust dependency, so source builds avoid those GN targets.
53
+ EXTRA_GN_ARGS: ${{ matrix.extra_gn_args }}
54
+ LIBCLANG_PATH: ${{ github.workspace }}/target/${{ matrix.rust_target }}/release/llvm-toolset/lib
55
+ LD_LIBRARY_PATH: ${{ github.workspace }}/target/${{ matrix.rust_target }}/release/llvm-toolset/lib
56
+ with:
57
+ target: ${{ matrix.target }}
58
+ # Source-building V8 needs Chromium's `gn` binary, which requires
59
+ # GLIBC_2.18+. manylinux2014 only has glibc 2.17, so use 2_28 here.
60
+ manylinux: "2_28"
61
+ container: ${{ matrix.container }}
62
+ docker-options: >-
63
+ ${{ matrix.docker_options }}
64
+ -e LIBCLANG_PATH=${{ github.workspace }}/target/${{ matrix.rust_target }}/release/llvm-toolset/lib
65
+ -e LD_LIBRARY_PATH=${{ github.workspace }}/target/${{ matrix.rust_target }}/release/llvm-toolset/lib
66
+ before-script-linux: |
67
+ if [ "${{ matrix.v8_from_source }}" = "1" ]; then
68
+ env -u RUSTC_WRAPPER cargo fetch --locked
69
+ V8_SRC="$(find /root/.cargo/registry/src -maxdepth 2 -type d -name 'v8-147.4.0' -print -quit)"
70
+ if [ -z "$V8_SRC" ]; then
71
+ echo "::error::Could not find the v8-147.4.0 crate source after cargo fetch."
72
+ exit 1
73
+ fi
74
+ CLANG_DIR="${{ github.workspace }}/target/${{ matrix.rust_target }}/release/clang"
75
+ python3 "$V8_SRC/tools/clang/scripts/update.py" --output-dir "$CLANG_DIR"
76
+
77
+ install_llvm_toolset() {
78
+ if command -v dnf >/dev/null 2>&1; then
79
+ dnf install -y llvm-toolset clang-libs && return 0
80
+ dnf module install -y llvm-toolset && return 0
81
+ dnf install -y clang clang-libs && return 0
82
+ fi
83
+ if command -v yum >/dev/null 2>&1; then
84
+ yum install -y llvm-toolset clang-libs && return 0
85
+ yum module install -y llvm-toolset && return 0
86
+ yum install -y clang clang-libs && return 0
87
+ fi
88
+ return 1
89
+ }
90
+
91
+ if ! install_llvm_toolset; then
92
+ echo "::error::Could not install LLVM Toolset or clang-libs in the manylinux container."
93
+ exit 1
94
+ fi
95
+
96
+ LIBCLANG_SEARCH_DIRS=""
97
+ for dir in /opt/rh /usr/lib64 /usr/lib; do
98
+ if [ -d "$dir" ]; then
99
+ LIBCLANG_SEARCH_DIRS="$LIBCLANG_SEARCH_DIRS $dir"
100
+ fi
101
+ done
102
+ LIBCLANG_SO="$(find $LIBCLANG_SEARCH_DIRS -name 'libclang.so*' -print 2>/dev/null | sort -Vr | head -n1 || true)"
103
+ if [ -z "$LIBCLANG_SO" ]; then
104
+ echo "::error::Could not find libclang.so after installing LLVM Toolset."
105
+ find $LIBCLANG_SEARCH_DIRS -maxdepth 6 -name '*clang*' -print 2>/dev/null | sort | head -200 || true
106
+ exit 1
107
+ fi
108
+ LIBCLANG_DIR="$(dirname "$LIBCLANG_SO")"
109
+ LLVM_ROOT="$(dirname "$LIBCLANG_DIR")"
110
+ CLANG_BIN="$LLVM_ROOT/bin/clang"
111
+ if [ ! -x "$CLANG_BIN" ]; then
112
+ CLANG_BIN="$(command -v clang || true)"
113
+ fi
114
+ if [ ! -x "$CLANG_BIN" ]; then
115
+ echo "::error::Could not find a clang executable matching the installed libclang."
116
+ exit 1
117
+ fi
118
+
119
+ LLVM_TOOLSET_DIR="${{ github.workspace }}/target/${{ matrix.rust_target }}/release/llvm-toolset"
120
+ rm -rf "$LLVM_TOOLSET_DIR"
121
+ mkdir -p "$LLVM_TOOLSET_DIR"
122
+ ln -s "$LIBCLANG_DIR" "$LLVM_TOOLSET_DIR/lib"
123
+ ln -s "$(dirname "$CLANG_BIN")" "$LLVM_TOOLSET_DIR/bin"
124
+ echo "Using LIBCLANG_PATH=$LLVM_TOOLSET_DIR/lib -> $LIBCLANG_DIR"
125
+ echo "Using clang=$LLVM_TOOLSET_DIR/bin/clang -> $CLANG_BIN"
126
+ fi
127
+ args: >-
128
+ --release
129
+ --out dist
130
+ --interpreter python3.10 python3.11 python3.12 python3.13 python3.14
131
+ sccache: true
132
+ - name: Upload wheel
133
+ uses: actions/upload-artifact@v4
134
+ with:
135
+ name: wheels-linux-${{ matrix.target }}
136
+ path: dist
137
+ if-no-files-found: error
138
+
139
+ windows:
140
+ name: Windows ${{ matrix.target }} py${{ matrix.python.version }}
141
+ runs-on: ${{ matrix.runner }}
142
+ strategy:
143
+ fail-fast: false
144
+ matrix:
145
+ include:
146
+ - runner: windows-latest
147
+ target: x64
148
+ python:
149
+ architecture: x64
150
+ version: "3.10"
151
+ tag: cp310
152
+ - runner: windows-latest
153
+ target: x64
154
+ python:
155
+ architecture: x64
156
+ version: "3.11"
157
+ tag: cp311
158
+ - runner: windows-latest
159
+ target: x64
160
+ python:
161
+ architecture: x64
162
+ version: "3.12"
163
+ tag: cp312
164
+ - runner: windows-latest
165
+ target: x64
166
+ python:
167
+ architecture: x64
168
+ version: "3.13"
169
+ tag: cp313
170
+ - runner: windows-latest
171
+ target: x64
172
+ python:
173
+ architecture: x64
174
+ version: "3.14"
175
+ tag: cp314
176
+ - runner: windows-11-arm
177
+ target: aarch64
178
+ python:
179
+ architecture: arm64
180
+ version: "3.11"
181
+ tag: cp311
182
+ - runner: windows-11-arm
183
+ target: aarch64
184
+ python:
185
+ architecture: arm64
186
+ version: "3.12"
187
+ tag: cp312
188
+ - runner: windows-11-arm
189
+ target: aarch64
190
+ python:
191
+ architecture: arm64
192
+ version: "3.13"
193
+ tag: cp313
194
+ - runner: windows-11-arm
195
+ target: aarch64
196
+ python:
197
+ architecture: arm64
198
+ version: "3.14"
199
+ tag: cp314
200
+ steps:
201
+ - uses: actions/checkout@v4
202
+ - uses: actions/setup-python@v5
203
+ with:
204
+ python-version: ${{ matrix.python.version }}
205
+ architecture: ${{ matrix.python.architecture }}
206
+ - name: Build wheel
207
+ uses: PyO3/maturin-action@v1
208
+ with:
209
+ target: ${{ matrix.target }}
210
+ args: --release --out dist --interpreter python
211
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
212
+ - name: Upload wheel
213
+ uses: actions/upload-artifact@v4
214
+ with:
215
+ name: wheels-windows-${{ matrix.target }}-${{ matrix.python.tag }}
216
+ path: dist
217
+ if-no-files-found: error
218
+
219
+ macos:
220
+ name: macOS ${{ matrix.platform.target }} py${{ matrix.python.version }}
221
+ runs-on: ${{ matrix.platform.runner }}
222
+ strategy:
223
+ fail-fast: false
224
+ matrix:
225
+ python:
226
+ - version: "3.10"
227
+ tag: cp310
228
+ - version: "3.11"
229
+ tag: cp311
230
+ - version: "3.12"
231
+ tag: cp312
232
+ - version: "3.13"
233
+ tag: cp313
234
+ - version: "3.14"
235
+ tag: cp314
236
+ platform:
237
+ - runner: macos-15-intel
238
+ target: x86_64
239
+ - runner: macos-14
240
+ target: aarch64
241
+ steps:
242
+ - uses: actions/checkout@v4
243
+ - uses: actions/setup-python@v5
244
+ with:
245
+ python-version: ${{ matrix.python.version }}
246
+ - name: Build wheel
247
+ uses: PyO3/maturin-action@v1
248
+ with:
249
+ target: ${{ matrix.platform.target }}
250
+ args: --release --out dist --interpreter python
251
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
252
+ - name: Upload wheel
253
+ uses: actions/upload-artifact@v4
254
+ with:
255
+ name: wheels-macos-${{ matrix.platform.target }}-${{ matrix.python.tag }}
256
+ path: dist
257
+ if-no-files-found: error
258
+
259
+ sdist:
260
+ name: Source distribution
261
+ runs-on: ubuntu-latest
262
+ steps:
263
+ - uses: actions/checkout@v4
264
+ - name: Build sdist
265
+ uses: PyO3/maturin-action@v1
266
+ with:
267
+ command: sdist
268
+ args: --out dist
269
+ - name: Upload sdist
270
+ uses: actions/upload-artifact@v4
271
+ with:
272
+ name: sdist
273
+ path: dist
274
+ if-no-files-found: error
275
+
276
+ publish:
277
+ name: Publish to PyPI
278
+ runs-on: ubuntu-latest
279
+ if: ${{ startsWith(github.ref, 'refs/tags/v') }}
280
+ needs: [linux, windows, macos, sdist]
281
+ environment:
282
+ name: pypi
283
+ permissions:
284
+ contents: read
285
+ id-token: write
286
+ steps:
287
+ - uses: actions/download-artifact@v4
288
+ with:
289
+ path: dist
290
+ merge-multiple: true
291
+ - uses: astral-sh/setup-uv@v4
292
+ - name: Publish distributions
293
+ run: uv publish dist/*
@@ -0,0 +1,76 @@
1
+ /target
2
+
3
+ # Byte-compiled / optimized / DLL files
4
+ __pycache__/
5
+ .pytest_cache/
6
+ *.py[cod]
7
+
8
+ # C extensions
9
+ *.so
10
+
11
+ # Distribution / packaging
12
+ .Python
13
+ .venv/
14
+ venv/
15
+ /bin/
16
+ build/
17
+ develop-eggs/
18
+ dist/
19
+ eggs/
20
+ lib/
21
+ lib64/
22
+ parts/
23
+ sdist/
24
+ var/
25
+ include/
26
+ man/
27
+ venv/
28
+ *.egg-info/
29
+ .installed.cfg
30
+ *.egg
31
+
32
+ # Installer logs
33
+ pip-log.txt
34
+ pip-delete-this-directory.txt
35
+ pip-selfcheck.json
36
+
37
+ # Unit test / coverage reports
38
+ htmlcov/
39
+ .tox/
40
+ .coverage
41
+ .cache
42
+ nosetests.xml
43
+ coverage.xml
44
+
45
+ # Translations
46
+ *.mo
47
+
48
+ # Mr Developer
49
+ .mr.developer.cfg
50
+ .project
51
+ .pydevproject
52
+
53
+ # Rope
54
+ .ropeproject
55
+
56
+ # Django stuff:
57
+ *.log
58
+ *.pot
59
+
60
+ .DS_Store
61
+
62
+ # Sphinx documentation
63
+ docs/_build/
64
+ site/
65
+
66
+ # PyCharm
67
+ .idea/
68
+
69
+ # VSCode
70
+ .vscode/
71
+
72
+ # Pyenv
73
+ .python-version
74
+
75
+ # Ruff
76
+ .ruff_cache/