rmarc 5.3.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 (192) hide show
  1. rmarc-5.3.1/.benchmarks/Windows-CPython-3.14-64bit/0001_python_baseline.json +489 -0
  2. rmarc-5.3.1/.benchmarks/Windows-CPython-3.14-64bit/0002_baseline.json +489 -0
  3. rmarc-5.3.1/.benchmarks/Windows-CPython-3.14-64bit/0003_step1_rust_codec.json +489 -0
  4. rmarc-5.3.1/.benchmarks/Windows-CPython-3.14-64bit/0004_step2_rust_marc8.json +489 -0
  5. rmarc-5.3.1/.benchmarks/Windows-CPython-3.14-64bit/0005_step2_integrated.json +489 -0
  6. rmarc-5.3.1/.benchmarks/Windows-CPython-3.14-64bit/0006_0006_before_fast_field.json +489 -0
  7. rmarc-5.3.1/.benchmarks/Windows-CPython-3.14-64bit/0007_0007_fast_field_construction.json +489 -0
  8. rmarc-5.3.1/.benchmarks/Windows-CPython-3.14-64bit/0008_0008_fast_field_plus_intern.json +489 -0
  9. rmarc-5.3.1/.claude/settings.local.json +40 -0
  10. rmarc-5.3.1/.github/workflows/build_wheels.yml +53 -0
  11. rmarc-5.3.1/.github/workflows/ci.yml +117 -0
  12. rmarc-5.3.1/.github/workflows/matrix.yml +92 -0
  13. rmarc-5.3.1/.github/workflows/publish_to_pypi.yml +110 -0
  14. rmarc-5.3.1/.gitignore +226 -0
  15. rmarc-5.3.1/.pylintrc +638 -0
  16. rmarc-5.3.1/.python-version +1 -0
  17. rmarc-5.3.1/AGENTS.md +2 -0
  18. rmarc-5.3.1/CONTRIBUTING.md +90 -0
  19. rmarc-5.3.1/Cargo.lock +262 -0
  20. rmarc-5.3.1/Cargo.toml +14 -0
  21. rmarc-5.3.1/LICENSE +73 -0
  22. rmarc-5.3.1/Makefile +142 -0
  23. rmarc-5.3.1/PKG-INFO +198 -0
  24. rmarc-5.3.1/README.md +165 -0
  25. rmarc-5.3.1/bench/bench_contest.py +75 -0
  26. rmarc-5.3.1/bench/bench_core.py +119 -0
  27. rmarc-5.3.1/bench/bench_json_xml.py +222 -0
  28. rmarc-5.3.1/bench/conftest.py +119 -0
  29. rmarc-5.3.1/bench/generate_data.py +29 -0
  30. rmarc-5.3.1/contest.py +17 -0
  31. rmarc-5.3.1/pymarc_src/.gitignore +20 -0
  32. rmarc-5.3.1/pymarc_src/.gitlab-ci.yml +51 -0
  33. rmarc-5.3.1/pymarc_src/.mailmap +7 -0
  34. rmarc-5.3.1/pymarc_src/.readthedocs.yaml +22 -0
  35. rmarc-5.3.1/pymarc_src/CONTRIBUTING.md +15 -0
  36. rmarc-5.3.1/pymarc_src/LICENSE +73 -0
  37. rmarc-5.3.1/pymarc_src/MANIFEST.in +6 -0
  38. rmarc-5.3.1/pymarc_src/README.md +412 -0
  39. rmarc-5.3.1/pymarc_src/README_pt_Br.md +334 -0
  40. rmarc-5.3.1/pymarc_src/apply_headers.py +122 -0
  41. rmarc-5.3.1/pymarc_src/docs/requirements.txt +1 -0
  42. rmarc-5.3.1/pymarc_src/docs/source/conf.py +343 -0
  43. rmarc-5.3.1/pymarc_src/docs/source/index.rst +285 -0
  44. rmarc-5.3.1/pymarc_src/pymarc/__init__.py +18 -0
  45. rmarc-5.3.1/pymarc_src/pymarc/__init__.pyi +89 -0
  46. rmarc-5.3.1/pymarc_src/pymarc/constants.py +13 -0
  47. rmarc-5.3.1/pymarc_src/pymarc/exceptions.py +125 -0
  48. rmarc-5.3.1/pymarc_src/pymarc/field.py +512 -0
  49. rmarc-5.3.1/pymarc_src/pymarc/leader.py +285 -0
  50. rmarc-5.3.1/pymarc_src/pymarc/marc8.py +188 -0
  51. rmarc-5.3.1/pymarc_src/pymarc/marc8_mapping.py +16889 -0
  52. rmarc-5.3.1/pymarc_src/pymarc/marcjson.py +70 -0
  53. rmarc-5.3.1/pymarc_src/pymarc/marcxml.py +192 -0
  54. rmarc-5.3.1/pymarc_src/pymarc/py.typed +2 -0
  55. rmarc-5.3.1/pymarc_src/pymarc/reader.py +362 -0
  56. rmarc-5.3.1/pymarc_src/pymarc/record.py +700 -0
  57. rmarc-5.3.1/pymarc_src/pymarc/writer.py +227 -0
  58. rmarc-5.3.1/pymarc_src/pyproject.toml +75 -0
  59. rmarc-5.3.1/pymarc_src/test/1251.dat +1 -0
  60. rmarc-5.3.1/pymarc_src/test/__init__.py +0 -0
  61. rmarc-5.3.1/pymarc_src/test/alphatag.dat +1 -0
  62. rmarc-5.3.1/pymarc_src/test/bad_eacc_encoding.dat +1 -0
  63. rmarc-5.3.1/pymarc_src/test/bad_indicator.dat +1 -0
  64. rmarc-5.3.1/pymarc_src/test/bad_marc8_escape.dat +1 -0
  65. rmarc-5.3.1/pymarc_src/test/bad_records.mrc +1 -0
  66. rmarc-5.3.1/pymarc_src/test/bad_subfield_code.dat +1 -0
  67. rmarc-5.3.1/pymarc_src/test/bad_tag.xml +51 -0
  68. rmarc-5.3.1/pymarc_src/test/batch.json +521 -0
  69. rmarc-5.3.1/pymarc_src/test/batch.xml +157 -0
  70. rmarc-5.3.1/pymarc_src/test/diacritic.dat +1 -0
  71. rmarc-5.3.1/pymarc_src/test/marc.dat +1 -0
  72. rmarc-5.3.1/pymarc_src/test/marc8-to-unicode.dat +1 -0
  73. rmarc-5.3.1/pymarc_src/test/marc8.dat +1 -0
  74. rmarc-5.3.1/pymarc_src/test/multi_isbn.dat +1 -0
  75. rmarc-5.3.1/pymarc_src/test/one.dat +1 -0
  76. rmarc-5.3.1/pymarc_src/test/one.json +204 -0
  77. rmarc-5.3.1/pymarc_src/test/regression45.dat +1 -0
  78. rmarc-5.3.1/pymarc_src/test/test.dat +1 -0
  79. rmarc-5.3.1/pymarc_src/test/test.json +402 -0
  80. rmarc-5.3.1/pymarc_src/test/test_encode.py +39 -0
  81. rmarc-5.3.1/pymarc_src/test/test_field.py +409 -0
  82. rmarc-5.3.1/pymarc_src/test/test_json.py +158 -0
  83. rmarc-5.3.1/pymarc_src/test/test_leader.py +87 -0
  84. rmarc-5.3.1/pymarc_src/test/test_marc8.py +224 -0
  85. rmarc-5.3.1/pymarc_src/test/test_marc8.txt +1515 -0
  86. rmarc-5.3.1/pymarc_src/test/test_ordered_fields.py +59 -0
  87. rmarc-5.3.1/pymarc_src/test/test_reader.py +308 -0
  88. rmarc-5.3.1/pymarc_src/test/test_record.py +820 -0
  89. rmarc-5.3.1/pymarc_src/test/test_utf8.py +54 -0
  90. rmarc-5.3.1/pymarc_src/test/test_utf8.txt +1515 -0
  91. rmarc-5.3.1/pymarc_src/test/test_writer.py +688 -0
  92. rmarc-5.3.1/pymarc_src/test/test_xml.py +111 -0
  93. rmarc-5.3.1/pymarc_src/test/testunimarc.dat +1 -0
  94. rmarc-5.3.1/pymarc_src/test/utf8.xml +25 -0
  95. rmarc-5.3.1/pymarc_src/test/utf8_errors.dat +1 -0
  96. rmarc-5.3.1/pymarc_src/test/utf8_invalid.mrc +1 -0
  97. rmarc-5.3.1/pymarc_src/test/utf8_with_leader_flag.dat +1 -0
  98. rmarc-5.3.1/pymarc_src/test/utf8_without_leader_flag.dat +1 -0
  99. rmarc-5.3.1/pyproject.toml +238 -0
  100. rmarc-5.3.1/pyrightconfig.json +6 -0
  101. rmarc-5.3.1/python/rmarc/__init__.py +19 -0
  102. rmarc-5.3.1/python/rmarc/_compat.py +43 -0
  103. rmarc-5.3.1/python/rmarc/_rmarc.pyi +16 -0
  104. rmarc-5.3.1/python/rmarc/constants.py +15 -0
  105. rmarc-5.3.1/python/rmarc/exceptions.py +137 -0
  106. rmarc-5.3.1/python/rmarc/field.py +315 -0
  107. rmarc-5.3.1/python/rmarc/leader.py +208 -0
  108. rmarc-5.3.1/python/rmarc/marc8.py +156 -0
  109. rmarc-5.3.1/python/rmarc/marc8_mapping.py +16889 -0
  110. rmarc-5.3.1/python/rmarc/marcjson.py +59 -0
  111. rmarc-5.3.1/python/rmarc/marcxml.py +167 -0
  112. rmarc-5.3.1/python/rmarc/py.typed +0 -0
  113. rmarc-5.3.1/python/rmarc/reader.py +241 -0
  114. rmarc-5.3.1/python/rmarc/record.py +717 -0
  115. rmarc-5.3.1/python/rmarc/writer.py +109 -0
  116. rmarc-5.3.1/sample_app/__init__.py +1 -0
  117. rmarc-5.3.1/sample_app/__main__.py +5 -0
  118. rmarc-5.3.1/sample_app/cli.py +341 -0
  119. rmarc-5.3.1/sample_app/docs/developer_guide.md +393 -0
  120. rmarc-5.3.1/sample_app/docs/index.md +35 -0
  121. rmarc-5.3.1/sample_app/docs/rmarc_patterns.md +613 -0
  122. rmarc-5.3.1/sample_app/docs/user_guide.md +403 -0
  123. rmarc-5.3.1/sample_app/loc.py +135 -0
  124. rmarc-5.3.1/sample_app/sample_integration_test.sh +539 -0
  125. rmarc-5.3.1/sample_app/store.py +305 -0
  126. rmarc-5.3.1/sample_app/tests/__init__.py +0 -0
  127. rmarc-5.3.1/sample_app/tests/conftest.py +9 -0
  128. rmarc-5.3.1/sample_app/tests/test_cli.py +379 -0
  129. rmarc-5.3.1/sample_app/tests/test_loc.py +193 -0
  130. rmarc-5.3.1/sample_app/tests/test_store.py +459 -0
  131. rmarc-5.3.1/spec/benchmarks.md +385 -0
  132. rmarc-5.3.1/spec/phase2.md +300 -0
  133. rmarc-5.3.1/spec/phase3_rustification.md +240 -0
  134. rmarc-5.3.1/spec/phase4_performance.md +314 -0
  135. rmarc-5.3.1/spec/phase6_fast_serialization.md +515 -0
  136. rmarc-5.3.1/spec/rust-speedup-tour.md +1139 -0
  137. rmarc-5.3.1/src/lib.rs +41 -0
  138. rmarc-5.3.1/src/marc8.rs +354 -0
  139. rmarc-5.3.1/src/marc8_mapping.rs +16473 -0
  140. rmarc-5.3.1/src/marc_codec.rs +480 -0
  141. rmarc-5.3.1/test_pymarc/1251.dat +1 -0
  142. rmarc-5.3.1/test_pymarc/__init__.py +7 -0
  143. rmarc-5.3.1/test_pymarc/alphatag.dat +1 -0
  144. rmarc-5.3.1/test_pymarc/bad_eacc_encoding.dat +1 -0
  145. rmarc-5.3.1/test_pymarc/bad_indicator.dat +1 -0
  146. rmarc-5.3.1/test_pymarc/bad_marc8_escape.dat +1 -0
  147. rmarc-5.3.1/test_pymarc/bad_records.mrc +1 -0
  148. rmarc-5.3.1/test_pymarc/bad_subfield_code.dat +1 -0
  149. rmarc-5.3.1/test_pymarc/bad_tag.xml +51 -0
  150. rmarc-5.3.1/test_pymarc/batch.json +521 -0
  151. rmarc-5.3.1/test_pymarc/batch.xml +157 -0
  152. rmarc-5.3.1/test_pymarc/diacritic.dat +1 -0
  153. rmarc-5.3.1/test_pymarc/marc.dat +1 -0
  154. rmarc-5.3.1/test_pymarc/marc8-to-unicode.dat +1 -0
  155. rmarc-5.3.1/test_pymarc/marc8.dat +1 -0
  156. rmarc-5.3.1/test_pymarc/multi_isbn.dat +1 -0
  157. rmarc-5.3.1/test_pymarc/one.dat +1 -0
  158. rmarc-5.3.1/test_pymarc/one.json +204 -0
  159. rmarc-5.3.1/test_pymarc/regression45.dat +1 -0
  160. rmarc-5.3.1/test_pymarc/test.dat +1 -0
  161. rmarc-5.3.1/test_pymarc/test.json +402 -0
  162. rmarc-5.3.1/test_pymarc/test_encode.py +40 -0
  163. rmarc-5.3.1/test_pymarc/test_fast_serialization.py +385 -0
  164. rmarc-5.3.1/test_pymarc/test_field.py +393 -0
  165. rmarc-5.3.1/test_pymarc/test_json.py +151 -0
  166. rmarc-5.3.1/test_pymarc/test_leader.py +87 -0
  167. rmarc-5.3.1/test_pymarc/test_marc8.py +207 -0
  168. rmarc-5.3.1/test_pymarc/test_marc8.txt +1515 -0
  169. rmarc-5.3.1/test_pymarc/test_ordered_fields.py +59 -0
  170. rmarc-5.3.1/test_pymarc/test_reader.py +304 -0
  171. rmarc-5.3.1/test_pymarc/test_record.py +800 -0
  172. rmarc-5.3.1/test_pymarc/test_regressions.py +150 -0
  173. rmarc-5.3.1/test_pymarc/test_smoke.py +32 -0
  174. rmarc-5.3.1/test_pymarc/test_suite1.py +2021 -0
  175. rmarc-5.3.1/test_pymarc/test_suite2.py +407 -0
  176. rmarc-5.3.1/test_pymarc/test_suite3.py +377 -0
  177. rmarc-5.3.1/test_pymarc/test_suite4.py +122 -0
  178. rmarc-5.3.1/test_pymarc/test_suite5.py +91 -0
  179. rmarc-5.3.1/test_pymarc/test_suite6.py +134 -0
  180. rmarc-5.3.1/test_pymarc/test_suite_marc8.py +271 -0
  181. rmarc-5.3.1/test_pymarc/test_utf8.py +114 -0
  182. rmarc-5.3.1/test_pymarc/test_utf8.txt +1515 -0
  183. rmarc-5.3.1/test_pymarc/test_writer.py +675 -0
  184. rmarc-5.3.1/test_pymarc/test_xml.py +110 -0
  185. rmarc-5.3.1/test_pymarc/testunimarc.dat +1 -0
  186. rmarc-5.3.1/test_pymarc/utf8.xml +25 -0
  187. rmarc-5.3.1/test_pymarc/utf8_errors.dat +1 -0
  188. rmarc-5.3.1/test_pymarc/utf8_invalid.mrc +1 -0
  189. rmarc-5.3.1/test_pymarc/utf8_with_leader_flag.dat +1 -0
  190. rmarc-5.3.1/test_pymarc/utf8_without_leader_flag.dat +1 -0
  191. rmarc-5.3.1/tox.ini +30 -0
  192. rmarc-5.3.1/uv.lock +3656 -0
