cc-transcript 0.3.0__tar.gz → 0.5.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 (40) hide show
  1. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/Cargo.lock +447 -4
  2. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/PKG-INFO +13 -9
  3. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/README.md +10 -7
  4. cc_transcript-0.5.0/cc_transcript/__init__.py +60 -0
  5. cc_transcript-0.5.0/cc_transcript/_parser_rs.pyi +37 -0
  6. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/cc_transcript/backend.py +0 -3
  7. cc_transcript-0.5.0/cc_transcript/builders.py +108 -0
  8. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/cc_transcript/discovery.py +23 -19
  9. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/cc_transcript/filters.py +0 -14
  10. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/cc_transcript/filterspec.py +45 -85
  11. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/cc_transcript/models.py +0 -20
  12. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/cc_transcript/parser.py +19 -17
  13. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/cc_transcript/rust.py +0 -3
  14. cc_transcript-0.5.0/cc_transcript/sentiment/__init__.py +40 -0
  15. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/cc_transcript/sentiment/buckets.py +11 -13
  16. cc_transcript-0.5.0/cc_transcript/sentiment/engine.py +105 -0
  17. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/cc_transcript/sentiment/lexicon.py +87 -14
  18. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/cc_transcript/sentiment/messages.py +6 -3
  19. cc_transcript-0.5.0/cc_transcript/sentiment/scorespec.py +218 -0
  20. cc_transcript-0.5.0/cc_transcript/store.py +130 -0
  21. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/pyproject.toml +27 -3
  22. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/rust/Cargo.toml +3 -1
  23. cc_transcript-0.5.0/rust/data/afinn-en-165.tsv +3352 -0
  24. cc_transcript-0.5.0/rust/data/domain_overrides.tsv +38 -0
  25. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/rust/src/filter.rs +8 -6
  26. cc_transcript-0.5.0/rust/src/lexicon.rs +108 -0
  27. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/rust/src/lib.rs +72 -16
  28. cc_transcript-0.5.0/rust/src/score.rs +171 -0
  29. cc_transcript-0.3.0/cc_transcript/__init__.py +0 -127
  30. cc_transcript-0.3.0/cc_transcript/_parser_rs.pyi +0 -21
  31. cc_transcript-0.3.0/cc_transcript/sentiment/__init__.py +0 -62
  32. cc_transcript-0.3.0/cc_transcript/sentiment/engine.py +0 -79
  33. cc_transcript-0.3.0/cc_transcript/sentiment/scorefilters.py +0 -149
  34. cc_transcript-0.3.0/cc_transcript/store.py +0 -121
  35. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/Cargo.toml +0 -0
  36. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/LICENSE +0 -0
  37. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/cc_transcript/py.typed +0 -0
  38. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/rust/src/event.rs +0 -0
  39. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/rust/src/model.rs +0 -0
  40. {cc_transcript-0.3.0 → cc_transcript-0.5.0}/rust/src/value.rs +0 -0
@@ -2,6 +2,12 @@
2
2
  # It is not intended for manual editing.
3
3
  version = 4
4
4
 
5
+ [[package]]
6
+ name = "adler2"
7
+ version = "2.0.1"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
10
+
5
11
  [[package]]
6
12
  name = "ahash"
7
13
  version = "0.8.12"
@@ -9,7 +15,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
9
15
  checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
