openqbw 0.1.2__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.
@@ -0,0 +1,520 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "ahash"
7
+ version = "0.8.12"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
10
+ dependencies = [
11
+ "cfg-if",
12
+ "once_cell",
13
+ "version_check",
14
+ "zerocopy",
15
+ ]
16
+
17
+ [[package]]
18
+ name = "anstream"
19
+ version = "1.0.0"
20
+ source = "registry+https://github.com/rust-lang/crates.io-index"
21
+ checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d"
22
+ dependencies = [
23
+ "anstyle",
24
+ "anstyle-parse",
25
+ "anstyle-query",
26
+ "anstyle-wincon",
27
+ "colorchoice",
28
+ "is_terminal_polyfill",
29
+ "utf8parse",
30
+ ]
31
+
32
+ [[package]]
33
+ name = "anstyle"
34
+ version = "1.0.14"
35
+ source = "registry+https://github.com/rust-lang/crates.io-index"
36
+ checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000"
37
+
38
+ [[package]]
39
+ name = "anstyle-parse"
40
+ version = "1.0.0"
41
+ source = "registry+https://github.com/rust-lang/crates.io-index"
42
+ checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e"
43
+ dependencies = [
44
+ "utf8parse",
45
+ ]
46
+
47
+ [[package]]
48
+ name = "anstyle-query"
49
+ version = "1.1.5"
50
+ source = "registry+https://github.com/rust-lang/crates.io-index"
51
+ checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
52
+ dependencies = [
53
+ "windows-sys",
54
+ ]
55
+
56
+ [[package]]
57
+ name = "anstyle-wincon"
58
+ version = "3.0.11"
59
+ source = "registry+https://github.com/rust-lang/crates.io-index"
60
+ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
61
+ dependencies = [
62
+ "anstyle",
63
+ "once_cell_polyfill",
64
+ "windows-sys",
65
+ ]
66
+
67
+ [[package]]
68
+ name = "anyhow"
69
+ version = "1.0.103"
70
+ source = "registry+https://github.com/rust-lang/crates.io-index"
71
+ checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3"
72
+
73
+ [[package]]
74
+ name = "autocfg"
75
+ version = "1.5.1"
76
+ source = "registry+https://github.com/rust-lang/crates.io-index"
77
+ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
78
+
79
+ [[package]]
80
+ name = "bitflags"
81
+ version = "2.13.0"
82
+ source = "registry+https://github.com/rust-lang/crates.io-index"
83
+ checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8"
84
+
85
+ [[package]]
86
+ name = "cc"
87
+ version = "1.2.65"
88
+ source = "registry+https://github.com/rust-lang/crates.io-index"
89
+ checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96"
90
+ dependencies = [
91
+ "find-msvc-tools",
92
+ "shlex",
93
+ ]
94
+
95
+ [[package]]
96
+ name = "cfg-if"
97
+ version = "1.0.4"
98
+ source = "registry+https://github.com/rust-lang/crates.io-index"
99
+ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
100
+
101
+ [[package]]
102
+ name = "clap"
103
+ version = "4.6.1"
104
+ source = "registry+https://github.com/rust-lang/crates.io-index"
105
+ checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51"
106
+ dependencies = [
107
+ "clap_builder",
108
+ "clap_derive",
109
+ ]
110
+
111
+ [[package]]
112
+ name = "clap_builder"
113
+ version = "4.6.0"
114
+ source = "registry+https://github.com/rust-lang/crates.io-index"
115
+ checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f"
116
+ dependencies = [
117
+ "anstream",
118
+ "anstyle",
119
+ "clap_lex",
120
+ "strsim",
121
+ ]
122
+
123
+ [[package]]
124
+ name = "clap_derive"
125
+ version = "4.6.1"
126
+ source = "registry+https://github.com/rust-lang/crates.io-index"
127
+ checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9"
128
+ dependencies = [
129
+ "heck",
130
+ "proc-macro2",
131
+ "quote",
132
+ "syn",
133
+ ]
134
+
135
+ [[package]]
136
+ name = "clap_lex"
137
+ version = "1.1.0"
138
+ source = "registry+https://github.com/rust-lang/crates.io-index"
139
+ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
140
+
141
+ [[package]]
142
+ name = "colorchoice"
143
+ version = "1.0.5"
144
+ source = "registry+https://github.com/rust-lang/crates.io-index"
145
+ checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570"
146
+
147
+ [[package]]
148
+ name = "crc32fast"
149
+ version = "1.5.0"
150
+ source = "registry+https://github.com/rust-lang/crates.io-index"
151
+ checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
152
+ dependencies = [
153
+ "cfg-if",
154
+ ]
155
+
156
+ [[package]]
157
+ name = "fallible-iterator"
158
+ version = "0.3.0"
159
+ source = "registry+https://github.com/rust-lang/crates.io-index"
160
+ checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
161
+
162
+ [[package]]
163
+ name = "fallible-streaming-iterator"
164
+ version = "0.1.9"
165
+ source = "registry+https://github.com/rust-lang/crates.io-index"
166
+ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
167
+
168
+ [[package]]
169
+ name = "find-msvc-tools"
170
+ version = "0.1.9"
171
+ source = "registry+https://github.com/rust-lang/crates.io-index"
172
+ checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
173
+
174
+ [[package]]
175
+ name = "hashbrown"
176
+ version = "0.14.5"
177
+ source = "registry+https://github.com/rust-lang/crates.io-index"
178
+ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
179
+ dependencies = [
180
+ "ahash",
181
+ ]
182
+
183
+ [[package]]
184
+ name = "hashlink"
185
+ version = "0.9.1"
186
+ source = "registry+https://github.com/rust-lang/crates.io-index"
187
+ checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af"
188
+ dependencies = [
189
+ "hashbrown",
190
+ ]
191
+
192
+ [[package]]
193
+ name = "heck"
194
+ version = "0.5.0"
195
+ source = "registry+https://github.com/rust-lang/crates.io-index"
196
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
197
+
198
+ [[package]]
199
+ name = "indoc"
200
+ version = "2.0.7"
201
+ source = "registry+https://github.com/rust-lang/crates.io-index"
202
+ checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
203
+ dependencies = [
204
+ "rustversion",
205
+ ]
206
+
207
+ [[package]]
208
+ name = "is_terminal_polyfill"
209
+ version = "1.70.2"
210
+ source = "registry+https://github.com/rust-lang/crates.io-index"
211
+ checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
212
+
213
+ [[package]]
214
+ name = "libc"
215
+ version = "0.2.186"
216
+ source = "registry+https://github.com/rust-lang/crates.io-index"
217
+ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
218
+
219
+ [[package]]
220
+ name = "libsqlite3-sys"
221
+ version = "0.30.1"
222
+ source = "registry+https://github.com/rust-lang/crates.io-index"
223
+ checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149"
224
+ dependencies = [
225
+ "cc",
226
+ "pkg-config",
227
+ "vcpkg",
228
+ ]
229
+
230
+ [[package]]
231
+ name = "memoffset"
232
+ version = "0.9.1"
233
+ source = "registry+https://github.com/rust-lang/crates.io-index"
234
+ checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
235
+ dependencies = [
236
+ "autocfg",
237
+ ]
238
+
239
+ [[package]]
240
+ name = "once_cell"
241
+ version = "1.21.4"
242
+ source = "registry+https://github.com/rust-lang/crates.io-index"
243
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
244
+
245
+ [[package]]
246
+ name = "once_cell_polyfill"
247
+ version = "1.70.2"
248
+ source = "registry+https://github.com/rust-lang/crates.io-index"
249
+ checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
250
+
251
+ [[package]]
252
+ name = "openqbw"
253
+ version = "0.1.2"
254
+ dependencies = [
255
+ "opensqlany",
256
+ "thiserror",
257
+ ]
258
+
259
+ [[package]]
260
+ name = "openqbw-cli"
261
+ version = "0.1.2"
262
+ dependencies = [
263
+ "anyhow",
264
+ "clap",
265
+ "openqbw",
266
+ "opensqlany",
267
+ "rusqlite",
268
+ ]
269
+
270
+ [[package]]
271
+ name = "openqbw-py"
272
+ version = "0.1.2"
273
+ dependencies = [
274
+ "openqbw",
275
+ "opensqlany",
276
+ "pyo3",
277
+ ]
278
+
279
+ [[package]]
280
+ name = "opensqlany"
281
+ version = "0.1.0"
282
+ source = "registry+https://github.com/rust-lang/crates.io-index"
283
+ checksum = "e90ea9ec0f14349d4a25feafc149d70875904abde6c85361f52f3929e5169131"
284
+ dependencies = [
285
+ "crc32fast",
286
+ "thiserror",
287
+ ]
288
+
289
+ [[package]]
290
+ name = "pkg-config"
291
+ version = "0.3.33"
292
+ source = "registry+https://github.com/rust-lang/crates.io-index"
293
+ checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e"
294
+
295
+ [[package]]
296
+ name = "portable-atomic"
297
+ version = "1.13.1"
298
+ source = "registry+https://github.com/rust-lang/crates.io-index"
299
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
300
+
301
+ [[package]]
302
+ name = "proc-macro2"
303
+ version = "1.0.106"
304
+ source = "registry+https://github.com/rust-lang/crates.io-index"
305
+ checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
306
+ dependencies = [
307
+ "unicode-ident",
308
+ ]
309
+
310
+ [[package]]
311
+ name = "pyo3"
312
+ version = "0.22.6"
313
+ source = "registry+https://github.com/rust-lang/crates.io-index"
314
+ checksum = "f402062616ab18202ae8319da13fa4279883a2b8a9d9f83f20dbade813ce1884"
315
+ dependencies = [
316
+ "cfg-if",
317
+ "indoc",
318
+ "libc",
319
+ "memoffset",
320
+ "once_cell",
321
+ "portable-atomic",
322
+ "pyo3-build-config",
323
+ "pyo3-ffi",
324
+ "pyo3-macros",
325
+ "unindent",
326
+ ]
327
+
328
+ [[package]]
329
+ name = "pyo3-build-config"
330
+ version = "0.22.6"
331
+ source = "registry+https://github.com/rust-lang/crates.io-index"
332
+ checksum = "b14b5775b5ff446dd1056212d778012cbe8a0fbffd368029fd9e25b514479c38"
333
+ dependencies = [
334
+ "once_cell",
335
+ "target-lexicon",
336
+ ]
337
+
338
+ [[package]]
339
+ name = "pyo3-ffi"
340
+ version = "0.22.6"
341
+ source = "registry+https://github.com/rust-lang/crates.io-index"
342
+ checksum = "9ab5bcf04a2cdcbb50c7d6105de943f543f9ed92af55818fd17b660390fc8636"
343
+ dependencies = [
344
+ "libc",
345
+ "pyo3-build-config",
346
+ ]
347
+
348
+ [[package]]
349
+ name = "pyo3-macros"
350
+ version = "0.22.6"
351
+ source = "registry+https://github.com/rust-lang/crates.io-index"
352
+ checksum = "0fd24d897903a9e6d80b968368a34e1525aeb719d568dba8b3d4bfa5dc67d453"
353
+ dependencies = [
354
+ "proc-macro2",
355
+ "pyo3-macros-backend",
356
+ "quote",
357
+ "syn",
358
+ ]
359
+
360
+ [[package]]
361
+ name = "pyo3-macros-backend"
362
+ version = "0.22.6"
363
+ source = "registry+https://github.com/rust-lang/crates.io-index"
364
+ checksum = "36c011a03ba1e50152b4b394b479826cad97e7a21eb52df179cd91ac411cbfbe"
365
+ dependencies = [
366
+ "heck",
367
+ "proc-macro2",
368
+ "pyo3-build-config",
369
+ "quote",
370
+ "syn",
371
+ ]
372
+
373
+ [[package]]
374
+ name = "quote"
375
+ version = "1.0.46"
376
+ source = "registry+https://github.com/rust-lang/crates.io-index"
377
+ checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368"
378
+ dependencies = [
379
+ "proc-macro2",
380
+ ]
381
+
382
+ [[package]]
383
+ name = "rusqlite"
384
+ version = "0.32.1"
385
+ source = "registry+https://github.com/rust-lang/crates.io-index"
386
+ checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e"
387
+ dependencies = [
388
+ "bitflags",
389
+ "fallible-iterator",
390
+ "fallible-streaming-iterator",
391
+ "hashlink",
392
+ "libsqlite3-sys",
393
+ "smallvec",
394
+ ]
395
+
396
+ [[package]]
397
+ name = "rustversion"
398
+ version = "1.0.22"
399
+ source = "registry+https://github.com/rust-lang/crates.io-index"
400
+ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
401
+
402
+ [[package]]
403
+ name = "shlex"
404
+ version = "2.0.1"
405
+ source = "registry+https://github.com/rust-lang/crates.io-index"
406
+ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
407
+
408
+ [[package]]
409
+ name = "smallvec"
410
+ version = "1.15.2"
411
+ source = "registry+https://github.com/rust-lang/crates.io-index"
412
+ checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
413
+
414
+ [[package]]
415
+ name = "strsim"
416
+ version = "0.11.1"
417
+ source = "registry+https://github.com/rust-lang/crates.io-index"
418
+ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
419
+
420
+ [[package]]
421
+ name = "syn"
422
+ version = "2.0.118"
423
+ source = "registry+https://github.com/rust-lang/crates.io-index"
424
+ checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422"
425
+ dependencies = [
426
+ "proc-macro2",
427
+ "quote",
428
+ "unicode-ident",
429
+ ]
430
+
431
+ [[package]]
432
+ name = "target-lexicon"
433
+ version = "0.12.16"
434
+ source = "registry+https://github.com/rust-lang/crates.io-index"
435
+ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
436
+
437
+ [[package]]
438
+ name = "thiserror"
439
+ version = "1.0.69"
440
+ source = "registry+https://github.com/rust-lang/crates.io-index"
441
+ checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
442
+ dependencies = [
443
+ "thiserror-impl",
444
+ ]
445
+
446
+ [[package]]
447
+ name = "thiserror-impl"
448
+ version = "1.0.69"
449
+ source = "registry+https://github.com/rust-lang/crates.io-index"
450
+ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
451
+ dependencies = [
452
+ "proc-macro2",
453
+ "quote",
454
+ "syn",
455
+ ]
456
+
457
+ [[package]]
458
+ name = "unicode-ident"
459
+ version = "1.0.24"
460
+ source = "registry+https://github.com/rust-lang/crates.io-index"
461
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
462
+
463
+ [[package]]
464
+ name = "unindent"
465
+ version = "0.2.4"
466
+ source = "registry+https://github.com/rust-lang/crates.io-index"
467
+ checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
468
+
469
+ [[package]]
470
+ name = "utf8parse"
471
+ version = "0.2.2"
472
+ source = "registry+https://github.com/rust-lang/crates.io-index"
473
+ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
474
+
475
+ [[package]]
476
+ name = "vcpkg"
477
+ version = "0.2.15"
478
+ source = "registry+https://github.com/rust-lang/crates.io-index"
479
+ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
480
+
481
+ [[package]]
482
+ name = "version_check"
483
+ version = "0.9.5"
484
+ source = "registry+https://github.com/rust-lang/crates.io-index"
485
+ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
486
+
487
+ [[package]]
488
+ name = "windows-link"
489
+ version = "0.2.1"
490
+ source = "registry+https://github.com/rust-lang/crates.io-index"
491
+ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
492
+
493
+ [[package]]
494
+ name = "windows-sys"
495
+ version = "0.61.2"
496
+ source = "registry+https://github.com/rust-lang/crates.io-index"
497
+ checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
498
+ dependencies = [
499
+ "windows-link",
500
+ ]
501
+
502
+ [[package]]
503
+ name = "zerocopy"
504
+ version = "0.8.52"
505
+ source = "registry+https://github.com/rust-lang/crates.io-index"
506
+ checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f"
507
+ dependencies = [
508
+ "zerocopy-derive",
509
+ ]
510
+
511
+ [[package]]
512
+ name = "zerocopy-derive"
513
+ version = "0.8.52"
514
+ source = "registry+https://github.com/rust-lang/crates.io-index"
515
+ checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930"
516
+ dependencies = [
517
+ "proc-macro2",
518
+ "quote",
519
+ "syn",
520
+ ]
@@ -0,0 +1,30 @@
1
+ [workspace]
2
+ resolver = "3"
3
+ members = ["crates/openqbw", "crates/openqbw-py"]
4
+
5
+ [workspace.package]
6
+ version = "0.1.2"
7
+ edition = "2024"
8
+ rust-version = "1.87"
9
+ license = "Apache-2.0"
10
+ repository = "https://github.com/Sigilweaver/OpenQBW"
11
+ homepage = "https://sigilweaver.app/openqbw/"
12
+ documentation = "https://sigilweaver.app/openqbw/docs/"
13
+ readme = "README.md"
14
+ authors = ["Nathan Riley"]
15
+ keywords = ["quickbooks", "qbw", "accounting", "parser", "intuit"]
16
+ categories = ["parser-implementations", "command-line-utilities"]
17
+
18
+ [workspace.lints.rust]
19
+ unsafe_code = "forbid"
20
+
21
+ [workspace.dependencies]
22
+ openqbw = { path = "crates/openqbw", version = "0.1.2" }
23
+ opensqlany = "0.1.0"
24
+ # Local cross-repo dev: add a `.cargo/config.toml` with
25
+ # [patch.crates-io]
26
+ # opensqlany = { path = "../OpenSQLAnywhere/crates/opensqlany" }
27
+ anyhow = "1"
28
+ clap = { version = "4", features = ["derive"] }
29
+ rusqlite = { version = "0.32", features = ["bundled"] }
30
+ thiserror = "1"
openqbw-0.1.2/PKG-INFO ADDED
@@ -0,0 +1,67 @@
1
+ Metadata-Version: 2.4
2
+ Name: openqbw
3
+ Version: 0.1.2
4
+ Classifier: Development Status :: 3 - Alpha
5
+ Classifier: License :: OSI Approved :: Apache Software License
6
+ Classifier: Programming Language :: Python :: 3
7
+ Classifier: Programming Language :: Rust
8
+ Classifier: Topic :: Office/Business :: Financial :: Accounting
9
+ Summary: Python bindings for OpenQBW (QuickBooks .qbw file reader)
10
+ Home-Page: https://sigilweaver.app/openqbw/
11
+ Author: Nathan Riley
12
+ License: Apache-2.0
13
+ Requires-Python: >=3.9
14
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
15
+ Project-URL: Repository, https://github.com/Sigilweaver/OpenQBW
16
+
17
+ # openqbw (Python)
18
+
19
+ Python bindings for [OpenQBW](https://github.com/Sigilweaver/OpenQBW), a
20
+ read-only parser for QuickBooks `.qbw` files. Targets data-liberation
21
+ and forensic workflows.
22
+
23
+ > Prototype quality. See the parent repository's `README.md` and
24
+ > `SPECIFICATION.md` for what is and is not yet supported.
25
+
26
+ ## Install (from source)
27
+
28
+ ```bash
29
+ pip install maturin
30
+ cd OpenQBW/crates/openqbw-py
31
+ maturin develop --release
32
+ ```
33
+
34
+ This builds the extension and installs it into the active Python
35
+ environment.
36
+
37
+ ## Quick start
38
+
39
+ ```python
40
+ import openqbw
41
+
42
+ r = openqbw.open("/path/to/file.qbw")
43
+ print(r.page_count, "pages,", r.file_size, "bytes")
44
+
45
+ for t in r.tables()[:5]:
46
+ print(t["table_id"], t["name"])
47
+
48
+ for li in r.line_items()[:3]:
49
+ print(li["invoice_id"], li["amount_cents"], li["source_table"])
50
+
51
+ for h in r.transactions()[:3]:
52
+ print(h["qb_id"], h["txn_type"])
53
+ ```
54
+
55
+ ## API
56
+
57
+ `openqbw.open(path) -> Reader`
58
+
59
+ `Reader` attributes:
60
+ - `path`, `page_count`, `file_size`
61
+
62
+ `Reader` methods (each returns a list of dicts):
63
+ - `tables()` - SYSTABLE catalog rows
64
+ - `indexes()` - SYSINDEX entries
65
+ - `line_items()` - invoice line items, attributed to source tables
66
+ - `transactions()` - transaction headers
67
+
@@ -0,0 +1,50 @@
1
+ # openqbw (Python)
2
+
3
+ Python bindings for [OpenQBW](https://github.com/Sigilweaver/OpenQBW), a
4
+ read-only parser for QuickBooks `.qbw` files. Targets data-liberation
5
+ and forensic workflows.
6
+
7
+ > Prototype quality. See the parent repository's `README.md` and
8
+ > `SPECIFICATION.md` for what is and is not yet supported.
9
+
10
+ ## Install (from source)
11
+
12
+ ```bash
13
+ pip install maturin
14
+ cd OpenQBW/crates/openqbw-py
15
+ maturin develop --release
16
+ ```
17
+
18
+ This builds the extension and installs it into the active Python
19
+ environment.
20
+
21
+ ## Quick start
22
+
23
+ ```python
24
+ import openqbw
25
+
26
+ r = openqbw.open("/path/to/file.qbw")
27
+ print(r.page_count, "pages,", r.file_size, "bytes")
28
+
29
+ for t in r.tables()[:5]:
30
+ print(t["table_id"], t["name"])
31
+
32
+ for li in r.line_items()[:3]:
33
+ print(li["invoice_id"], li["amount_cents"], li["source_table"])
34
+
35
+ for h in r.transactions()[:3]:
36
+ print(h["qb_id"], h["txn_type"])
37
+ ```
38
+
39
+ ## API
40
+
41
+ `openqbw.open(path) -> Reader`
42
+
43
+ `Reader` attributes:
44
+ - `path`, `page_count`, `file_size`
45
+
46
+ `Reader` methods (each returns a list of dicts):
47
+ - `tables()` - SYSTABLE catalog rows
48
+ - `indexes()` - SYSINDEX entries
49
+ - `line_items()` - invoice line items, attributed to source tables
50
+ - `transactions()` - transaction headers
@@ -0,0 +1,21 @@
1
+ [package]
2
+ name = "openqbw"
3
+ version.workspace = true
4
+ edition.workspace = true
5
+ rust-version.workspace = true
6
+ license.workspace = true
7
+ repository.workspace = true
8
+ homepage.workspace = true
9
+ documentation.workspace = true
10
+ readme = "README.md"
11
+ authors.workspace = true
12
+ keywords = ["quickbooks", "qbw", "accounting", "parser"]
13
+ categories = ["parser-implementations"]
14
+ description = "QuickBooks .qbw file parser built on opensqlany page-store."
15
+
16
+ [dependencies]
17
+ opensqlany = { workspace = true }
18
+ thiserror = { workspace = true }
19
+
20
+ [lints]
21
+ workspace = true