Refactor code structure for improved readability and maintainability
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 1.6 MiB |
@@ -0,0 +1,419 @@
|
||||
ID,N_Days,Status,Drug,Age,Sex,Ascites,Hepatomegaly,Spiders,Edema,Bilirubin,Cholesterol,Albumin,Copper,Alk_Phos,SGOT,Tryglicerides,Platelets,Prothrombin,Stage
|
||||
1,400,D,D-penicillamine,21464,F,Y,Y,Y,Y,14.5,261,2.6,156,1718,137.95,172,190,12.2,4
|
||||
2,4500,C,D-penicillamine,20617,F,N,Y,Y,N,1.1,302,4.14,54,7394.8,113.52,88,221,10.6,3
|
||||
3,1012,D,D-penicillamine,25594,M,N,N,N,S,1.4,176,3.48,210,516,96.1,55,151,12,4
|
||||
4,1925,D,D-penicillamine,19994,F,N,Y,Y,S,1.8,244,2.54,64,6121.8,60.63,92,183,10.3,4
|
||||
5,1504,CL,Placebo,13918,F,N,Y,Y,N,3.4,279,3.53,143,671,113.15,72,136,10.9,3
|
||||
6,2503,D,Placebo,24201,F,N,Y,N,N,0.8,248,3.98,50,944,93,63,NA,11,3
|
||||
7,1832,C,Placebo,20284,F,N,Y,N,N,1,322,4.09,52,824,60.45,213,204,9.7,3
|
||||
8,2466,D,Placebo,19379,F,N,N,N,N,0.3,280,4,52,4651.2,28.38,189,373,11,3
|
||||
9,2400,D,D-penicillamine,15526,F,N,N,Y,N,3.2,562,3.08,79,2276,144.15,88,251,11,2
|
||||
10,51,D,Placebo,25772,F,Y,N,Y,Y,12.6,200,2.74,140,918,147.25,143,302,11.5,4
|
||||
11,3762,D,Placebo,19619,F,N,Y,Y,N,1.4,259,4.16,46,1104,79.05,79,258,12,4
|
||||
12,304,D,Placebo,21600,F,N,N,Y,N,3.6,236,3.52,94,591,82.15,95,71,13.6,4
|
||||
13,3577,C,Placebo,16688,F,N,N,N,N,0.7,281,3.85,40,1181,88.35,130,244,10.6,3
|
||||
14,1217,D,Placebo,20535,M,Y,Y,N,Y,0.8,NA,2.27,43,728,71,NA,156,11,4
|
||||
15,3584,D,D-penicillamine,23612,F,N,N,N,N,0.8,231,3.87,173,9009.8,127.71,96,295,11,3
|
||||
16,3672,C,Placebo,14772,F,N,N,N,N,0.7,204,3.66,28,685,72.85,58,198,10.8,3
|
||||
17,769,D,Placebo,19060,F,N,Y,N,N,2.7,274,3.15,159,1533,117.8,128,224,10.5,4
|
||||
18,131,D,D-penicillamine,19698,F,N,Y,Y,Y,11.4,178,2.8,588,961,280.55,200,283,12.4,4
|
||||
19,4232,C,D-penicillamine,18102,F,N,Y,N,S,0.7,235,3.56,39,1881,93,123,209,11,3
|
||||
20,1356,D,Placebo,21898,F,N,Y,N,N,5.1,374,3.51,140,1919,122.45,135,322,13,4
|
||||
21,3445,C,Placebo,23445,M,N,Y,Y,N,0.6,252,3.83,41,843,65.1,83,336,11.4,4
|
||||
22,673,D,D-penicillamine,20555,F,N,N,Y,N,3.4,271,3.63,464,1376,120.9,55,173,11.6,4
|
||||
23,264,D,Placebo,20442,F,Y,Y,Y,Y,17.4,395,2.94,558,6064.8,227.04,191,214,11.7,4
|
||||
24,4079,D,D-penicillamine,16261,M,N,Y,N,N,2.1,456,4,124,5719,221.88,230,70,9.9,2
|
||||
25,4127,C,Placebo,16463,F,N,N,N,N,0.7,298,4.1,40,661,106.95,66,324,11.3,2
|
||||
26,1444,D,Placebo,19002,F,N,Y,Y,N,5.2,1128,3.68,53,3228,165.85,166,421,9.9,3
|
||||
27,77,D,Placebo,19884,F,Y,Y,Y,S,21.6,175,3.31,221,3697.4,101.91,168,80,12,4
|
||||
28,549,D,Placebo,16417,F,Y,Y,Y,Y,17.2,222,3.23,209,1975,189.1,195,144,13,4
|
||||
29,4509,C,Placebo,23331,F,N,N,N,N,0.7,370,3.78,24,5833,73.53,86,390,10.6,2
|
||||
30,321,D,Placebo,15116,F,N,Y,Y,N,3.6,260,2.54,172,7277,121.26,158,124,11,4
|
||||
31,3839,D,Placebo,15177,F,N,Y,N,N,4.7,296,3.44,114,9933.2,206.4,101,195,10.3,2
|
||||
32,4523,C,Placebo,19722,F,N,Y,N,N,1.8,262,3.34,101,7277,82.56,158,286,10.6,4
|
||||
33,3170,D,Placebo,18731,F,N,N,N,N,0.8,210,3.19,82,1592,218.55,113,180,12,3
|
||||
34,3933,C,D-penicillamine,19015,F,N,N,N,N,0.8,364,3.7,37,1840,170.5,64,273,10.5,2
|
||||
35,2847,D,Placebo,17758,F,N,N,N,N,1.2,314,3.2,201,12258.8,72.24,151,431,10.6,3
|
||||
36,3611,C,Placebo,20604,F,N,N,N,N,0.3,172,3.39,18,558,71.3,96,311,10.6,2
|
||||
37,223,D,D-penicillamine,22546,F,Y,Y,N,Y,7.1,334,3.01,150,6931.2,180.6,118,102,12,4
|
||||
38,3244,D,Placebo,13378,F,N,Y,Y,N,3.3,383,3.53,102,1234,137.95,87,234,11,4
|
||||
39,2297,D,D-penicillamine,20232,F,N,Y,N,N,0.7,282,3,52,9066.8,72.24,111,563,10.6,4
|
||||
40,4467,C,D-penicillamine,17046,F,N,N,N,N,1.3,NA,3.34,105,11046.6,104.49,NA,358,11,4
|
||||
41,1350,D,D-penicillamine,12285,F,N,Y,N,N,6.8,NA,3.26,96,1215,151.9,NA,226,11.7,4
|
||||
42,4453,C,Placebo,12307,F,N,Y,Y,N,2.1,NA,3.54,122,8778,56.76,NA,344,11,4
|
||||
43,4556,C,D-penicillamine,17850,F,N,N,N,N,1.1,361,3.64,36,5430.2,67.08,89,203,10.6,2
|
||||
44,3428,D,Placebo,13727,F,N,Y,Y,Y,3.3,299,3.55,131,1029,119.35,50,199,11.7,3
|
||||
45,4025,C,Placebo,15265,F,N,N,N,N,0.6,NA,3.93,19,1826,71.3,NA,474,10.9,2
|
||||
46,2256,D,D-penicillamine,16728,F,N,Y,N,N,5.7,482,2.84,161,11552,136.74,165,518,12.7,3
|
||||
47,2576,C,Placebo,17323,F,N,N,N,N,0.5,316,3.65,68,1716,187.55,71,356,9.8,3
|
||||
48,4427,C,Placebo,17947,M,N,N,N,N,1.9,259,3.7,281,10396.8,188.34,178,214,11,3
|
||||
49,708,D,Placebo,22336,F,N,Y,N,N,0.8,NA,3.82,58,678,97.65,NA,233,11,4
|
||||
50,2598,D,D-penicillamine,19544,F,N,Y,N,N,1.1,257,3.36,43,1080,106.95,73,128,10.6,4
|
||||
51,3853,D,Placebo,19025,F,N,N,N,N,0.8,276,3.6,54,4332,99.33,143,273,10.6,2
|
||||
52,2386,D,D-penicillamine,18460,M,N,N,N,N,6,614,3.7,158,5084.4,206.4,93,362,10.6,1
|
||||
53,1000,D,D-penicillamine,24621,F,N,Y,N,N,2.6,NA,3.1,94,6456.2,56.76,NA,214,11,4
|
||||
54,1434,D,D-penicillamine,14317,F,Y,Y,Y,Y,1.3,288,3.4,262,5487.2,73.53,125,254,11,4
|
||||
55,1360,D,D-penicillamine,24020,M,N,N,N,N,1.8,416,3.94,121,10165,79.98,219,213,11,3
|
||||
56,1847,D,Placebo,12279,F,N,Y,Y,N,1.1,498,3.8,88,13862.4,95.46,319,365,10.6,2
|
||||
57,3282,D,D-penicillamine,19567,F,N,Y,N,S,2.3,260,3.18,231,11320.2,105.78,94,216,12.4,3
|
||||
58,4459,C,D-penicillamine,16279,M,N,N,N,N,0.7,242,4.08,73,5890,56.76,118,NA,10.6,1
|
||||
59,2224,D,D-penicillamine,14754,F,N,Y,Y,N,0.8,329,3.5,49,7622.8,126.42,124,321,10.6,3
|
||||
60,4365,C,D-penicillamine,21324,F,N,N,N,N,0.9,604,3.4,82,876,71.3,58,228,10.3,3
|
||||
61,4256,C,Placebo,16034,M,N,N,N,N,0.6,216,3.94,28,601,60.45,188,211,13,1
|
||||
62,3090,D,Placebo,22173,F,Y,N,N,N,1.3,302,2.75,58,1523,43.4,112,329,13.2,4
|
||||
63,859,D,Placebo,17031,F,N,N,Y,Y,22.5,932,3.12,95,5396,244.9,133,165,11.6,3
|
||||
64,1487,D,Placebo,22977,F,N,Y,N,N,2.1,373,3.5,52,1009,150.35,188,178,11,3
|
||||
65,3992,C,D-penicillamine,14684,F,N,N,N,N,1.2,256,3.6,74,724,141.05,108,430,10,1
|
||||
66,4191,D,D-penicillamine,16967,M,N,Y,N,N,1.4,427,3.7,105,1909,182.9,171,123,11,3
|
||||
67,2769,D,Placebo,18733,F,N,N,N,N,1.1,466,3.91,84,1787,328.6,185,261,10,3
|
||||
68,4039,C,D-penicillamine,11912,F,N,N,N,N,0.7,174,4.09,58,642,71.3,46,203,10.6,3
|
||||
69,1170,D,D-penicillamine,18021,F,N,Y,Y,S,20,652,3.46,159,3292,215.45,184,227,12.4,3
|
||||
70,3458,C,D-penicillamine,20600,F,N,N,N,N,0.6,NA,4.64,20,666,54.25,NA,265,10.6,2
|
||||
71,4196,C,Placebo,17841,F,N,Y,N,N,1.2,258,3.57,79,2201,120.9,76,410,11.5,4
|
||||
72,4184,C,Placebo,11868,F,N,N,N,N,0.5,320,3.54,51,1243,122.45,80,225,10,3
|
||||
73,4190,C,Placebo,14060,F,N,N,N,N,0.7,132,3.6,17,423,49.6,56,265,11,1
|
||||
74,1827,D,D-penicillamine,18964,F,N,Y,Y,N,8.4,558,3.99,280,967,89.9,309,278,11,4
|
||||
75,1191,D,D-penicillamine,15895,F,Y,Y,Y,S,17.1,674,2.53,207,2078,182.9,598,268,11.5,4
|
||||
76,71,D,D-penicillamine,18972,F,N,Y,Y,S,12.2,394,3.08,111,2132,155,243,165,11.6,4
|
||||
77,326,D,Placebo,18199,F,N,Y,Y,S,6.6,244,3.41,199,1819,170.5,91,132,12.1,3
|
||||
78,1690,D,D-penicillamine,17512,F,N,Y,N,N,6.3,436,3.02,75,2176,170.5,104,236,10.6,4
|
||||
79,3707,C,D-penicillamine,16990,F,N,Y,N,N,0.8,315,4.24,13,1637,170.5,70,426,10.9,3
|
||||
80,890,D,Placebo,24622,M,N,Y,N,N,7.2,247,3.72,269,1303,176.7,91,360,11.2,4
|
||||
81,2540,D,D-penicillamine,23107,F,N,Y,Y,N,14.4,448,3.65,34,1218,60.45,318,385,11.7,4
|
||||
82,3574,D,D-penicillamine,24585,F,N,N,N,N,4.5,472,4.09,154,1580,117.8,272,412,11.1,3
|
||||
83,4050,C,D-penicillamine,20459,F,N,Y,N,S,1.3,250,3.5,48,1138,71.3,100,81,12.9,4
|
||||
84,4032,C,Placebo,20392,F,N,N,N,N,0.4,263,3.76,29,1345,137.95,74,181,11.2,3
|
||||
85,3358,D,Placebo,17246,F,N,Y,N,N,2.1,262,3.48,58,2045,89.9,84,225,11.5,4
|
||||
86,1657,D,D-penicillamine,19270,F,N,Y,Y,N,5,1600,3.21,75,2656,82.15,174,181,10.9,3
|
||||
87,198,D,D-penicillamine,13616,F,N,N,N,N,1.1,345,4.4,75,1860,218.55,72,447,10.7,3
|
||||
88,2452,C,Placebo,15119,F,N,N,N,S,0.6,296,4.06,37,1032,80.6,83,442,12,3
|
||||
89,1741,D,D-penicillamine,19155,F,N,Y,N,N,2,408,3.65,50,1083,110.05,98,200,11.4,2
|
||||
90,2689,D,D-penicillamine,12227,M,N,N,N,N,1.6,660,4.22,94,1857,151.9,155,337,11,2
|
||||
91,460,D,Placebo,16658,F,N,Y,Y,S,5,325,3.47,110,2460,246.45,56,430,11.9,4
|
||||
92,388,D,D-penicillamine,28018,F,Y,N,N,Y,1.4,206,3.13,36,1626,86.8,70,145,12.2,4
|
||||
93,3913,C,D-penicillamine,13344,F,N,N,N,N,1.3,353,3.67,73,2039,232.5,68,380,11.1,2
|
||||
94,750,D,D-penicillamine,19693,F,N,Y,Y,N,3.2,201,3.11,178,1212,159.65,69,188,11.8,4
|
||||
95,130,D,Placebo,16944,F,Y,Y,Y,Y,17.4,NA,2.64,182,559,119.35,NA,401,11.7,2
|
||||
96,3850,C,D-penicillamine,17841,F,N,N,N,N,1,NA,3.7,33,1258,99.2,NA,338,10.4,3
|
||||
97,611,D,Placebo,26259,M,N,Y,N,S,2,420,3.26,62,3196,77.5,91,344,11.4,3
|
||||
98,3823,C,D-penicillamine,10550,F,N,N,N,N,1,239,3.77,77,1877,97.65,101,312,10.2,1
|
||||
99,3820,C,Placebo,17703,M,N,N,N,N,1.8,460,3.35,148,1472,108.5,118,172,10.2,2
|
||||
100,552,D,Placebo,18799,M,N,Y,N,N,2.3,178,3,145,746,178.25,122,119,12,4
|
||||
101,3581,C,Placebo,16418,F,N,N,N,N,0.9,400,3.6,31,1689,164.3,166,327,10.4,3
|
||||
102,3099,C,D-penicillamine,20662,F,N,N,N,N,0.9,248,3.97,172,646,62,84,128,10.1,1
|
||||
103,110,D,Placebo,17884,F,Y,Y,Y,Y,2.5,188,3.67,57,1273,119.35,102,110,11.1,4
|
||||
104,3086,D,D-penicillamine,15712,F,N,N,N,N,1.1,303,3.64,20,2108,128.65,53,349,11.1,2
|
||||
105,3092,CL,Placebo,12433,F,N,Y,N,N,1.1,464,4.2,38,1644,151.9,102,348,10.3,3
|
||||
106,3222,D,D-penicillamine,25023,F,Y,Y,N,N,2.1,NA,3.9,50,1087,103.85,NA,137,10.6,2
|
||||
107,3388,C,Placebo,22836,F,N,N,N,N,0.6,212,4.03,10,648,71.3,77,316,17.1,1
|
||||
108,2583,D,D-penicillamine,18393,F,N,N,N,N,0.4,127,3.5,14,1062,49.6,84,334,10.3,2
|
||||
109,2504,C,Placebo,16094,F,N,N,N,N,0.5,120,3.61,53,804,110.05,52,271,10.6,3
|
||||
110,2105,D,D-penicillamine,14212,F,N,Y,Y,N,1.9,486,3.54,74,1052,108.5,109,141,10.9,3
|
||||
111,2350,CL,D-penicillamine,15031,F,N,N,N,N,5.5,528,4.18,77,2404,172.05,78,467,10.7,3
|
||||
112,3445,D,Placebo,20256,F,N,Y,Y,N,2,267,3.67,89,754,196.85,90,136,11.8,4
|
||||
113,980,D,D-penicillamine,18713,F,N,Y,Y,N,6.7,374,3.74,103,979,128.65,100,266,11.1,4
|
||||
114,3395,D,Placebo,19295,M,N,N,N,N,3.2,259,4.3,208,1040,110.05,78,268,11.7,3
|
||||
115,3422,C,Placebo,15574,F,N,N,Y,N,0.7,303,4.19,81,1584,111.6,156,307,10.3,3
|
||||
116,3336,C,D-penicillamine,22306,F,N,N,Y,S,3,458,3.63,74,1588,106.95,382,438,9.9,3
|
||||
117,1083,D,D-penicillamine,18137,F,N,Y,Y,N,6.5,950,3.11,111,2374,170.5,149,354,11,4
|
||||
118,2288,D,D-penicillamine,17844,F,N,Y,N,N,3.5,390,3.3,67,878,137.95,93,207,10.2,3
|
||||
119,515,D,D-penicillamine,19817,F,N,N,Y,N,0.6,636,3.83,129,944,97.65,114,306,9.5,3
|
||||
120,2033,CL,D-penicillamine,12839,M,N,N,N,N,3.5,325,3.98,444,766,130.2,210,344,10.6,3
|
||||
121,191,D,Placebo,24803,M,Y,Y,N,Y,1.3,151,3.08,73,1112,46.5,49,213,13.2,4
|
||||
122,3297,C,D-penicillamine,20248,F,N,N,N,N,0.6,298,4.13,29,758,65.1,85,256,10.7,3
|
||||
123,971,D,D-penicillamine,16736,F,N,Y,Y,Y,5.1,NA,3.23,18,790,179.8,NA,104,13,4
|
||||
124,3069,C,D-penicillamine,19318,M,N,Y,N,N,0.6,251,3.9,25,681,57.35,107,182,10.8,4
|
||||
125,2468,CL,Placebo,17233,F,N,Y,N,N,1.3,316,3.51,75,1162,147.25,137,238,10,4
|
||||
126,824,D,D-penicillamine,19577,F,Y,Y,Y,N,1.2,269,3.12,NA,1441,165.85,68,166,11.1,4
|
||||
127,3255,C,Placebo,16109,F,N,N,N,N,0.5,268,4.08,9,1174,86.8,95,453,10,2
|
||||
128,1037,D,D-penicillamine,15322,F,N,Y,Y,N,16.2,NA,2.89,42,1828,299.15,NA,123,12.6,4
|
||||
129,3239,C,D-penicillamine,23235,F,N,Y,N,N,0.9,420,3.87,30,1009,57.35,232,NA,9.7,3
|
||||
130,1413,D,Placebo,16154,F,N,Y,Y,N,17.4,1775,3.43,205,2065,165.85,97,418,11.5,3
|
||||
131,850,D,Placebo,22646,F,N,Y,Y,N,2.8,242,3.8,74,614,136.4,104,121,13.2,4
|
||||
132,2944,C,D-penicillamine,14812,F,N,N,N,N,1.9,448,3.83,60,1052,127.1,175,181,9.8,3
|
||||
133,2796,D,Placebo,22881,M,N,N,N,N,1.5,331,3.95,13,577,128.65,99,165,10.1,4
|
||||
134,3149,C,Placebo,15463,F,N,N,N,N,0.7,578,3.67,35,1353,127.1,105,427,10.7,2
|
||||
135,3150,C,D-penicillamine,15694,F,N,N,N,N,0.4,263,3.57,123,836,74.4,121,445,11,2
|
||||
136,3098,C,D-penicillamine,20440,F,N,N,N,N,0.8,263,3.35,27,1636,116.25,69,206,9.8,2
|
||||
137,2990,C,D-penicillamine,22960,F,N,N,N,N,1.1,399,3.6,79,3472,155,152,344,10.1,2
|
||||
138,1297,D,D-penicillamine,18719,M,N,Y,N,N,7.3,426,3.93,262,2424,145.7,218,252,10.5,3
|
||||
139,2106,C,Placebo,17080,F,N,Y,N,N,1.1,328,3.31,159,1260,94.55,134,142,11.6,4
|
||||
140,3059,C,D-penicillamine,19751,F,N,Y,N,N,1.1,290,4.09,38,2120,186,146,318,10,3
|
||||
141,3050,C,D-penicillamine,17180,F,N,N,N,N,0.9,346,3.77,59,794,125.55,56,336,10.6,2
|
||||
142,2419,D,Placebo,20354,F,N,Y,N,N,1,364,3.48,20,720,134.85,88,283,9.9,2
|
||||
143,786,D,Placebo,16839,F,N,Y,N,N,2.9,332,3.6,86,1492,134.85,103,277,11,4
|
||||
144,943,D,Placebo,19098,F,N,Y,N,S,28,556,3.26,152,3896,198.4,171,335,10,3
|
||||
145,2976,C,Placebo,18701,F,N,N,Y,N,0.7,309,3.84,96,858,41.85,106,253,11.4,3
|
||||
146,2615,C,Placebo,12369,F,N,N,N,S,1.2,NA,3.89,58,1284,173.6,NA,239,9.4,3
|
||||
147,2995,C,D-penicillamine,27398,F,N,N,N,S,1.2,288,3.37,32,791,57.35,114,213,10.7,2
|
||||
148,1427,D,Placebo,11273,F,N,Y,N,N,7.2,1015,3.26,247,3836,198.4,280,330,9.8,3
|
||||
149,762,D,D-penicillamine,22574,M,N,Y,Y,S,3,257,3.79,290,1664,102.3,112,140,9.9,4
|
||||
150,2891,C,Placebo,12779,F,N,N,Y,N,1,NA,3.63,57,1536,134.85,NA,233,10,1
|
||||
151,2870,C,D-penicillamine,20104,F,N,N,N,N,0.9,460,3.03,57,721,85.25,174,301,9.4,2
|
||||
152,1152,D,D-penicillamine,25546,M,N,Y,N,N,2.3,586,3.01,243,2276,114.7,126,339,10.9,3
|
||||
153,2863,C,D-penicillamine,18118,F,N,N,N,N,0.5,217,3.85,68,453,54.25,68,270,11.1,1
|
||||
154,140,D,D-penicillamine,25340,M,N,N,Y,Y,2.4,168,2.56,225,1056,120.9,75,108,14.1,3
|
||||
155,2666,C,Placebo,15909,F,N,Y,Y,S,0.6,220,3.35,57,1620,153.45,80,311,11.2,4
|
||||
156,853,D,Placebo,21699,F,N,Y,N,N,25.5,358,3.52,219,2468,201.5,205,151,11.5,2
|
||||
157,2835,C,Placebo,17809,F,N,N,N,N,0.6,286,3.42,34,1868,77.5,206,487,10,2
|
||||
158,2475,CL,D-penicillamine,13329,F,N,N,N,N,3.4,450,3.37,32,1408,116.25,118,313,11.2,2
|
||||
159,1536,D,Placebo,16714,M,N,N,N,N,2.5,317,3.46,217,714,130.2,140,207,10.1,3
|
||||
160,2772,C,Placebo,20955,F,N,N,N,N,0.6,217,3.62,13,414,75.95,119,224,10.5,3
|
||||
161,2797,C,Placebo,15612,F,N,N,N,N,2.3,502,3.56,4,964,120.9,180,269,9.6,2
|
||||
162,186,D,Placebo,21483,F,N,Y,Y,N,3.2,260,3.19,91,815,127.1,101,160,12,4
|
||||
163,2055,D,D-penicillamine,19540,F,N,N,N,N,0.3,233,4.08,20,622,66.65,68,358,9.9,3
|
||||
164,264,D,Placebo,15857,F,N,Y,Y,S,8.5,NA,3.34,161,1428,181.35,NA,88,13.3,4
|
||||
165,1077,D,D-penicillamine,19470,M,N,Y,N,N,4,196,3.45,80,2496,133.3,142,212,11.3,4
|
||||
166,2721,C,Placebo,15105,F,N,Y,N,N,5.7,1480,3.26,84,1960,457.25,108,213,9.5,2
|
||||
167,1682,D,D-penicillamine,22265,M,N,Y,N,N,0.9,376,3.86,200,1015,83.7,154,238,10.3,4
|
||||
168,2713,C,Placebo,17442,F,N,Y,N,N,0.4,257,3.8,44,842,97.65,110,NA,9.2,2
|
||||
169,1212,D,Placebo,12963,F,N,N,N,N,1.3,408,4.22,67,1387,142.6,137,295,10.1,3
|
||||
170,2692,C,D-penicillamine,17774,F,N,N,N,N,1.2,390,3.61,32,1509,88.35,52,263,9,3
|
||||
171,2574,C,D-penicillamine,19237,F,N,N,N,N,0.5,NA,4.52,31,784,74.4,NA,361,10.1,3
|
||||
172,2301,C,Placebo,18215,F,N,N,Y,N,1.3,205,3.34,65,1031,91.45,126,217,9.8,3
|
||||
173,2657,C,D-penicillamine,11058,F,N,Y,Y,N,3,236,3.42,76,1403,89.9,86,493,9.8,2
|
||||
174,2644,C,D-penicillamine,20296,F,N,N,N,N,0.5,NA,3.85,63,663,79.05,NA,311,9.7,1
|
||||
175,2624,C,Placebo,19049,F,N,N,N,N,0.8,283,3.8,152,718,108.5,168,340,10.1,3
|
||||
176,1492,D,D-penicillamine,15198,F,N,Y,Y,N,3.2,NA,3.56,77,1790,139.5,NA,149,10.1,4
|
||||
177,2609,C,Placebo,20254,F,N,N,N,N,0.9,258,4.01,49,559,43.4,133,277,10.4,2
|
||||
178,2580,C,D-penicillamine,25569,F,N,N,N,N,0.6,NA,4.08,51,665,74.4,NA,325,10.2,4
|
||||
179,2573,C,Placebo,16050,F,N,Y,N,N,1.8,396,3.83,39,2148,102.3,133,278,9.9,4
|
||||
180,2563,C,Placebo,15548,F,N,N,N,N,4.7,478,4.38,44,1629,237.15,76,175,10.4,3
|
||||
181,2556,C,D-penicillamine,16279,F,N,Y,Y,N,1.4,248,3.58,63,554,75.95,106,79,10.3,4
|
||||
182,2555,C,D-penicillamine,20799,F,N,Y,N,N,0.6,NA,3.69,161,674,26.35,NA,539,9.9,2
|
||||
183,2241,CL,Placebo,14705,F,N,N,N,N,0.5,201,3.73,44,1345,54.25,145,445,10.1,2
|
||||
184,974,D,Placebo,13736,F,N,Y,N,N,11,674,3.55,358,2412,167.4,140,471,9.8,3
|
||||
185,2527,C,D-penicillamine,17664,F,N,N,N,N,0.8,256,3.54,42,1132,74.4,94,192,10.5,3
|
||||
186,1576,D,D-penicillamine,25873,F,N,N,Y,S,2,225,3.53,51,933,69.75,62,200,12.7,3
|
||||
187,733,D,Placebo,13073,F,N,Y,N,N,14,808,3.43,251,2870,153.45,137,268,11.5,3
|
||||
188,2332,C,D-penicillamine,22873,F,N,Y,N,N,0.7,187,3.48,41,654,120.9,98,164,11,4
|
||||
189,2456,C,Placebo,18499,F,N,Y,N,N,1.3,360,3.63,52,1812,97.65,164,256,9.9,3
|
||||
190,2504,C,D-penicillamine,19916,F,N,N,Y,N,2.3,NA,3.93,24,1828,133.3,NA,327,10.2,2
|
||||
191,216,D,Placebo,19246,F,Y,Y,Y,N,24.5,1092,3.35,233,3740,147.25,432,399,15.2,4
|
||||
192,2443,C,D-penicillamine,19256,F,N,Y,N,N,0.9,308,3.69,67,696,51.15,101,344,9.8,4
|
||||
193,797,D,Placebo,20736,F,N,N,N,N,10.8,932,3.19,267,2184,161.2,157,382,10.4,4
|
||||
194,2449,C,D-penicillamine,16216,F,N,N,N,N,1.5,293,4.3,50,975,125.55,56,336,9.1,2
|
||||
195,2330,C,D-penicillamine,10795,F,N,Y,N,N,3.7,347,3.9,76,2544,221.65,90,129,11.5,4
|
||||
196,2363,C,D-penicillamine,20834,F,N,Y,Y,N,1.4,226,3.36,13,810,72.85,62,117,11.6,4
|
||||
197,2365,C,D-penicillamine,16300,F,N,N,N,N,0.6,266,3.97,25,1164,102.3,102,201,10.1,2
|
||||
198,2357,C,Placebo,13075,F,N,N,Y,N,0.7,286,2.9,38,1692,141.05,90,381,9.6,2
|
||||
199,1592,C,D-penicillamine,14872,F,N,N,N,N,2.1,392,3.43,52,1395,184.45,194,328,10.2,3
|
||||
200,2318,C,Placebo,11773,F,N,N,Y,N,4.7,236,3.55,112,1391,137.95,114,332,9.9,3
|
||||
201,2294,C,Placebo,15009,F,N,Y,N,N,0.6,235,3.2,26,1758,106.95,67,228,10.8,4
|
||||
202,2272,C,D-penicillamine,22514,F,N,N,N,N,0.5,223,3.8,15,1044,80.6,89,514,10,2
|
||||
203,2221,C,Placebo,13535,F,N,Y,N,N,0.5,149,4.04,227,598,52.7,57,166,9.9,2
|
||||
204,2090,D,Placebo,22857,F,N,N,N,N,0.7,255,3.74,23,1024,77.5,58,281,10.2,3
|
||||
205,2081,D,D-penicillamine,17889,F,Y,N,N,N,2.5,382,3.55,108,1516,238.7,NA,126,10.3,3
|
||||
206,2255,C,D-penicillamine,22642,F,N,N,N,N,0.6,213,4.07,12,5300,57.35,68,240,11,1
|
||||
207,2171,C,D-penicillamine,26580,F,N,N,N,S,0.6,NA,3.33,14,733,85.25,NA,259,10.1,4
|
||||
208,904,D,D-penicillamine,22388,F,N,Y,N,N,3.9,396,3.2,58,1440,153.45,131,156,10,4
|
||||
209,2216,C,Placebo,19221,F,N,Y,Y,N,0.7,252,4.01,11,1210,72.85,58,309,9.5,2
|
||||
210,2224,C,Placebo,18176,M,N,Y,N,N,0.9,346,3.37,81,1098,122.45,90,298,10,2
|
||||
211,2195,C,Placebo,19327,F,N,N,N,N,1.3,NA,3.76,27,1282,100.75,NA,114,10.3,3
|
||||
212,2176,C,Placebo,17263,F,N,N,N,N,1.2,232,3.98,11,1074,100.75,99,223,9.9,3
|
||||
213,2178,C,D-penicillamine,18337,F,N,N,Y,N,0.5,400,3.4,9,1134,96.1,55,356,10.2,3
|
||||
214,1786,D,Placebo,25329,F,N,Y,N,N,0.9,404,3.43,34,1866,79.05,224,236,9.9,3
|
||||
215,1080,D,Placebo,15037,F,N,N,N,N,5.9,1276,3.85,141,1204,203.05,157,216,10.7,3
|
||||
216,2168,C,D-penicillamine,21610,F,N,N,N,N,0.5,NA,3.68,20,856,55.8,NA,146,10.4,3
|
||||
217,790,D,Placebo,13178,F,N,Y,N,N,11.4,608,3.31,65,1790,151.9,210,298,10.8,4
|
||||
218,2170,C,D-penicillamine,12636,F,N,N,N,N,0.5,NA,3.89,29,897,66.65,NA,423,10.1,1
|
||||
219,2157,C,Placebo,15601,F,N,N,N,N,1.6,215,4.17,67,936,134.85,85,176,9.6,3
|
||||
220,1235,D,D-penicillamine,23241,F,N,N,Y,N,3.8,426,3.22,96,2716,210.8,113,228,10.6,2
|
||||
221,2050,C,Placebo,20684,F,N,Y,N,N,0.9,360,3.65,72,3186,94.55,154,269,9.7,4
|
||||
222,597,D,Placebo,16898,F,N,Y,N,N,4.5,372,3.38,227,2310,167.4,135,240,12.4,3
|
||||
223,334,D,D-penicillamine,22369,F,Y,Y,N,Y,14.1,448,2.43,123,1833,134,155,210,11,4
|
||||
224,1945,C,D-penicillamine,14106,F,N,N,N,N,1,309,3.66,67,1214,158.1,101,309,9.7,3
|
||||
225,2022,C,D-penicillamine,14161,F,N,N,N,N,0.7,274,3.66,108,1065,88.35,135,251,10.1,2
|
||||
226,1978,C,Placebo,20708,F,N,Y,N,N,0.5,223,3.7,39,884,75.95,104,231,9.6,3
|
||||
227,999,D,D-penicillamine,21532,M,N,N,N,N,2.3,316,3.35,172,1601,179.8,63,394,9.7,2
|
||||
228,1967,C,Placebo,13486,F,N,N,N,N,0.7,215,3.35,41,645,93,74,165,9.6,3
|
||||
229,348,D,D-penicillamine,22797,F,Y,Y,N,S,4.5,191,3.05,200,1020,175.15,118,139,11.4,4
|
||||
230,1979,C,Placebo,12641,F,N,Y,Y,N,3.3,302,3.41,51,310,83.7,44,95,11.5,4
|
||||
231,1165,D,Placebo,21307,F,N,Y,Y,N,3.4,518,1.96,115,2250,203.05,90,190,10.7,4
|
||||
232,1951,C,D-penicillamine,18329,F,N,Y,N,N,0.4,267,3.02,47,1001,133.3,87,265,10.6,3
|
||||
233,1932,C,D-penicillamine,15591,F,N,Y,Y,N,0.9,514,3.06,412,2622,105.4,87,284,9.8,4
|
||||
234,1776,C,Placebo,12557,F,N,N,N,N,0.9,578,3.35,78,976,116.25,177,322,11.2,2
|
||||
235,1882,C,Placebo,12120,F,N,Y,N,N,13,1336,4.16,71,3510,209.25,111,338,11.9,3
|
||||
236,1908,C,D-penicillamine,14019,F,N,Y,Y,N,1.5,253,3.79,67,1006,139.5,106,341,9.7,3
|
||||
237,1882,C,D-penicillamine,21828,F,N,Y,N,N,1.6,442,2.95,105,820,85.25,108,181,10.1,3
|
||||
238,1874,C,Placebo,24257,F,N,N,N,S,0.6,280,3.35,NA,1093,128.65,81,295,9.8,2
|
||||
239,694,D,D-penicillamine,17090,F,N,Y,Y,N,0.8,300,2.94,231,1794,130.2,99,319,11.2,4
|
||||
240,1831,C,D-penicillamine,20483,F,N,N,N,N,0.4,232,3.72,24,369,51.15,139,326,10.1,3
|
||||
241,837,CL,Placebo,15112,F,N,Y,Y,N,4.4,316,3.62,308,1119,114.7,322,282,9.8,4
|
||||
242,1810,C,D-penicillamine,23585,F,N,Y,N,N,1.9,354,2.97,86,1553,196.85,152,277,9.9,3
|
||||
243,930,D,Placebo,24650,F,N,Y,N,N,8,468,2.81,139,2009,198.4,139,233,10,4
|
||||
244,1690,D,D-penicillamine,16374,F,N,N,Y,N,3.9,350,3.22,121,1268,272.8,231,270,9.6,3
|
||||
245,1790,C,Placebo,16718,F,N,Y,N,N,0.6,273,3.65,48,794,52.7,214,305,9.6,3
|
||||
246,1435,CL,D-penicillamine,12035,F,N,Y,N,N,2.1,387,3.77,63,1613,150.35,33,185,10.1,4
|
||||
247,732,CL,D-penicillamine,15056,F,N,Y,N,N,6.1,1712,2.83,89,3681,158.1,139,297,10,3
|
||||
248,1785,C,Placebo,20241,F,N,Y,N,N,0.8,324,3.51,39,1237,66.65,146,371,10,3
|
||||
249,1783,C,D-penicillamine,17525,F,N,N,Y,N,1.3,242,3.2,35,1556,175.15,71,195,10.6,4
|
||||
250,1769,C,Placebo,14899,F,N,Y,N,N,0.6,299,3.36,23,2769,220.1,85,303,10.9,4
|
||||
251,1457,C,D-penicillamine,20810,F,N,N,N,N,0.5,227,3.61,40,676,83,120,249,9.9,2
|
||||
252,1770,C,D-penicillamine,25006,F,N,Y,Y,N,1.1,246,3.35,116,924,113.15,90,317,10,4
|
||||
253,1765,C,D-penicillamine,28650,M,Y,Y,Y,N,7.1,243,3.03,380,983,158.1,154,97,11.2,4
|
||||
254,737,CL,D-penicillamine,14558,F,N,Y,Y,N,3.1,227,3.75,121,1136,110,91,264,10,3
|
||||
255,1735,C,Placebo,12897,F,N,Y,Y,N,0.7,193,3.85,35,466,53,118,156,10.3,3
|
||||
256,1701,C,D-penicillamine,11485,F,N,N,N,N,1.1,336,3.74,48,823,84,108,242,9.7,3
|
||||
257,1614,C,D-penicillamine,21281,F,N,N,N,N,0.5,280,4.23,36,377,56,146,227,10.6,2
|
||||
258,1702,C,D-penicillamine,18806,F,N,N,N,N,1.1,414,3.44,80,1003,99,55,271,9.6,1
|
||||
259,1615,C,Placebo,21904,F,N,Y,N,N,3.1,277,2.97,42,1110,125,126,221,9.8,3
|
||||
260,1656,C,Placebo,27220,M,N,Y,N,N,5.6,232,3.59,188,1120,98,128,248,10.9,4
|
||||
261,1677,C,Placebo,19126,F,N,Y,Y,N,3.2,375,3.14,129,857,89,NA,375,9.5,3
|
||||
262,1666,C,Placebo,15628,F,N,Y,N,N,2.8,322,3.06,65,2562,91,209,231,9.5,3
|
||||
263,1301,CL,Placebo,12738,F,N,Y,Y,S,1.1,432,3.57,45,1406,190,77,248,11.4,4
|
||||
264,1542,CL,Placebo,16122,F,N,Y,Y,N,3.4,356,3.12,188,1911,92,130,318,11.2,3
|
||||
265,1084,CL,Placebo,16941,F,N,Y,N,N,3.5,348,3.2,121,938,120,146,296,10,4
|
||||
266,1614,C,D-penicillamine,20567,F,N,N,N,N,0.5,318,3.32,52,613,70,260,279,10.2,3
|
||||
267,179,D,D-penicillamine,25899,F,Y,Y,Y,Y,6.6,222,2.33,138,620,106,91,195,12.1,4
|
||||
268,1191,D,D-penicillamine,20233,F,Y,Y,N,S,6.4,344,2.75,16,834,82,179,149,11,4
|
||||
269,1363,C,Placebo,16467,F,N,N,N,N,3.6,374,3.5,143,1428,188,44,151,10.1,2
|
||||
270,1568,C,D-penicillamine,9598,F,N,Y,Y,N,1,448,3.74,102,1128,71,117,228,10.2,3
|
||||
271,1569,C,Placebo,18435,F,N,Y,N,N,1,321,3.5,94,955,111,177,289,9.7,3
|
||||
272,1525,C,D-penicillamine,14025,F,N,N,N,N,0.5,226,2.93,22,674,58,85,153,9.8,1
|
||||
273,1558,C,Placebo,17320,F,N,N,Y,N,2.2,328,3.46,75,1677,87,116,202,9.6,3
|
||||
274,1447,CL,D-penicillamine,17525,F,N,N,N,N,1.6,NA,3.07,136,1995,128,NA,372,9.6,4
|
||||
275,1349,C,D-penicillamine,13995,F,N,N,N,N,2.2,572,3.77,77,2520,92,114,309,9.5,4
|
||||
276,1481,C,D-penicillamine,18302,F,N,N,N,N,1,219,3.85,67,640,145,108,95,10.7,2
|
||||
277,1434,C,Placebo,12816,F,N,N,N,S,1,317,3.56,44,1636,84,111,394,9.8,3
|
||||
278,1420,C,Placebo,11872,F,N,N,N,N,5.6,338,3.7,130,2139,185,193,215,9.9,4
|
||||
279,1433,C,Placebo,20510,F,N,N,N,N,0.5,198,3.77,38,911,57,56,280,9.8,2
|
||||
280,1412,C,D-penicillamine,16858,F,N,N,N,N,1.6,325,3.69,69,2583,142,140,284,9.6,3
|
||||
281,41,D,D-penicillamine,24064,F,Y,N,N,Y,17.9,175,2.1,220,705,338,229,62,12.9,4
|
||||
282,1455,C,Placebo,12398,F,N,Y,N,N,1.3,304,3.52,97,1622,71,169,255,9.5,4
|
||||
283,1030,C,Placebo,22960,F,N,N,N,N,1.1,412,3.99,103,1293,91,113,422,9.6,4
|
||||
284,1418,C,Placebo,17738,F,N,N,N,N,1.3,291,3.44,75,1082,85,195,251,9.5,3
|
||||
285,1401,C,D-penicillamine,16929,F,N,N,N,N,0.8,253,3.48,65,688,57,80,252,10,1
|
||||
286,1408,C,D-penicillamine,14191,F,N,Y,Y,N,2,310,3.36,70,1257,122,118,143,9.8,3
|
||||
287,1234,C,D-penicillamine,21421,F,N,N,Y,N,6.4,373,3.46,155,1768,120,151,258,10.1,4
|
||||
288,1067,CL,Placebo,17874,F,N,Y,N,S,8.7,310,3.89,107,637,117,242,298,9.6,2
|
||||
289,799,D,D-penicillamine,24681,M,N,Y,N,S,4,416,3.99,177,960,86,242,269,9.8,2
|
||||
290,1363,C,D-penicillamine,24101,F,N,N,N,N,1.4,294,3.57,33,722,93,69,283,9.8,3
|
||||
291,901,CL,D-penicillamine,14939,F,N,N,N,N,3.2,339,3.18,123,3336,205,84,304,9.9,4
|
||||
292,1329,C,Placebo,18352,M,N,Y,N,N,8.6,546,3.73,84,1070,127,153,291,11.2,3
|
||||
293,1320,C,Placebo,20891,F,N,Y,Y,Y,8.5,194,2.98,196,815,163,78,122,12.3,4
|
||||
294,1302,C,D-penicillamine,22111,M,N,Y,N,N,6.6,1000,3.07,88,3150,193,133,299,10.9,4
|
||||
295,877,CL,D-penicillamine,12912,M,N,N,N,N,2.4,646,3.83,102,855,127,194,306,10.3,3
|
||||
296,1321,C,Placebo,11462,F,N,N,N,N,0.8,328,3.31,62,1105,137,95,293,10.9,4
|
||||
297,533,CL,D-penicillamine,20449,M,N,Y,N,N,1.2,275,3.43,100,1142,75,91,217,11.3,4
|
||||
298,1300,C,Placebo,19258,F,N,Y,N,N,1.1,340,3.37,73,289,97,93,243,10.2,3
|
||||
299,1293,C,D-penicillamine,13913,F,N,N,N,N,2.4,342,3.76,90,1653,150,127,213,10.8,3
|
||||
300,207,D,Placebo,21247,F,N,Y,N,N,5.2,NA,2.23,234,601,135,NA,206,12.3,4
|
||||
301,1295,C,Placebo,16513,F,N,N,N,N,1,393,3.57,50,1307,74,103,295,10.5,4
|
||||
302,1271,C,D-penicillamine,13806,F,N,N,N,N,0.7,335,3.95,43,657,52,104,268,10.6,2
|
||||
303,1250,C,Placebo,22156,F,N,Y,Y,N,1,372,3.25,108,1190,140,55,248,10.6,4
|
||||
304,1230,C,D-penicillamine,12979,F,N,N,N,N,0.5,219,3.93,22,663,45,75,246,10.8,3
|
||||
305,1216,C,Placebo,15730,F,N,Y,Y,N,2.9,426,3.61,73,5184,288,144,275,10.6,3
|
||||
306,1216,C,Placebo,20597,F,N,Y,N,N,0.6,239,3.45,31,1072,55,64,227,10.7,2
|
||||
307,1149,C,Placebo,11167,F,N,N,N,N,0.8,273,3.56,52,1282,130,59,344,10.5,2
|
||||
308,1153,C,D-penicillamine,22347,F,N,Y,N,N,0.4,246,3.58,24,797,91,113,288,10.4,2
|
||||
309,994,C,Placebo,21294,F,N,N,N,N,0.4,260,2.75,41,1166,70,82,231,10.8,2
|
||||
310,939,C,D-penicillamine,22767,F,N,N,N,N,1.7,434,3.35,39,1713,171,100,234,10.2,2
|
||||
311,839,C,D-penicillamine,13879,F,N,N,N,N,2,247,3.16,69,1050,117,88,335,10.5,2
|
||||
312,788,C,Placebo,12109,F,N,N,Y,N,6.4,576,3.79,186,2115,136,149,200,10.8,2
|
||||
313,4062,C,NA,21915,F,NA,NA,NA,N,0.7,NA,3.65,NA,NA,NA,NA,378,11,"NA"
|
||||
314,3561,D,NA,23741,F,NA,NA,NA,S,1.4,NA,3.04,NA,NA,NA,NA,331,12.1,4
|
||||
315,2844,C,NA,19724,F,NA,NA,NA,N,0.7,NA,4.03,NA,NA,NA,NA,226,9.8,4
|
||||
316,2071,D,NA,27394,F,NA,NA,NA,S,0.7,NA,3.96,NA,NA,NA,NA,NA,11.3,4
|
||||
317,3030,C,NA,22646,F,NA,NA,NA,N,0.8,NA,2.48,NA,NA,NA,NA,273,10,"NA"
|
||||
318,1680,C,NA,15706,F,NA,NA,NA,N,0.7,NA,3.68,NA,NA,NA,NA,306,9.5,2
|
||||
319,41,D,NA,16802,F,NA,NA,NA,N,5,NA,2.93,NA,NA,NA,NA,260,10.4,"NA"
|
||||
320,2403,C,NA,16071,F,NA,NA,NA,S,0.4,NA,3.81,NA,NA,NA,NA,226,10.5,3
|
||||
321,1170,C,NA,22280,M,NA,NA,NA,S,1.3,NA,3.41,NA,NA,NA,NA,259,10.9,4
|
||||
322,2011,D,NA,23376,F,NA,NA,NA,N,1.1,NA,3.69,NA,NA,NA,NA,139,10.5,"NA"
|
||||
323,3523,C,NA,14610,F,NA,NA,NA,N,0.6,NA,4.04,NA,NA,NA,NA,130,11.2,2
|
||||
324,3468,C,NA,23011,F,NA,NA,NA,N,0.6,NA,3.94,NA,NA,NA,NA,234,11.5,2
|
||||
325,4795,C,NA,12419,F,NA,NA,NA,N,1.8,NA,3.24,NA,NA,NA,NA,NA,18,2
|
||||
326,1236,C,NA,18993,F,NA,NA,NA,N,1.5,NA,3.42,NA,NA,NA,NA,246,10.3,3
|
||||
327,4214,C,NA,17897,F,NA,NA,NA,N,1.2,NA,3.99,NA,NA,NA,NA,NA,11.2,2
|
||||
328,2111,D,NA,19724,F,NA,NA,NA,N,1,NA,3.6,NA,NA,NA,NA,NA,12.1,2
|
||||
329,1462,D,NA,23011,F,NA,NA,NA,N,0.7,NA,3.4,NA,NA,NA,NA,371,10.1,4
|
||||
330,1746,D,NA,19724,M,NA,NA,NA,N,3.5,NA,3.63,NA,NA,NA,NA,325,10.3,2
|
||||
331,94,D,NA,16802,F,NA,NA,NA,S,3.1,NA,3.56,NA,NA,NA,NA,142,13.6,4
|
||||
332,785,D,NA,19358,F,NA,NA,NA,N,12.6,NA,2.87,NA,NA,NA,NA,114,11.8,4
|
||||
333,1518,D,NA,20454,F,NA,NA,NA,N,2.8,NA,3.92,NA,NA,NA,NA,NA,10.6,4
|
||||
334,466,D,NA,20454,F,NA,NA,NA,N,7.1,NA,3.51,NA,NA,NA,NA,721,11.8,"NA"
|
||||
335,3527,C,NA,20089,F,NA,NA,NA,N,0.6,NA,4.15,NA,NA,NA,NA,280,10.1,2
|
||||
336,2635,C,NA,23741,F,NA,NA,NA,N,2.1,NA,3.34,NA,NA,NA,NA,155,10.1,4
|
||||
337,2286,D,NA,20454,F,NA,NA,NA,N,1.8,NA,3.64,NA,NA,NA,NA,141,10,"NA"
|
||||
338,791,D,NA,17167,F,NA,NA,NA,N,16,NA,3.42,NA,NA,NA,NA,475,13.8,2
|
||||
339,3492,C,NA,21915,F,NA,NA,NA,N,0.6,NA,4.38,NA,NA,NA,NA,269,10.6,2
|
||||
340,3495,C,NA,19358,F,NA,NA,NA,N,5.4,NA,4.19,NA,NA,NA,NA,141,11.2,2
|
||||
341,111,D,NA,19724,F,NA,NA,NA,N,9,NA,3.29,NA,NA,NA,NA,286,13.1,4
|
||||
342,3231,C,NA,18263,F,NA,NA,NA,N,0.9,NA,4.01,NA,NA,NA,NA,244,10.5,3
|
||||
343,625,D,NA,17532,F,NA,NA,NA,N,11.1,NA,2.84,NA,NA,NA,NA,NA,12.2,2
|
||||
344,3157,C,NA,13149,F,NA,NA,NA,N,8.9,NA,3.76,NA,NA,NA,NA,209,10.6,3
|
||||
345,3021,CL,NA,17532,F,NA,NA,NA,N,0.5,NA,3.76,NA,NA,NA,NA,388,10.1,2
|
||||
346,559,D,NA,25568,F,NA,NA,NA,S,0.6,NA,3.81,NA,NA,NA,NA,160,11,4
|
||||
347,2812,D,NA,18628,F,NA,NA,NA,N,3.4,NA,3.92,NA,NA,NA,NA,NA,9.3,2
|
||||
348,2834,C,NA,18993,M,NA,NA,NA,N,0.9,NA,3.14,NA,NA,NA,NA,191,12.3,2
|
||||
349,2855,C,NA,19724,F,NA,NA,NA,N,1.4,NA,3.82,NA,NA,NA,NA,249,10.3,2
|
||||
350,662,D,NA,17532,F,NA,NA,NA,N,2.1,NA,4.1,NA,NA,NA,NA,200,9,3
|
||||
351,727,D,NA,24107,F,NA,NA,NA,N,15,NA,3.4,NA,NA,NA,NA,150,11.1,4
|
||||
352,2716,C,NA,19358,F,NA,NA,NA,N,0.6,NA,4.19,NA,NA,NA,NA,330,9.9,1
|
||||
353,2698,C,NA,22646,F,NA,NA,NA,N,1.3,NA,3.4,NA,NA,NA,NA,167,10.6,4
|
||||
354,990,D,NA,21550,F,NA,NA,NA,N,1.3,NA,3.12,NA,NA,NA,NA,125,9.6,2
|
||||
355,2338,C,NA,14245,F,NA,NA,NA,N,1.6,NA,3.75,NA,NA,NA,NA,145,10.4,3
|
||||
356,1616,D,NA,24472,F,NA,NA,NA,S,2.2,NA,3.26,NA,NA,NA,NA,171,11.1,4
|
||||
357,2563,C,NA,21185,F,NA,NA,NA,N,3,NA,3.46,NA,NA,NA,NA,109,10.4,4
|
||||
358,2537,C,NA,23376,F,NA,NA,NA,N,0.8,NA,3.49,NA,NA,NA,NA,314,10.3,3
|
||||
359,2534,C,NA,16802,F,NA,NA,NA,N,0.8,NA,2.89,NA,NA,NA,NA,419,NA,1
|
||||
360,778,D,NA,23376,F,NA,NA,NA,N,1.8,NA,3.15,NA,NA,NA,NA,183,10.4,4
|
||||
361,617,CL,NA,14975,F,NA,NA,NA,N,5.5,NA,2.31,NA,NA,NA,NA,517,10.4,4
|
||||
362,2267,CL,NA,17897,F,NA,NA,NA,N,18,NA,3.04,NA,NA,NA,NA,432,9.7,2
|
||||
363,2249,C,NA,16071,F,NA,NA,NA,N,0.6,NA,3.5,NA,NA,NA,NA,150,9.9,3
|
||||
364,359,D,NA,21550,F,NA,NA,NA,N,2.7,NA,3.35,NA,NA,NA,NA,142,11.5,4
|
||||
365,1925,C,NA,23011,F,NA,NA,NA,N,0.9,NA,3.58,NA,NA,NA,NA,224,10,3
|
||||
366,249,D,NA,22280,F,NA,NA,NA,N,1.3,NA,3.01,NA,NA,NA,NA,223,10.7,3
|
||||
367,2202,C,NA,23376,F,NA,NA,NA,N,1.1,NA,3.49,NA,NA,NA,NA,166,9.8,3
|
||||
368,43,D,NA,17897,F,NA,NA,NA,N,13.8,NA,2.77,NA,NA,NA,NA,388,NA,4
|
||||
369,1197,D,NA,15341,F,NA,NA,NA,N,4.4,NA,4.52,NA,NA,NA,NA,102,10.8,4
|
||||
370,1095,D,NA,18263,F,NA,NA,NA,N,16,NA,3.36,NA,NA,NA,NA,384,10,3
|
||||
371,489,D,NA,18628,F,NA,NA,NA,S,7.3,NA,3.52,NA,NA,NA,NA,265,11.1,1
|
||||
372,2149,C,NA,13514,F,NA,NA,NA,N,0.6,NA,3.55,NA,NA,NA,NA,248,10.3,2
|
||||
373,2103,C,NA,22646,F,NA,NA,NA,N,0.7,NA,3.29,NA,NA,NA,NA,190,9.8,2
|
||||
374,1980,C,NA,18628,F,NA,NA,NA,N,0.7,NA,3.1,NA,NA,NA,NA,274,10.6,3
|
||||
375,1347,CL,NA,18993,F,NA,NA,NA,N,1.7,NA,3.24,NA,NA,NA,NA,231,10.5,3
|
||||
376,1478,D,NA,16071,M,NA,NA,NA,N,9.5,NA,3.63,NA,NA,NA,NA,292,10.2,3
|
||||
377,1987,C,NA,12053,F,NA,NA,NA,N,2.2,NA,3.76,NA,NA,NA,NA,253,9.9,3
|
||||
378,1168,D,NA,21915,F,NA,NA,NA,S,1.8,NA,3.62,NA,NA,NA,NA,225,9.9,2
|
||||
379,597,D,NA,23011,F,NA,NA,NA,S,3.3,NA,2.73,NA,NA,NA,NA,224,11.1,4
|
||||
380,1725,CL,NA,12053,F,NA,NA,NA,N,2.9,NA,4.08,NA,NA,NA,NA,418,10.5,3
|
||||
381,1899,C,NA,14975,M,NA,NA,NA,N,1.7,NA,3.66,NA,NA,NA,NA,92,11,4
|
||||
382,221,D,NA,18628,F,NA,NA,NA,N,14,NA,2.58,NA,NA,NA,NA,190,11.6,4
|
||||
383,1022,CL,NA,13514,F,NA,NA,NA,S,0.8,NA,3,NA,NA,NA,NA,76,10.8,4
|
||||
384,1639,C,NA,21550,F,NA,NA,NA,N,1.3,NA,3.4,NA,NA,NA,NA,243,9.7,1
|
||||
385,1635,C,NA,20089,F,NA,NA,NA,N,0.7,NA,2.93,NA,NA,NA,NA,209,10.6,3
|
||||
386,1654,C,NA,19724,M,NA,NA,NA,N,1.7,NA,2.38,NA,NA,NA,NA,166,9.8,3
|
||||
387,1653,C,NA,17897,F,NA,NA,NA,S,13.6,NA,3,NA,NA,NA,NA,233,9.9,3
|
||||
388,1560,C,NA,14610,F,NA,NA,NA,N,0.9,NA,3.5,NA,NA,NA,NA,117,10.9,4
|
||||
389,1581,C,NA,24472,F,NA,NA,NA,N,0.7,NA,3.06,NA,NA,NA,NA,165,10,4
|
||||
390,1419,C,NA,24837,M,NA,NA,NA,N,3,NA,3.15,NA,NA,NA,NA,139,10,3
|
||||
391,1443,C,NA,14975,F,NA,NA,NA,N,1.2,NA,2.8,NA,NA,NA,NA,120,11,2
|
||||
392,1368,C,NA,25202,F,NA,NA,NA,N,0.4,NA,3.03,NA,NA,NA,NA,173,10.9,3
|
||||
393,193,D,NA,18993,F,NA,NA,NA,S,0.7,NA,2.96,NA,NA,NA,NA,319,9.9,4
|
||||
394,1367,C,NA,20819,F,NA,NA,NA,S,2,NA,3.07,NA,NA,NA,NA,80,12.1,4
|
||||
395,1329,C,NA,13149,F,NA,NA,NA,N,1.4,NA,3.98,NA,NA,NA,NA,402,11,1
|
||||
396,1343,C,NA,18263,F,NA,NA,NA,N,1.6,NA,3.48,NA,NA,NA,NA,277,10.2,2
|
||||
397,1328,C,NA,23376,F,NA,NA,NA,N,0.5,NA,3.65,NA,NA,NA,NA,425,10.2,4
|
||||
398,1375,C,NA,22646,F,NA,NA,NA,N,7.3,NA,3.49,NA,NA,NA,NA,189,10.9,4
|
||||
399,1260,C,NA,15341,F,NA,NA,NA,N,8.1,NA,2.82,NA,NA,NA,NA,193,10.4,2
|
||||
400,1223,C,NA,16071,F,NA,NA,NA,N,0.5,NA,3.34,NA,NA,NA,NA,258,10.6,2
|
||||
401,935,D,NA,25202,F,NA,NA,NA,N,4.2,NA,3.19,NA,NA,NA,NA,120,11.1,4
|
||||
402,943,C,NA,18993,F,NA,NA,NA,N,0.8,NA,3.01,NA,NA,NA,NA,256,10.6,3
|
||||
403,1141,C,NA,24107,F,NA,NA,NA,N,2.5,NA,3.33,NA,NA,NA,NA,256,10.8,4
|
||||
404,1092,C,NA,14610,F,NA,NA,NA,N,4.6,NA,3.6,NA,NA,NA,NA,337,10.4,3
|
||||
405,1150,C,NA,18993,F,NA,NA,NA,N,1,NA,3.64,NA,NA,NA,NA,340,10.6,3
|
||||
406,703,D,NA,16802,F,NA,NA,NA,N,4.5,NA,2.68,NA,NA,NA,NA,219,11.5,4
|
||||
407,1129,C,NA,19724,M,NA,NA,NA,N,1.1,NA,3.69,NA,NA,NA,NA,220,10.8,3
|
||||
408,1086,C,NA,18628,F,NA,NA,NA,S,1.9,NA,3.17,NA,NA,NA,NA,162,10.7,3
|
||||
409,1067,C,NA,15706,F,NA,NA,NA,N,0.7,NA,3.73,NA,NA,NA,NA,214,10.8,3
|
||||
410,1072,C,NA,14245,F,NA,NA,NA,N,1.5,NA,3.81,NA,NA,NA,NA,255,10.8,3
|
||||
411,1119,C,NA,18628,F,NA,NA,NA,N,0.6,NA,3.57,NA,NA,NA,NA,286,10.6,3
|
||||
412,1097,C,NA,24472,F,NA,NA,NA,N,1,NA,3.58,NA,NA,NA,NA,244,10.8,3
|
||||
413,989,C,NA,12784,F,NA,NA,NA,N,0.7,NA,3.23,NA,NA,NA,NA,312,10.8,3
|
||||
414,681,D,NA,24472,F,NA,NA,NA,N,1.2,NA,2.96,NA,NA,NA,NA,174,10.9,3
|
||||
415,1103,C,NA,14245,F,NA,NA,NA,N,0.9,NA,3.83,NA,NA,NA,NA,180,11.2,4
|
||||
416,1055,C,NA,20819,F,NA,NA,NA,N,1.6,NA,3.42,NA,NA,NA,NA,143,9.9,3
|
||||
417,691,C,NA,21185,F,NA,NA,NA,N,0.8,NA,3.75,NA,NA,NA,NA,269,10.4,3
|
||||
418,976,C,NA,19358,F,NA,NA,NA,N,0.7,NA,3.29,NA,NA,NA,NA,350,10.6,4
|
||||
|
@@ -0,0 +1,450 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "ec2a032c",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"---\n",
|
||||
"date: '2025-09-03T17:13:02+08:00'\n",
|
||||
"title: 'Generate Dataframe Summaries With Python'\n",
|
||||
"feature_link: \"https://www.midjourney.com/home/\"\n",
|
||||
"feature_text: \"by AI Midjourney\"\n",
|
||||
"description: 'How to generate dataframe summaries with python and AI for a type of dataset'\n",
|
||||
"isStarred: false\n",
|
||||
"tags:\n",
|
||||
"- datascience\n",
|
||||
"- dataframe\n",
|
||||
"- pandas\n",
|
||||
"- llm\n",
|
||||
"- Ollama\n",
|
||||
"- mistral\n",
|
||||
"categories:\n",
|
||||
"- dev\n",
|
||||
"images:\n",
|
||||
"keywords:\n",
|
||||
"series:\n",
|
||||
"- Data and Data Tools\n",
|
||||
"---"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "f1df9197-c3c4-48d0-b985-90fc43db7f5b",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"How much time do you spend with making summaries of dataset? Too much and I don't like doing it so I search to do it with the AI. So this is my sperimentation with some medical data see at PyDataVe 22nd event and Mistral model."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "569e2513-b9d5-4d73-94b0-e9c72fb44152",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## The code for the inizializzation\n",
|
||||
"\n",
|
||||
"For start I need to install some dipendency\n",
|
||||
"\n",
|
||||
"~~~ text\n",
|
||||
"langchain>=0.3.27\n",
|
||||
"langchain-ollama>=0.3.7\n",
|
||||
"pandas>=2.3.2\n",
|
||||
"~~~"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "67c897ff-5971-4392-ab35-0cbad5600d74",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-\n",
|
||||
"Dataset shape: (418, 20)\n",
|
||||
"-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-\n",
|
||||
"Missing value stats:\n",
|
||||
"ID 0\n",
|
||||
"N_Days 0\n",
|
||||
"Status 0\n",
|
||||
"Drug 106\n",
|
||||
"Age 0\n",
|
||||
"Sex 0\n",
|
||||
"Ascites 106\n",
|
||||
"Hepatomegaly 106\n",
|
||||
"Spiders 106\n",
|
||||
"Edema 0\n",
|
||||
"Bilirubin 0\n",
|
||||
"Cholesterol 134\n",
|
||||
"Albumin 0\n",
|
||||
"Copper 108\n",
|
||||
"Alk_Phos 106\n",
|
||||
"SGOT 106\n",
|
||||
"Tryglicerides 136\n",
|
||||
"Platelets 11\n",
|
||||
"Prothrombin 2\n",
|
||||
"Stage 6\n",
|
||||
"dtype: int64\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import pandas as pd\n",
|
||||
"from langchain_ollama import ChatOllama\n",
|
||||
"from typing import Literal\n",
|
||||
"\n",
|
||||
"df = pd.read_csv(\"data/test.csv\")\n",
|
||||
"\n",
|
||||
"print(\"-*-\" * 20)\n",
|
||||
"print(f\"Dataset shape: {df.shape}\")\n",
|
||||
"print(\"-*-\" * 20)\n",
|
||||
"print(\"Missing value stats:\")\n",
|
||||
"print(df.isnull().sum())"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "a6c1d5d9-33ce-4d19-82ab-800ec5ce3c45",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"This is a section of the dataset and what is missing value of the stats.\n",
|
||||
"\n",
|
||||
"Now we will start with the AI. In my case I user Ollama with Mistral model.\n",
|
||||
"I install the model with \n",
|
||||
"\n",
|
||||
"~~~ bash\n",
|
||||
"ollama run mistral\n",
|
||||
"~~~\n",
|
||||
"\n",
|
||||
"And prepare the code for use the model. First you need to make a connection with the local LLM instance. This code use Mistral but you can pass any local LLM instance you have.\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "c32630b6-bc6c-40b1-a7a3-fabd7dcffa48",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def get_llm(model_name: str = \"mistral:latest\") -> ChatOllama:\n",
|
||||
" \"\"\"\n",
|
||||
" Create and configure a ChatOllama instance for local LLM inference.\n",
|
||||
" \n",
|
||||
" This function initializes a ChatOllama client configured to connect to a\n",
|
||||
" local Ollama server. The client is set up with deterministic output\n",
|
||||
" (temperature=0) for consistent responses across multiple calls with the\n",
|
||||
" same input.\n",
|
||||
" \n",
|
||||
" Parameters\n",
|
||||
" ----------\n",
|
||||
" model_name : str, optional\n",
|
||||
" The name of the Ollama model to use for chat completions.\n",
|
||||
" Must be a valid model name that is available on the local Ollama\n",
|
||||
" installation. Default is \"mistral:latest\".\n",
|
||||
" \n",
|
||||
" Returns\n",
|
||||
" -------\n",
|
||||
" ChatOllama\n",
|
||||
" A configured ChatOllama instance ready for chat completions.\n",
|
||||
" \"\"\"\n",
|
||||
" return ChatOllama(\n",
|
||||
" model=model_name, base_url=\"http://localhost:11434\", temperature=0\n",
|
||||
" )"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "52d5654b-831e-4cf4-a634-73b2dcf00e29",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"If you want to test the connection you can use this command"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "c1cb7338-77e1-47d1-9b5f-6126b2cede4a",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" Hallo! Wie geht es Ihnen? Ich bin hier, um Ihnen zu helfen. Was möchten Sie heute tun?\n",
|
||||
"\n",
|
||||
"Ich kann Ihnen beispielsweise helfen:\n",
|
||||
"\n",
|
||||
"* Fragen beantworten\n",
|
||||
"* Informationen suchen\n",
|
||||
"* Aufgaben lösen\n",
|
||||
"* und vieles mehr!\n",
|
||||
"\n",
|
||||
"Welche Aufgabe haben wir heute vor uns?\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"print(get_llm().invoke(\"test\").content)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "a5ec2c60-0f16-4b6c-a763-c7d64ea9b6a2",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Make a context\n",
|
||||
"\n",
|
||||
"Now we need to generate a context for the LLM. If you do this function with all the necessary data you can relaunch this script every time you need a new README/summary of the dataset. This is better to be a dataset with a fixed schema and a date which change every year like medical data (this), monthly sell report, census data..."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"id": "73b658eb-d006-46fa-9b0d-a498cb6b5d98",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def get_summary_context_message(df: pd.DataFrame, dataset_name:str) -> str:\n",
|
||||
" # Basic application statistics\n",
|
||||
" total_analisys = len(df)\n",
|
||||
"\n",
|
||||
" # Gender distribution\n",
|
||||
" gender_counts = df[\"Sex\"].value_counts()\n",
|
||||
" male_count = gender_counts.get(\"M\", 0)\n",
|
||||
" female_count = gender_counts.get(\"F\", 0)\n",
|
||||
"\n",
|
||||
" # Stage Statistics\n",
|
||||
" stage_data = df[\"Stage\"].dropna()\n",
|
||||
" stage_avg = stage_data.mean()\n",
|
||||
" stage_25th = stage_data.quantile(0.25)\n",
|
||||
" stage_50th = stage_data.quantile(0.50)\n",
|
||||
" stage_75th = stage_data.quantile(0.75)\n",
|
||||
"\n",
|
||||
" # NDays Statistics\n",
|
||||
" days_data = df[\"N_Days\"].dropna()\n",
|
||||
" days_avg = days_data.mean()\n",
|
||||
" days_25th = days_data.quantile(0.25)\n",
|
||||
" days_50th = days_data.quantile(0.50)\n",
|
||||
" days_75th = days_data.quantile(0.75)\n",
|
||||
"\n",
|
||||
" def status_category(exp):\n",
|
||||
" if pd.isna(exp):\n",
|
||||
" return \"Unkown\"\n",
|
||||
" elif exp == \"C\":\n",
|
||||
" return \"Censored\"\n",
|
||||
" elif exp == \"CL\":\n",
|
||||
" return \"Censored due to Lever tx\"\n",
|
||||
" elif exp == \"D\":\n",
|
||||
" return \"Death\"\n",
|
||||
" else:\n",
|
||||
" return \"Unkow\"\n",
|
||||
"\n",
|
||||
" df['Status Str']= df['Status'].apply(status_category)\n",
|
||||
" status_str_stats = []\n",
|
||||
"\n",
|
||||
" for category in [\"Censored\", \"Censored due to Lever tx\", \"Death\",]: \n",
|
||||
" category_data = df[df[\"Status Str\"] == category]\n",
|
||||
" if len(category_data) > 0:\n",
|
||||
" male = len(category_data[category_data[\"Sex\"] == \"M\"])\n",
|
||||
" female = len(category_data[category_data[\"Sex\"] == \"F\"])\n",
|
||||
" total = len(category_data)\n",
|
||||
" rate_m = (male / total) * 100\n",
|
||||
" rate_f = (female / total) * 100\n",
|
||||
" status_str_stats.append((category, male, female, total, rate_m, rate_f))\n",
|
||||
"\n",
|
||||
" summary =f\"\"\"{dataset_name}\n",
|
||||
" \n",
|
||||
"Total Analisys: {total_analisys:,}\n",
|
||||
"\n",
|
||||
"Gender Distribution:\n",
|
||||
"- Male applicants: {male_count:,} ({male_count/total_analisys*100:.1f}%)\n",
|
||||
"- Female applicants: {female_count:,} ({female_count/total_analisys*100:.1f}%)\n",
|
||||
"\n",
|
||||
"Stage Statistics:\n",
|
||||
"- Average Stage: {stage_avg:.2f}\n",
|
||||
"- 25th percentile: {stage_25th:.2f}\n",
|
||||
"- 50th percentile (median): {stage_50th:.2f}\n",
|
||||
"- 75th percentile: {stage_75th:.2f}\n",
|
||||
"\n",
|
||||
"N Day Statistics:\n",
|
||||
"- N Days Stage: {days_avg:.2f}\n",
|
||||
"- 25th percentile: {days_25th:.2f}\n",
|
||||
"- 50th percentile (median): {days_50th:.2f}\n",
|
||||
"- 75th percentile: {days_75th:.2f}\n",
|
||||
"\"\"\"\n",
|
||||
"\n",
|
||||
" summary += \"\\n\\nStatus Rates by Sex:\"\n",
|
||||
" for category, male, female, total, rate_m, rate_f in status_str_stats:\n",
|
||||
" summary += (\n",
|
||||
" f\"\\n- {category}: {male}/{total} Male ({rate_m:.1f}% rate)\"+\n",
|
||||
" f\"\\n- {category}: {female}/{total} Female ({rate_f:.1f}% rate)\"\n",
|
||||
"\n",
|
||||
" )\n",
|
||||
" return summary\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "851f7e68-d016-4c7c-8cce-bcd4374f6870",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Make a report\n",
|
||||
"\n",
|
||||
"After checking all you need to have a template for the repo of the dataset."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"id": "0f6b679b-f3de-4d4c-8167-0934aca4eb90",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"SUMMARIZE_DATAFRAME_PROMPT = \"\"\"\n",
|
||||
"You are an expert data analyst and data summarizer. \n",
|
||||
"Your task is to take in complex datasets and return user-friendly descriptions and findings.\n",
|
||||
"\n",
|
||||
"You were given this dataset:\n",
|
||||
"- Name: {dataset_name}\n",
|
||||
"- Source: {dataset_source}\n",
|
||||
"\n",
|
||||
"This dataset was analyzed in a pipeline before it was given to you.\n",
|
||||
"These are the findings returned by the analysis pipeline:\n",
|
||||
"\n",
|
||||
"<context>\n",
|
||||
"{context}\n",
|
||||
"</context>\n",
|
||||
"\n",
|
||||
"Based on these findings, write a detailed report in {report_format} format.\n",
|
||||
"Give the report a meaningful title and separate findings into sections with headings and subheadings.\n",
|
||||
"Output only the report in {report_format} and nothing else.\n",
|
||||
"\n",
|
||||
"Report:\n",
|
||||
"\"\"\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "9b5f4a0d-4cae-49ab-add2-901c77100869",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"This prompt and a lot of the code of this article are from [this post](https://towardsdatascience.com/llms-pandas-how-i-use-generative-ai-to-generate-pandas-dataframe-summaries-2/).\n",
|
||||
"\n",
|
||||
"After this we need a function that take the dataset *df*, the prompt *SUMMARIZE_DATAFRAME_PROMPT* with the needed info and return the content of the report."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"id": "5f27c65b-31ed-4b87-b4fd-8d57d6021e93",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def get_report_summary(\n",
|
||||
" dataset: pd.DataFrame,\n",
|
||||
" dataset_name: str,\n",
|
||||
" dataset_source: str,\n",
|
||||
" report_format: Literal[\"markdown\", \"html\"] = \"markdown\",\n",
|
||||
") -> str:\n",
|
||||
" context_message = get_summary_context_message(df=dataset, dataset_name=dataset_name)\n",
|
||||
" prompt = SUMMARIZE_DATAFRAME_PROMPT.format(\n",
|
||||
" dataset_name=dataset_name,\n",
|
||||
" dataset_source=dataset_source,\n",
|
||||
" context=context_message,\n",
|
||||
" report_format=report_format,\n",
|
||||
" )\n",
|
||||
" return get_llm().invoke(input=prompt).content"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "2374dccc-01d9-4dc8-b591-ede7ae5b419d",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"In our case we launch it as"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"id": "677373bc-1e43-4d2c-b07a-02f0e1d0a761",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" # Cirrhosis Patient Survival Prediction Analysis Report\n",
|
||||
"\n",
|
||||
"## Overview\n",
|
||||
"The dataset analyzed consists of 418 records related to cirrhosis patients, sourced from [Kaggle](https://www.kaggle.com/datasets/joebeachcapital/cirrhosis-patient-survival-prediction/data). The data provides information about the patient's gender, stage of cirrhosis, number of days since diagnosis, and final status (censored or death).\n",
|
||||
"\n",
|
||||
"## Demographics\n",
|
||||
"### Gender Distribution\n",
|
||||
"The dataset shows a significant imbalance in gender distribution with 89.5% female applicants (374) and only 10.5% male applicants (44).\n",
|
||||
"\n",
|
||||
"## Cirrhosis Stage Statistics\n",
|
||||
"### Average Stage\n",
|
||||
"The average stage of cirrhosis for the analyzed patients is 3.02, indicating a severe level of liver damage.\n",
|
||||
"\n",
|
||||
"### Percentiles\n",
|
||||
"- **25th percentile**: The cirrhosis stage is at least 2.00 for 25% of the patients.\n",
|
||||
"- **Median (50th percentile)**: Half of the patients have a cirrhosis stage of 3.00.\n",
|
||||
"- **75th percentile**: For 75% of the patients, the cirrhosis stage is 4.00 or lower.\n",
|
||||
"\n",
|
||||
"## N Days Statistics\n",
|
||||
"### N Days Stage\n",
|
||||
"The average number of days since diagnosis for the analyzed patients is 1917.78 days.\n",
|
||||
"\n",
|
||||
"### Percentiles\n",
|
||||
"- **25th percentile**: The minimum number of days since diagnosis for 25% of the patients is 1092.75 days.\n",
|
||||
"- **Median (50th percentile)**: Half of the patients have been diagnosed with cirrhosis for at least 1730.00 days.\n",
|
||||
"- **75th percentile**: For 75% of the patients, the number of days since diagnosis is 2613.50 days or less.\n",
|
||||
"\n",
|
||||
"## Status Rates by Sex\n",
|
||||
"The following table shows the rates of different statuses (censored due to Lever tx and death) for both male and female applicants:\n",
|
||||
"\n",
|
||||
"| | Male Applicants | Female Applicants |\n",
|
||||
"|---------------------|-----------------|-------------------|\n",
|
||||
"| Censored | 17/232 (7.3%) | 215/232 (92.7%) |\n",
|
||||
"| Censored due to Lever tx | 3/25 (12.0%) | 22/25 (88.0%) |\n",
|
||||
"| Death | 24/161 (14.9%) | 137/161 (85.1%) |\n",
|
||||
"\n",
|
||||
"The analysis indicates that female applicants are more likely to have their status censored, either due to the lack of information or other factors, while male applicants are more likely to experience death. However, it's important to note that the sample size for male applicants is significantly smaller than that of female applicants.\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"md_report = get_report_summary(\n",
|
||||
" dataset=df, \n",
|
||||
" dataset_name=\"Cirrhosis Patient Survival Prediction\",\n",
|
||||
" dataset_source=\"https://www.kaggle.com/datasets/joebeachcapital/cirrhosis-patient-survival-prediction/data\"\n",
|
||||
")\n",
|
||||
"print(md_report)"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.12.9"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
@@ -0,0 +1,322 @@
|
||||
---
|
||||
date: '2025-09-03T17:13:02+08:00'
|
||||
title: 'Generate Dataframe Summaries With Python'
|
||||
feature_link: "https://www.midjourney.com/home/"
|
||||
feature_text: "by AI Midjourney"
|
||||
description: 'How to generate dataframe summaries with python and AI for a type of dataset'
|
||||
isStarred: false
|
||||
tags:
|
||||
- datascience
|
||||
- dataframe
|
||||
- pandas
|
||||
- llm
|
||||
- Ollama
|
||||
- mistral
|
||||
categories:
|
||||
- dev
|
||||
images:
|
||||
keywords:
|
||||
series:
|
||||
- Data and Data Tools
|
||||
---
|
||||
|
||||
How much time do you spend with making summaries of dataset? Too much and I don't like doing it so I search to do it with the AI. So this is my sperimentation with some medical data see at PyDataVe 22nd event and Mistral model.
|
||||
|
||||
## The code for the inizializzation
|
||||
|
||||
For start I need to install some dipendency
|
||||
|
||||
~~~ text
|
||||
langchain>=0.3.27
|
||||
langchain-ollama>=0.3.7
|
||||
pandas>=2.3.2
|
||||
~~~
|
||||
|
||||
|
||||
```python
|
||||
import pandas as pd
|
||||
from langchain_ollama import ChatOllama
|
||||
from typing import Literal
|
||||
|
||||
df = pd.read_csv("data/test.csv")
|
||||
|
||||
print("-*-" * 20)
|
||||
print(f"Dataset shape: {df.shape}")
|
||||
print("-*-" * 20)
|
||||
print("Missing value stats:")
|
||||
print(df.isnull().sum())
|
||||
```
|
||||
|
||||
-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-
|
||||
Dataset shape: (418, 20)
|
||||
-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-
|
||||
Missing value stats:
|
||||
ID 0
|
||||
N_Days 0
|
||||
Status 0
|
||||
Drug 106
|
||||
Age 0
|
||||
Sex 0
|
||||
Ascites 106
|
||||
Hepatomegaly 106
|
||||
Spiders 106
|
||||
Edema 0
|
||||
Bilirubin 0
|
||||
Cholesterol 134
|
||||
Albumin 0
|
||||
Copper 108
|
||||
Alk_Phos 106
|
||||
SGOT 106
|
||||
Tryglicerides 136
|
||||
Platelets 11
|
||||
Prothrombin 2
|
||||
Stage 6
|
||||
dtype: int64
|
||||
|
||||
|
||||
This is a section of the dataset and what is missing value of the stats.
|
||||
|
||||
Now we will start with the AI. In my case I user Ollama with Mistral model.
|
||||
I install the model with
|
||||
|
||||
~~~ bash
|
||||
ollama run mistral
|
||||
~~~
|
||||
|
||||
And prepare the code for use the model. First you need to make a connection with the local LLM instance. This code use Mistral but you can pass any local LLM instance you have.
|
||||
|
||||
|
||||
|
||||
```python
|
||||
def get_llm(model_name: str = "mistral:latest") -> ChatOllama:
|
||||
"""
|
||||
Create and configure a ChatOllama instance for local LLM inference.
|
||||
|
||||
This function initializes a ChatOllama client configured to connect to a
|
||||
local Ollama server. The client is set up with deterministic output
|
||||
(temperature=0) for consistent responses across multiple calls with the
|
||||
same input.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
model_name : str, optional
|
||||
The name of the Ollama model to use for chat completions.
|
||||
Must be a valid model name that is available on the local Ollama
|
||||
installation. Default is "mistral:latest".
|
||||
|
||||
Returns
|
||||
-------
|
||||
ChatOllama
|
||||
A configured ChatOllama instance ready for chat completions.
|
||||
"""
|
||||
return ChatOllama(
|
||||
model=model_name, base_url="http://localhost:11434", temperature=0
|
||||
)
|
||||
```
|
||||
|
||||
If you want to test the connection you can use this command
|
||||
|
||||
|
||||
```python
|
||||
print(get_llm().invoke("test").content)
|
||||
```
|
||||
|
||||
Hallo! Wie geht es Ihnen? Ich bin hier, um Ihnen zu helfen. Was möchten Sie heute tun?
|
||||
|
||||
Ich kann Ihnen beispielsweise helfen:
|
||||
|
||||
* Fragen beantworten
|
||||
* Informationen suchen
|
||||
* Aufgaben lösen
|
||||
* und vieles mehr!
|
||||
|
||||
Welche Aufgabe haben wir heute vor uns?
|
||||
|
||||
|
||||
## Make a context
|
||||
|
||||
Now we need to generate a context for the LLM. If you do this function with all the necessary data you can relaunch this script every time you need a new README/summary of the dataset. This is better to be a dataset with a fixed schema and a date which change every year like medical data (this), monthly sell report, census data...
|
||||
|
||||
|
||||
```python
|
||||
def get_summary_context_message(df: pd.DataFrame, dataset_name:str) -> str:
|
||||
# Basic application statistics
|
||||
total_analisys = len(df)
|
||||
|
||||
# Gender distribution
|
||||
gender_counts = df["Sex"].value_counts()
|
||||
male_count = gender_counts.get("M", 0)
|
||||
female_count = gender_counts.get("F", 0)
|
||||
|
||||
# Stage Statistics
|
||||
stage_data = df["Stage"].dropna()
|
||||
stage_avg = stage_data.mean()
|
||||
stage_25th = stage_data.quantile(0.25)
|
||||
stage_50th = stage_data.quantile(0.50)
|
||||
stage_75th = stage_data.quantile(0.75)
|
||||
|
||||
# NDays Statistics
|
||||
days_data = df["N_Days"].dropna()
|
||||
days_avg = days_data.mean()
|
||||
days_25th = days_data.quantile(0.25)
|
||||
days_50th = days_data.quantile(0.50)
|
||||
days_75th = days_data.quantile(0.75)
|
||||
|
||||
def status_category(exp):
|
||||
if pd.isna(exp):
|
||||
return "Unkown"
|
||||
elif exp == "C":
|
||||
return "Censored"
|
||||
elif exp == "CL":
|
||||
return "Censored due to Lever tx"
|
||||
elif exp == "D":
|
||||
return "Death"
|
||||
else:
|
||||
return "Unkow"
|
||||
|
||||
df['Status Str']= df['Status'].apply(status_category)
|
||||
status_str_stats = []
|
||||
|
||||
for category in ["Censored", "Censored due to Lever tx", "Death",]:
|
||||
category_data = df[df["Status Str"] == category]
|
||||
if len(category_data) > 0:
|
||||
male = len(category_data[category_data["Sex"] == "M"])
|
||||
female = len(category_data[category_data["Sex"] == "F"])
|
||||
total = len(category_data)
|
||||
rate_m = (male / total) * 100
|
||||
rate_f = (female / total) * 100
|
||||
status_str_stats.append((category, male, female, total, rate_m, rate_f))
|
||||
|
||||
summary =f"""{dataset_name}
|
||||
|
||||
Total Analisys: {total_analisys:,}
|
||||
|
||||
Gender Distribution:
|
||||
- Male applicants: {male_count:,} ({male_count/total_analisys*100:.1f}%)
|
||||
- Female applicants: {female_count:,} ({female_count/total_analisys*100:.1f}%)
|
||||
|
||||
Stage Statistics:
|
||||
- Average Stage: {stage_avg:.2f}
|
||||
- 25th percentile: {stage_25th:.2f}
|
||||
- 50th percentile (median): {stage_50th:.2f}
|
||||
- 75th percentile: {stage_75th:.2f}
|
||||
|
||||
N Day Statistics:
|
||||
- N Days Stage: {days_avg:.2f}
|
||||
- 25th percentile: {days_25th:.2f}
|
||||
- 50th percentile (median): {days_50th:.2f}
|
||||
- 75th percentile: {days_75th:.2f}
|
||||
"""
|
||||
|
||||
summary += "\n\nStatus Rates by Sex:"
|
||||
for category, male, female, total, rate_m, rate_f in status_str_stats:
|
||||
summary += (
|
||||
f"\n- {category}: {male}/{total} Male ({rate_m:.1f}% rate)"+
|
||||
f"\n- {category}: {female}/{total} Female ({rate_f:.1f}% rate)"
|
||||
|
||||
)
|
||||
return summary
|
||||
|
||||
```
|
||||
|
||||
## Make a report
|
||||
|
||||
After checking all you need to have a template for the repo of the dataset.
|
||||
|
||||
|
||||
```python
|
||||
SUMMARIZE_DATAFRAME_PROMPT = """
|
||||
You are an expert data analyst and data summarizer.
|
||||
Your task is to take in complex datasets and return user-friendly descriptions and findings.
|
||||
|
||||
You were given this dataset:
|
||||
- Name: {dataset_name}
|
||||
- Source: {dataset_source}
|
||||
|
||||
This dataset was analyzed in a pipeline before it was given to you.
|
||||
These are the findings returned by the analysis pipeline:
|
||||
|
||||
<context>
|
||||
{context}
|
||||
</context>
|
||||
|
||||
Based on these findings, write a detailed report in {report_format} format.
|
||||
Give the report a meaningful title and separate findings into sections with headings and subheadings.
|
||||
Output only the report in {report_format} and nothing else.
|
||||
|
||||
Report:
|
||||
"""
|
||||
```
|
||||
|
||||
This prompt and a lot of the code of this article are from [this post](https://towardsdatascience.com/llms-pandas-how-i-use-generative-ai-to-generate-pandas-dataframe-summaries-2/).
|
||||
|
||||
After this we need a function that take the dataset *df*, the prompt *SUMMARIZE_DATAFRAME_PROMPT* with the needed info and return the content of the report.
|
||||
|
||||
|
||||
```python
|
||||
def get_report_summary(
|
||||
dataset: pd.DataFrame,
|
||||
dataset_name: str,
|
||||
dataset_source: str,
|
||||
report_format: Literal["markdown", "html"] = "markdown",
|
||||
) -> str:
|
||||
context_message = get_summary_context_message(df=dataset, dataset_name=dataset_name)
|
||||
prompt = SUMMARIZE_DATAFRAME_PROMPT.format(
|
||||
dataset_name=dataset_name,
|
||||
dataset_source=dataset_source,
|
||||
context=context_message,
|
||||
report_format=report_format,
|
||||
)
|
||||
return get_llm().invoke(input=prompt).content
|
||||
```
|
||||
|
||||
In our case we launch it as
|
||||
|
||||
|
||||
```python
|
||||
md_report = get_report_summary(
|
||||
dataset=df,
|
||||
dataset_name="Cirrhosis Patient Survival Prediction",
|
||||
dataset_source="https://www.kaggle.com/datasets/joebeachcapital/cirrhosis-patient-survival-prediction/data"
|
||||
)
|
||||
print(md_report)
|
||||
```
|
||||
|
||||
# Cirrhosis Patient Survival Prediction Analysis Report
|
||||
|
||||
## Overview
|
||||
The dataset analyzed consists of 418 records related to cirrhosis patients, sourced from [Kaggle](https://www.kaggle.com/datasets/joebeachcapital/cirrhosis-patient-survival-prediction/data). The data provides information about the patient's gender, stage of cirrhosis, number of days since diagnosis, and final status (censored or death).
|
||||
|
||||
## Demographics
|
||||
### Gender Distribution
|
||||
The dataset shows a significant imbalance in gender distribution with 89.5% female applicants (374) and only 10.5% male applicants (44).
|
||||
|
||||
## Cirrhosis Stage Statistics
|
||||
### Average Stage
|
||||
The average stage of cirrhosis for the analyzed patients is 3.02, indicating a severe level of liver damage.
|
||||
|
||||
### Percentiles
|
||||
- **25th percentile**: The cirrhosis stage is at least 2.00 for 25% of the patients.
|
||||
- **Median (50th percentile)**: Half of the patients have a cirrhosis stage of 3.00.
|
||||
- **75th percentile**: For 75% of the patients, the cirrhosis stage is 4.00 or lower.
|
||||
|
||||
## N Days Statistics
|
||||
### N Days Stage
|
||||
The average number of days since diagnosis for the analyzed patients is 1917.78 days.
|
||||
|
||||
### Percentiles
|
||||
- **25th percentile**: The minimum number of days since diagnosis for 25% of the patients is 1092.75 days.
|
||||
- **Median (50th percentile)**: Half of the patients have been diagnosed with cirrhosis for at least 1730.00 days.
|
||||
- **75th percentile**: For 75% of the patients, the number of days since diagnosis is 2613.50 days or less.
|
||||
|
||||
## Status Rates by Sex
|
||||
The following table shows the rates of different statuses (censored due to Lever tx and death) for both male and female applicants:
|
||||
|
||||
| | Male Applicants | Female Applicants |
|
||||
|---------------------|-----------------|-------------------|
|
||||
| Censored | 17/232 (7.3%) | 215/232 (92.7%) |
|
||||
| Censored due to Lever tx | 3/25 (12.0%) | 22/25 (88.0%) |
|
||||
| Death | 24/161 (14.9%) | 137/161 (85.1%) |
|
||||
|
||||
The analysis indicates that female applicants are more likely to have their status censored, either due to the lack of information or other factors, while male applicants are more likely to experience death. However, it's important to note that the sample size for male applicants is significantly smaller than that of female applicants.
|
||||
|
||||
@@ -27,6 +27,9 @@ location = ".env"
|
||||
dev = [
|
||||
"hugo-nbconvert>=2025.5.24.3",
|
||||
"jupyterlab>=4.4.6",
|
||||
"langchain>=0.3.27",
|
||||
"langchain-ollama>=0.3.7",
|
||||
"pandas>=2.3.2",
|
||||
"pre-commit>=4.1.0,<5",
|
||||
]
|
||||
|
||||
|
||||
336
uv.lock
generated
336
uv.lock
generated
@@ -2,6 +2,15 @@ version = 1
|
||||
revision = 2
|
||||
requires-python = "==3.12.*"
|
||||
|
||||
[[package]]
|
||||
name = "annotated-types"
|
||||
version = "0.7.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "anyio"
|
||||
version = "4.10.0"
|
||||
@@ -337,6 +346,9 @@ dependencies = [
|
||||
dev = [
|
||||
{ name = "hugo-nbconvert" },
|
||||
{ name = "jupyterlab" },
|
||||
{ name = "langchain" },
|
||||
{ name = "langchain-ollama" },
|
||||
{ name = "pandas" },
|
||||
{ name = "pre-commit" },
|
||||
]
|
||||
|
||||
@@ -359,9 +371,29 @@ requires-dist = [
|
||||
dev = [
|
||||
{ name = "hugo-nbconvert", specifier = ">=2025.5.24.3" },
|
||||
{ name = "jupyterlab", specifier = ">=4.4.6" },
|
||||
{ name = "langchain", specifier = ">=0.3.27" },
|
||||
{ name = "langchain-ollama", specifier = ">=0.3.7" },
|
||||
{ name = "pandas", specifier = ">=2.3.2" },
|
||||
{ name = "pre-commit", specifier = ">=4.1.0,<5" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "greenlet"
|
||||
version = "3.2.4"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/03/b8/704d753a5a45507a7aab61f18db9509302ed3d0a27ac7e0359ec2905b1a6/greenlet-3.2.4.tar.gz", hash = "sha256:0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d", size = 188260, upload-time = "2025-08-07T13:24:33.51Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/44/69/9b804adb5fd0671f367781560eb5eb586c4d495277c93bde4307b9e28068/greenlet-3.2.4-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3b67ca49f54cede0186854a008109d6ee71f66bd57bb36abd6d0a0267b540cdd", size = 274079, upload-time = "2025-08-07T13:15:45.033Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/46/e9/d2a80c99f19a153eff70bc451ab78615583b8dac0754cfb942223d2c1a0d/greenlet-3.2.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddf9164e7a5b08e9d22511526865780a576f19ddd00d62f8a665949327fde8bb", size = 640997, upload-time = "2025-08-07T13:42:56.234Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/3b/16/035dcfcc48715ccd345f3a93183267167cdd162ad123cd93067d86f27ce4/greenlet-3.2.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f28588772bb5fb869a8eb331374ec06f24a83a9c25bfa1f38b6993afe9c1e968", size = 655185, upload-time = "2025-08-07T13:45:27.624Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/31/da/0386695eef69ffae1ad726881571dfe28b41970173947e7c558d9998de0f/greenlet-3.2.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5c9320971821a7cb77cfab8d956fa8e39cd07ca44b6070db358ceb7f8797c8c9", size = 649926, upload-time = "2025-08-07T13:53:15.251Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/68/88/69bf19fd4dc19981928ceacbc5fd4bb6bc2215d53199e367832e98d1d8fe/greenlet-3.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c60a6d84229b271d44b70fb6e5fa23781abb5d742af7b808ae3f6efd7c9c60f6", size = 651839, upload-time = "2025-08-07T13:18:30.281Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/19/0d/6660d55f7373b2ff8152401a83e02084956da23ae58cddbfb0b330978fe9/greenlet-3.2.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0", size = 607586, upload-time = "2025-08-07T13:18:28.544Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/8e/1a/c953fdedd22d81ee4629afbb38d2f9d71e37d23caace44775a3a969147d4/greenlet-3.2.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0", size = 1123281, upload-time = "2025-08-07T13:42:39.858Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/3f/c7/12381b18e21aef2c6bd3a636da1088b888b97b7a0362fac2e4de92405f97/greenlet-3.2.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:20fb936b4652b6e307b8f347665e2c615540d4b42b3b4c8a321d8286da7e520f", size = 1151142, upload-time = "2025-08-07T13:18:22.981Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/e9/08/b0814846b79399e585f974bbeebf5580fbe59e258ea7be64d9dfb253c84f/greenlet-3.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:a7d4e128405eea3814a12cc2605e0e6aedb4035bf32697f72deca74de4105e02", size = 299899, upload-time = "2025-08-07T13:38:53.448Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "h11"
|
||||
version = "0.16.0"
|
||||
@@ -568,6 +600,18 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/85/e2/05328bd2621be49a6fed9e3030b1e51a2d04537d3f816d211b9cc53c5262/json5-0.12.1-py3-none-any.whl", hash = "sha256:d9c9b3bc34a5f54d43c35e11ef7cb87d8bdd098c6ace87117a7b7e83e705c1d5", size = 36119, upload-time = "2025-08-12T19:47:41.131Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jsonpatch"
|
||||
version = "1.33"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "jsonpointer" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/42/78/18813351fe5d63acad16aec57f94ec2b70a09e53ca98145589e185423873/jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c", size = 21699, upload-time = "2023-06-26T12:07:29.144Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/73/07/02e16ed01e04a374e644b575638ec7987ae846d25ad97bcc9945a3ee4b0e/jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade", size = 12898, upload-time = "2023-06-16T21:01:28.466Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jsonpointer"
|
||||
version = "3.0.0"
|
||||
@@ -816,6 +860,85 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/43/6a/ca128561b22b60bd5a0c4ea26649e68c8556b82bc70a0c396eebc977fe86/jupyterlab_widgets-3.0.15-py3-none-any.whl", hash = "sha256:d59023d7d7ef71400d51e6fee9a88867f6e65e10a4201605d2d7f3e8f012a31c", size = 216571, upload-time = "2025-05-05T12:32:29.534Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "langchain"
|
||||
version = "0.3.27"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "langchain-core" },
|
||||
{ name = "langchain-text-splitters" },
|
||||
{ name = "langsmith" },
|
||||
{ name = "pydantic" },
|
||||
{ name = "pyyaml" },
|
||||
{ name = "requests" },
|
||||
{ name = "sqlalchemy" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/83/f6/f4f7f3a56626fe07e2bb330feb61254dbdf06c506e6b59a536a337da51cf/langchain-0.3.27.tar.gz", hash = "sha256:aa6f1e6274ff055d0fd36254176770f356ed0a8994297d1df47df341953cec62", size = 10233809, upload-time = "2025-07-24T14:42:32.959Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/f6/d5/4861816a95b2f6993f1360cfb605aacb015506ee2090433a71de9cca8477/langchain-0.3.27-py3-none-any.whl", hash = "sha256:7b20c4f338826acb148d885b20a73a16e410ede9ee4f19bb02011852d5f98798", size = 1018194, upload-time = "2025-07-24T14:42:30.23Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "langchain-core"
|
||||
version = "0.3.75"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "jsonpatch" },
|
||||
{ name = "langsmith" },
|
||||
{ name = "packaging" },
|
||||
{ name = "pydantic" },
|
||||
{ name = "pyyaml" },
|
||||
{ name = "tenacity" },
|
||||
{ name = "typing-extensions" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/06/63/270b71a23e849984505ddc7c5c9fd3f4bd9cb14b1a484ee44c4e51c33cc2/langchain_core-0.3.75.tar.gz", hash = "sha256:ab0eb95a06ed6043f76162e6086b45037690cb70b7f090bd83b5ebb8a05b70ed", size = 570876, upload-time = "2025-08-26T15:24:12.246Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/fb/42/0d0221cce6f168f644d7d96cb6c87c4e42fc55d2941da7a36e970e3ab8ab/langchain_core-0.3.75-py3-none-any.whl", hash = "sha256:03ca1fadf955ee3c7d5806a841f4b3a37b816acea5e61a7e6ba1298c05eea7f5", size = 443986, upload-time = "2025-08-26T15:24:10.883Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "langchain-ollama"
|
||||
version = "0.3.7"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "langchain-core" },
|
||||
{ name = "ollama" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/c1/34/c94ec1ea0f1bae7ed4e8a05c79bdf7f49a5f0b5af1a9a0da88ace03450a7/langchain_ollama-0.3.7.tar.gz", hash = "sha256:9deeca09a44fb8c5a46b1e43d670a7301f1d1e73196fa9191a89f9883217903b", size = 31924, upload-time = "2025-08-22T20:42:46.814Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/b9/df/5d92427eabc2b070689de9d37ea90636ea51c1ec0ee75c362fa1995201cc/langchain_ollama-0.3.7-py3-none-any.whl", hash = "sha256:845192a75a1671bd36bc8c54baae2e929c3b1b0e3c8c618438df20354b0231de", size = 24905, upload-time = "2025-08-22T20:42:45.641Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "langchain-text-splitters"
|
||||
version = "0.3.11"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "langchain-core" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/11/43/dcda8fd25f0b19cb2835f2f6bb67f26ad58634f04ac2d8eae00526b0fa55/langchain_text_splitters-0.3.11.tar.gz", hash = "sha256:7a50a04ada9a133bbabb80731df7f6ddac51bc9f1b9cab7fa09304d71d38a6cc", size = 46458, upload-time = "2025-08-31T23:02:58.316Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/58/0d/41a51b40d24ff0384ec4f7ab8dd3dcea8353c05c973836b5e289f1465d4f/langchain_text_splitters-0.3.11-py3-none-any.whl", hash = "sha256:cf079131166a487f1372c8ab5d0bfaa6c0a4291733d9c43a34a16ac9bcd6a393", size = 33845, upload-time = "2025-08-31T23:02:57.195Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "langsmith"
|
||||
version = "0.4.23"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "httpx" },
|
||||
{ name = "orjson", marker = "platform_python_implementation != 'PyPy'" },
|
||||
{ name = "packaging" },
|
||||
{ name = "pydantic" },
|
||||
{ name = "requests" },
|
||||
{ name = "requests-toolbelt" },
|
||||
{ name = "zstandard" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/26/59/1f92c84585da3bad6d76050f32811198dd2bb4e6a0a63f7b0041b75344ee/langsmith-0.4.23.tar.gz", hash = "sha256:d8af9c6bf69c377a5a0a1c56bd742ab6acfce794e3c4a6993b08e76ee2397998", size = 939141, upload-time = "2025-09-02T22:06:38.606Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/3c/63/c132d3e356702668bf3103771e2398fee963c22715a88501d55361761f8f/langsmith-0.4.23-py3-none-any.whl", hash = "sha256:2b7cc692c537d5e48c2932277a69c35a89ff5b153828281194e2af34aeda985f", size = 378757, upload-time = "2025-09-02T22:06:36.621Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lark"
|
||||
version = "1.2.2"
|
||||
@@ -1022,6 +1145,61 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/f9/33/bd5b9137445ea4b680023eb0469b2bb969d61303dedb2aac6560ff3d14a1/notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef", size = 13307, upload-time = "2024-02-14T23:35:16.286Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "numpy"
|
||||
version = "2.3.2"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/37/7d/3fec4199c5ffb892bed55cff901e4f39a58c81df9c44c280499e92cad264/numpy-2.3.2.tar.gz", hash = "sha256:e0486a11ec30cdecb53f184d496d1c6a20786c81e55e41640270130056f8ee48", size = 20489306, upload-time = "2025-07-24T21:32:07.553Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/00/6d/745dd1c1c5c284d17725e5c802ca4d45cfc6803519d777f087b71c9f4069/numpy-2.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bc3186bea41fae9d8e90c2b4fb5f0a1f5a690682da79b92574d63f56b529080b", size = 20956420, upload-time = "2025-07-24T20:28:18.002Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/bc/96/e7b533ea5740641dd62b07a790af5d9d8fec36000b8e2d0472bd7574105f/numpy-2.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f4f0215edb189048a3c03bd5b19345bdfa7b45a7a6f72ae5945d2a28272727f", size = 14184660, upload-time = "2025-07-24T20:28:39.522Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/2b/53/102c6122db45a62aa20d1b18c9986f67e6b97e0d6fbc1ae13e3e4c84430c/numpy-2.3.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8b1224a734cd509f70816455c3cffe13a4f599b1bf7130f913ba0e2c0b2006c0", size = 5113382, upload-time = "2025-07-24T20:28:48.544Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/2b/21/376257efcbf63e624250717e82b4fae93d60178f09eb03ed766dbb48ec9c/numpy-2.3.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:3dcf02866b977a38ba3ec10215220609ab9667378a9e2150615673f3ffd6c73b", size = 6647258, upload-time = "2025-07-24T20:28:59.104Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/91/ba/f4ebf257f08affa464fe6036e13f2bf9d4642a40228781dc1235da81be9f/numpy-2.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:572d5512df5470f50ada8d1972c5f1082d9a0b7aa5944db8084077570cf98370", size = 14281409, upload-time = "2025-07-24T20:40:30.298Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/59/ef/f96536f1df42c668cbacb727a8c6da7afc9c05ece6d558927fb1722693e1/numpy-2.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8145dd6d10df13c559d1e4314df29695613575183fa2e2d11fac4c208c8a1f73", size = 16641317, upload-time = "2025-07-24T20:40:56.625Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f6/a7/af813a7b4f9a42f498dde8a4c6fcbff8100eed00182cc91dbaf095645f38/numpy-2.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:103ea7063fa624af04a791c39f97070bf93b96d7af7eb23530cd087dc8dbe9dc", size = 16056262, upload-time = "2025-07-24T20:41:20.797Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/8b/5d/41c4ef8404caaa7f05ed1cfb06afe16a25895260eacbd29b4d84dff2920b/numpy-2.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc927d7f289d14f5e037be917539620603294454130b6de200091e23d27dc9be", size = 18579342, upload-time = "2025-07-24T20:41:50.753Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/a1/4f/9950e44c5a11636f4a3af6e825ec23003475cc9a466edb7a759ed3ea63bd/numpy-2.3.2-cp312-cp312-win32.whl", hash = "sha256:d95f59afe7f808c103be692175008bab926b59309ade3e6d25009e9a171f7036", size = 6320610, upload-time = "2025-07-24T20:42:01.551Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/7c/2f/244643a5ce54a94f0a9a2ab578189c061e4a87c002e037b0829dd77293b6/numpy-2.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:9e196ade2400c0c737d93465327d1ae7c06c7cb8a1756121ebf54b06ca183c7f", size = 12786292, upload-time = "2025-07-24T20:42:20.738Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/54/cd/7b5f49d5d78db7badab22d8323c1b6ae458fbf86c4fdfa194ab3cd4eb39b/numpy-2.3.2-cp312-cp312-win_arm64.whl", hash = "sha256:ee807923782faaf60d0d7331f5e86da7d5e3079e28b291973c545476c2b00d07", size = 10194071, upload-time = "2025-07-24T20:42:36.657Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ollama"
|
||||
version = "0.5.3"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "httpx" },
|
||||
{ name = "pydantic" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/91/6d/ae96027416dcc2e98c944c050c492789502d7d7c0b95a740f0bb39268632/ollama-0.5.3.tar.gz", hash = "sha256:40b6dff729df3b24e56d4042fd9d37e231cee8e528677e0d085413a1d6692394", size = 43331, upload-time = "2025-08-07T21:44:10.422Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/be/f6/2091e50b8b6c3e6901f6eab283d5efd66fb71c86ddb1b4d68766c3eeba0f/ollama-0.5.3-py3-none-any.whl", hash = "sha256:a8303b413d99a9043dbf77ebf11ced672396b59bec27e6d5db67c88f01b279d2", size = 13490, upload-time = "2025-08-07T21:44:09.353Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "orjson"
|
||||
version = "3.11.3"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/be/4d/8df5f83256a809c22c4d6792ce8d43bb503be0fb7a8e4da9025754b09658/orjson-3.11.3.tar.gz", hash = "sha256:1c0603b1d2ffcd43a411d64797a19556ef76958aef1c182f22dc30860152a98a", size = 5482394, upload-time = "2025-08-26T17:46:43.171Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/3d/b0/a7edab2a00cdcb2688e1c943401cb3236323e7bfd2839815c6131a3742f4/orjson-3.11.3-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:8c752089db84333e36d754c4baf19c0e1437012242048439c7e80eb0e6426e3b", size = 238259, upload-time = "2025-08-26T17:45:15.093Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/e1/c6/ff4865a9cc398a07a83342713b5932e4dc3cb4bf4bc04e8f83dedfc0d736/orjson-3.11.3-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:9b8761b6cf04a856eb544acdd82fc594b978f12ac3602d6374a7edb9d86fd2c2", size = 127633, upload-time = "2025-08-26T17:45:16.417Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/6e/e6/e00bea2d9472f44fe8794f523e548ce0ad51eb9693cf538a753a27b8bda4/orjson-3.11.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b13974dc8ac6ba22feaa867fc19135a3e01a134b4f7c9c28162fed4d615008a", size = 123061, upload-time = "2025-08-26T17:45:17.673Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/54/31/9fbb78b8e1eb3ac605467cb846e1c08d0588506028b37f4ee21f978a51d4/orjson-3.11.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f83abab5bacb76d9c821fd5c07728ff224ed0e52d7a71b7b3de822f3df04e15c", size = 127956, upload-time = "2025-08-26T17:45:19.172Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/36/88/b0604c22af1eed9f98d709a96302006915cfd724a7ebd27d6dd11c22d80b/orjson-3.11.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e6fbaf48a744b94091a56c62897b27c31ee2da93d826aa5b207131a1e13d4064", size = 130790, upload-time = "2025-08-26T17:45:20.586Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/0e/9d/1c1238ae9fffbfed51ba1e507731b3faaf6b846126a47e9649222b0fd06f/orjson-3.11.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc779b4f4bba2847d0d2940081a7b6f7b5877e05408ffbb74fa1faf4a136c424", size = 132385, upload-time = "2025-08-26T17:45:22.036Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/a3/b5/c06f1b090a1c875f337e21dd71943bc9d84087f7cdf8c6e9086902c34e42/orjson-3.11.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd4b909ce4c50faa2192da6bb684d9848d4510b736b0611b6ab4020ea6fd2d23", size = 135305, upload-time = "2025-08-26T17:45:23.4Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/a0/26/5f028c7d81ad2ebbf84414ba6d6c9cac03f22f5cd0d01eb40fb2d6a06b07/orjson-3.11.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:524b765ad888dc5518bbce12c77c2e83dee1ed6b0992c1790cc5fb49bb4b6667", size = 132875, upload-time = "2025-08-26T17:45:25.182Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/fe/d4/b8df70d9cfb56e385bf39b4e915298f9ae6c61454c8154a0f5fd7efcd42e/orjson-3.11.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:84fd82870b97ae3cdcea9d8746e592b6d40e1e4d4527835fc520c588d2ded04f", size = 130940, upload-time = "2025-08-26T17:45:27.209Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/da/5e/afe6a052ebc1a4741c792dd96e9f65bf3939d2094e8b356503b68d48f9f5/orjson-3.11.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:fbecb9709111be913ae6879b07bafd4b0785b44c1eb5cac8ac76da048b3885a1", size = 403852, upload-time = "2025-08-26T17:45:28.478Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f8/90/7bbabafeb2ce65915e9247f14a56b29c9334003536009ef5b122783fe67e/orjson-3.11.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9dba358d55aee552bd868de348f4736ca5a4086d9a62e2bfbbeeb5629fe8b0cc", size = 146293, upload-time = "2025-08-26T17:45:29.86Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/27/b3/2d703946447da8b093350570644a663df69448c9d9330e5f1d9cce997f20/orjson-3.11.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eabcf2e84f1d7105f84580e03012270c7e97ecb1fb1618bda395061b2a84a049", size = 135470, upload-time = "2025-08-26T17:45:31.243Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/38/70/b14dcfae7aff0e379b0119c8a812f8396678919c431efccc8e8a0263e4d9/orjson-3.11.3-cp312-cp312-win32.whl", hash = "sha256:3782d2c60b8116772aea8d9b7905221437fdf53e7277282e8d8b07c220f96cca", size = 136248, upload-time = "2025-08-26T17:45:32.567Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/35/b8/9e3127d65de7fff243f7f3e53f59a531bf6bb295ebe5db024c2503cc0726/orjson-3.11.3-cp312-cp312-win_amd64.whl", hash = "sha256:79b44319268af2eaa3e315b92298de9a0067ade6e6003ddaef72f8e0bedb94f1", size = 131437, upload-time = "2025-08-26T17:45:34.949Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/51/92/a946e737d4d8a7fd84a606aba96220043dcc7d6988b9e7551f7f6d5ba5ad/orjson-3.11.3-cp312-cp312-win_arm64.whl", hash = "sha256:0e92a4e83341ef79d835ca21b8bd13e27c859e4e9e4d7b63defc6e58462a3710", size = 125978, upload-time = "2025-08-26T17:45:36.422Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "packaging"
|
||||
version = "25.0"
|
||||
@@ -1031,6 +1209,27 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pandas"
|
||||
version = "2.3.2"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "numpy" },
|
||||
{ name = "python-dateutil" },
|
||||
{ name = "pytz" },
|
||||
{ name = "tzdata" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/79/8e/0e90233ac205ad182bd6b422532695d2b9414944a280488105d598c70023/pandas-2.3.2.tar.gz", hash = "sha256:ab7b58f8f82706890924ccdfb5f48002b83d2b5a3845976a9fb705d36c34dcdb", size = 4488684, upload-time = "2025-08-21T10:28:29.257Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/ec/db/614c20fb7a85a14828edd23f1c02db58a30abf3ce76f38806155d160313c/pandas-2.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fbb977f802156e7a3f829e9d1d5398f6192375a3e2d1a9ee0803e35fe70a2b9", size = 11587652, upload-time = "2025-08-21T10:27:15.888Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/99/b0/756e52f6582cade5e746f19bad0517ff27ba9c73404607c0306585c201b3/pandas-2.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1b9b52693123dd234b7c985c68b709b0b009f4521000d0525f2b95c22f15944b", size = 10717686, upload-time = "2025-08-21T10:27:18.486Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/37/4c/dd5ccc1e357abfeee8353123282de17997f90ff67855f86154e5a13b81e5/pandas-2.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bd281310d4f412733f319a5bc552f86d62cddc5f51d2e392c8787335c994175", size = 11278722, upload-time = "2025-08-21T10:27:21.149Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d3/a4/f7edcfa47e0a88cda0be8b068a5bae710bf264f867edfdf7b71584ace362/pandas-2.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96d31a6b4354e3b9b8a2c848af75d31da390657e3ac6f30c05c82068b9ed79b9", size = 11987803, upload-time = "2025-08-21T10:27:23.767Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f6/61/1bce4129f93ab66f1c68b7ed1c12bac6a70b1b56c5dab359c6bbcd480b52/pandas-2.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:df4df0b9d02bb873a106971bb85d448378ef14b86ba96f035f50bbd3688456b4", size = 12766345, upload-time = "2025-08-21T10:27:26.6Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/8e/46/80d53de70fee835531da3a1dae827a1e76e77a43ad22a8cd0f8142b61587/pandas-2.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:213a5adf93d020b74327cb2c1b842884dbdd37f895f42dcc2f09d451d949f811", size = 13439314, upload-time = "2025-08-21T10:27:29.213Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/28/30/8114832daff7489f179971dbc1d854109b7f4365a546e3ea75b6516cea95/pandas-2.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:8c13b81a9347eb8c7548f53fd9a4f08d4dfe996836543f805c987bafa03317ae", size = 10983326, upload-time = "2025-08-21T10:27:31.901Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pandocfilters"
|
||||
version = "1.5.1"
|
||||
@@ -1168,6 +1367,46 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload-time = "2024-03-30T13:22:20.476Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pydantic"
|
||||
version = "2.11.7"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "annotated-types" },
|
||||
{ name = "pydantic-core" },
|
||||
{ name = "typing-extensions" },
|
||||
{ name = "typing-inspection" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db", size = 788350, upload-time = "2025-06-14T08:33:17.137Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/6a/c0/ec2b1c8712ca690e5d61979dee872603e92b8a32f94cc1b72d53beab008a/pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b", size = 444782, upload-time = "2025-06-14T08:33:14.905Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pydantic-core"
|
||||
version = "2.33.2"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "typing-extensions" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc", size = 435195, upload-time = "2025-04-23T18:33:52.104Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc", size = 2009000, upload-time = "2025-04-23T18:31:25.863Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/a1/02/6224312aacb3c8ecbaa959897af57181fb6cf3a3d7917fd44d0f2917e6f2/pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7", size = 1847996, upload-time = "2025-04-23T18:31:27.341Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d6/46/6dcdf084a523dbe0a0be59d054734b86a981726f221f4562aed313dbcb49/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025", size = 1880957, upload-time = "2025-04-23T18:31:28.956Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/ec/6b/1ec2c03837ac00886ba8160ce041ce4e325b41d06a034adbef11339ae422/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011", size = 1964199, upload-time = "2025-04-23T18:31:31.025Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/2d/1d/6bf34d6adb9debd9136bd197ca72642203ce9aaaa85cfcbfcf20f9696e83/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f", size = 2120296, upload-time = "2025-04-23T18:31:32.514Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/e0/94/2bd0aaf5a591e974b32a9f7123f16637776c304471a0ab33cf263cf5591a/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88", size = 2676109, upload-time = "2025-04-23T18:31:33.958Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f9/41/4b043778cf9c4285d59742281a769eac371b9e47e35f98ad321349cc5d61/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1", size = 2002028, upload-time = "2025-04-23T18:31:39.095Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/cb/d5/7bb781bf2748ce3d03af04d5c969fa1308880e1dca35a9bd94e1a96a922e/pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b", size = 2100044, upload-time = "2025-04-23T18:31:41.034Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/fe/36/def5e53e1eb0ad896785702a5bbfd25eed546cdcf4087ad285021a90ed53/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1", size = 2058881, upload-time = "2025-04-23T18:31:42.757Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/01/6c/57f8d70b2ee57fc3dc8b9610315949837fa8c11d86927b9bb044f8705419/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6", size = 2227034, upload-time = "2025-04-23T18:31:44.304Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/27/b9/9c17f0396a82b3d5cbea4c24d742083422639e7bb1d5bf600e12cb176a13/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea", size = 2234187, upload-time = "2025-04-23T18:31:45.891Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/b0/6a/adf5734ffd52bf86d865093ad70b2ce543415e0e356f6cacabbc0d9ad910/pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290", size = 1892628, upload-time = "2025-04-23T18:31:47.819Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/43/e4/5479fecb3606c1368d496a825d8411e126133c41224c1e7238be58b87d7e/pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2", size = 1955866, upload-time = "2025-04-23T18:31:49.635Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/0d/24/8b11e8b3e2be9dd82df4b11408a67c61bb4dc4f8e11b5b0fc888b38118b5/pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab", size = 1888894, upload-time = "2025-04-23T18:31:51.609Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pygments"
|
||||
version = "2.19.2"
|
||||
@@ -1219,6 +1458,15 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/08/20/0f2523b9e50a8052bc6a8b732dfc8568abbdc42010aef03a2d750bdab3b2/python_json_logger-3.3.0-py3-none-any.whl", hash = "sha256:dd980fae8cffb24c13caf6e158d3d61c0d6d22342f932cb6e9deedab3d35eec7", size = 15163, upload-time = "2025-03-07T07:08:25.627Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pytz"
|
||||
version = "2025.2"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload-time = "2025-03-25T02:25:00.538Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload-time = "2025-03-25T02:24:58.468Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pywin32"
|
||||
version = "311"
|
||||
@@ -1305,6 +1553,18 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847, upload-time = "2025-06-09T16:43:05.728Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "requests-toolbelt"
|
||||
version = "1.0.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "requests" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload-time = "2023-05-01T04:11:28.427Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rfc3339-validator"
|
||||
version = "0.1.4"
|
||||
@@ -1443,6 +1703,27 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/e7/9c/0e6afc12c269578be5c0c1c9f4b49a8d32770a080260c333ac04cc1c832d/soupsieve-2.7-py3-none-any.whl", hash = "sha256:6e60cc5c1ffaf1cebcc12e8188320b72071e922c2e897f737cadce79ad5d30c4", size = 36677, upload-time = "2025-04-20T18:50:07.196Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sqlalchemy"
|
||||
version = "2.0.43"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "greenlet", marker = "platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64'" },
|
||||
{ name = "typing-extensions" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/d7/bc/d59b5d97d27229b0e009bd9098cd81af71c2fa5549c580a0a67b9bed0496/sqlalchemy-2.0.43.tar.gz", hash = "sha256:788bfcef6787a7764169cfe9859fe425bf44559619e1d9f56f5bddf2ebf6f417", size = 9762949, upload-time = "2025-08-11T14:24:58.438Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/61/db/20c78f1081446095450bdc6ee6cc10045fce67a8e003a5876b6eaafc5cc4/sqlalchemy-2.0.43-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:20d81fc2736509d7a2bd33292e489b056cbae543661bb7de7ce9f1c0cd6e7f24", size = 2134891, upload-time = "2025-08-11T15:51:13.019Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/45/0a/3d89034ae62b200b4396f0f95319f7d86e9945ee64d2343dcad857150fa2/sqlalchemy-2.0.43-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b9fc27650ff5a2c9d490c13c14906b918b0de1f8fcbb4c992712d8caf40e83", size = 2123061, upload-time = "2025-08-11T15:51:14.319Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/cb/10/2711f7ff1805919221ad5bee205971254845c069ee2e7036847103ca1e4c/sqlalchemy-2.0.43-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6772e3ca8a43a65a37c88e2f3e2adfd511b0b1da37ef11ed78dea16aeae85bd9", size = 3320384, upload-time = "2025-08-11T15:52:35.088Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/6e/0e/3d155e264d2ed2778484006ef04647bc63f55b3e2d12e6a4f787747b5900/sqlalchemy-2.0.43-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a113da919c25f7f641ffbd07fbc9077abd4b3b75097c888ab818f962707eb48", size = 3329648, upload-time = "2025-08-11T15:56:34.153Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/5b/81/635100fb19725c931622c673900da5efb1595c96ff5b441e07e3dd61f2be/sqlalchemy-2.0.43-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4286a1139f14b7d70141c67a8ae1582fc2b69105f1b09d9573494eb4bb4b2687", size = 3258030, upload-time = "2025-08-11T15:52:36.933Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/0c/ed/a99302716d62b4965fded12520c1cbb189f99b17a6d8cf77611d21442e47/sqlalchemy-2.0.43-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:529064085be2f4d8a6e5fab12d36ad44f1909a18848fcfbdb59cc6d4bbe48efe", size = 3294469, upload-time = "2025-08-11T15:56:35.553Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/5d/a2/3a11b06715149bf3310b55a98b5c1e84a42cfb949a7b800bc75cb4e33abc/sqlalchemy-2.0.43-cp312-cp312-win32.whl", hash = "sha256:b535d35dea8bbb8195e7e2b40059e2253acb2b7579b73c1b432a35363694641d", size = 2098906, upload-time = "2025-08-11T15:55:00.645Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/bc/09/405c915a974814b90aa591280623adc6ad6b322f61fd5cff80aeaef216c9/sqlalchemy-2.0.43-cp312-cp312-win_amd64.whl", hash = "sha256:1c6d85327ca688dbae7e2b06d7d84cfe4f3fffa5b5f9e21bb6ce9d0e1a0e0e0a", size = 2126260, upload-time = "2025-08-11T15:55:02.965Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/b8/d9/13bdde6521f322861fab67473cec4b1cc8999f3871953531cf61945fad92/sqlalchemy-2.0.43-py3-none-any.whl", hash = "sha256:1681c21dd2ccee222c2fe0bef671d1aef7c504087c9c4e800371cfcc8ac966fc", size = 1924759, upload-time = "2025-08-11T15:39:53.024Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "stack-data"
|
||||
version = "0.6.3"
|
||||
@@ -1457,6 +1738,15 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tenacity"
|
||||
version = "9.1.2"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/0a/d4/2b0cd0fe285e14b36db076e78c93766ff1d529d70408bd1d2a5a84f1d929/tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb", size = 48036, upload-time = "2025-04-02T08:25:09.966Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138", size = 28248, upload-time = "2025-04-02T08:25:07.678Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "terminado"
|
||||
version = "0.18.1"
|
||||
@@ -1544,6 +1834,27 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76", size = 43906, upload-time = "2025-07-04T13:28:32.743Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "typing-inspection"
|
||||
version = "0.4.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "typing-extensions" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28", size = 75726, upload-time = "2025-05-21T18:55:23.885Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51", size = 14552, upload-time = "2025-05-21T18:55:22.152Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tzdata"
|
||||
version = "2025.2"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", size = 196380, upload-time = "2025-03-23T13:54:43.652Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload-time = "2025-03-23T13:54:41.845Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "uri-template"
|
||||
version = "1.3.0"
|
||||
@@ -1657,3 +1968,28 @@ sdist = { url = "https://files.pythonhosted.org/packages/41/53/2e0253c5efd69c965
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/ca/51/5447876806d1088a0f8f71e16542bf350918128d0a69437df26047c8e46f/widgetsnbextension-4.0.14-py3-none-any.whl", hash = "sha256:4875a9eaf72fbf5079dc372a51a9f268fc38d46f767cbf85c43a36da5cb9b575", size = 2196503, upload-time = "2025-04-10T13:01:23.086Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zstandard"
|
||||
version = "0.24.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/09/1b/c20b2ef1d987627765dcd5bf1dadb8ef6564f00a87972635099bb76b7a05/zstandard-0.24.0.tar.gz", hash = "sha256:fe3198b81c00032326342d973e526803f183f97aa9e9a98e3f897ebafe21178f", size = 905681, upload-time = "2025-08-17T18:36:36.352Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/26/e9/0bd281d9154bba7fc421a291e263911e1d69d6951aa80955b992a48289f6/zstandard-0.24.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a2bda8f2790add22773ee7a4e43c90ea05598bffc94c21c40ae0a9000b0133c3", size = 795710, upload-time = "2025-08-17T18:22:19.189Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/36/26/b250a2eef515caf492e2d86732e75240cdac9d92b04383722b9753590c36/zstandard-0.24.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cc76de75300f65b8eb574d855c12518dc25a075dadb41dd18f6322bda3fe15d5", size = 640336, upload-time = "2025-08-17T18:22:20.466Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/79/bf/3ba6b522306d9bf097aac8547556b98a4f753dc807a170becaf30dcd6f01/zstandard-0.24.0-cp312-cp312-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:d2b3b4bda1a025b10fe0269369475f420177f2cb06e0f9d32c95b4873c9f80b8", size = 5342533, upload-time = "2025-08-17T18:22:22.326Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/ea/ec/22bc75bf054e25accdf8e928bc68ab36b4466809729c554ff3a1c1c8bce6/zstandard-0.24.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9b84c6c210684286e504022d11ec294d2b7922d66c823e87575d8b23eba7c81f", size = 5062837, upload-time = "2025-08-17T18:22:24.416Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/48/cc/33edfc9d286e517fb5b51d9c3210e5bcfce578d02a675f994308ca587ae1/zstandard-0.24.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:c59740682a686bf835a1a4d8d0ed1eefe31ac07f1c5a7ed5f2e72cf577692b00", size = 5393855, upload-time = "2025-08-17T18:22:26.786Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/73/36/59254e9b29da6215fb3a717812bf87192d89f190f23817d88cb8868c47ac/zstandard-0.24.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:6324fde5cf5120fbf6541d5ff3c86011ec056e8d0f915d8e7822926a5377193a", size = 5451058, upload-time = "2025-08-17T18:22:28.885Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/9a/c7/31674cb2168b741bbbe71ce37dd397c9c671e73349d88ad3bca9e9fae25b/zstandard-0.24.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:51a86bd963de3f36688553926a84e550d45d7f9745bd1947d79472eca27fcc75", size = 5546619, upload-time = "2025-08-17T18:22:31.115Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/e6/01/1a9f22239f08c00c156f2266db857545ece66a6fc0303d45c298564bc20b/zstandard-0.24.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d82ac87017b734f2fb70ff93818c66f0ad2c3810f61040f077ed38d924e19980", size = 5046676, upload-time = "2025-08-17T18:22:33.077Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/a7/91/6c0cf8fa143a4988a0361380ac2ef0d7cb98a374704b389fbc38b5891712/zstandard-0.24.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:92ea7855d5bcfb386c34557516c73753435fb2d4a014e2c9343b5f5ba148b5d8", size = 5576381, upload-time = "2025-08-17T18:22:35.391Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/e2/77/1526080e22e78871e786ccf3c84bf5cec9ed25110a9585507d3c551da3d6/zstandard-0.24.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3adb4b5414febf074800d264ddf69ecade8c658837a83a19e8ab820e924c9933", size = 4953403, upload-time = "2025-08-17T18:22:37.266Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/6e/d0/a3a833930bff01eab697eb8abeafb0ab068438771fa066558d96d7dafbf9/zstandard-0.24.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6374feaf347e6b83ec13cc5dcfa70076f06d8f7ecd46cc71d58fac798ff08b76", size = 5267396, upload-time = "2025-08-17T18:22:39.757Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f3/5e/90a0db9a61cd4769c06374297ecfcbbf66654f74cec89392519deba64d76/zstandard-0.24.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:13fc548e214df08d896ee5f29e1f91ee35db14f733fef8eabea8dca6e451d1e2", size = 5433269, upload-time = "2025-08-17T18:22:42.131Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/ce/58/fc6a71060dd67c26a9c5566e0d7c99248cbe5abfda6b3b65b8f1a28d59f7/zstandard-0.24.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0a416814608610abf5488889c74e43ffa0343ca6cf43957c6b6ec526212422da", size = 5814203, upload-time = "2025-08-17T18:22:44.017Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/5c/6a/89573d4393e3ecbfa425d9a4e391027f58d7810dec5cdb13a26e4cdeef5c/zstandard-0.24.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0d66da2649bb0af4471699aeb7a83d6f59ae30236fb9f6b5d20fb618ef6c6777", size = 5359622, upload-time = "2025-08-17T18:22:45.802Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/60/ff/2cbab815d6f02a53a9d8d8703bc727d8408a2e508143ca9af6c3cca2054b/zstandard-0.24.0-cp312-cp312-win32.whl", hash = "sha256:ff19efaa33e7f136fe95f9bbcc90ab7fb60648453b03f95d1de3ab6997de0f32", size = 435968, upload-time = "2025-08-17T18:22:49.493Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/ce/a3/8f96b8ddb7ad12344218fbd0fd2805702dafd126ae9f8a1fb91eef7b33da/zstandard-0.24.0-cp312-cp312-win_amd64.whl", hash = "sha256:bc05f8a875eb651d1cc62e12a4a0e6afa5cd0cc231381adb830d2e9c196ea895", size = 505195, upload-time = "2025-08-17T18:22:47.193Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/a3/4a/bfca20679da63bfc236634ef2e4b1b4254203098b0170e3511fee781351f/zstandard-0.24.0-cp312-cp312-win_arm64.whl", hash = "sha256:b04c94718f7a8ed7cdd01b162b6caa1954b3c9d486f00ecbbd300f149d2b2606", size = 461605, upload-time = "2025-08-17T18:22:48.317Z" },
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user