gigatoken 0.3.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 (135) hide show
  1. gigatoken-0.3.0/.cargo/config.toml +5 -0
  2. gigatoken-0.3.0/.github/workflows/CI.yml +181 -0
  3. gigatoken-0.3.0/.github/workflows/wheels.yml +156 -0
  4. gigatoken-0.3.0/.gitignore +252 -0
  5. gigatoken-0.3.0/.python-version +1 -0
  6. gigatoken-0.3.0/.vscode/settings.json +7 -0
  7. gigatoken-0.3.0/Cargo.lock +5267 -0
  8. gigatoken-0.3.0/Cargo.toml +115 -0
  9. gigatoken-0.3.0/LICENSE +21 -0
  10. gigatoken-0.3.0/PKG-INFO +61 -0
  11. gigatoken-0.3.0/README.md +45 -0
  12. gigatoken-0.3.0/benches/common/mod.rs +52 -0
  13. gigatoken-0.3.0/benches/encode.rs +44 -0
  14. gigatoken-0.3.0/benches/encode_doc.rs +48 -0
  15. gigatoken-0.3.0/benches/encode_st.rs +32 -0
  16. gigatoken-0.3.0/benches/encode_st_sp.rs +51 -0
  17. gigatoken-0.3.0/benches/pretokenize.rs +151 -0
  18. gigatoken-0.3.0/benches/pretokenize_profile.rs +36 -0
  19. gigatoken-0.3.0/benches/pretokenize_profile_all.rs +52 -0
  20. gigatoken-0.3.0/benches/simdutf_transcode.rs +82 -0
  21. gigatoken-0.3.0/benches/unicode.rs +88 -0
  22. gigatoken-0.3.0/benchmarks.md +201 -0
  23. gigatoken-0.3.0/design_doc.md +109 -0
  24. gigatoken-0.3.0/examples/bench_char_check.rs +118 -0
  25. gigatoken-0.3.0/examples/bench_collision_check.rs +59 -0
  26. gigatoken-0.3.0/examples/bench_word_count.rs +27 -0
  27. gigatoken-0.3.0/examples/bpe_train_owt.py +13 -0
  28. gigatoken-0.3.0/examples/cache_memory.rs +68 -0
  29. gigatoken-0.3.0/examples/herman.py +37 -0
  30. gigatoken-0.3.0/examples/modernbert_encode_notrunc.py +188 -0
  31. gigatoken-0.3.0/examples/olmo3_encode.py +109 -0
  32. gigatoken-0.3.0/gigatoken/__init__.py +22 -0
  33. gigatoken-0.3.0/gigatoken/_hf_compat.py +390 -0
  34. gigatoken-0.3.0/gigatoken/_load/__init__.py +1 -0
  35. gigatoken-0.3.0/gigatoken/_load/hf.py +102 -0
  36. gigatoken-0.3.0/gigatoken/_load/hub.py +96 -0
  37. gigatoken-0.3.0/gigatoken/_load/sentencepiece.py +197 -0
  38. gigatoken-0.3.0/gigatoken/_load/tiktoken.py +33 -0
  39. gigatoken-0.3.0/gigatoken/_tiktoken_compat.py +189 -0
  40. gigatoken-0.3.0/gigatoken/_tokenizer.py +187 -0
  41. gigatoken-0.3.0/gigatoken/gigatoken_rs/__init__.pyi +106 -0
  42. gigatoken-0.3.0/gigatoken/py.typed +0 -0
  43. gigatoken-0.3.0/notebooks/bit_patterns.py +1977 -0
  44. gigatoken-0.3.0/notebooks/bit_patterns2.py +240 -0
  45. gigatoken-0.3.0/notebooks/data_view.py +155 -0
  46. gigatoken-0.3.0/notebooks/dclm_sample.jsonl +3 -0
  47. gigatoken-0.3.0/notebooks/dfa_states.py +817 -0
  48. gigatoken-0.3.0/notebooks/gather_free.py +367 -0
  49. gigatoken-0.3.0/notebooks/inspect_tokenizers.py +56 -0
  50. gigatoken-0.3.0/notebooks/luke_ref.py +514 -0
  51. gigatoken-0.3.0/notebooks/simd_unicode.py +590 -0
  52. gigatoken-0.3.0/notebooks/unicode.py +103 -0
  53. gigatoken-0.3.0/notebooks/unicode_classes.py +135 -0
  54. gigatoken-0.3.0/notebooks/unicode_gather.py +17 -0
  55. gigatoken-0.3.0/pretokenizer_optimization_log.md +666 -0
  56. gigatoken-0.3.0/pyproject.toml +68 -0
  57. gigatoken-0.3.0/radix_algorithm.md +241 -0
  58. gigatoken-0.3.0/rust-toolchain.toml +2 -0
  59. gigatoken-0.3.0/scripts/build_release_cross_platform.py +376 -0
  60. gigatoken-0.3.0/scripts/profile-cpu.fish +37 -0
  61. gigatoken-0.3.0/src/bpe/mod.rs +489 -0
  62. gigatoken-0.3.0/src/bpe/sentencepiece.rs +1207 -0
  63. gigatoken-0.3.0/src/bpe/tiktoken.rs +558 -0
  64. gigatoken-0.3.0/src/bpe_train.rs +353 -0
  65. gigatoken-0.3.0/src/encode/mod.rs +1 -0
  66. gigatoken-0.3.0/src/encode/tiktoken_radix.rs +47 -0
  67. gigatoken-0.3.0/src/input/decompress.rs +15 -0
  68. gigatoken-0.3.0/src/input/file_source.rs +484 -0
  69. gigatoken-0.3.0/src/input/jsonl.rs +94 -0
  70. gigatoken-0.3.0/src/input/mod.rs +335 -0
  71. gigatoken-0.3.0/src/lib.rs +1169 -0
  72. gigatoken-0.3.0/src/load_tokenizer/hf.rs +755 -0
  73. gigatoken-0.3.0/src/load_tokenizer/mod.rs +2 -0
  74. gigatoken-0.3.0/src/load_tokenizer/tiktoken.rs +37 -0
  75. gigatoken-0.3.0/src/main.rs +99 -0
  76. gigatoken-0.3.0/src/output/mod.rs +1 -0
  77. gigatoken-0.3.0/src/pretokenize/fast/cl100k.rs +438 -0
  78. gigatoken-0.3.0/src/pretokenize/fast/cl100k_family.rs +900 -0
  79. gigatoken-0.3.0/src/pretokenize/fast/deepseek_v3.rs +584 -0
  80. gigatoken-0.3.0/src/pretokenize/fast/mask.rs +665 -0
  81. gigatoken-0.3.0/src/pretokenize/fast/mod.rs +260 -0
  82. gigatoken-0.3.0/src/pretokenize/fast/olmo3.rs +517 -0
  83. gigatoken-0.3.0/src/pretokenize/fast/qwen2.rs +438 -0
  84. gigatoken-0.3.0/src/pretokenize/fast/qwen3_5.rs +537 -0
  85. gigatoken-0.3.0/src/pretokenize/fast/r50k.rs +1244 -0
  86. gigatoken-0.3.0/src/pretokenize/mod.rs +461 -0
  87. gigatoken-0.3.0/src/pretokenize/options.rs +117 -0
  88. gigatoken-0.3.0/src/pretokenize/pretoken.rs +42 -0
  89. gigatoken-0.3.0/src/pretokenize/pretoken_avx512.rs +522 -0
  90. gigatoken-0.3.0/src/pretokenize/pretoken_chunks.rs +2 -0
  91. gigatoken-0.3.0/src/pretokenize/pretoken_combinator.rs +572 -0
  92. gigatoken-0.3.0/src/pretokenize/pretoken_combinator_scalar.rs +217 -0
  93. gigatoken-0.3.0/src/pretokenize/pretoken_simd.rs +852 -0
  94. gigatoken-0.3.0/src/pretokenize/pretoken_state_machine.rs +384 -0
  95. gigatoken-0.3.0/src/pretokenize/pretokenize_traits.rs +93 -0
  96. gigatoken-0.3.0/src/pretokenize/unicode.rs +274 -0
  97. gigatoken-0.3.0/src/simd/avx512/ascii.rs +144 -0
  98. gigatoken-0.3.0/src/simd/avx512/mod.rs +3 -0
  99. gigatoken-0.3.0/src/simd/avx512/table.rs +109 -0
  100. gigatoken-0.3.0/src/simd/avx512/unicode.rs +71 -0
  101. gigatoken-0.3.0/src/simd/m_series/ascii.rs +144 -0
  102. gigatoken-0.3.0/src/simd/m_series/hashmap.rs +13 -0
  103. gigatoken-0.3.0/src/simd/m_series/mod.rs +4 -0
  104. gigatoken-0.3.0/src/simd/m_series/table.rs +224 -0
  105. gigatoken-0.3.0/src/simd/m_series/unicode.rs +65 -0
  106. gigatoken-0.3.0/src/simd/mod.rs +13 -0
  107. gigatoken-0.3.0/src/token.rs +42 -0
  108. gigatoken-0.3.0/src/unicode_tables.rs +222 -0
  109. gigatoken-0.3.0/src/utils.rs +72 -0
  110. gigatoken-0.3.0/strategy.md +33 -0
  111. gigatoken-0.3.0/tests/bench_file_source.py +124 -0
  112. gigatoken-0.3.0/tests/bench_train_encode.py +339 -0
  113. gigatoken-0.3.0/tests/conftest.py +220 -0
  114. gigatoken-0.3.0/tests/dclm_fixture.py +180 -0
  115. gigatoken-0.3.0/tests/scripts/build_hf_tokenizer.py +63 -0
  116. gigatoken-0.3.0/tests/scripts/build_toker_tokenizer.py +137 -0
  117. gigatoken-0.3.0/tests/test_bpe_train.py +8 -0
  118. gigatoken-0.3.0/tests/test_bpe_train_compare.py +249 -0
  119. gigatoken-0.3.0/tests/test_encode.py +19 -0
  120. gigatoken-0.3.0/tests/test_encode_dclm.py +90 -0
  121. gigatoken-0.3.0/tests/test_encode_files.py +209 -0
  122. gigatoken-0.3.0/tests/test_file_source.py +163 -0
  123. gigatoken-0.3.0/tests/test_from_hf.py +138 -0
  124. gigatoken-0.3.0/tests/test_from_tiktoken.py +155 -0
  125. gigatoken-0.3.0/tests/test_hf_compat.py +349 -0
  126. gigatoken-0.3.0/tests/test_load_hf.py +82 -0
  127. gigatoken-0.3.0/tests/test_pretokenizer_iterator.py +62 -0
  128. gigatoken-0.3.0/tests/test_sentencepiece.py +212 -0
  129. gigatoken-0.3.0/tests/test_tiktoken_compat.py +156 -0
  130. gigatoken-0.3.0/tests/test_tokenizer_usage.py +35 -0
  131. gigatoken-0.3.0/tests/test_use_with_tokenizers.py +19 -0
  132. gigatoken-0.3.0/tests/tokenizers/conftest.py +74 -0
  133. gigatoken-0.3.0/tests/tokenizers/test_chunked_doc.py +75 -0
  134. gigatoken-0.3.0/tests/tokenizers/test_hf_parity.py +270 -0
  135. gigatoken-0.3.0/uv.lock +3169 -0