10
16
  dependencies = [
11
17
  "cfg-if",
12
- "getrandom",
18
+ "getrandom 0.3.4",
13
19
  "once_cell",
14
20
  "version_check",
15
21
  "zerocopy",
@@ -30,6 +36,12 @@ version = "1.5.1"
30
36
  source = "registry+https://github.com/rust-lang/crates.io-index"
31
37
  checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
32
38
 
39
+ [[package]]
40
+ name = "base64"
41
+ version = "0.22.1"
42
+ source = "registry+https://github.com/rust-lang/crates.io-index"
43
+ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
44
+
33
45
  [[package]]
34
46
  name = "bumpalo"
35
47
  version = "3.20.3"
@@ -42,12 +54,23 @@ version = "1.11.1"
42
54
  source = "registry+https://github.com/rust-lang/crates.io-index"
43
55
  checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
44
56
 
57
+ [[package]]
58
+ name = "cc"
59
+ version = "1.2.63"
60
+ source = "registry+https://github.com/rust-lang/crates.io-index"
61
+ checksum = "556e016178bb5662a08681bbe0f00f8e17631781a4dfc8c45e466e4b185ec27f"
62
+ dependencies = [
63
+ "find-msvc-tools",
64
+ "shlex",
65
+ ]
66
+
45
67
  [[package]]
46
68
  name = "cc_transcript_parser"
47
- version = "0.3.0"
69
+ version = "0.5.0"
48
70
  dependencies = [
49
71
  "chrono",
50
72
  "crossbeam-channel",
73
+ "dirs",
51
74
  "memchr",
52
75
  "num_cpus",
53
76
  "once_cell",
@@ -56,6 +79,7 @@ dependencies = [
56
79
  "regex",
57
80
  "serde",
58
81
  "sonic-rs",
82
+ "udpipe-rs",
59
83
  ]
60
84
 
61
85
  [[package]]
@@ -73,6 +97,15 @@ dependencies = [
73
97
  "num-traits",
74
98
  ]
75
99
 
100
+ [[package]]
101
+ name = "crc32fast"
102
+ version = "1.5.0"
103
+ source = "registry+https://github.com/rust-lang/crates.io-index"
104
+ checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
105
+ dependencies = [
106
+ "cfg-if",
107
+ ]
108
+
76
109
  [[package]]
77
110
  name = "crossbeam-channel"
78
111
  version = "0.5.15"
@@ -107,6 +140,27 @@ version = "0.8.21"
107
140
  source = "registry+https://github.com/rust-lang/crates.io-index"
108
141
  checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
109
142
 
143
+ [[package]]
144
+ name = "dirs"
145
+ version = "5.0.1"
146
+ source = "registry+https://github.com/rust-lang/crates.io-index"
147
+ checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
148
+ dependencies = [
149
+ "dirs-sys",
150
+ ]
151
+
152
+ [[package]]
153
+ name = "dirs-sys"
154
+ version = "0.4.1"
155
+ source = "registry+https://github.com/rust-lang/crates.io-index"
156
+ checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
157
+ dependencies = [
158
+ "libc",
159
+ "option-ext",
160
+ "redox_users",
161
+ "windows-sys 0.48.0",
162
+ ]
163
+
110
164
  [[package]]
111
165
  name = "either"
112
166
  version = "1.16.0"
@@ -131,6 +185,22 @@ dependencies = [
131
185
  "simdutf8",
132
186
  ]
133
187
 
188
+ [[package]]
189
+ name = "find-msvc-tools"
190
+ version = "0.1.9"
191
+ source = "registry+https://github.com/rust-lang/crates.io-index"
192
+ checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
193
+
194
+ [[package]]
195
+ name = "flate2"
196
+ version = "1.1.9"
197
+ source = "registry+https://github.com/rust-lang/crates.io-index"
198
+ checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
199
+ dependencies = [
200
+ "crc32fast",
201
+ "miniz_oxide",
202
+ ]
203
+
134
204
  [[package]]
135
205
  name = "futures-core"
136
206
  version = "0.3.32"
@@ -155,6 +225,17 @@ dependencies = [
155
225
  "slab",
156
226
  ]
157
227
 
228
+ [[package]]
229
+ name = "getrandom"
230
+ version = "0.2.17"
231
+ source = "registry+https://github.com/rust-lang/crates.io-index"
232
+ checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
233
+ dependencies = [
234
+ "cfg-if",
235
+ "libc",
236
+ "wasi",
237
+ ]
238
+
158
239
  [[package]]
159
240
  name = "getrandom"
160
241
  version = "0.3.4"
@@ -185,6 +266,22 @@ version = "0.5.2"
185
266
  source = "registry+https://github.com/rust-lang/crates.io-index"
186
267
  checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
187
268
 
269
+ [[package]]
270
+ name = "http"
271
+ version = "1.4.2"
272
+ source = "registry+https://github.com/rust-lang/crates.io-index"
273
+ checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425"
274
+ dependencies = [
275
+ "bytes",
276
+ "itoa",
277
+ ]
278
+
279
+ [[package]]
280
+ name = "httparse"
281
+ version = "1.10.1"
282
+ source = "registry+https://github.com/rust-lang/crates.io-index"
283
+ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
284
+
188
285
  [[package]]
189
286
  name = "indexmap"
190
287
  version = "2.14.0"
@@ -219,12 +316,37 @@ version = "0.2.186"
219
316
  source = "registry+https://github.com/rust-lang/crates.io-index"
220
317
  checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
221
318
 
319
+ [[package]]
320
+ name = "libredox"
321
+ version = "0.1.17"
322
+ source = "registry+https://github.com/rust-lang/crates.io-index"
323
+ checksum = "f02ab6bace2054fb888a3c16f990117b579d14a3088e472d63c6011fa185c9d3"
324
+ dependencies = [
325
+ "libc",
326
+ ]
327
+
328
+ [[package]]
329
+ name = "log"
330
+ version = "0.4.32"
331
+ source = "registry+https://github.com/rust-lang/crates.io-index"
332
+ checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a"
333
+
222
334
  [[package]]
223
335
  name = "memchr"
224
336
  version = "2.8.1"
225
337
  source = "registry+https://github.com/rust-lang/crates.io-index"
226
338
  checksum = "6b947ae49db0d222b1dbc6b113ce7248a3fc3a6ca21b696717bfc000ba4484d8"
227
339
 
340
+ [[package]]
341
+ name = "miniz_oxide"
342
+ version = "0.8.9"
343
+ source = "registry+https://github.com/rust-lang/crates.io-index"
344
+ checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
345
+ dependencies = [
346
+ "adler2",
347
+ "simd-adler32",
348
+ ]
349
+
228
350
  [[package]]
229
351
  name = "munge"
230
352
  version = "0.4.7"
@@ -270,6 +392,18 @@ version = "1.21.4"
270
392
  source = "registry+https://github.com/rust-lang/crates.io-index"
271
393
  checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
272
394
 
395
+ [[package]]
396
+ name = "option-ext"
397
+ version = "0.2.0"
398
+ source = "registry+https://github.com/rust-lang/crates.io-index"
399
+ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
400
+
401
+ [[package]]
402
+ name = "percent-encoding"
403
+ version = "2.3.2"
404
+ source = "registry+https://github.com/rust-lang/crates.io-index"
405
+ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
406
+
273
407
  [[package]]
274
408
  name = "pin-project-lite"
275
409
  version = "0.2.17"
@@ -414,6 +548,17 @@ dependencies = [
414
548
  "crossbeam-utils",
415
549
  ]
416
550
 
551
+ [[package]]
552
+ name = "redox_users"
553
+ version = "0.4.6"
554
+ source = "registry+https://github.com/rust-lang/crates.io-index"
555
+ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
556
+ dependencies = [
557
+ "getrandom 0.2.17",
558
+ "libredox",
559
+ "thiserror 1.0.69",
560
+ ]
561
+
417
562
  [[package]]
418
563
  name = "ref-cast"
419
564
  version = "1.0.25"
@@ -469,6 +614,20 @@ version = "0.5.3"
469
614
  source = "registry+https://github.com/rust-lang/crates.io-index"
470
615
  checksum = "cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6"
471
616
 
617
+ [[package]]
618
+ name = "ring"
619
+ version = "0.17.14"
620
+ source = "registry+https://github.com/rust-lang/crates.io-index"
621
+ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
622
+ dependencies = [
623
+ "cc",
624
+ "cfg-if",
625
+ "getrandom 0.2.17",
626
+ "libc",
627
+ "untrusted",
628
+ "windows-sys 0.52.0",
629
+ ]
630
+
472
631
  [[package]]
473
632
  name = "rkyv"
474
633
  version = "0.8.16"
@@ -498,6 +657,41 @@ dependencies = [
498
657
  "syn",
499
658
  ]
500
659
 
660
+ [[package]]
661
+ name = "rustls"
662
+ version = "0.23.40"
663
+ source = "registry+https://github.com/rust-lang/crates.io-index"
664
+ checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b"
665
+ dependencies = [
666
+ "log",
667
+ "once_cell",
668
+ "ring",
669
+ "rustls-pki-types",
670
+ "rustls-webpki",
671
+ "subtle",
672
+ "zeroize",
673
+ ]
674
+
675
+ [[package]]
676
+ name = "rustls-pki-types"
677
+ version = "1.14.1"
678
+ source = "registry+https://github.com/rust-lang/crates.io-index"
679
+ checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9"
680
+ dependencies = [
681
+ "zeroize",
682
+ ]
683
+
684
+ [[package]]
685
+ name = "rustls-webpki"
686
+ version = "0.103.13"
687
+ source = "registry+https://github.com/rust-lang/crates.io-index"
688
+ checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e"
689
+ dependencies = [
690
+ "ring",
691
+ "rustls-pki-types",
692
+ "untrusted",
693
+ ]
694
+
501
695
  [[package]]
502
696
  name = "rustversion"
503
697
  version = "1.0.22"
@@ -534,6 +728,18 @@ dependencies = [
534
728
  "syn",
535
729
  ]
536
730
 
731
+ [[package]]
732
+ name = "shlex"
733
+ version = "2.0.1"
734
+ source = "registry+https://github.com/rust-lang/crates.io-index"
735
+ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
736
+
737
+ [[package]]
738
+ name = "simd-adler32"
739
+ version = "0.3.9"
740
+ source = "registry+https://github.com/rust-lang/crates.io-index"
741
+ checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214"
742
+
537
743
  [[package]]
538
744
  name = "simdutf8"
539
745
  version = "0.1.5"
@@ -572,7 +778,7 @@ dependencies = [
572
778
  "simdutf8",
573
779
  "sonic-number",
574
780
  "sonic-simd",
575
- "thiserror",
781
+ "thiserror 2.0.18",
576
782
  "zmij",
577
783
  ]
578
784
 
@@ -585,6 +791,12 @@ dependencies = [
585
791
  "cfg-if",
586
792
  ]
587
793
 
794
+ [[package]]
795
+ name = "subtle"
796
+ version = "2.6.1"
797
+ source = "registry+https://github.com/rust-lang/crates.io-index"
798
+ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
799
+
588
800
  [[package]]
589
801
  name = "syn"
590
802
  version = "2.0.117"
@@ -602,13 +814,33 @@ version = "0.13.5"
602
814
  source = "registry+https://github.com/rust-lang/crates.io-index"
603
815
  checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
604
816
 
817
+ [[package]]
818
+ name = "thiserror"
819
+ version = "1.0.69"
820
+ source = "registry+https://github.com/rust-lang/crates.io-index"
821
+ checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
822
+ dependencies = [
823
+ "thiserror-impl 1.0.69",
824
+ ]
825
+
605
826
  [[package]]
606
827
  name = "thiserror"
607
828
  version = "2.0.18"
608
829
  source = "registry+https://github.com/rust-lang/crates.io-index"
609
830
  checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
610
831
  dependencies = [
611
- "thiserror-impl",
832
+ "thiserror-impl 2.0.18",
833
+ ]
834
+
835
+ [[package]]
836
+ name = "thiserror-impl"
837
+ version = "1.0.69"
838
+ source = "registry+https://github.com/rust-lang/crates.io-index"
839
+ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
840
+ dependencies = [
841
+ "proc-macro2",
842
+ "quote",
843
+ "syn",
612
844
  ]
613
845
 
614
846
  [[package]]
@@ -637,12 +869,63 @@ version = "0.1.1"
637
869
  source = "registry+https://github.com/rust-lang/crates.io-index"
638
870
  checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
639
871
 
872
+ [[package]]
873
+ name = "udpipe-rs"
874
+ version = "0.2.0"
875
+ source = "registry+https://github.com/rust-lang/crates.io-index"
876
+ checksum = "9a8f34a036b145a2d253613c2742c836f79c9d5f9c2220f03931762224d23452"
877
+ dependencies = [
878
+ "cc",
879
+ "ureq",
880
+ ]
881
+
640
882
  [[package]]
641
883
  name = "unicode-ident"
642
884
  version = "1.0.24"
643
885
  source = "registry+https://github.com/rust-lang/crates.io-index"
644
886
  checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
645
887
 
888
+ [[package]]
889
+ name = "untrusted"
890
+ version = "0.9.0"
891
+ source = "registry+https://github.com/rust-lang/crates.io-index"
892
+ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
893
+
894
+ [[package]]
895
+ name = "ureq"
896
+ version = "3.3.0"
897
+ source = "registry+https://github.com/rust-lang/crates.io-index"
898
+ checksum = "dea7109cdcd5864d4eeb1b58a1648dc9bf520360d7af16ec26d0a9354bafcfc0"
899
+ dependencies = [
900
+ "base64",
901
+ "flate2",
902
+ "log",
903
+ "percent-encoding",
904
+ "rustls",
905
+ "rustls-pki-types",
906
+ "ureq-proto",
907
+ "utf8-zero",
908
+ "webpki-roots",
909
+ ]
910
+
911
+ [[package]]
912
+ name = "ureq-proto"
913
+ version = "0.6.0"
914
+ source = "registry+https://github.com/rust-lang/crates.io-index"
915
+ checksum = "e994ba84b0bd1b1b0cf92878b7ef898a5c1760108fe7b6010327e274917a808c"
916
+ dependencies = [
917
+ "base64",
918
+ "http",
919
+ "httparse",
920
+ "log",
921
+ ]
922
+
923
+ [[package]]
924
+ name = "utf8-zero"
925
+ version = "0.8.1"
926
+ source = "registry+https://github.com/rust-lang/crates.io-index"
927
+ checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e"
928
+
646
929
  [[package]]
647
930
  name = "uuid"
648
931
  version = "1.23.2"
@@ -659,6 +942,12 @@ version = "0.9.5"
659
942
  source = "registry+https://github.com/rust-lang/crates.io-index"
660
943
  checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
661
944
 
945
+ [[package]]
946
+ name = "wasi"
947
+ version = "0.11.1+wasi-snapshot-preview1"
948
+ source = "registry+https://github.com/rust-lang/crates.io-index"
949
+ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
950
+
662
951
  [[package]]
663
952
  name = "wasip2"
664
953
  version = "1.0.3+wasi-0.2.9"
@@ -713,6 +1002,154 @@ dependencies = [
713
1002
  "unicode-ident",
714
1003
  ]
715
1004
 
1005
+ [[package]]
1006
+ name = "webpki-roots"
1007
+ version = "1.0.7"
1008
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1009
+ checksum = "52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d"
1010
+ dependencies = [
1011
+ "rustls-pki-types",
1012
+ ]
1013
+
1014
+ [[package]]
1015
+ name = "windows-sys"
1016
+ version = "0.48.0"
1017
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1018
+ checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
1019
+ dependencies = [
1020
+ "windows-targets 0.48.5",
1021
+ ]
1022
+
1023
+ [[package]]
1024
+ name = "windows-sys"
1025
+ version = "0.52.0"
1026
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1027
+ checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
1028
+ dependencies = [
1029
+ "windows-targets 0.52.6",
1030
+ ]
1031
+
1032
+ [[package]]
1033
+ name = "windows-targets"
1034
+ version = "0.48.5"
1035
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1036
+ checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
1037
+ dependencies = [
1038
+ "windows_aarch64_gnullvm 0.48.5",
1039
+ "windows_aarch64_msvc 0.48.5",
1040
+ "windows_i686_gnu 0.48.5",
1041
+ "windows_i686_msvc 0.48.5",
1042
+ "windows_x86_64_gnu 0.48.5",
1043
+ "windows_x86_64_gnullvm 0.48.5",
1044
+ "windows_x86_64_msvc 0.48.5",
1045
+ ]
1046
+
1047
+ [[package]]
1048
+ name = "windows-targets"
1049
+ version = "0.52.6"
1050
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1051
+ checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
1052
+ dependencies = [
1053
+ "windows_aarch64_gnullvm 0.52.6",
1054
+ "windows_aarch64_msvc 0.52.6",
1055
+ "windows_i686_gnu 0.52.6",
1056
+ "windows_i686_gnullvm",
1057
+ "windows_i686_msvc 0.52.6",
1058
+ "windows_x86_64_gnu 0.52.6",
1059
+ "windows_x86_64_gnullvm 0.52.6",
1060
+ "windows_x86_64_msvc 0.52.6",
1061
+ ]
1062
+
1063
+ [[package]]
1064
+ name = "windows_aarch64_gnullvm"
1065
+ version = "0.48.5"
1066
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1067
+ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
1068
+
1069
+ [[package]]
1070
+ name = "windows_aarch64_gnullvm"
1071
+ version = "0.52.6"
1072
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1073
+ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
1074
+
1075
+ [[package]]
1076
+ name = "windows_aarch64_msvc"
1077
+ version = "0.48.5"
1078
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1079
+ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
1080
+
1081
+ [[package]]
1082
+ name = "windows_aarch64_msvc"
1083
+ version = "0.52.6"
1084
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1085
+ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
1086
+
1087
+ [[package]]
1088
+ name = "windows_i686_gnu"
1089
+ version = "0.48.5"
1090
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1091
+ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
1092
+
1093
+ [[package]]
1094
+ name = "windows_i686_gnu"
1095
+ version = "0.52.6"
1096
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1097
+ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
1098
+
1099
+ [[package]]
1100
+ name = "windows_i686_gnullvm"
1101
+ version = "0.52.6"
1102
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1103
+ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
1104
+
1105
+ [[package]]
1106
+ name = "windows_i686_msvc"
1107
+ version = "0.48.5"
1108
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1109
+ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
1110
+
1111
+ [[package]]
1112
+ name = "windows_i686_msvc"
1113
+ version = "0.52.6"
1114
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1115
+ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
1116
+
1117
+ [[package]]
1118
+ name = "windows_x86_64_gnu"
1119
+ version = "0.48.5"
1120
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1121
+ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
1122
+
1123
+ [[package]]
1124
+ name = "windows_x86_64_gnu"
1125
+ version = "0.52.6"
1126
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1127
+ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
1128
+
1129
+ [[package]]
1130
+ name = "windows_x86_64_gnullvm"
1131
+ version = "0.48.5"
1132
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1133
+ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
1134
+
1135
+ [[package]]
1136
+ name = "windows_x86_64_gnullvm"
1137
+ version = "0.52.6"
1138
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1139
+ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
1140
+
1141
+ [[package]]
1142
+ name = "windows_x86_64_msvc"
1143
+ version = "0.48.5"
1144
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1145
+ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
1146
+
1147
+ [[package]]
1148
+ name = "windows_x86_64_msvc"
1149
+ version = "0.52.6"
1150
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1151
+ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
1152
+
716
1153
  [[package]]
717
1154
  name = "wit-bindgen"
718
1155
  version = "0.57.1"
@@ -739,6 +1176,12 @@ dependencies = [
739
1176
  "syn",
740
1177
  ]
741
1178
 
1179
+ [[package]]
1180
+ name = "zeroize"
1181
+ version = "1.8.2"
1182
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1183
+ checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
1184
+
742
1185
  [[package]]
743
1186
  name = "zmij"
744
1187
  version = "1.0.21"
@@ -1,16 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cc-transcript
3
- Version: 0.3.0
3
+ Version: 0.5.0
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: Operating System :: OS Independent
7
7
  Classifier: Programming Language :: Python :: 3
8
8
  Classifier: Programming Language :: Python :: 3 :: Only
9
9
  Classifier: Typing :: Typed
10
+ Requires-Dist: aiosqlite>=0.20
10
11
  Requires-Dist: anyio>=4.4
11
12
  Requires-Dist: orjson>=3.10
12
13
  Requires-Dist: pytest>=8.0 ; extra == 'dev'
13
- Requires-Dist: pyright>=1.1 ; extra == 'dev'
14
+ Requires-Dist: ty>=0.0.44 ; extra == 'dev'
14
15
  Requires-Dist: ruff>=0.8 ; extra == 'dev'
15
16
  Requires-Dist: spacy>=3.8 ; extra == 'lexicon'
16
17
  Requires-Dist: afinn>=0.1 ; extra == 'lexicon'
@@ -63,25 +64,28 @@ for event in events:
63
64
  print(f"assistant ({model}):", text[:80])
64
65
  ```
65
66
 
66
- `SENTIMENT_FILTER` is a ready-made filter that keeps only user and assistant turns,
67
- dropping sidechains, synthetic turns, compacted summaries, empty events, and tool/command noise:
67
+ Compose a filter from small building blocks and apply it. The builders return clauses,
68
+ `build_spec` assembles them into a spec, and `apply_spec` yields the survivors:
68
69
 
69
70
  ```python
70
- from cc_transcript import apply_filters, SENTIMENT_FILTER
71
+ from cc_transcript import apply_spec, build_spec, keep_only, drop_junk, drop_short
71
72
 
72
- clean = list(apply_filters(events, SENTIMENT_FILTER))
73
+ spec = build_spec(keep_only("user", "assistant"), drop_junk("structural"), drop_short(2))
74
+ clean = list(apply_spec(events, spec))
73
75
  ```
74
76
 
75
- Build your own with `FilterConfig` every rule is off by default, so a bare `FilterConfig()` passes everything through.
77
+ `NOISE_SPEC` is a ready-made spec for the universal structural noise (system reminders,
78
+ local-command output, skill banners). For flag-style filtering, `FilterConfig` is also
79
+ available — every rule is off by default, so a bare `FilterConfig()` passes everything through.
76
80
 
77
81
  ## What problems does this solve?
78
82
 
79
83
  - **One faithful parse.** Anything reading Claude Code transcripts re-implements the same JSONL quirks (str-or-list content, tool results nested two ways, envelope-less mode markers). This is that parser, written once and typed strictly.
80
- - **Non-lossy by design.** The event model is a superset: sidechains, `<synthetic>` turns, thinking blocks, and unrecognized entry types all survive parsing. You decide what to drop, via `FilterConfig`.
84
+ - **Non-lossy by design.** The event model is a superset: sidechains, `<synthetic>` turns, thinking blocks, and unrecognized entry types all survive parsing. You decide what to drop, via composable filter specs (`build_spec`) or `FilterConfig`.
81
85
  - **Incremental ingestion.** `FileStateStore` tracks per-file mtimes in SQLite (WAL, thread-safe) so re-runs only reparse changed files, and you compose your own writes in the same transaction.
82
86
  - **Pluggable backends.** A Rust backend (PyO3 + rayon) is the default fast path, with a pure-Python reference parser behind the same `Backend` protocol as the fallback — both at full event parity.
83
87
 
84
88
  ## Docs
85
89
 
86
- [Read the docs](https://yasyf.github.io/cc-transcript/) for the full guide and API reference.
90
+ [Read the docs](https://yasyf.github.io/cc-transcript/) for the full guides — Getting Started, Filtering events, Scoring sentiment, Rust/Python backends & parity, and Compose your own policy — plus the complete API reference.
87
91