@@ -0,0 +1,489 @@
1
+ {
2
+ "machine_info": {
3
+ "node": "home",
4
+ "processor": "Intel64 Family 6 Model 151 Stepping 2, GenuineIntel",
5
+ "machine": "AMD64",
6
+ "python_compiler": "MSC v.1944 64 bit (AMD64)",
7
+ "python_implementation": "CPython",
8
+ "python_implementation_version": "3.14.0",
9
+ "python_version": "3.14.0",
10
+ "python_build": [
11
+ "tags/v3.14.0:ebf955d",
12
+ "Oct 7 2025 10:15:03"
13
+ ],
14
+ "release": "11",
15
+ "system": "Windows",
16
+ "cpu": {
17
+ "python_version": "3.14.0.final.0 (64 bit)",
18
+ "cpuinfo_version": [
19
+ 9,
20
+ 0,
21
+ 0
22
+ ],
23
+ "cpuinfo_version_string": "9.0.0",
24
+ "arch": "X86_64",
25
+ "bits": 64,
26
+ "count": 20,
27
+ "arch_string_raw": "AMD64",
28
+ "vendor_id_raw": "GenuineIntel",
29
+ "brand_raw": "12th Gen Intel(R) Core(TM) i7-12700T",
30
+ "hz_actual_friendly": "1.4000 GHz",
31
+ "hz_actual": [
32
+ 1400000000,
33
+ 0
34
+ ],
35
+ "l2_cache_size": 12582912,
36
+ "stepping": 2,
37
+ "model": 151,
38
+ "family": 6,
39
+ "l3_cache_size": 26214400,
40
+ "hz_advertised_friendly": "1.3820 GHz",
41
+ "hz_advertised": [
42
+ 1382000000,
43
+ 0
44
+ ],
45
+ "flags": [
46
+ "3dnow",
47
+ "3dnowprefetch",
48
+ "abm",
49
+ "acpi",
50
+ "adx",
51
+ "aes",
52
+ "apic",
53
+ "avx",
54
+ "avx2",
55
+ "bmi1",
56
+ "bmi2",
57
+ "clflush",
58
+ "clflushopt",
59
+ "clwb",
60
+ "cmov",
61
+ "cx16",
62
+ "cx8",
63
+ "de",
64
+ "dts",
65
+ "erms",
66
+ "est",
67
+ "f16c",
68
+ "fma",
69
+ "fpu",
70
+ "fxsr",
71
+ "gfni",
72
+ "ht",
73
+ "hypervisor",
74
+ "ia64",
75
+ "intel_pt",
76
+ "invpcid",
77
+ "lahf_lm",
78
+ "mca",
79
+ "mce",
80
+ "mmx",
81
+ "monitor",
82
+ "movbe",
83
+ "msr",
84
+ "mtrr",
85
+ "osxsave",
86
+ "pae",
87
+ "pat",
88
+ "pbe",
89
+ "pcid",
90
+ "pclmulqdq",
91
+ "pdcm",
92
+ "pge",
93
+ "pni",
94
+ "popcnt",
95
+ "pse",
96
+ "pse36",
97
+ "rdpid",
98
+ "rdrnd",
99
+ "rdseed",
100
+ "sep",
101
+ "serial",
102
+ "sha",
103
+ "smap",
104
+ "smep",
105
+ "ss",
106
+ "sse",
107
+ "sse2",
108
+ "sse4_1",
109
+ "sse4_2",
110
+ "ssse3",
111
+ "tm",
112
+ "tm2",
113
+ "tsc",
114
+ "tscdeadline",
115
+ "umip",
116
+ "vaes",
117
+ "vme",
118
+ "vpclmulqdq",
119
+ "x2apic",
120
+ "xsave",
121
+ "xtpr"
122
+ ],
123
+ "l2_cache_line_size": 1280,
124
+ "l2_cache_associativity": 7
125
+ }
126
+ },
127
+ "commit_info": {
128
+ "id": "6fd990c2d159cb65e975de656cddc7e069b48dfe",
129
+ "time": "2026-03-17T18:27:33-04:00",
130
+ "author_time": "2026-03-17T18:27:33-04:00",
131
+ "dirty": true,
132
+ "project": "rmarc",
133
+ "branch": "main"
134
+ },
135
+ "benchmarks": [
136
+ {
137
+ "group": null,
138
+ "name": "test_bench_as_dict",
139
+ "fullname": "bench/bench_core.py::test_bench_as_dict",
140
+ "params": null,
141
+ "param": null,
142
+ "extra_info": {},
143
+ "options": {
144
+ "disable_gc": true,
145
+ "timer": "perf_counter",
146
+ "min_rounds": 5,
147
+ "max_time": 1.0,
148
+ "min_time": 5e-06,
149
+ "warmup": false
150
+ },
151
+ "stats": {
152
+ "min": 6.900001608300954e-06,
153
+ "max": 0.00035600000410340726,
154
+ "mean": 8.557593255072873e-06,
155
+ "stddev": 7.302991681266677e-06,
156
+ "rounds": 17858,
157
+ "median": 7.700000423938036e-06,
158
+ "iqr": 7.00005330145359e-07,
159
+ "q1": 7.499998901039362e-06,
160
+ "q3": 8.200004231184721e-06,
161
+ "iqr_outliers": 2410,
162
+ "stddev_outliers": 282,
163
+ "outliers": "282;2410",
164
+ "ld15iqr": 6.900001608300954e-06,
165
+ "hd15iqr": 9.2999980552122e-06,
166
+ "ops": 116855.28514774969,
167
+ "total": 0.15282150034909137,
168
+ "iterations": 1
169
+ }
170
+ },
171
+ {
172
+ "group": null,
173
+ "name": "test_bench_bulk_large",
174
+ "fullname": "bench/bench_core.py::test_bench_bulk_large",
175
+ "params": null,
176
+ "param": null,
177
+ "extra_info": {},
178
+ "options": {
179
+ "disable_gc": true,
180
+ "timer": "perf_counter",
181
+ "min_rounds": 5,
182
+ "max_time": 1.0,
183
+ "min_time": 5e-06,
184
+ "warmup": false
185
+ },
186
+ "stats": {
187
+ "min": 18.708717499997874,
188
+ "max": 18.96493940000073,
189
+ "mean": 18.822212999999465,
190
+ "stddev": 0.13058809151818423,
191
+ "rounds": 3,
192
+ "median": 18.79298209999979,
193
+ "iqr": 0.1921664250021422,
194
+ "q1": 18.729783649998353,
195
+ "q3": 18.921950075000495,
196
+ "iqr_outliers": 0,
197
+ "stddev_outliers": 1,
198
+ "outliers": "1;0",
199
+ "ld15iqr": 18.708717499997874,
200
+ "hd15iqr": 18.96493940000073,
201
+ "ops": 0.0531287155235162,
202
+ "total": 56.466638999998395,
203
+ "iterations": 1
204
+ }
205
+ },
206
+ {
207
+ "group": null,
208
+ "name": "test_bench_read_iterate_small",
209
+ "fullname": "bench/bench_core.py::test_bench_read_iterate_small",
210
+ "params": null,
211
+ "param": null,
212
+ "extra_info": {},
213
+ "options": {
214
+ "disable_gc": true,
215
+ "timer": "perf_counter",
216
+ "min_rounds": 5,
217
+ "max_time": 1.0,
218
+ "min_time": 5e-06,
219
+ "warmup": false
220
+ },
221
+ "stats": {
222
+ "min": 0.0013754000028711744,
223
+ "max": 0.004837799999222625,
224
+ "mean": 0.0018536933846973204,
225
+ "stddev": 0.00041781864493129633,
226
+ "rounds": 650,
227
+ "median": 0.001712600002065301,
228
+ "iqr": 0.0003974999999627471,
229
+ "q1": 0.0015877999976510182,
230
+ "q3": 0.0019852999976137653,
231
+ "iqr_outliers": 41,
232
+ "stddev_outliers": 99,
233
+ "outliers": "99;41",
234
+ "ld15iqr": 0.0013754000028711744,
235
+ "hd15iqr": 0.00258169999870006,
236
+ "ops": 539.4635424904883,
237
+ "total": 1.2049007000532583,
238
+ "iterations": 1
239
+ }
240
+ },
241
+ {
242
+ "group": null,
243
+ "name": "test_bench_marc8_convert",
244
+ "fullname": "bench/bench_core.py::test_bench_marc8_convert",
245
+ "params": null,
246
+ "param": null,
247
+ "extra_info": {},
248
+ "options": {
249
+ "disable_gc": true,
250
+ "timer": "perf_counter",
251
+ "min_rounds": 5,
252
+ "max_time": 1.0,
253
+ "min_time": 5e-06,
254
+ "warmup": false
255
+ },
256
+ "stats": {
257
+ "min": 0.011100800002168398,
258
+ "max": 0.018162499996833503,
259
+ "mean": 0.013292432307319428,
260
+ "stddev": 0.0013705699615998803,
261
+ "rounds": 65,
262
+ "median": 0.013102499993692618,
263
+ "iqr": 0.0016741500021453248,
264
+ "q1": 0.012346924999292241,
265
+ "q3": 0.014021075001437566,
266
+ "iqr_outliers": 2,
267
+ "stddev_outliers": 17,
268
+ "outliers": "17;2",
269
+ "ld15iqr": 0.011100800002168398,
270
+ "hd15iqr": 0.01711559999966994,
271
+ "ops": 75.23077619506505,
272
+ "total": 0.8640080999757629,
273
+ "iterations": 1
274
+ }
275
+ },
276
+ {
277
+ "group": null,
278
+ "name": "test_bench_read_iterate_medium",
279
+ "fullname": "bench/bench_core.py::test_bench_read_iterate_medium",
280
+ "params": null,
281
+ "param": null,
282
+ "extra_info": {},
283
+ "options": {
284
+ "disable_gc": true,
285
+ "timer": "perf_counter",
286
+ "min_rounds": 5,
287
+ "max_time": 1.0,
288
+ "min_time": 5e-06,
289
+ "warmup": false
290
+ },
291
+ "stats": {
292
+ "min": 0.16901700000016717,
293
+ "max": 0.20286650000343798,
294
+ "mean": 0.18705415000173767,
295
+ "stddev": 0.012517479645564964,
296
+ "rounds": 6,
297
+ "median": 0.19089625000196975,
298
+ "iqr": 0.01771290000033332,
299
+ "q1": 0.17546800000127405,
300
+ "q3": 0.19318090000160737,
301
+ "iqr_outliers": 0,
302
+ "stddev_outliers": 2,
303
+ "outliers": "2;0",
304
+ "ld15iqr": 0.16901700000016717,
305
+ "hd15iqr": 0.20286650000343798,
306
+ "ops": 5.3460455167164715,
307
+ "total": 1.122324900010426,
308
+ "iterations": 1
309
+ }
310
+ },
311
+ {
312
+ "group": null,
313
+ "name": "test_bench_decode_single",
314
+ "fullname": "bench/bench_core.py::test_bench_decode_single",
315
+ "params": null,
316
+ "param": null,
317
+ "extra_info": {},
318
+ "options": {
319
+ "disable_gc": true,
320
+ "timer": "perf_counter",
321
+ "min_rounds": 5,
322
+ "max_time": 1.0,
323
+ "min_time": 5e-06,
324
+ "warmup": false
325
+ },
326
+ "stats": {
327
+ "min": 0.0001754000040818937,
328
+ "max": 0.0011830000003101304,
329
+ "mean": 0.00026835645867261685,
330
+ "stddev": 0.00011575518328301495,
331
+ "rounds": 3592,
332
+ "median": 0.0002321499996469356,
333
+ "iqr": 9.375000445288606e-05,
334
+ "q1": 0.0001970999946934171,
335
+ "q3": 0.00029084999914630316,
336
+ "iqr_outliers": 247,
337
+ "stddev_outliers": 320,
338
+ "outliers": "320;247",
339
+ "ld15iqr": 0.0001754000040818937,
340
+ "hd15iqr": 0.00043200000072829425,
341
+ "ops": 3726.3869293340026,
342
+ "total": 0.9639363995520398,
343
+ "iterations": 1
344
+ }
345
+ },
346
+ {
347
+ "group": null,
348
+ "name": "test_bench_str",
349
+ "fullname": "bench/bench_core.py::test_bench_str",
350
+ "params": null,
351
+ "param": null,
352
+ "extra_info": {},
353
+ "options": {
354
+ "disable_gc": true,
355
+ "timer": "perf_counter",
356
+ "min_rounds": 5,
357
+ "max_time": 1.0,
358
+ "min_time": 5e-06,
359
+ "warmup": false
360
+ },
361
+ "stats": {
362
+ "min": 7.599999662488699e-06,
363
+ "max": 0.0003632000007200986,
364
+ "mean": 9.397247326862612e-06,
365
+ "stddev": 6.230167161084163e-06,
366
+ "rounds": 30770,
367
+ "median": 8.600000001024455e-06,
368
+ "iqr": 1.2999953469261527e-06,
369
+ "q1": 8.100003469735384e-06,
370
+ "q3": 9.399998816661537e-06,
371
+ "iqr_outliers": 2190,
372
+ "stddev_outliers": 573,
373
+ "outliers": "573;2190",
374
+ "ld15iqr": 7.599999662488699e-06,
375
+ "hd15iqr": 1.1399999493733048e-05,
376
+ "ops": 106414.14078157103,
377
+ "total": 0.2891533002475626,
378
+ "iterations": 1
379
+ }
380
+ },
381
+ {
382
+ "group": null,
383
+ "name": "test_bench_as_json",
384
+ "fullname": "bench/bench_core.py::test_bench_as_json",
385
+ "params": null,
386
+ "param": null,
387
+ "extra_info": {},
388
+ "options": {
389
+ "disable_gc": true,
390
+ "timer": "perf_counter",
391
+ "min_rounds": 5,
392
+ "max_time": 1.0,
393
+ "min_time": 5e-06,
394
+ "warmup": false
395
+ },
396
+ "stats": {
397
+ "min": 2.0300001779105514e-05,
398
+ "max": 0.00048290000268025324,
399
+ "mean": 2.6334692167296737e-05,
400
+ "stddev": 1.3470256719537324e-05,
401
+ "rounds": 15724,
402
+ "median": 2.3399996280204505e-05,
403
+ "iqr": 4.800000169780105e-06,
404
+ "q1": 2.2000000171829015e-05,
405
+ "q3": 2.680000034160912e-05,
406
+ "iqr_outliers": 1224,
407
+ "stddev_outliers": 628,
408
+ "outliers": "628;1224",
409
+ "ld15iqr": 2.0300001779105514e-05,
410
+ "hd15iqr": 3.4000004234258085e-05,
411
+ "ops": 37972.72410276479,
412
+ "total": 0.4140866996385739,
413
+ "iterations": 1
414
+ }
415
+ },
416
+ {
417
+ "group": null,
418
+ "name": "test_bench_field_access",
419
+ "fullname": "bench/bench_core.py::test_bench_field_access",
420
+ "params": null,
421
+ "param": null,
422
+ "extra_info": {},
423
+ "options": {
424
+ "disable_gc": true,
425
+ "timer": "perf_counter",
426
+ "min_rounds": 5,
427
+ "max_time": 1.0,
428
+ "min_time": 5e-06,
429
+ "warmup": false
430
+ },
431
+ "stats": {
432
+ "min": 4.999994416721165e-06,
433
+ "max": 0.000352399998519104,
434
+ "mean": 6.48718928883892e-06,
435
+ "stddev": 4.146917374151984e-06,
436
+ "rounds": 48077,
437
+ "median": 6.000002031214535e-06,
438
+ "iqr": 1.0000003385357559e-06,
439
+ "q1": 5.599998985417187e-06,
440
+ "q3": 6.599999323952943e-06,
441
+ "iqr_outliers": 3323,
442
+ "stddev_outliers": 944,
443
+ "outliers": "944;3323",
444
+ "ld15iqr": 4.999994416721165e-06,
445
+ "hd15iqr": 8.100003469735384e-06,
446
+ "ops": 154149.96471900088,
447
+ "total": 0.31188459943950875,
448
+ "iterations": 1
449
+ }
450
+ },
451
+ {
452
+ "group": null,
453
+ "name": "test_bench_roundtrip_single",
454
+ "fullname": "bench/bench_core.py::test_bench_roundtrip_single",
455
+ "params": null,
456
+ "param": null,
457
+ "extra_info": {},
458
+ "options": {
459
+ "disable_gc": true,
460
+ "timer": "perf_counter",
461
+ "min_rounds": 5,
462
+ "max_time": 1.0,
463
+ "min_time": 5e-06,
464
+ "warmup": false
465
+ },
466
+ "stats": {
467
+ "min": 0.00020339999900897965,
468
+ "max": 0.0009505999987595715,
469
+ "mean": 0.0002544838512674789,
470
+ "stddev": 7.04683955078413e-05,
471
+ "rounds": 3443,
472
+ "median": 0.00022990000434219837,
473
+ "iqr": 3.612499494920485e-05,
474
+ "q1": 0.00022252500457398128,
475
+ "q3": 0.0002586499995231861,
476
+ "iqr_outliers": 351,
477
+ "stddev_outliers": 287,
478
+ "outliers": "287;351",
479
+ "ld15iqr": 0.00020339999900897965,
480
+ "hd15iqr": 0.000313000004098285,
481
+ "ops": 3929.5224236013923,
482
+ "total": 0.8761878999139299,
483
+ "iterations": 1
484
+ }
485
+ }
486
+ ],
487
+ "datetime": "2026-03-17T22:53:18.987863+00:00",
488
+ "version": "5.2.3"
489
+ }