@@ -0,0 +1,5 @@
1
+ # Allow per-profile `rustflags` (nightly-only). This lets the `profiling`
2
+ # profile in Cargo.toml set `force-frame-pointers` without affecting normal
3
+ # release/dev builds.
4
+ [unstable]
5
+ profile-rustflags = true
@@ -0,0 +1,181 @@
1
+ # This file is autogenerated by maturin v1.9.5
2
+ # To update, run
3
+ #
4
+ # maturin generate-ci github
5
+ #
6
+ name: CI
7
+
8
+ on:
9
+ push:
10
+ branches:
11
+ - main
12
+ - master
13
+ tags:
14
+ - '*'
15
+ pull_request:
16
+ workflow_dispatch:
17
+
18
+ permissions:
19
+ contents: read
20
+
21
+ jobs:
22
+ linux:
23
+ runs-on: ${{ matrix.platform.runner }}
24
+ strategy:
25
+ matrix:
26
+ platform:
27
+ - runner: ubuntu-22.04
28
+ target: x86_64
29
+ - runner: ubuntu-22.04
30
+ target: x86
31
+ - runner: ubuntu-22.04
32
+ target: aarch64
33
+ - runner: ubuntu-22.04
34
+ target: armv7
35
+ - runner: ubuntu-22.04
36
+ target: s390x
37
+ - runner: ubuntu-22.04
38
+ target: ppc64le
39
+ steps:
40
+ - uses: actions/checkout@v4
41
+ - uses: actions/setup-python@v5
42
+ with:
43
+ python-version: 3.x
44
+ - name: Build wheels
45
+ uses: PyO3/maturin-action@v1
46
+ with:
47
+ target: ${{ matrix.platform.target }}
48
+ args: --release --out dist --find-interpreter
49
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
50
+ manylinux: auto
51
+ - name: Upload wheels
52
+ uses: actions/upload-artifact@v4
53
+ with:
54
+ name: wheels-linux-${{ matrix.platform.target }}
55
+ path: dist
56
+
57
+ musllinux:
58
+ runs-on: ${{ matrix.platform.runner }}
59
+ strategy:
60
+ matrix:
61
+ platform:
62
+ - runner: ubuntu-22.04
63
+ target: x86_64
64
+ - runner: ubuntu-22.04
65
+ target: x86
66
+ - runner: ubuntu-22.04
67
+ target: aarch64
68
+ - runner: ubuntu-22.04
69
+ target: armv7
70
+ steps:
71
+ - uses: actions/checkout@v4
72
+ - uses: actions/setup-python@v5
73
+ with:
74
+ python-version: 3.x
75
+ - name: Build wheels
76
+ uses: PyO3/maturin-action@v1
77
+ with:
78
+ target: ${{ matrix.platform.target }}
79
+ args: --release --out dist --find-interpreter
80
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
81
+ manylinux: musllinux_1_2
82
+ - name: Upload wheels
83
+ uses: actions/upload-artifact@v4
84
+ with:
85
+ name: wheels-musllinux-${{ matrix.platform.target }}
86
+ path: dist
87
+
88
+ windows:
89
+ runs-on: ${{ matrix.platform.runner }}
90
+ strategy:
91
+ matrix:
92
+ platform:
93
+ - runner: windows-latest
94
+ target: x64
95
+ - runner: windows-latest
96
+ target: x86
97
+ steps:
98
+ - uses: actions/checkout@v4
99
+ - uses: actions/setup-python@v5
100
+ with:
101
+ python-version: 3.x
102
+ architecture: ${{ matrix.platform.target }}
103
+ - name: Build wheels
104
+ uses: PyO3/maturin-action@v1
105
+ with:
106
+ target: ${{ matrix.platform.target }}
107
+ args: --release --out dist --find-interpreter
108
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
109
+ - name: Upload wheels
110
+ uses: actions/upload-artifact@v4
111
+ with:
112
+ name: wheels-windows-${{ matrix.platform.target }}
113
+ path: dist
114
+
115
+ macos:
116
+ runs-on: ${{ matrix.platform.runner }}
117
+ strategy:
118
+ matrix:
119
+ platform:
120
+ - runner: macos-13
121
+ target: x86_64
122
+ - runner: macos-14
123
+ target: aarch64
124
+ steps:
125
+ - uses: actions/checkout@v4
126
+ - uses: actions/setup-python@v5
127
+ with:
128
+ python-version: 3.x
129
+ - name: Build wheels
130
+ uses: PyO3/maturin-action@v1
131
+ with:
132
+ target: ${{ matrix.platform.target }}
133
+ args: --release --out dist --find-interpreter
134
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
135
+ - name: Upload wheels
136
+ uses: actions/upload-artifact@v4
137
+ with:
138
+ name: wheels-macos-${{ matrix.platform.target }}
139
+ path: dist
140
+
141
+ sdist:
142
+ runs-on: ubuntu-latest
143
+ steps:
144
+ - uses: actions/checkout@v4
145
+ - name: Build sdist
146
+ uses: PyO3/maturin-action@v1
147
+ with:
148
+ command: sdist
149
+ args: --out dist
150
+ - name: Upload sdist
151
+ uses: actions/upload-artifact@v4
152
+ with:
153
+ name: wheels-sdist
154
+ path: dist
155
+
156
+ release:
157
+ name: Release
158
+ runs-on: ubuntu-latest
159
+ if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
160
+ needs: [linux, musllinux, windows, macos, sdist]
161
+ permissions:
162
+ # Use to sign the release artifacts
163
+ id-token: write
164
+ # Used to upload release artifacts
165
+ contents: write
166
+ # Used to generate artifact attestation
167
+ attestations: write
168
+ steps:
169
+ - uses: actions/download-artifact@v4
170
+ - name: Generate artifact attestation
171
+ uses: actions/attest-build-provenance@v2
172
+ with:
173
+ subject-path: 'wheels-*/*'
174
+ - name: Publish to PyPI
175
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
176
+ uses: PyO3/maturin-action@v1
177
+ env:
178
+ MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
179
+ with:
180
+ command: upload
181
+ args: --non-interactive --skip-existing wheels-*/*
@@ -0,0 +1,156 @@
1
+ name: Manual release build
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ permissions:
7
+ contents: read
8
+
9
+ jobs:
10
+ build-wheels:
11
+ name: Build ${{ matrix.target }}
12
+ runs-on: ${{ matrix.runner }}
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ include:
17
+ - runner: ubuntu-24.04
18
+ target: x86_64-unknown-linux-gnu
19
+ manylinux: "2014"
20
+ artifact: wheels-linux-x86_64
21
+ - runner: ubuntu-24.04
22
+ target: aarch64-unknown-linux-gnu
23
+ manylinux: "2014"
24
+ artifact: wheels-linux-aarch64
25
+ - runner: windows-2022
26
+ target: x86_64-pc-windows-msvc
27
+ manylinux: "off"
28
+ artifact: wheels-windows-x86_64
29
+ - runner: windows-2022
30
+ target: aarch64-pc-windows-msvc
31
+ manylinux: "off"
32
+ artifact: wheels-windows-aarch64
33
+
34
+ steps:
35
+ - uses: actions/checkout@v6
36
+
37
+ - name: Build abi3 wheel
38
+ uses: PyO3/maturin-action@3e2bdf6ba6453a61e649744019b8a2d906c7eb38 # v1.51.0
39
+ with:
40
+ maturin-version: v1.14.1
41
+ rust-toolchain: nightly
42
+ target: ${{ matrix.target }}
43
+ manylinux: ${{ matrix.manylinux }}
44
+ args: --release --locked --out dist --compatibility pypi
45
+
46
+ - name: Upload wheel
47
+ uses: actions/upload-artifact@v4
48
+ with:
49
+ name: ${{ matrix.artifact }}
50
+ path: dist/*.whl
51
+ if-no-files-found: error
52
+
53
+ build-sdist:
54
+ name: Build source distribution
55
+ runs-on: ubuntu-24.04
56
+ steps:
57
+ - uses: actions/checkout@v6
58
+
59
+ - name: Build sdist
60
+ uses: PyO3/maturin-action@3e2bdf6ba6453a61e649744019b8a2d906c7eb38 # v1.51.0
61
+ with:
62
+ command: sdist
63
+ maturin-version: v1.14.1
64
+ rust-toolchain: nightly
65
+ args: --out dist
66
+
67
+ - name: Upload sdist
68
+ uses: actions/upload-artifact@v4
69
+ with:
70
+ name: sdist
71
+ path: dist/*.tar.gz
72
+ if-no-files-found: error
73
+
74
+ bundle-release:
75
+ name: Bundle release artifacts
76
+ needs:
77
+ - build-wheels
78
+ - build-sdist
79
+ runs-on: ubuntu-24.04
80
+ steps:
81
+ - name: Download wheels
82
+ uses: actions/download-artifact@v5
83
+ with:
84
+ pattern: wheels-*
85
+ path: dist
86
+ merge-multiple: true
87
+
88
+ - name: Download sdist
89
+ uses: actions/download-artifact@v5
90
+ with:
91
+ name: sdist
92
+ path: dist
93
+
94
+ - name: Upload release bundle
95
+ uses: actions/upload-artifact@v4
96
+ with:
97
+ name: gigatoken-release
98
+ path: |
99
+ dist/*.whl
100
+ dist/*.tar.gz
101
+ if-no-files-found: error
102
+
103
+ test-wheels:
104
+ name: Test ${{ matrix.platform }} / Python ${{ matrix.python-version }}
105
+ needs: build-wheels
106
+ runs-on: ${{ matrix.runner }}
107
+ strategy:
108
+ fail-fast: false
109
+ matrix:
110
+ platform:
111
+ - linux-x86_64
112
+ - linux-aarch64
113
+ - windows-x86_64
114
+ - windows-aarch64
115
+ python-version:
116
+ - "3.10"
117
+ - "3.11"
118
+ - "3.12"
119
+ - "3.13"
120
+ - "3.14"
121
+ # actions/setup-python has no CPython 3.10 Windows ARM64 runtime.
122
+ exclude:
123
+ - platform: windows-aarch64
124
+ python-version: "3.10"
125
+ include:
126
+ - platform: linux-x86_64
127
+ runner: ubuntu-24.04
128
+ artifact: wheels-linux-x86_64
129
+ - platform: linux-aarch64
130
+ runner: ubuntu-24.04-arm
131
+ artifact: wheels-linux-aarch64
132
+ - platform: windows-x86_64
133
+ runner: windows-2022
134
+ artifact: wheels-windows-x86_64
135
+ - platform: windows-aarch64
136
+ runner: windows-11-arm
137
+ artifact: wheels-windows-aarch64
138
+
139
+ steps:
140
+ - name: Set up Python
141
+ uses: actions/setup-python@v6
142
+ with:
143
+ python-version: ${{ matrix.python-version }}
144
+
145
+ - name: Download wheel
146
+ uses: actions/download-artifact@v5
147
+ with:
148
+ name: ${{ matrix.artifact }}
149
+ path: ${{ runner.temp }}/dist
150
+
151
+ - name: Install and smoke-test wheel
152
+ working-directory: ${{ runner.temp }}
153
+ run: |
154
+ python -m pip install --only-binary=:all: numpy awkward
155
+ python -m pip install --no-index --find-links dist gigatoken
156
+ python -c 'import gigatoken; tokens = list(gigatoken.pretokenizer(b"Hello, world!")); assert b"".join(tokens) == b"Hello, world!", tokens'
@@ -0,0 +1,252 @@
1
+ # Generated by Cargo
2
+ # will have compiled files and executables
3
+ debug
4
+ target
5
+
6
+ # These are backup files generated by rustfmt
7
+ **/*.rs.bk
8
+
9
+ # MSVC Windows builds of rustc generate these, which store debugging information
10
+ *.pdb
11
+
12
+ # Generated by cargo mutants
13
+ # Contains mutation testing data
14
+ **/mutants.out*/
15
+
16
+ # RustRover
17
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
18
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
19
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
20
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
21
+ #.idea/
22
+
23
+
24
+ # Added by cargo
25
+
26
+ /target
27
+
28
+ # Byte-compiled / optimized / DLL files
29
+ __pycache__/
30
+ *.py[codz]
31
+ *$py.class
32
+
33
+ # C extensions
34
+ *.so
35
+
36
+ # Distribution / packaging
37
+ .Python
38
+ build/
39
+ develop-eggs/
40
+ dist/
41
+ downloads/
42
+ eggs/
43
+ .eggs/
44
+ lib/
45
+ lib64/
46
+ parts/
47
+ sdist/
48
+ var/
49
+ wheels/
50
+ share/python-wheels/
51
+ *.egg-info/
52
+ .installed.cfg
53
+ *.egg
54
+ MANIFEST
55
+
56
+ # PyInstaller
57
+ # Usually these files are written by a python script from a template
58
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
59
+ *.manifest
60
+ *.spec
61
+
62
+ # Installer logs
63
+ pip-log.txt
64
+ pip-delete-this-directory.txt
65
+
66
+ # Unit test / coverage reports
67
+ htmlcov/
68
+ .tox/
69
+ .nox/
70
+ .coverage
71
+ .coverage.*
72
+ .cache
73
+ nosetests.xml
74
+ coverage.xml
75
+ *.cover
76
+ *.py.cover
77
+ .hypothesis/
78
+ .pytest_cache/
79
+ cover/
80
+
81
+ # Translations
82
+ *.mo
83
+ *.pot
84
+
85
+ # Django stuff:
86
+ *.log
87
+ local_settings.py
88
+ db.sqlite3
89
+ db.sqlite3-journal
90
+
91
+ # Flask stuff:
92
+ instance/
93
+ .webassets-cache
94
+
95
+ # Scrapy stuff:
96
+ .scrapy
97
+
98
+ # Sphinx documentation
99
+ docs/_build/
100
+
101
+ # PyBuilder
102
+ .pybuilder/
103
+ target/
104
+
105
+ # Jupyter Notebook
106
+ .ipynb_checkpoints
107
+
108
+ # IPython
109
+ profile_default/
110
+ ipython_config.py
111
+
112
+ # pyenv
113
+ # For a library or package, you might want to ignore these files since the code is
114
+ # intended to run in multiple environments; otherwise, check them in:
115
+ # .python-version
116
+
117
+ # pipenv
118
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
119
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
120
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
121
+ # install all needed dependencies.
122
+ # Pipfile.lock
123
+
124
+ # UV
125
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
126
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
127
+ # commonly ignored for libraries.
128
+ # uv.lock
129
+
130
+ # poetry
131
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
132
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
133
+ # commonly ignored for libraries.
134
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
135
+ # poetry.lock
136
+ # poetry.toml
137
+
138
+ # pdm
139
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
140
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
141
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
142
+ # pdm.lock
143
+ # pdm.toml
144
+ .pdm-python
145
+ .pdm-build/
146
+
147
+ # pixi
148
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
149
+ # pixi.lock
150
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
151
+ # in the .venv directory. It is recommended not to include this directory in version control.
152
+ .pixi
153
+
154
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
155
+ __pypackages__/
156
+
157
+ # Celery stuff
158
+ celerybeat-schedule
159
+ celerybeat.pid
160
+
161
+ # Redis
162
+ *.rdb
163
+ *.aof
164
+ *.pid
165
+
166
+ # RabbitMQ
167
+ mnesia/
168
+ rabbitmq/
169
+ rabbitmq-data/
170
+
171
+ # ActiveMQ
172
+ activemq-data/
173
+
174
+ # SageMath parsed files
175
+ *.sage.py
176
+
177
+ # Environments
178
+ .env
179
+ .envrc
180
+ .venv
181
+ env/
182
+ venv/
183
+ ENV/
184
+ env.bak/
185
+ venv.bak/
186
+
187
+ # Spyder project settings
188
+ .spyderproject
189
+ .spyproject
190
+
191
+ # Rope project settings
192
+ .ropeproject
193
+
194
+ # mkdocs documentation
195
+ /site
196
+
197
+ # mypy
198
+ .mypy_cache/
199
+ .dmypy.json
200
+ dmypy.json
201
+
202
+ # Pyre type checker
203
+ .pyre/
204
+
205
+ # pytype static type analyzer
206
+ .pytype/
207
+
208
+ # Cython debug symbols
209
+ cython_debug/
210
+
211
+ # PyCharm
212
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
213
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
214
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
215
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
216
+ # .idea/
217
+
218
+ # Abstra
219
+ # Abstra is an AI-powered process automation framework.
220
+ # Ignore directories containing user credentials, local state, and settings.
221
+ # Learn more at https://abstra.io/docs
222
+ .abstra/
223
+
224
+ # Visual Studio Code
225
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
226
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
227
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
228
+ # you could uncomment the following to ignore the entire vscode folder
229
+ # .vscode/
230
+
231
+ # Ruff stuff:
232
+ .ruff_cache/
233
+
234
+ # PyPI configuration file
235
+ .pypirc
236
+
237
+ # Marimo
238
+ marimo/_static/
239
+ marimo/_lsp/
240
+ __marimo__/
241
+
242
+ # Streamlit
243
+ .streamlit/secrets.toml
244
+
245
+ .idea/
246
+
247
+ # Downloaded test data
248
+ /data/
249
+
250
+ .DS_Store
251
+
252
+ *.trace/
@@ -0,0 +1 @@
1
+ 3.13
@@ -0,0 +1,7 @@
1
+ {
2
+ "python.testing.pytestArgs": [
3
+ "tests"
4
+ ],
5
+ "python.testing.unittestEnabled": false,
6
+ "python.testing.pytestEnabled": true
7
+ }