1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
Ë
oñúhc4ãóž3—ddlmZddlZddlmZddlZddlmZmZmZmZddl    m
Z
ddl m Z ddl Z ddlmZddlZddlZddlZddlmZdd    lmZdd
lmZmZdd lmZddlmcmZ ddl!Z"dd l!m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,ddl-m.Z/dd l0m1Z1ddl2m3Z3ddl4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;erddl<Z<ejzj}d«ejzj~gZ@ej‚d„«ZBd„ZCd1d„ZDd1d„ZEd1d„ZFd„ZGd2d„ZHd3d„ZId3d„ZJd4d„ZKd„ZLd5d„ZMd6d„ZNej‚d„«ZOej‚d„«ZPej‚d „«ZQej‚d!„«ZRej‚d"„«ZSd#„ZTd$„ZU                d7d&„ZV                d8d'„ZWej‚d(„«ZXej‚d)„«ZYej‚d*„«ZZej‚d+„«Z[ej‚d,„«Z\ej‚d-„«Z]ej‚d.„«Z^ej‚d/„«Z_ej‚d0„«Z`ej‚d1„«Zaej‚d2„«Zbej‚d3„«Zcej‚d4„«Zdej‚d5„«Zeej‚d6„«Zfej‚d7„«Zgej‚d8„«Zhej‚d9„«Ziej‚d:„«Zjej‚d;„«Zkej‚d<„«Zlej‚d=„«Zmej‚d>„«Znej‚d?„«Zoej‚d@„«Zpej‚dA„«Zqej‚dB„«Zrej‚dC„«Zsej‚dD„«Ztej‚dE„«ZuejìdFejzjî¬G«ejìdHejzjî¬G«gZxejìdIejzjî¬G«ejìdJejzjî¬G«gZyejìdKejzjî¬G«ejìdLejzjî¬G«gZzejìdMejzjî¬G«ejìdNejzjî¬G«gZ{ejìdOejzjî¬G«ejìdPejzjî¬G«gZ|ejìdQejzjî¬G«ejìdRejzjî¬G«gZ}gdS¢Z~gdT¢ZgdU¢Z€exe{ze~zZeye|zezZ‚eze}ze€zZƒdVejìdWejzjî¬G«gZ„ejìdXejzjî¬G«dYgZ…ejìdZejzjî¬G«d[gZ†ed\gze„zZ‡e‚d]gze…zZˆeƒd^gze†zZ‰ejzjd%e‡«d_„«Z‹ejzjd%e‡«d`„«ZŒejzjd%e‡«da„«Zejzjd%e‡«db„«ZŽejzjd%e‡«ejzjdcdddg«de„««Zejzjd%e‡«ejzjdfdgdhg«di„««Zejzjd%e‡«dj„«Z‘ejzjd%eˆ«dk„«Z’ejzjd%eˆ«dl„«Z“ejzjd%e‚«dm„«Z”ejzjd%eˆ«dn„«Z•ejzjd%e‚«do„«Z–ejzjd%e‚«dp„«Z—ejzjd%e«dq„«Z˜ejzjd%e‰«dr„«Z™ejzjd%ex«ds„«Zšejzjd%e{«ejzjdtdudvg«dw„««Z›ejzjd%e{«dx„«Zœejzjd%e‡«dy„«Zejzjd%ex«dz„«Zžejzjd%e{«d{„«ZŸd|„Z d}„Z¡d~„Z¢d„Z£ejzjd%eˆ«d€„«Z¤ejzjd%eˆ«d„«Z¥ejzjd%eˆ«d‚„«Z¦ejzjd%eˆ«dƒ„«Z§ejzjd%eˆ«d„„«Z¨ejzjd%e‡«d…„«Z©ejzjd%e‡«d†„«Zªejzjd%e‡«d‡„«Z«ejzjd%e‡«dˆ„«Z¬ejzjd%e‡«d‰„«Z­ejzjd%e‡«dŠ„«Z®ejzjd%e‡«d‹„«Z¯ejzjd%e‡«dŒ„«Z°ejzjd%eˆ«d„«Z±ejzjd%e‰«dŽ„«Z²ejzjd%e‰«ejzjdgd¢«ejzjd‘e3jfd’d“fe3jfd”d•fe3jtd’d“fe3jvd”d•fg«d–„«««Z´ejzjd%e‰«d—„«Zµejzjd%e‡«d˜„«Z¶ejzjd%e‡«d™„«Z·ejzjd%e‡«ejzjdšgd›¢«dœ„««Z¸ejzjd%e‡«d„«Z¹ejzjd%e‡«dž„«Zºejzjd%e‡«ejzjdŸde»e¼e»e¼d œg«d¡„««Z½ejzjd%e‡«d¢„«Z¾ejzjd%e‡«d£„«Z¿ejzjd%e‡«d¤„«ZÀejzjd%e‡«d¥„«ZÁejzjd%e‡«d¦„«ZÂejzjd%e‡«d§„«ZÃejzjd%e‡«d¨„«ZÄejzjd%e‡«d©„«ZÅejzjd%e‡«dª„«ZÆejzjd%e‡«d«„«ZÇejzjd%e‡«d¬„«ZÈejzjd%e‡«d­„«ZÉejzjd%eˆ«d®„«ZÊd¯„ZËejzjd%e‡«d°„«ZÌejzjd%e«d±„«ZÍejzjd%e«ejzjd²d³d´dµd¶d·d¸d¹dºd»d¼d½d¾d¿dÀe»ejœe»«jždÁk(rdÂndÃfg«dĄ««ZÐejzjd%e«ejzjdÅdÆdÇg«dȄ««ZÑejzjd%e‡«dɄ«ZÒe j¦dÊ«ejzjd%e‡«d˄««ZÔejzjd%e‚«d̄«ZÕejzjd%e‚«d̈́«ZÖejzjd%e‡«d΄«Z×dτZØe j¦d•«dЄ«ZÙe j¦d•«dф«ZÚd҄ZÛdӄZÜdԄZÝejzjd%e«dՄ«ZÞejzjd%e«dք«Zßejzjd%e‡«dׄ«Zàejzjd%eˆ«d؄«Záejzjd%e‚«dل«Zâejzjd%e‚«dڄ«Zãejzjd%e‚«dۄ«Zäejzjd%eƒ«d܄«Zåejzjd%e«d݄«Zæejzjd%eƒ«dބ«Zçejzjd%e{«ejzjdßddàgg«dᄫ«Zèejzjd%e{«dÅZéejzjd%e{«dㄫZêejzjd%e«d䄫Zëejzjd%e«d儫Zìejzjd%e«d愫Zíejzjd%eƒ«d焫Zîejzjd%e«d脫Zïejzjd%e«d鄫Zðejzjd%e«dꄫZñejzjd%e«d넫Zòejzjd%e«d섫Zóejzjd%e«d턫Zôejzjd%e«dZõejzjd%e«dZöejzjd%e‡«dð„«Z÷ejzjd%e‡«dñ„«Zøejzjd%e‡«dò„«Zùejzjd%e«dó„«Zúejzjd%e«dô„«Zûejzjd%e«dõ„«Züejzjd%e«dö„«Zýejzjd%e«d÷„«Zþejzjd%e«ejzjdødùejþgidùejþ giejþ gdúgdûœg«dü„««Zejzjd%e«dý„«Zejzjd%e‡«dþ„«Zejzjd%e‡«dÿ„«Zejzjd%e«d„«Zejzjd%e‡«d„«Zd„Zd„Zejzjd%e‡«ejzjdddg«d„««Zejzjd%e‡«ejzjdddg«d    „««Z    ejzjd%e‡«ejzjdgd
¢«d „««Z
ej‚d9d „«Z ej‚d „«Z ejzjd%e‡«d„«Z ejzjd%e‡«ejzjdejdg«ejzjdddg«d„«««Zd„Zd„Zd„Zd„Zd„Zd„Zej‚d„«Zd„Zejzjîd„«Zejzjîd„«Zd„Zd„Zejzjddd g«d!„«Zd"„Zd#„Zd$„Zd%„Z d&„Z!d:d'„Z"d(„Z#d)„Z$d*„Z%d+„Z&d,„Z'd-„Z(d.„Z)d/„Z*d0„Z+y(;é)Ú annotationsN)Úclosing)ÚdateÚdatetimeÚtimeÚ    timedelta)ÚStringIO©ÚPath)Ú TYPE_CHECKING)Úusing_string_dtype)Úlib)Úpa_version_under13p0Úpa_version_under14p1)Úimport_optional_dependency)
Ú    DataFrameÚIndexÚ
MultiIndexÚSeriesÚ    TimestampÚconcatÚ
date_rangeÚisnaÚ to_datetimeÚ to_timedelta)ÚVersion)Úsql)ÚSQLAlchemyEngineÚ SQLDatabaseÚSQLiteDatabaseÚ
get_engineÚpandasSQL_builderÚread_sql_queryÚread_sql_tablez=ignore:Passing a BlockManager to DataFrame:DeprecationWarningcó&—ddddœddddœdd    d
dœd œS) Nz1SELECT * FROM iris WHERE Name=? AND SepalLength=?z7SELECT * FROM iris WHERE `Name`=%s AND `SepalLength`=%sz7SELECT * FROM iris WHERE "Name"=%s AND "SepalLength"=%s)ÚsqliteÚmysqlÚ
postgresqlz]
                SELECT * FROM iris WHERE Name=:name AND SepalLength=:length
                zw
                SELECT * FROM iris WHERE
                `Name`=%(name)s AND `SepalLength`=%(length)s
                zw
                SELECT * FROM iris WHERE
                "Name"=%(name)s AND "SepalLength"=%(length)s
                z&SELECT * FROM iris WHERE Name LIKE '%'z(SELECT * FROM iris WHERE `Name` LIKE '%'z(SELECT * FROM iris WHERE "Name" LIKE '%')Úread_parametersÚread_named_parametersÚread_no_parameters_with_percent©r,óúKH:\Change_password\venv_build\Lib\site-packages\pandas/tests/io/test_sql.pyÚ sql_stringsr/FsA€ðJØNØSñ
ð ððñ "
ð?Ø?ØFñ,
ñ' ðr-cóô—ddl}ddlm}m}m}m}m}m}t|j«td«k\r|n|}|«}|d||d|«|d|«|d|«|d|«|d    |d
«««}    |    S) Nr)ÚColumnÚDoubleÚFloatÚMetaDataÚStringÚTablez2.0.0ÚirisÚ SepalLengthÚ
SepalWidthÚ PetalLengthÚ
PetalWidthÚNameéÈ)    Ú
sqlalchemyr1r2r3r4r5r6rÚ __version__)
r>r1r2r3r4r5r6ÚdtypeÚmetadatar7s
          r.Úiris_table_metadatarBcsƒ€Û÷÷ô˜j×4Ñ4Ó5¼ÀÓ9IÒI‰FÈu€EÙ‹z€HÙ ØØÙˆ}˜eÓ$Ùˆ|˜UÓ#Ùˆ}˜eÓ$Ùˆ|˜UÓ#Ùˆv‘v˜c“{Ó#ó €Dð €Kr-c óÞ—d}|j«}|j|«|jdd¬«5}tj|«}t |«d}g}|Dcgc]<}t |d«t |d«t |d«t |d«|d    f‘Œ>}}|j||«ddd«|j«|j«ycc}w#1swYŒ/xYw)
Nz³CREATE TABLE iris (
            "SepalLength" REAL,
            "SepalWidth" REAL,
            "PetalLength" REAL,
            "PetalWidth" REAL,
            "Name" TEXT
        )úutf-8©ÚnewlineÚencodingz&INSERT INTO iris VALUES(?, ?, ?, ?, ?)réééé)
ÚcursorÚexecuteÚopenÚcsvÚreaderÚnextÚfloatÚ executemanyÚcloseÚcommit)ÚconnÚ    iris_fileÚstmtÚcurÚcsvfilerPÚrecordsÚrows        r.Úcreate_and_load_iris_sqlite3r]|sç€ð €Dð +‰+‹-€C؇KKÔØ    ‰ ¨wˆÓ    7ð'¸7Ü—‘˜GÓ$ˆÜ ˆVŒ Ø7ˆàˆðö    
ðô c˜!‘f“ ܐc˜!‘f“ ܐc˜!‘f“ ܐc˜!‘f“ ؐA‘ò  ð    
ˆð    
ð     ‰˜˜gÔ&÷#'ð$‡II„Kà‡KK…Mùò    
÷ 'ð'ús·)C#Á ACÂ!C#ÃC#Ã#C,c óä—d}|j«5}|j|«|jdd¬«5}tj|«}t |«d}|Dcgc]<}t |d«t |d«t |d«t |d«|d    f‘Œ>}}|j||«ddd«ddd«|j«ycc}w#1swYŒ'xYw#1swYŒ+xYw)
NzãCREATE TABLE iris (
            "SepalLength" DOUBLE PRECISION,
            "SepalWidth" DOUBLE PRECISION,
            "PetalLength" DOUBLE PRECISION,
            "PetalWidth" DOUBLE PRECISION,
            "Name" TEXT
        )rDrEz+INSERT INTO iris VALUES($1, $2, $3, $4, $5)rrHrIrJrK)    rLrMrNrOrPrQrRrSrU)rVrWrXrYrZrPr\r[s        r.Úcreate_and_load_iris_postgresqlr_žsî€ð €Dð
‰‹ð+˜#Ø  ‰ DÔØ ^‰^ D°7ˆ^Ó ;ð    +¸wÜ—Z‘Z Ó(ˆFÜ ŒLØ@ˆDð"ö    ðô ˜#˜a™&“Mܘ#˜a™&“Mܘ#˜a™&“Mܘ#˜a™&“Mؘ‘Fò ð    ˆGð    ð O‰O˜D 'Ô *÷!    +÷+ð(    ‡KK…Mùò    ÷     +ð    +ú÷+ð+ús5“%C&¸'CÁAC CÂ4C&ÃCÃC#    ÃC&Ã&C/c
óæ—ddlm}t«}|jdd¬«5}t    j
|«}t |«}|Dcgc]}tt||««‘Œ}}||«j|«}    |j«5}
|j|
d¬«|j|
¬«|
j|    «ddd«ddd«ycc}w#1swYŒxYw#1swYyxYw)Nr©ÚinsertrDrET©Ú
checkfirst©Úbind)r>rbrBrNrOrPrQÚdictÚzipÚvaluesÚbeginÚdropÚcreaterM) rVrWrbr7rZrPÚheaderr\ÚparamsrXÚcons            r.Úcreate_and_load_irisrp½sҀÝ!ä Ó  €Dà    ‰ ¨wˆÓ    7ð¸7Ü—‘˜GÓ$ˆÜf“ˆØ4:Ö;¨S”$”s˜6 3Ó'Õ(Ð;ˆÐ;ِd‹|×"Ñ" 6Ó*ˆØ Z‰Z‹\ð    ˜SØ I‰Ic dˆIÔ +Ø K‰K˜SˆKÔ !Ø K‰K˜Ô ÷    ÷ ðùò<÷    ð    ú÷ ðús5¤%C'Á    CÁ%)C'Â7CÃC'ÃC'ÃC$    Ã C'Ã'C0cóà—d}t|tj«r"|j«}|j    |«yt dd¬«}|rQt||j«r;|j«5}|j    |«ddd«|j «yddlm}||«}|j«5}|j    |«ddd«y#1swYŒSxYw#1swYyxYw)Nz+CREATE VIEW iris_view AS SELECT * FROM irisúadbc_driver_manager.dbapiÚignore©Úerrorsr©Útext)
Ú
isinstanceÚsqlite3Ú
ConnectionrLrMrrUr>rwrj)rVrXrYÚadbcrwros      r.Úcreate_and_load_iris_viewr|Ís½€Ø 8€Dܐ$œ×*Ñ*Ô+؏k‰k‹mˆØ  ‰ DÕä)Ð*EÈhÔWˆÙ ”J˜t T§_¡_Ô5Ø—‘“ð " #Ø— ‘ ˜DÔ!÷ "à K‰KMå 'ᘓ:ˆDØ—‘“ð " Ø— ‘ ˜DÔ!÷ "ð "÷ "ð "ú÷ "ð "úsÁ4CÂ=C$ÃC!Ã$C-có—ddlm}m}m}m}m}m}m}m}|dk(r|n|}    |dk(r|n|}
|«} |d| |d|«|d|    «|d|«|d|«|d    |«|d
|«|d |
«|d |«|d |
«« } | S)Nr)ÚTEXTÚBooleanr1ÚDateTimer3ÚIntegerr4r6r&ÚtypesÚTextColÚDateColÚ
IntDateColÚIntDateOnlyColÚFloatColÚIntColÚBoolColÚIntColWithNullÚBoolColWithNull)    r>r~rr1r€r3rr4r6) Údialectr~rr1r€r3rr4r6Ú    date_typeÚ    bool_typerAr‚s              r.Útypes_table_metadataràsª€÷    ÷    ó    ð  8Ò+‘°€IØ" hÒ.‘°G€IÙ‹z€HÙ ØØÙˆy˜$ÓÙˆy˜)Ó$Ùˆ|˜WÓ%ÙРÓ)Ùˆz˜5Ó!Ùˆx˜Ó!Ùˆy˜)Ó$ÙРÓ)ÙР )Ó,ó €Eð €Lr-cóX—d}d}t|tj«r4|j«}|j    |«|j ||«y|j«5}|j    |«|j ||«ddd«|j «y#1swYŒxYw)Na”CREATE TABLE types (
                    "TextCol" TEXT,
                    "DateCol" TEXT,
                    "IntDateCol" INTEGER,
                    "IntDateOnlyCol" INTEGER,
                    "FloatCol" REAL,
                    "IntCol" INTEGER,
                    "BoolCol" INTEGER,
                    "IntColWithNull" INTEGER,
                    "BoolColWithNull" INTEGER
                )ze
                INSERT INTO types
                VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)
                )rxryrzrLrMrSrU)rVÚ
types_datarXÚins_stmtrYs     r.Úcreate_and_load_types_sqlite3r“ÿsŒ€ð
€Dð€Hô
$œ×*Ñ*Ô+؏k‰k‹mˆØ  ‰ DÔØ ‰˜ *Õ-à [‰[‹]ð    2˜cØ K‰K˜Ô Ø O‰O˜H jÔ 1÷    2ð      ‰  ÷        2ð    2ús Á#$B  B)có¼—|j«5}d}|j|«d}|j||«ddd«|j«y#1swYŒxYw)NaÍCREATE TABLE types (
                        "TextCol" TEXT,
                        "DateCol" TIMESTAMP,
                        "IntDateCol" INTEGER,
                        "IntDateOnlyCol" INTEGER,
                        "FloatCol" DOUBLE PRECISION,
                        "IntCol" INTEGER,
                        "BoolCol" BOOLEAN,
                        "IntColWithNull" INTEGER,
                        "BoolColWithNull" BOOLEAN
                    )zy
                INSERT INTO types
                VALUES($1, $2::timestamp, $3, $4, $5, $6, $7, $8, $9)
                )rLrMrSrU)rVr‘rYrXs    r.Ú create_and_load_types_postgresqlr•sY€Ø     ‰‹ð*˜#ð
ˆð      ‰ DÔðˆð
     ‰˜˜jÔ)÷'*ð*    ‡KK…M÷+*ð*ús ‘(AÁAcó0—ddlm}ddlm}t    |«}||«j |«}t ||«ri|j«5}|j«5|j|d¬«|j|¬«|j|«ddd«ddd«y|j«5|j|d¬«|j|¬«|j|«ddd«y#1swYŒbxYw#1swYyxYw#1swYyxYw)Nrra©ÚEngineTrcre) r>rbÚsqlalchemy.enginer˜rrirxÚconnectrjrkrlrM)rVr‘rŒrbr˜r‚rXs       r.Úcreate_and_load_typesr›6sì€Ý!Ý(ä   Ó )€Eá %‹=× Ñ  
Ó +€Dܐ$˜ÔØ \‰\‹^ð    #˜tØ—‘“ñ #Ø—
‘
˜4¨D
Ô1Ø— ‘  $ Ô'Ø— ‘ ˜TÔ"÷ #÷    #ð    #ð Z‰Z‹\ñ    Ø J‰Jt¨ˆJÔ -Ø L‰L˜dˆLÔ #Ø L‰L˜Ô ÷    ð    ÷  #ð #ú÷    #ð    #ú÷     ð    ús0Á DÁ7C4ÂDÂ47D Ã4C=    Ã9DÄD    Ä Dc
óÄ—ddlm}m}m}m}m}ddlm}|«}|d||d|d¬«««}ddidd    ig}    ||«j|    «}
t||«ri|j«5}|j«5|j|d¬
«|j|¬ «|j|
«ddd«ddd«nO|j«5|j|d¬
«|j|¬ «|j|
«ddd«td d ¬«tdd ¬«g} t!| d¬«S#1swYŒˆxYw#1swYŒ<xYw#1swYŒHxYw)Nr)r1r€r4r6rbr—ÚdatetzÚ DateColWithTzT)Útimezonez2000-01-01 00:00:00-08:00z2000-06-01 00:00:00-07:00rcrez2000-01-01 08:00:00ÚUTC©Útzz2000-06-01 07:00:00©Úname)r>r1r€r4r6rbr™r˜rirxršrjrkrlrMrr) rVr1r€r4r6rbr˜rArÚ datetz_datarXÚ expected_datas             r.Úcreate_and_load_postgres_datetzr§JsY€÷õõ)á‹z€HÙ 8˜X¡v¨o¹xÐQUÔ?VÓ'WÓ X€Fð Ð8ð    
ð Ð8ð    
ð    €Kñ &‹>×  Ñ   Ó -€Dܐ$˜ÔØ \‰\‹^ð    #˜tØ—‘“ñ #Ø— ‘ ˜D¨T Ô2Ø— ‘  4 Ô(Ø— ‘ ˜TÔ"÷ #÷    #ð    #ð Z‰Z‹\ñ    Ø K‰K˜¨ˆKÔ .Ø M‰M˜tˆMÔ $Ø L‰L˜Ô ÷    ô    Ð'¨EÔ2ÜÐ'¨EÔ2ð€Mô - oÔ 6Ð6÷' #ð #ú÷    #ð    #ú÷     ð    ús0Á/E
Â7D>Â7E
Ã7EÄ>E    ÅE
EÅEcó—|jjdj}|jd}t|tj
«sJ‚t j|tgd¢|jd¬««|jdvsJ‚y)Nr©çffffff@g @gffffffö?皙™™™™É?ú Iris-setosa)Úindexr¤))é–é)ér¯) ÚdtypesÚilocÚtypeÚ
issubclassÚnpÚfloatingÚtmÚassert_series_equalrÚcolumnsÚshape)ÚframeÚpytyper\s   r.Úcheck_iris_framer½wst€Ø \‰\× Ñ ˜qÑ !× &Ñ &€FØ
*‰*Q‰-€CÜ fœbŸk™kÔ *Ð*Ð *Ü×ÑØ ŒVÒ7¸u¿}¹}ÐSTÔ Uôð ;‰;Ð,Ñ ,Ð,Ñ ,r-có¤—d|›}tdd¬«}t|tj«r2|j    «}|j |«j «dS|rTt||j«r>|j    «5}|j |«|j «dcddd«Sddlm}ddl    m
}t|t«rR    ||«}|j«5}|j|«j«cddd«|j«St||«r9|j«5}|j|«j«cddd«S|j|«j«S#1swYyxYw#1swYnxYw    |j«y#j«wxYw#1swYyxYw)Nz SELECT count(*) AS count_1 FROM rrrsrtr)Ú create_enginer—)rrxryrzrLrMÚfetchoner>r¿r™r˜ÚstrršÚexec_driver_sqlÚ
scalar_oneÚdispose)rVÚ
table_namerXr{rYr¿r˜Úengines        r.Ú
count_rowsrǁs€Ø -¨j¨\Ð :€DÜ %Ð&AÈ(Ô S€Dܐ$œ×*Ñ*Ô+؏k‰k‹mˆØ{‰{˜4Ó ×)Ñ)Ó+¨AÑ.Ð.Ù     ”*˜T 4§?¡?Ô3Ø [‰[‹]ð    %˜cØ K‰K˜Ô Ø—<‘<“> !Ñ$÷    %ñ    %õ    -Ý,ä dœCÔ  ð !Ù& tÓ,Ø—^‘^Ó%ðC¨Ø×/Ñ/°Ó5×@Ñ@ÓB÷CðCð—‘Õ Ü ˜˜fÔ %Ø—‘“ð ? 4Ø×+Ñ+¨DÓ1×<Ñ<Ó>÷ ?ñ ?ð×'Ñ'¨Ó-×8Ñ8Ó:Ð :÷%    %ð    %ú÷CðCúðCð—‘Õ ø—‘Õ ú÷ ?ð ?ús<Â$FÃF1Ã*FÄ        F1Ä?GÆFÆFÆF1Æ1GÇGcó.—|dddd«}t|«S)NÚioÚdatarOziris.csvr
)ÚdatapathÚ    iris_paths  r.rÌr̝s€á˜˜v u¨jÓ9€IÜ     ‹?Ðr-c ó2—ddddddddddœ    dd    d
d ddddddœ    gS) NÚfirstú2000-01-03 00:00:00iwði’·2g333333$@rHF©    rƒr„r…r†r‡rˆr‰rŠr‹ú2000-01-04 00:00:00i'âPi\¸2r,r,r-r.r‘r‘£sP€ðØ,Ø#Ø&ØØØØØ$ñ
    
ðØ,Ø$Ø&ØØØØ"Ø#ñ
    
ð ðr-c
ót—ddddddddddœ    }t|«}||j«j|«S)NrÁÚint64rRrÐ)rÚkeysÚastype)r‘r±Údfs   r.Útypes_data_framer׿sN€ðØØØ!ØØØØ!Ø"ñ
€Fô
:Ó    €BØ ˆfk‰k‹mÑ × #Ñ # FÓ +Ð+r-có,—gd¢}gd¢}t||¬«S)N)r­ÚAÚBÚCÚD))rÏgNÿ\^ï?g9\›x`| @g%ÚTO׿gá(nIŽò¿)rÑgî}ÒCÄð?çc×^ÜV¥¿g~q"B¶Ä¿gˆ”æÐ4Ë?)ú2000-01-05 00:00:00gGà Í¿èß?ç2r¹eç?gˆŽ>ݦ4á¿gёöÙRŠõ?)ú2000-01-06 00:00:00gÔ?{mXìñ?ç$ôó­ùù?gnk3¥AÓm?g Ø
S«›å?©r¹©r©r¹rÊs  r.Ú test_frame1råÐs€â+€Gò €Dô< T 7Ô +Ð+r-có,—gd¢}gd¢}t||¬«S)N)r­rÙrÚ))rÏiÿÿÿgZØÓÍÿ¿)rÑiãÿÿÿrÝ)rÞi Nrß)rài͏ûÿrárârãräs  r.Ú test_frame3rçôs€â!€Gò €Dô T 7Ô +Ð+r-có—t|tj«r2|jd«}|j    «Dcgc]}|d‘Œ    c}St dd¬«}|rŠt||j«rtg}|j «j«j«}|D]?}|d|dD]0}|d|d    D]!}|d
d k(sŒ |d }    |j|    «Œ#Œ2ŒA|Sdd l
m }
|
|«j«Scc}w)Nz0SELECT name FROM sqlite_master WHERE type='view'rrrrsrtÚ catalog_nameÚcatalog_db_schemasÚdb_schema_nameÚdb_schema_tablesÚ
table_typeÚviewrÅ©Úinspect) rxryrzrMÚfetchallrÚadbc_get_objectsÚread_allÚ    to_pylistÚappendr>rðÚget_view_names) rVÚcrîr{ÚresultsÚinfoÚcatalogÚschemaÚtableÚ    view_namerðs            r.Ú get_all_viewsrþs €Ü$œ×*Ñ*Ô+Ø L‰LÐKÓ LˆØ$%§J¡J£LÖ1˜DQ“Ò1Ð1ä)Ð*EÈhÔWˆÙ ”J˜t T§_¡_Ô5؈GØ×(Ñ(Ó*×3Ñ3Ó5×?Ñ?ÓAˆDØò 6Ø˜Ò'Ø%Ð&:Ñ;ò6FØÐ+Ò,Ø!'Ð(:Ñ!;ò6˜Ø  Ñ.°&Ó8Ø(-¨lÑ(;˜IØ#ŸN™N¨9Õ5ñ6ñ6ð 6ðˆNå *á˜4“=×/Ñ/Ó1Ð 1ùò'2s¾ Dcóú—t|tj«r2|jd«}|j    «Dcgc]}|d‘Œ    c}St dd¬«}|r€t||j«rjg}|j «j«j«}|D]5}|dD]+}|dD]!}|dd    k(sŒ |d
}|j|«Œ#Œ-Œ7|Sdd l
m }    |    |«j«Scc}w) Nz1SELECT name FROM sqlite_master WHERE type='table'rrrrsrtrêrìrírürÅrï) rxryrzrMrñrròrórôrõr>rðÚget_table_names)
rVr÷rür{rørùrúrûrÅrðs
          r.Úget_all_tablesrsü€Ü$œ×*Ñ*Ô+Ø L‰LÐLÓ MˆØ&'§j¡j£lÖ3˜Ua“Ò3Ð3ä)Ð*EÈhÔWˆá ”J˜t T§_¡_Ô5؈GØ×(Ñ(Ó*×3Ñ3Ó5×?Ñ?ÓAˆDØò 7Ø%Ð&:Ñ;ò7FØ!'Ð(:Ñ!;ò7˜Ø  Ñ.°'Ó9Ø).¨|Ñ)<˜JØ#ŸN™N¨:Õ6ñ7ñ7ð 7ðˆNå *á˜4“=×0Ñ0Ó2Ð 2ùò%4s¾ C8rVcó(—t|tj«r8|jdt    j
|«›«|j «ytdd¬«}|rEt||j«r/|j«5}|jd|›d«ddd«y|j«5}t    j|«5}|j|«ddd«ddd«y#1swYyxYw#1swYŒxYw#1swYyxYw)NzDROP TABLE IF EXISTS rrrsrtzDROP TABLE IF EXISTS "ú") rxryrzrMrÚ_get_valid_sqlite_namerUrrLrjrÚ
drop_table)rÅrVr{rYroÚdbs      r.rr1sò€ô$œ×*Ñ*Ô+Ø  ‰ Ð,¬S×-GÑ-GÈ
Ó-SÐ,TÐUÔVØ  ‰  ô*Ð*EÈhÔWˆÙ ”J˜t T§_¡_Ô5Ø—‘“ð D #Ø— ‘ Ð4°Z°LÀÐBÔC÷ Dð Dð—‘“ð . Ü—_‘_ SÓ)ð.¨RØ—M‘M *Ô-÷.÷ .ð .÷ Dð Dú÷.ð.ú÷ .ð .ús0ÂC0Â7Dà C<ÃDÃ0C9Ã<D    ÄDÄDcód—ddl}t|tj«r8|j    dt j |«›«|j«ytdd¬«}|rEt||j«r/|j«5}|j    d|›d«ddd«y|jjjj|«}|jd|›«}|j«5}|j    |«ddd«y#1swYyxYw#1swYyxYw)NrzDROP VIEW IF EXISTS rrrsrtzDROP VIEW IF EXISTS "r)r>rxryrzrMrrrUrrLrÆrŒÚidentifier_preparerÚquote_identifierrwrj)rýrVr>r{rYÚ quoted_viewrXros        r.Ú    drop_viewr Ds €óä$œ×*Ñ*Ô+Ø  ‰ Ð+¬C×,FÑ,FÀyÓ,QÐ+RÐSÔTØ  ‰  ä)Ð*EÈhÔWˆÙ ”J˜t T§_¡_Ô5Ø—‘“ð B #Ø— ‘ Ð3°I°;¸aÐ@ÔA÷ Bð BðŸ+™+×-Ñ-×AÑA×RÑRØóˆKð#:—?‘?Ð%9¸+¸Ð#GÓHˆDØ—‘“ð " Ø— ‘ ˜DÔ!÷ "ð "÷ Bð Bú÷ "ð "ús DÃ?D&ÄD#Ä&D/c#óŠK—tjd«}tjd«}|jdd|jjj
i|j j¬«}|–—t|«D]}t||«Œt|«D]}t||«Œ|j«y­w)Nr>Úpymysqlz*mysql+pymysql://root@localhost:3306/pandasÚ client_flag)Ú connect_argsÚ    poolclass) ÚpytestÚ importorskipr¿Ú    constantsÚCLIENTÚMULTI_STATEMENTSÚpoolÚNullPoolrþr rrrÄ)r>r rÆrîÚtbls     r.Úmysql_pymysql_enginer[s¯èø€ä×$Ñ$ \Ó2€JÜ×!Ñ! )Ó,€GØ %ˆZ× %Ñ %Ø4Ø# W×%6Ñ%6×%=Ñ%=×%NÑ%NÐOØ—/‘/×*Ñ*ô€Fð
‚LܘfÓ%ò ˆÜ$˜Õð ä˜fÓ%ò ˆÜ3˜Õð à
‡NNÕùs‚CCc#óBK—t||«t|«|–—y­w©N©rpr|)rrÌs  r.Úmysql_pymysql_engine_irisrls èø€äÐ-¨yÔ9ÜÐ2Ô3Ø
Óùó‚c#ó.K—t||d«|–—y­w)Nr'©r›)rr‘s  r.Úmysql_pymysql_engine_typesr!ssèø€äÐ.°
¸GÔDØ
Óùó‚c#ó^K—|j«5}|–—ddd«y#1swYyxYw­wr©rš)rrVs  r.Úmysql_pymysql_connr%ys-èø€à    ×    %Ñ    %Ó    'ð¨4ØŠ
÷÷ñüó‚-“!˜    -¡*¦-c#ó^K—|j«5}|–—ddd«y#1swYyxYw­wrr$)rrVs  r.Úmysql_pymysql_conn_irisr(s-èø€à    "×    *Ñ    *Ó    ,ð°ØŠ
÷÷ñür&c#ó^K—|j«5}|–—ddd«y#1swYyxYw­wrr$)r!rVs  r.Úmysql_pymysql_conn_typesr*…ó-èø€à    #×    +Ñ    +Ó    -ð°ØŠ
÷÷ñür&c#óHK—tjd«}tjd«|jd|jj¬«}|–—t |«D]}t ||«Œt|«D]}t||«Œ|j«y­w)Nr>Úpsycopg2z=postgresql+psycopg2://postgres:postgres@localhost:5432/pandas©r©
rrr¿rrrþr rrrÄ)r>rÆrîrs    r.Úpostgresql_psycopg2_enginer0‹s“èø€ä×$Ñ$ \Ó2€JÜ
×ј
Ô#Ø %ˆZ× %Ñ %ØGØ—/‘/×*Ñ*ô€Fð ‚LܘfÓ%ò ˆÜ$˜Õð ä˜fÓ%ò ˆÜ3˜Õð à
‡NNÕùs‚B B"c#óBK—t||«t|«|–—y­wrr)r0rÌs  r.Úpostgresql_psycopg2_engine_irisr2›s èø€äÐ3°YÔ?ÜÐ8Ô9Ø
$Ó$ùrc#ó.K—t||d«|–—y­w)NÚpostgresr )r0r‘s  r.Ú postgresql_psycopg2_engine_typesr5¢sèø€äÐ4°jÀ*ÔMØ
$Ó$ùr"c#ó^K—|j«5}|–—ddd«y#1swYyxYw­wrr$)r0rVs  r.Úpostgresql_psycopg2_connr7¨r+r&c#óTK—tjd«tjd«ddlm}d}|j    |«5}|–—t |«D]}t ||«Œt|«D]}t||«Œ|j«ddd«y#1swYyxYw­w)NÚpyarrowÚadbc_driver_postgresqlr©Údbapiz4postgresql://postgres:postgres@localhost:5432/pandas)
rrr:r<ršrþr rrrU)r<ÚurirVrîrs     r.Úpostgresql_adbc_connr>®s—èø€ä
×ј    Ô"Ü
×ÑÐ0Ô1Ý,à
@€CØ    ‰sÓ    ð˜tØŠ
Ü! $Ó'ò    "ˆDÜ d˜DÕ !ð    "ä! $Ó'ò    "ˆCÜ s˜DÕ !ð    "à  ‰ Œ ÷ ÷ñüs‚AB(ÁA B    B(ÂB%Â!B(c#ó*K—ddl}|}    |jd«    |jd«|–—y#|j$r|j«t    ||«YŒDwxYw#|j$r|j«t |«YŒbwxYw­w©Nrr7Ú    iris_view)Úadbc_driver_managerÚadbc_get_table_schemaÚProgrammingErrorÚrollbackr_r|)r>rÌÚmgrrVs    r.Úpostgresql_adbc_irisrG¾s‹èø€ã%à €Dð9Ø ×"Ñ" 6Ô*ð(Ø ×"Ñ" ;Ô/ð ƒJøð × Ñ ò9Ø  ‰ ŒÜ'¨¨iÖ8ð9ûð
× Ñ ò(Ø  ‰ ŒÜ! $Ö'ð(üóB‚BŠ2œA#­B²+A ÁBÁA Á BÁ#*B BÂBÂBc#óþK—ddl}|}    |jd«|–—y#|j$rK|j«|Dcgc]}t    |j ««‘Œncc}w}}t ||«YŒ^wxYw­w)Nrr‚)rBrCrDrEÚtuplerir•)r>r‘rFrVÚentryÚnew_datas      r.Úpostgresql_adbc_typesrMÑsrèø€ã%à €Dð9Ø ×"Ñ" 7Ô+ð ƒJøð × Ñ ò9Ø  ‰ ŒØ7AÖB¨e”E˜%Ÿ,™,›.Õ)ÑBùÒBˆÐBä(¨¨xÖ8ð    9üs1‚A=Š ›A= #A:Á A$Á#A:Á7A=Á9A:Á:A=c#ó^K—|j«5}|–—ddd«y#1swYyxYw­wrr$)r2rVs  r.Úpostgresql_psycopg2_conn_irisrOâs-èø€à    (×    0Ñ    0Ó    2ð°dØŠ
÷÷ñür&c#ó^K—|j«5}|–—ddd«y#1swYyxYw­wrr$)r5rVs  r.Úpostgresql_psycopg2_conn_typesrQès-èø€à    )×    1Ñ    1Ó    3ð°tØŠ
÷÷ñür&c#ó–K—tjd«tj«5}d|›–—ddd«y#1swYyxYw­w)Nr>ú
sqlite:///)rrr·Ú ensure_cleanr£s r.Ú
sqlite_strrUîsAèø€ä
×ј Ô%Ü     ‰Ó    ð"˜dؘ4˜&Ð!Ò!÷"÷"ñ"üs‚*A    ¬=´    A    ½AÁA    c#óK—tjd«}|j||jj¬«}|–—t |«D]}t ||«Œt|«D]}t||«Œ|j«y­w)Nr>r.r/)rUr>rÆrîrs     r.Ú sqlite_enginerWõsèø€ä×$Ñ$ \Ó2€JØ %ˆZ× %Ñ % j¸J¿O¹O×<TÑ<TÔ U€FØ
‚LܘfÓ%ò ˆÜ$˜Õð ä˜fÓ%ò ˆÜ3˜Õð à
‡NNÕùs‚B B c#ó^K—|j«5}|–—ddd«y#1swYyxYw­wrr$)rWrVs  r.Ú sqlite_connrYs-èø€à    ×    Ñ    Ó     ð DØŠ
÷÷ñür&có¢—tjd«}|j|«}t||«t    |«|j «|S)Nr>)rrr¿rpr|rÄ)rUrÌr>rÆs    r.Úsqlite_str_irisr[sF€ä×$Ñ$ \Ó2€JØ %ˆZ× %Ñ % jÓ 1€Fܘ Ô+ܘfÔ%Ø
‡NNÔØ Ðr-c#óBK—t||«t|«|–—y­wrr)rWrÌs  r.Úsqlite_engine_irisr]sèø€ä˜¨    Ô2ܘmÔ,Ø
Óùrc#ó^K—|j«5}|–—ddd«y#1swYyxYw­wrr$)r]rVs  r.Úsqlite_conn_irisr_s-èø€à    ×    #Ñ    #Ó    %ð¨ØŠ
÷÷ñür&cóŽ—tjd«}|j|«}t||d«|j    «|S)Nr>r&)rrr¿r›rÄ)rUr‘r>rÆs    r.Úsqlite_str_typesras@€ä×$Ñ$ \Ó2€JØ %ˆZ× %Ñ % jÓ 1€Fܘ& *¨hÔ7Ø
‡NNÔØ Ðr-c#ó.K—t||d«|–—y­w)Nr&r )rWr‘s  r.Úsqlite_engine_typesrc'sèø€ä˜-¨°XÔ>Ø
Óùr"c#ó^K—|j«5}|–—ddd«y#1swYyxYw­wrr$)rcrVs  r.Úsqlite_conn_typesre-s-èø€à    ×    $Ñ    $Ó    &ð¨$ØŠ
÷÷ñür&c#ó¬K—tjd«tjd«ddlm}t    j
«5}d|›}|j |«5}|–—t|«D]}t||«Œt|«D]}t||«Œ|j«ddd«ddd«y#1swYŒxYw#1swYyxYw­w)Nr9Úadbc_driver_sqliterr;zfile:) rrrgr<r·rTršrþr rrrU)r<r¤r=rVrîrs      r.Úsqlite_adbc_connrh3sÃèø€ä
×ј    Ô"Ü
×ÑÐ,Ô-Ý(ä     ‰Ó    ð˜dؐdVˆnˆØ ]‰]˜3Ó ð     4ØŠJÜ% dÓ+ò &Ü˜$ Õ%ð &ä% dÓ+ò &Ü˜3 Õ%ð &à K‰KŒM÷     ÷ð÷    ð    ú÷ðüs7‚ACÁCÁA B<Â+CÂ3    CÂ<C    ÃCÃCà Cc#ó*K—ddl}|}    |jd«    |jd«|–—y#|j$r|j«t    ||«YŒDwxYw#|j$r|j«t |«YŒbwxYw­wr@)rBrCrDrEr]r|)rhrÌrFrVs    r.Úsqlite_adbc_irisrjDs‹èø€ã%à €Dð6Ø ×"Ñ" 6Ô*ð(Ø ×"Ñ" ;Ô/ð ƒJøð × Ñ ò6Ø  ‰ ŒÜ$ T¨9Ö5ð6ûð
× Ñ ò(Ø  ‰ ŒÜ! $Ö'ð(ürHc#óvK—ddl}|}    |jd«|–—y#|j$r‡|j«g}|D]Q}t    |d«|d<|dt    |d«|d<|j t |j«««ŒSt||«|j«YŒšwxYw­w)Nrr‚r‰r‹)
rBrCrDrEÚintrõrJrir“rU)rhr‘rFrVrLrKs      r.Úsqlite_adbc_typesrmVs½èø€ã%à €Dð Ø ×"Ñ" 7Ô+ð ƒJøð × Ñ ò
Ø  ‰ ŒØˆØò    3ˆEÜ" 5¨Ñ#3Ó4ˆE)Ñ ØÐ&Ñ'Ð3Ü+.¨uÐ5FÑ/GÓ+HÐ'Ñ(Ø O‰OœE %§,¡,£.Ó1Õ 2ð        3ô     & d¨HÔ5Ø  ‰ Ž ð
üs&‚B9Š ›B9 BB6Â3B9Â5B6Â6B9c#ó¼K—tjtjd««5}|5}|–—ddd«ddd«y#1swYŒxYw#1swYyxYw­w)Nú:memory:)Ú
contextlibrryrš©Ú closing_connrVs  r.Úsqlite_buildinrslsWèø€ä    ×    Ñ    œGŸO™O¨JÓ7Ó    8ð¸LØ ð    ˜TØŠJ÷    ÷ð÷    ð    ú÷ðüs1‚)A«A®A³A»    AÁA     Á    AÁAÁAc#óBK—t||«t|«|–—y­wr)r]r|)rsrÌs  r.Úsqlite_buildin_irisrussèø€ä  °Ô;ܘnÔ-Ø
Óùrc#ó‚K—|Dcgc]}t|j««‘Œ}}t||«|–—ycc}w­wr)rJrir“)rsr‘rKs   r.Úsqlite_buildin_typesrwzs:èø€à5?Ö@¨E”%˜Ÿ ™ ›Õ'Ð@€JÐ@Ü! .°*Ô=Ø
ÓùòAùs ‚?‡ :§?r)Úmarksr%rr(r!r*r0r7r2rOr5rQ)rWrYrU)r]r_r[)rcrerarhr>rGrjrMrmrsrurwcóP—|j|«}|jd|dd¬«y)NÚtestrõF©r¤roÚ    if_existsr­)ÚgetfixturevalueÚto_sql)rVråÚrequests   r.Útest_dataframe_to_sqlr€Ös+€ð × "Ñ " 4Ó (€DØ×јF¨¸ÈÐÕNr-cóþ—|dk(rCt«s9|jjtjj d¬««|j |«}|jdd}|jd|dd¬«y)    Nr>z=postgres ADBC driver < 1.2 cannot insert index with null type©ÚreasonrrzrõFr{)    r ÚnodeÚ
add_markerrÚmarkÚxfailr}r²r~)rVrårÚempty_dfs    r.Útest_dataframe_to_sql_emptyr‰Ýsu€à Ð%Ò%Ô.@Ô.B؏ ‰ ×ÑÜ K‰K× Ñ ØVð ó ô    
ð × "Ñ " 4Ó (€DØ×Ñ  Ð#€HØ ‡OO˜ T°XÀU€OÕKr-c ó€—tjd«ttjdgd¬«tjt ddd«gd¬«tjt ddd«gd¬«tjtd«gd¬«tjd    gd
¬«d œ«}d |vr,|d k(r|jdg¬«}tr    t}d}n d}d}nt}d}|j|«}tj||d¬«5|jd|dd¬«ddd«y#1swYyxYw)Nr9rHz int8[pyarrow]©r@éçútimestamp[ns][pyarrow]zdate32[day][pyarrow]zduration[ns][pyarrow]Úazstring[pyarrow])rlrrrÚstringr{rhrrâzis_sparse is deprecatedÚzthe 'timedelta'F)ÚmatchÚcheck_stacklevelÚ
test_arrowÚreplacer{)rrrÚpdÚarrayrrrrkrÚDeprecationWarningÚ UserWarningr}r·Úassert_produces_warningr~)rVrrÖÚ exp_warningÚmsgs     r.Ú"test_dataframe_to_sql_arrow_dtypesrœìs&€ô ×ј    Ô"Ü    ä—8‘8˜Q˜C Ô7ÜŸ™Ü˜$  1Ó%Ð&Ð.Fôô—H‘Hœd 4¨¨AÓ.Ð/Ð7MÔNÜŸ™¤9¨Q£< .Ð8OÔPÜ—h‘h ˜uÐ,=Ô>ñ    
ó
 
€Bð~Ø Ð%Ò %Ø—‘ + Ó/ˆBÝ Ü,ˆKØ+‰CàˆK؉Cä!ˆ ؈à × "Ñ " 4Ó (€DÜ     ×    #Ñ    # K°sÈUÔ    SñQØ
    ‰    |¨¸È%ˆ    ÔP÷Q÷QñQús ÄD4Ä4D=c
óؗtjd«tdtjt ddd«|gd¬«i«}|j |«}|jd|dd    ¬
«y) Nr9rrŒrHrr‹r“r”Fr{)rrrr•r–rr}r~)rVrÚ nulls_fixturerÖs    r.Ú*test_dataframe_to_sql_arrow_dtypes_missingrŸsi€ô ×ј    Ô"Ü    à œŸ™Ü˜$  1Ó% }Ð5Ð=Uôð    
ó
€Bð × "Ñ " 4Ó (€D؇II< T°YÀe€IÕLr-ÚmethodÚmulticót—|dk(r>d|vr:|jjtjj    dd¬««|j |«}t |d¬«5}|j|d|¬«|jd«sJ‚    ddd«t|d«t|«k(sJ‚y#1swYŒ$xYw)    Nr¡r{z)'method' not implemented for ADBC driversT©rƒÚstrict©Úneed_transactionÚ
test_frame©r ) r„r…rr†r‡r}r"r~Ú    has_tablerÇÚlen)rVr rårÚ    pandasSQLs     r.Ú test_to_sqlr¬s¸€ðÒ˜V t™^؏ ‰ ×ÑÜ K‰K× Ñ ØBÈ4ð ó ô    
ð × "Ñ " 4Ó (€DÜ    ˜4°$Ô    7ð1¸9Ø×ј l¸6ÐÔBØ×"Ñ" <Ô0Ð0Ñ0÷1ô d˜LÓ )¬S°Ó-=Ò =Ð=Ñ =÷1ð1ús Á"(B.Â.B7zmode, num_row_coef)r”rH)rõrIcó—|j|«}t|d¬«5}|j|dd¬«|j|d|¬«|jd«sJ‚    ddd«t    |d«|t |«zk(sJ‚y#1swYŒ'xYw)NTr¥r§Úfail©r|©r}r"r~r©rÇrª)rVÚmodeÚ num_row_coefrårr«s      r.Útest_to_sql_existr³.s”€ð × "Ñ " 4Ó (€DÜ    ˜4°$Ô    7ð1¸9Ø×ј l¸fÐÔEØ×ј l¸dÐÔCØ×"Ñ" <Ô0Ð0Ñ0÷1ô d˜LÓ )¨\¼CÀ Ó<LÑ-LÒ LÐLÑ L÷    1ð1ús Ÿ<BÂB cóD—|j|«}t|d¬«5}|j|dd¬«|jd«sJ‚d}t    j
t |¬«5|j|dd¬«ddd«ddd«y#1swYŒxYw#1swYyxYw)NTr¥r§r®r¯z!Table 'test_frame' already exists©r‘)r}r"r~r©rÚraisesÚ
ValueError)rVrårr«r›s     r.Útest_to_sql_exist_failr¸9s§€à × "Ñ " 4Ó (€DÜ    ˜4°$Ô    7ðJ¸9Ø×ј l¸fÐÔEØ×"Ñ" <Ô0Ð0Ð0à1ˆÜ ]‰]œ:¨SÔ 1ñ    JØ × Ñ ˜[¨,À&Ð Ô I÷    J÷ JðJ÷
    Jð    Jú÷ JðJús$ŸABÁ$B
Á9BÂ
B    ÂBÂBcó—|j|«}td|«}t|«tjd|«}t|«tjd|«}|j
dk(sJ‚d|j vsJ‚y)NúSELECT * FROM irisúSELECT * FROM iris where 0=1©rr¯r9)r}r#r½r•Úread_sqlrºr¹©rVrÚ
iris_frames   r.Útest_read_iris_queryrÀEsy€à × "Ñ " 4Ó (€DÜР4°dÓ;€JܐZÔ Ü—‘Ð1°4Ó8€JܐZÔ Ü—‘Ð;¸TÓB€JØ × Ñ ˜vÒ %Ð%Ð %Ø ˜:×-Ñ-Ñ -Ð-Ñ -r-có—d|vr:|jjtjj    dd¬««|j |«}t td|d¬««}t|«t tjd|d¬««}t|«t tjd|d¬««}|jd    k(sJ‚d
|jvsJ‚y) Nr{ú,'chunksize' not implemented for ADBC driversTr£rºé©Ú    chunksizer»r¼r9) r„r…rr†r‡r}rr#r½r•r½rºr¹r¾s   r.Útest_read_iris_query_chunksizerÆQsǀà ~؏ ‰ ×ÑÜ K‰K× Ñ ØEØð ó ô    
ð × "Ñ " 4Ó (€DÜœÐ';¸TÈQÔOÓP€JܐZÔ ÜœŸ ™ Ð$8¸$È!ÔLÓM€JܐZÔ ÜœŸ ™ Ð$BÀDÐTUÔVÓW€JØ × Ñ ˜vÒ %Ð%Ð %Ø ˜:×-Ñ-Ñ -Ð-Ñ -r-có˜—d|vr:|jjtjj    dd¬««|j |«}ddlm}m}m    }m
}|«}t|t«r||«n|}|d||¬«}t||«|d    d
d œ¬ «}    t|    «t|t«r|j«yy) Nr{rÂTr£r)r4r6r¿Úselectr7)Ú autoload_withr¬rª©r¤Úlength©rn)r„r…rr†r‡r}r>r4r6r¿rÈrxrÁr#r½rÄ)
rVrr4r6r¿rÈrAÚ autoload_conr7r¿s
          r.Ú.test_read_iris_query_expression_with_parameterrÎds¿€à ~؏ ‰ ×ÑÜ K‰K× Ñ ØEØð ó ô    
ð × "Ñ " 4Ó (€D÷óñ‹z€HÜ*4°T¼3Ô*?‘= Ô&ÀT€LÙ ˜°Ô >€DÜÙˆt‹ d¨MÀSÑ#Iô€JôZԠܐ$œÔØ×ÑÕðr-có4—d|vr:|jjtjj    dd¬««|dj «D] \}}||vsŒ nt d|›d«‚|j|«}t||d¬    «}t|«y)
Nr{rÂTr£r)z No part of z( found in sql_strings['read_parameters']©r¬rªrÌ)
r„r…rr†r‡ÚitemsÚKeyErrorr}r#r½)rVrr/rÚqueryr¿s      r.Ú*test_read_iris_query_string_with_parameterrÔ€s¦€à ~؏ ‰ ×ÑÜ K‰K× Ñ ØEØð ó ô    
ð!Ð!2Ñ3×9Ñ9Ó;òU‰    ˆˆEØ Š:Ù ðUô˜ T FÐ*RÐSÓTÐTØ × "Ñ " 4Ó (€DÜ  tÐ4HÔI€JܐZÕ r-có–—|j|«}td|«}t|«tjd|«}t|«y)Nr7)r}r$r½r•r½r¾s   r.Útest_read_iris_tablerÖ”s@€ð × "Ñ " 4Ó (€DÜ ¨Ó-€JܐZÔ Ü—‘˜V TÓ*€JܐZÕ r-có<—d|vr9|jjtjj    d¬««|j |«}t td|d¬««}t|«t tjd|d¬««}t|«y)Nr{ú+chunksize argument NotImplemented with ADBCr‚r7rÃrÄ) r„r…rr†r‡r}rr$r½r•r½r¾s   r.Útest_read_iris_table_chunksizerÙžs}€à ~؏ ‰ ×ÑÜ K‰K× Ñ Ð%RÐ Ó Sô    
ð × "Ñ " 4Ó (€DÜœ v¨t¸qÔAÓB€JܐZÔ ÜœŸ ™  F¨D¸AÔ>Ó?€JܐZÕ r-có‡—|j|«}gŠˆfd„}t|d¬«5}|j|d|¬«|jd«sJ‚    ddd«‰dgk(sJ‚t    |d«t |«k(sJ‚y#1swYŒ,xYw)Nc    óʕ—‰jd«|Dcgc]}tt||««‘Œ}}|j|jj «|«ycc}w)NrH)rõrgrhrMrürb)Úpd_tablerVrÔÚ    data_iterr\rÊÚchecks      €r.Úsamplez$test_to_sql_callable.<locals>.sample±sLø€Ø  ‰ QŒØ09Ö:¨””S˜˜s“^Õ$Ð:ˆÐ:Ø  ‰ X—^‘^×*Ñ*Ó,¨dÕ3ùò;s—A Tr¥r§r¨rHr°)rVrårrßr«rÞs     @r.Útest_to_sql_callablerà«s“ø€à × "Ñ " 4Ó (€Dà €Eô4ô
 
˜4°$Ô    7ð1¸9Ø×ј l¸6ÐÔBØ×"Ñ" <Ô0Ð0Ñ0÷1ð QCŠ<Ј<Ü d˜LÓ )¬S°Ó-=Ò =Ð=Ñ =÷    1ð1ús §(A;Á;Bcóè—|}|dk(r/|jtjjd¬««|j    |«}t j d|«}t|jjjtj«sJ‚t|jjjtj«sJ‚d|vr:t|jjjtj «s<J‚t|jjjtj«sJ‚t|j"jjtj«sJ‚d|vr1t|j$jjt&«sJ‚yt|j$jjtj«sJ‚y)Nrwú;sqlite_buildin connection does not implement read_sql_tabler‚r‚r()Ú applymarkerrr†r‡r}rr$r´r‡r@r³rµr¶rˆÚintegerr‰Úbool_rŠr‹Úobject©rVrÚ    conn_namerÖs    r.Útest_default_type_conversionré½sn€à€IØÐ*Ò*Ø×ÑÜ K‰K× Ñ ØTð ó ô    
ð × "Ñ " 4Ó (€DÜ     ×    Ñ    ˜G TÓ    *€Bä b—k‘k×'Ñ'×,Ñ,¬b¯k©kÔ :Ð:Ð :Ü b—i‘i—o‘o×*Ñ*¬B¯J©JÔ 7Ð7Ð 7ðyѠܘ"Ÿ*™*×*Ñ*×/Ñ/´·±Ô:Ð:Ð:ä˜"Ÿ*™*×*Ñ*×/Ñ/´·±Ô<Ð<Ð<ô b×'Ñ'×-Ñ-×2Ñ2´B·K±KÔ @Ð@Ð @ðyѠܘ"×,Ñ,×2Ñ2×7Ñ7¼Ô@Ð@Ñ@ä˜"×,Ñ,×2Ñ2×7Ñ7¼¿¹ÔEÐEÑEr-cóŠ—|j|«}ddlm}ddlm}t gd¢gd¢dœ«}|j d|d¬    «d
}||«}t||«rD|j«5}|j«5|j|«ddd«ddd«n*|j«5|j|«ddd«tjd |«}tj||«tjd |«}tj||«y#1swYŒ•xYw#1swYŒnxYw#1swYŒzxYw) Nrrvr—©rHrIrJ©皙™™™™¹?r«ç333333Ó?©rŽÚbr§F©r¤ror­z}DROP PROCEDURE IF EXISTS get_testdb;
 
    CREATE PROCEDURE get_testdb ()
 
    BEGIN
        SELECT * FROM test_frame;
    ENDzCALL get_testdb();)r}r>rwr™r˜rr~rxršrjrMrr#r·Úassert_frame_equalr½)    rVrrwr˜rÖÚprocÚ engine_connÚres1Úres2s             r.Útest_read_procedurer÷Ýs€à × "Ñ " 4Ó (€Dõ
 Ý(ä    šªÑ9Ó    :€B؇II< T°€IÔ7ð €Dñ ‹:€Dܐ$˜ÔØ \‰\‹^ð    *˜{Ø×"Ñ"Ó$ñ *Ø×#Ñ# DÔ)÷ *÷    *ð    *ðZ‰Z‹\ñ    Ø L‰L˜Ô ÷    ô × Ñ Ð2°DÓ 9€DÜ×ј"˜dÔ#ô <‰<Ð,¨dÓ 3€DÜ×ј"˜dÕ#÷ *ð *ú÷    *ð    *ú÷    ð    ús0Á*D-Á;D! D-Â.D9Ä!D*    Ä&D-Ä-D6Ä9EÚexpected_countrIzSuccess!cóø‡—ˆfd„}|j|«}tddgddgddgdœ«}|jd    |d
|¬ «}‰€|    J‚|‰k(sJ‚tjd    |«}t j ||«y) Nc    óÞ•—|j}|j«5}t«}tj|«}|j |«|j d«dj|Dcgc]}d|›d‘Œ
c}«}    |jr|j›d|j›}
n |j}
d|
›d|    ›d} |j| |¬«ddd«‰ Scc}w#1swY‰ SxYw)    Nrz, rú.zCOPY z (z) FROM STDIN WITH CSV)rÚfile) Ú
connectionrLr    rOÚwriterÚ    writerowsÚseekÚjoinrûr¤Ú copy_expert) rürVrÔrÝÚ
dbapi_connrYÚs_bufrþÚkr¹rÅÚ    sql_queryrøs             €r.Úpsql_insert_copyzBtest_copy_from_callable_insertion_method.<locals>.psql_insert_copysÛø€à—_‘_ˆ
Ø × Ñ Ó  ð     7 CÜ“JˆEÜ—Z‘Z Ó&ˆFØ × Ñ ˜YÔ 'Ø J‰JqŒMà—i‘i°4Ö 8¨a 1 Q C q¢Ò 8Ó9ˆG؏|Š|Ø %§ ¡ ˜~¨Q¨u¯z©z¨lÐ;‘
à"ŸZ™Z
à 
˜|¨2¨g¨YÐ6KÐLˆIØ O‰O     °ˆOÔ 6÷     7ðÐùò!9÷     7ðÐúsžAC"Á/ C
Á<AC"ÃC"Ã"C,rHrIrír«rŽÚn©Úcol1Úcol2Úcol3r§F)r¤ror­r ©r}rr~rr$r·rò)rVrørrÚexpectedÚ result_countÚresults `     r.Ú(test_copy_from_callable_insertion_methodrs˜ø€ô ð& × "Ñ " 4Ó (€DÜ 1 a &°3¸°*ÀsÈCÀjÑQÓR€HØ—?‘?Ø ˜t¨5Ð9Ið#ó€LðÐØÐ#Ð#Ð#à˜~Ò-Ð-Ð-Ü × Ñ   ¨dÓ 3€FÜ×ј& (Õ+r-có<‡ —|j|«}ddlmŠ ddlm}ddlm}ˆ fd„}|d«}t||«rD|j«5}|j«5|j|«ddd«ddd«n*|j«5|j|«ddd«tgd¢gtd«¬    «}|jd
|d d ¬ «tgd¢gtd«¬    «}|jd
|d d |¬«}    tjd
|«}
t!j"|
|«|    dk(sJ‚tj$|d¬«5} | j'd
«ddd«y#1swYŒþxYw#1swYŒ×xYw#1swYŒãxYw#1swYyxYw)Nrrar—rvc    óð•—|Dcgc]}tt||««‘Œ}}‰|j«j|«j    dg¬«}|j |«}|j Scc}w)NrŽ)Úindex_elements)rgrhrüriÚon_conflict_do_nothingrMÚrowcount©    rürVrÔrÝr\rÊrXrrbs            €r.Úinsert_on_conflictzHtest_insertion_method_on_conflict_do_nothing.<locals>.insert_on_conflict2sjø€Ø09Ö:¨””S˜˜s“^Õ$Ð:ˆÐ:á 5—;‘;Ó ß ‰VD‹\ß #Ñ #°C°5Ð #Ó 9ð     ð
—‘˜dÓ#ˆØ‰Ðùò;s†A3zx
    CREATE TABLE test_insert_conflict (
        a  integer PRIMARY KEY,
        b  numeric,
        c  text
    );
    ©rHçÍÌÌÌÌÌ@rŽÚabcrâÚtest_insert_conflictrõFr{©rHgš™™™™™    @rð©r¤ror­r|r Tr¥)r}Úsqlalchemy.dialects.postgresqlrbr™r˜Úsqlalchemy.sqlrwrxršrjrMrÚlistr~rr$r·ròrr) rVrr˜rwrÚ
create_sqlrorÚ    df_insertÚinsertedrr«rbs             @r.Ú,test_insertion_method_on_conflict_do_nothingr%)sø€ð × "Ñ " 4Ó (€Då5Ý(Ý#ôñð    ó€Jô$˜ÔØ \‰\‹^ð    (˜sØ—‘“ñ (Ø— ‘ ˜JÔ'÷ (÷    (ð    (ðZ‰Z‹\ñ    %Ø L‰L˜Ô $÷    %ôš-˜´$°u³+Ô>€HØ ‡OOØ #¨¸Èðôôš=˜/´4¸³;Ô?€IØ×ÑØ #Ø ØØØ!ð  ó€Hô× Ñ Р6¸Ó =€FÜ×ј& (Ô+Ø qŠ=Ј=ô
‰˜°Ô    5ð5¸Ø×ÑÐ3Ô4÷5ð5÷1 (ð (ú÷    (ð    (ú÷    %ð    %ú÷*5ð5úó<ÁE:ÁE.Á1E:ÂFÅFÅ.E7    Å3E:Å:FÆFÆFcóT—d|vsd|vr/|jtjjd¬««|j    |«}t gd¢gd¢gt d«¬«}|jd    |d
d d ¬ «tjd    |d ¬«}tj||«y)Nr&r'z2test for public schema only specific to postgresqlr‚r)rIgÍÌÌÌÌÌ@rðrrâÚtest_public_schemarõFÚpublic)r¤ror|r­rû©rû) rãrr†r‡r}rr!r~rr$r·rò)rVrÚ    test_dataÚdf_outs    r.Útest_to_sql_on_public_schemar-cs¨€à4ј7 d™?Ø×ÑÜ K‰K× Ñ ØKð ó ô    
ð × "Ñ " 4Ó (€Däš=ª-Ð8Ä$ÀuÃ+ÔN€IØ ×ÑØ !Ø ØØØð ôô× Ñ Р4°dÀ8Ô L€FÜ×ј) VÕ,r-có<‡ —|j|«}ddlmŠ ddlm}ddlm}ˆ fd„}|d«}t||«rD|j«5}|j«5|j|«ddd«ddd«n*|j«5|j|«ddd«tgd¢gtd«¬    «}|jd
|d d ¬ «tgd¢gtd«¬    «}|jd
|d d |¬«}    tjd
|«}
t!j"|
|«|    dk(sJ‚tj$|d¬«5} | j'd
«ddd«y#1swYŒþxYw#1swYŒ×xYw#1swYŒãxYw#1swYyxYw)Nrrar—rvc    óD•—|Dcgc]}tt||««‘Œ}}‰|j«j|«}|j    |j
j |j
j¬«}|j|«}|jScc}w)N)rðr÷)
rgrhrüriÚon_duplicate_key_updater$rðr÷rMrrs            €r.rzDtest_insertion_method_on_conflict_update.<locals>.insert_on_conflict„s|ø€Ø09Ö:¨””S˜˜s“^Õ$Ð:ˆÐ:ِe—k‘kÓ"×)Ñ)¨$Ó/ˆØ×+Ñ+¨d¯m©m¯o©oÀÇÁÇÁÐ+ÓQˆØ—‘˜dÓ#ˆØ‰Ðùò    ;s†Bzv
    CREATE TABLE test_insert_conflict (
        a INT PRIMARY KEY,
        b FLOAT,
        c VARCHAR(10)
    );
    rrrârrõFr{rrrITr¥)r}Úsqlalchemy.dialects.mysqlrbr™r˜r rwrxršrjrMrr!r~rr$r·ròrr) rVrr˜rwrr"rorÖrr$rr«rbs             @r.Ú(test_insertion_method_on_conflict_updater2{s„ø€ð × "Ñ " 4Ó (€Då0Ý(Ý#ôñð    ó€Jô$˜ÔØ \‰\‹^ð    (˜sØ—‘“ñ (Ø— ‘ ˜JÔ'÷ (÷    (ð    (ðZ‰Z‹\ñ    %Ø L‰L˜Ô $÷    %ô
’M?¬D°«KÔ    8€B؇IIÐ)¨t¸xÈu€IÔUäš-˜´$°u³+Ô>€H؏‰Ø #Ø ØØØ!ð ó€Hô× Ñ Р6¸Ó =€FÜ×ј& (Ô+Ø qŠ=Ј=ô
‰˜°Ô    5ð5¸Ø×ÑÐ3Ô4÷5ð5÷- (ð (ú÷    (ð    (ú÷    %ð    %ú÷&5ð5úr&c óŠ—|j|«}ddlm}ddlm}dt j «j›}dt j «j›}|d|›d|›d|›d    |›d
    «}t||«rD|j«5}|j«5|j|«ddd«ddd«n*|j«5|j|«ddd«t||«}td gd d œ«}    tj||    «y#1swYŒnxYw#1swYŒGxYw#1swYŒSxYw)Nrr—rvÚgroup_Ú group_view_z
    CREATE TABLE zF (
        group_id INTEGER,
        name TEXT
    );
    INSERT INTO z- VALUES
        (1, 'name');
    CREATE VIEW z
    AS
    SELECT * FROM z;
    rHr¤©Úgroup_idr¤)r}r™r˜r rwÚuuidÚuuid4ÚhexrxršrjrMr$rr·rò)
rVrr˜rwrÅrýÚsql_stmtrorrs
          r.Útest_read_view_postgresr<°s>€ð × "Ñ " 4Ó (€Då(Ý#àœ$Ÿ*™*›,×*Ñ*Ð+Ð,€JØœdŸj™j›l×.Ñ.Ð/Ð0€Iáð Øðð ðà ðà,ðð
    ó €Hô$˜ÔØ \‰\‹^ð    &˜sØ—‘“ñ &Ø— ‘ ˜HÔ%÷ &÷    &ð    &ðZ‰Z‹\ñ    #Ø L‰L˜Ô "÷    #ä ˜I tÓ ,€FÜ q c°6Ñ:Ó;€HÜ×ј& (Õ+÷ &ð &ú÷    &ð    &ú÷    #ð    #ús0ÂD-Â"D!Â4D-ÃD9Ä!D*    Ä&D-Ä-D6Ä9Ecóì—d}d}d}|j|«|j|«|j|«tjd|«}tdgddœ«}t    j
||«y)Nz<
CREATE TABLE groups (
   group_id INTEGER,
   name TEXT
);
z,
INSERT INTO groups VALUES
    (1, 'name');
z1
CREATE VIEW group_view
AS
SELECT * FROM groups;
zSELECT * FROM group_viewrHr¤r6)rMr•r½rr·rò)rsÚ create_tableÚ insert_intoÚ create_viewrrs      r.Útest_read_view_sqliterAÔsu€ð€Lð €Kð€Kð
×ј<Ô(Ø×ј;Ô'Ø×ј;Ô'Ü [‰[Ð3°^Ó D€FÜ q c°6Ñ:Ó;€HÜ×ј& (Õ+r-cóð—tjtd¬«5tjt
d¬«5t jd|«ddd«ddd«y#1swYŒxYw#1swYyxYw)Nz+pandas.io.sql.execute requires a connectionrµúP`pandas.io.sql.execute` is deprecated and will be removed in the future version.úselect * from iris)rr¶Ú    TypeErrorr·r™Ú FutureWarningrrM)r]s r.Útest_execute_typeerrorrGísq€Ü    ‰”yÐ(UÔ    VñBÜ × 'Ñ 'Ü ð5ô
ñ    Bô
K‰KÐ,Ð.@Ô A÷     B÷BðB÷    Bð    Bú÷BðBús"œA,¸A ÁA,Á A)    Á%A,Á,A5có—tjtd¬«5tjd|«ddd«y#1swYyxYw)NrCrµrD)r·r™rFrrM)r_s r.Útest_execute_deprecatedrI÷s?€ä     ×    #Ñ    #Üð1ô
ñ<ô
      ‰ Ð(Ð*:Ô;÷ <÷<ñ<ús    œ<¼Acó<—d|vryd|vryd|vrytd|›«‚)Nr(r&r'zunsupported connection: )r·)rès r.ÚflavorrKs6€ØyÑ ØØ    YÑ    ØØ    IÑ    Øä
Ð/°    ¨{Ð;Ó
<Ð<r-có’—d|vr:|jjtjj    dd¬««|}|j |«}|dt |«}d}t|«5}|j«5|j||¬«}ddd«ddd«t«y#1swYŒxYw#1swYŒ!xYw)Nr{ú)'params' not implemented for ADBC driversTr£r)rÐrÌ© r„r…rr†r‡r}rKr"Úrun_transactionÚ
read_queryr½©rVrr/rèrÓrnr«r¿s        r.Útest_read_sql_iris_parameterrR sЀà ~؏ ‰ ×ÑÜ K‰K× Ñ ØBØð ó ô    
ð €IØ × "Ñ " 4Ó (€DØ Ð)Ñ *¬6°)Ó+<Ñ =€EØ !€FÜ    ˜4Ó     ðD IØ × &Ñ &Ó (ñ    DØ"×-Ñ-¨e¸FÐ-ÓCˆJ÷    D÷DôZÕ ÷    Dð    Dú÷DðDús$Á0B=ÂB1ÂB=Â1B:    Â6B=Â=Ccó˜—d|vr:|jjtjj    dd¬««|}|j |«}|dt |«}dddœ}t|«5}|j«5|j||¬    «}ddd«ddd«t«y#1swYŒxYw#1swYŒ!xYw)
Nr{rMTr£r*r¬rªrÊrÌrNrQs        r.Ú"test_read_sql_iris_named_parameterrTsՀà ~؏ ‰ ×ÑÜ K‰K× Ñ ØBØð ó ô    
ð€IØ × "Ñ " 4Ó (€DØ Ð/Ñ 0´¸    Ó1BÑ C€EØ#¨sÑ 3€FÜ    ˜4Ó     ðD IØ × &Ñ &Ó (ñ    DØ"×-Ñ-¨e¸FÐ-ÓCˆJ÷    D÷DôZÕ ÷    Dð    Dú÷DðDús$Á3CÂB4ÂCÂ4B=    Â9CÃC    cóˆ—d|vsd|vr3d|vr/|jtjjd¬««|}|j    |«}|dt |«}t |«5}|j«5|j|d¬«}ddd«ddd«t«y#1swYŒxYw#1swYŒ!xYw)Nr'r(r{z broken testr‚r+rÌ)
rãrr†r‡r}rKr"rOrPr½)rVrr/rèrÓr«r¿s       r.Ú,test_read_sql_iris_no_parameter_with_percentrV3sȀà$˜<¨4Ñ/°FÀ$Ñ4FØ×ÑœFŸK™K×-Ñ-°]Ð-ÓCÔDà€IØ × "Ñ " 4Ó (€Dà Ð9Ñ :¼6À)Ó;LÑ M€EÜ    ˜4Ó     ðB IØ × &Ñ &Ó (ñ    BØ"×-Ñ-¨e¸DÐ-ÓAˆJ÷    B÷BôZÕ ÷    Bð    Bú÷BðBús$Á+B8Á<B,ÂB8Â,B5    Â1B8Â8Ccóh—|j|«}tjd|«}t|«y)NzSELECT * FROM iris_view)r}rr#r½r¾s   r.Útest_api_read_sql_viewrXFs-€à × "Ñ " 4Ó (€DÜ×#Ñ#Ð$=¸tÓD€JܐZÕ r-có>—d|vr9|jjtjj    d¬««|j |«}d}t j||d¬«}t j||«}tjt|«|«y)Nr{rØr‚z1SELECT * FROM iris_view WHERE "SepalLength" < 0.0r¯rÄ) r„r…rr†r‡r}rr#r·ròr)rVrrÓÚ
with_batchÚ without_batchs     r.Ú*test_api_read_sql_with_chunksize_no_resultr\Msƒ€à ~؏ ‰ ×ÑÜ K‰K× Ñ Ð%RÐ Ó Sô    
ð × "Ñ " 4Ó (€DØ ?€EÜ×#Ñ# E¨4¸1Ô=€JÜ×&Ñ& u¨dÓ3€MÜ×Ñœ& Ó,¨mÕ<r-có*—|j|«}tjd|«r1tj|d¬«5}|j    d«ddd«tj
|d|«tjd|«sJ‚y#1swYŒ9xYw)NråTr¥)r}rr©rrr~)rVrrår«s    r.Útest_api_to_sqlr^Zsy€à × "Ñ " 4Ó (€DÜ
‡}}] DÔ)Ü _‰_˜T°DÔ 9ð    0¸YØ ×  Ñ   Ô /÷    0ô‡JJˆ{˜M¨4Ô0Ü =‰=˜¨Ô -Ð-Ñ -÷        0ð    0ús ¿B        BcóÄ—|j|«}tjd|«r1tj|d¬«5}|j    d«ddd«tj
|d|d¬«tjd|«sJ‚d}t jt|¬«5tj
|d|d¬«ddd«y#1swYŒzxYw#1swYyxYw)NÚ test_frame2Tr¥r®r¯z"Table 'test_frame2' already existsrµ)    r}rr©rrr~rr¶r·)rVrrår«r›s     r.Útest_api_to_sql_failraes¿€à × "Ñ " 4Ó (€DÜ
‡}}] DÔ)Ü _‰_˜T°DÔ 9ð    0¸YØ ×  Ñ   Ô /÷    0ô‡JJˆ{˜M¨4¸6ÕBÜ =‰=˜¨Ô -Ð-Ð -à
.€CÜ    ‰”z¨Ô    -ñGÜ 
‰
;  ¨t¸vÕF÷GðG÷    0ð    0ú÷GðGús¿C
Â'CÃ
CÃCcóœ—|j|«}tjd|«r1tj|d¬«5}|j    d«ddd«tj
|d|d¬«tj
|d|d¬«tjd|«sJ‚t |«}t|d«}||k(sJ‚y#1swYŒrxYw)NrçTr¥r®r¯r”©r}rr©rrr~rªrÇ©rVrrår«Ú num_entriesÚnum_rowss      r.Útest_api_to_sql_replacergts±€à × "Ñ " 4Ó (€DÜ
‡}}] DÔ)Ü _‰_˜T°DÔ 9ð    0¸YØ ×  Ñ   Ô /÷    0ô‡JJˆ{˜M¨4¸6ÕBä‡JJˆ{˜M¨4¸9ÕEÜ =‰=˜¨Ô -Ð-Ð -äkÓ"€Kܘ$  Ó.€Hà {Ò "Ð"Ñ "÷    0ð    0ús ¿CÃC có¶—|j|«}tjd|«r1tj|d¬«5}|j    d«ddd«tj
|d|d¬«dk(sJ‚tj
|d|d¬«dk(sJ‚tjd|«sJ‚dt |«z}t|d«}||k(sJ‚y#1swYŒxYw)    NÚ test_frame4Tr¥r®r¯rKrõrIrcrds      r.Útest_api_to_sql_appendrj†s΀à × "Ñ " 4Ó (€DÜ
‡}}] DÔ)Ü _‰_˜T°DÔ 9ð    0¸YØ ×  Ñ   Ô /÷    0ô :‰:k =°$À&Ô IÈQÒ NÐNÐ Nô :‰:k =°$À(Ô KÈqÒ PÐPÐ PÜ =‰=˜¨Ô -Ð-Ð -à”c˜+Ó&Ñ&€Kܘ$  Ó.€Hà {Ò "Ð"Ñ "÷    0ð    0úó ¿CÃCcóV—|j|«}tjd|«r1tj|d¬«5}|j    d«ddd«tj
|d|d¬«tj d|«}tj||«y#1swYŒOxYw)NÚ test_frame5Tr¥F©r­zSELECT * FROM test_frame5)    r}rr©rrr~r½r·rò)rVrrçr«rs     r.Útest_api_to_sql_type_mappingro™sˆ€à × "Ñ " 4Ó (€DÜ
‡}}] DÔ)Ü _‰_˜T°DÔ 9ð    0¸YØ ×  Ñ   Ô /÷    0ô‡JJˆ{˜M¨4°uÕ=Ü \‰\Ð5°tÓ <€Fä×ј+ vÕ.÷     0ð    0ús ¿BÂB(có¶—|j|«}tjd|«r1tj|d¬«5}|j    d«ddd«t t jdd¬«d¬«}tj|d|d    ¬
«tjd |«}tj|j«|«y#1swYŒxYw) NÚ test_seriesTr¥r¯rÓr‹Úseriesr£FrnzSELECT * FROM test_series) r}rr©rrrrµÚaranger~r#r·ròÚto_frame)rVrr«ÚsÚs2s     r.Útest_api_to_sql_seriesrw¦s§€à × "Ñ " 4Ó (€DÜ
‡}}] DÔ)Ü _‰_˜T°DÔ 9ð    0¸YØ ×  Ñ   Ô /÷    0ô    Œry‰y˜ 'Ô*°Ô:€A܇JJˆq- ¨UÕ3Ü     ×    Ñ    Ð7¸Ó    >€BÜ×ј!Ÿ*™*›,¨Õ+÷     0ð    0úrkcó2—|}|j|«}tjd|«r1tj|d¬«5}|j    d«ddd«tj
|d|¬«tj d|¬«}d|vr|jddi¬    «}|j|_|jdd¬
«|jjt«d|j_ tj||«y#1swYŒ»xYw) NÚtest_frame_roundtripTr¥©roú"SELECT * FROM test_frame_roundtripr{Ú__index_level_0__Úlevel_0râ©Úinplace)r}rr©rrr~r#Úrenamer­Ú    set_indexrÕrlr¤r·rò©rVrrårèr«rs      r.Útest_api_roundtriprƒ³sî€à€IØ × "Ñ " 4Ó (€DÜ
‡}}Ð+¨TÔ2Ü _‰_˜T°DÔ 9ð    9¸YØ ×  Ñ  Ð!7Ô 8÷    9ô‡JJˆ{Ð2¸Õ=Ü × Ñ РDÈ$Ô O€FðÑØ—‘Ð(;¸YÐ'GÓHˆØ×$Ñ$€F„LØ
×ѐY¨ÐÔ-Ø
‡LL×ÑœÔØ€F‡LLÔÜ×ј& +Õ.÷    9ð    9ús ÁD Ä DcóÔ—d|vr9|jjtjj    d¬««|j |«}t jd|«r1t j|d¬«5}|jd«ddd«t j|d|dd¬    «t jd
|¬ «}tj||«y#1swYŒQxYw) Nr{rØr‚ryTr¥FrI)ror­rÅr{rz)r„r…rr†r‡r}rr©rrr~r#r·rò)rVrrår«rs     r.Útest_api_roundtrip_chunksizer…ÈsȀà ~؏ ‰ ×ÑÜ K‰K× Ñ Ð%RÐ Ó Sô    
ð × "Ñ " 4Ó (€DÜ
‡}}Ð+¨TÔ2Ü _‰_˜T°DÔ 9ð    9¸YØ ×  Ñ  Ð!7Ô 8÷    9ô‡JJØØØ ØØõ ô× Ñ РDÈ$Ô O€FÜ×ј& +Õ.÷    9ð    9ús Á<CÃC'có—|j|«}tj|«5}|jd«}|j    «}|j «ddd«t «gd¢k(sJ‚y#1swYŒxYw©Nrºr©)r}rr"rMrÀrTr!)rVrÚ
pandas_sqlÚ iris_resultsr\s     r.Útest_api_execute_sqlrŠÞsy€ð × "Ñ " 4Ó (€DÜ     ×    Ñ    ˜tÓ    $ð¨
Ø!×)Ñ)Ð*>Ó?ˆ Ø×#Ñ#Ó%ˆØ×ÑÔ÷ô ‹9Ò;Ò ;Ð;Ñ ;÷    ðús §2A4Á4A=c
ól—|}|j|«}tjd|«}d|vs>d|vs:t|jj
j tj«rJ‚tjd|dg¬«}t|jj
j tj«sJ‚|jj«tdddd    d    d    «tddd
d    d    d    «gk(sJ‚tjd|dd i¬«}t|jj
j tj«sJ‚|jj«tdddd    d    d    «tddd
d    d    d    «gk(sJ‚tjd|d g¬«}t|jj
j tj«sJ‚|jj«td ddd    d    d    «tdddd    d    d    «gk(sJ‚tjd|d di¬«}t|jj
j tj«sJ‚|jj«td ddd    d    d    «tdddd    d    d    «gk(sJ‚tjd|ddi¬«}t|jj
j tj«sJ‚|jj«td«td«gk(sJ‚y)NúSELECT * FROM typesr'r4r„©Ú parse_datesiÐrHrJrrKú%Y-%m-%d %H:%M:%Sr…iÂé éiÝrur†z%Y%m%dz
2010-10-10z
2010-12-12) r}rr#r´r„r@r³rµÚ
datetime64Útolistrr…r†rçs    r.Útest_api_date_parsingr”és€à€IØ × "Ñ " 4Ó (€Dô
×    Ñ    Ð1°4Ó    8€BØ yÑ   J°)Ñ$;ܘbŸj™j×.Ñ.×3Ñ3´R·]±]ÔCÐCÐCä     ×    Ñ    Ð1°4ÀiÀ[Ô    Q€BÜ b—j‘j×&Ñ&×+Ñ+¬R¯]©]Ô ;Ð;Ð ;Ø :‰:× Ñ Ó Ü$˜˜1˜a  AÓ&ܐ$˜˜1˜a  AÓ&ð#ò ðð ô
 
×    Ñ    ØØ ØР3Ð4ô
€Bô
b—j‘j×&Ñ&×+Ñ+¬R¯]©]Ô ;Ð;Ð ;Ø :‰:× Ñ Ó Ü$˜˜1˜a  AÓ&ܐ$˜˜1˜a  AÓ&ð#ò ðð ô
 
×    Ñ    Ð1°4ÀlÀ^Ô    T€BÜ b—m‘m×)Ñ)×.Ñ.´· ± Ô >Ð>Ð >Ø =‰=× Ñ Ó !ܐ$˜˜B  1 aÓ(ܐ$˜˜1˜a  AÓ&ð&ò ðð ô
 
×    Ñ    Ø˜t°,ÀÐ1Dô
€Bô b—m‘m×)Ñ)×.Ñ.´· ± Ô >Ð>Ð >Ø =‰=× Ñ Ó !ܐ$˜˜B  1 aÓ(ܐ$˜˜1˜a  AÓ&ð&ò ðð ô
 
×    Ñ    ØØ Ø% xÐ0ô
€Bô
b×'Ñ'×-Ñ-×2Ñ2´B·M±MÔ BÐBÐ BØ × Ñ × #Ñ #Ó %ܐ,Óܐ,Óð*ò ðñ r-Úerror)rsÚraiseÚcoercezread_sql, text, moderŒ)r>Úfallbackr‚r>cóî—|}|j|«}|dk(r4|dk(r/|jtjj    d¬««|j ddi«}|||dd|ii¬«}    d    |vr6|    d
j t «|    d
<|    d j t«|    d <|d k(r2|j d d d dœ«}ts|dj d«|d<tj|    |«y)Nr‚rwz failing combination of argumentsr‚r„údatetime64[ns]ru)rorŽr4r‰r‹rMÚint32)r…r†rˆzdatetime64[us]) r}rãrr†r‡rÕrlrRrr·rò)
rVrr½rwr±r•r×rèrrs
          r.Ú!test_api_custom_dateparsing_errorrœ!s€ð$€IØ × "Ñ " 4Ó (€DØ ˆw‚˜9Ð(>Ò>Ø×ÑÜ K‰K× Ñ Ð%GÐ Ó Hô    
ð ×&Ñ&¨    Ð3CÐ'DÓE€Há Ø Ø à ˜ %Ð(ð
ô€FðYÑà" 9Ñ-×4Ñ4´SÓ9ˆˆyÑØ$*Ð+<Ñ$=×$DÑ$DÄUÓ$KˆÐ Ñ!àÐ+Ò+Ø—?‘?à%Ø")Ø!ñ ó
ˆõ$à"*¨9Ñ"5×"<Ñ"<Ð=MÓ"NˆHYÑ ä×ј& (Õ+r-cóD—|j|«}tjd|dddg¬«}t|jj
j tj«sJ‚t|jj
j tj«sJ‚y)NrŒr„r…)Ú    index_colrŽ)
r}rr#r´r­r@r³rµr’r…©rVrrÖs   r.Útest_api_date_and_indexr Xs}€ð × "Ñ " 4Ó (€DÜ     ×    Ñ    ØØ ØØ  Ð-ô    
€Bô b—h‘h—n‘n×)Ñ)¬2¯=©=Ô 9Ð9Ð 9Ü b—m‘m×)Ñ)×.Ñ.´· ± Ô >Ð>Ñ >r-c    óf—|}|j|«}tjd|«r1tj|d¬«5}|j    d«ddd«t t ddgd¬««j«}|dk(r9|jjtjjd    ¬
««d |vrtrt}n    d}nt}t!j"|d ¬ «5|j%d|¬«}ddd«dk(sJ‚tj&d|«}|dk(r>t t)j*dddd¬«t)j*dddd¬«gd¬«}n|dj-d«}t!j.|d|«y#1swYŒIxYw#1swYŒ¤xYw)NÚtest_timedeltaTr¥z00:00:01z00:00:03Úfoor£rhz.sqlite ADBC driver doesn't implement timedeltar‚r{F)r’©r¤rorIzSELECT * FROM test_timedeltar>ri@B)ÚmonthsÚdaysÚ microsecondsÚ nanosecondsiÀÆ-rÓ)r}rr©rrrrrtr„r…rr†r‡rr—r˜r·r™r~r#r•Ú
DateOffsetrÕr¸)    rVrrèr«rÖršrrrs             r.Útest_api_timedeltarªgs›€ð€IØ × "Ñ " 4Ó (€DÜ
‡}}Ð% tÔ,Ü _‰_˜T°DÔ 9ð    3¸YØ ×  Ñ  Ð!1Ô 2÷    3ô
”f˜j¨*Ð5¸EÔBÓ    C×    LÑ    LÓ    N€BàÐ&Ò&؏ ‰ ×ÑÜ K‰K× Ñ ØGð ó ô    
ð ÑÝ Ü,‰Kà‰Kä!ˆ ä     ×    #Ñ    # KÀ%Ô    HñBØ—y‘yÐ&6¸DyÓAˆ ÷Bà ˜1Ò ÐÐ Ü × Ñ Р>ÀÓ E€FàÐ*Ò*ôä— ‘  Q¨Q¸WÐRSÔTÜ— ‘  Q¨Q¸WÐRSÔTð ðô 
‰ðe‘9×#Ñ# GÓ,ˆÜ×ј6 %™=¨(Õ3÷M    3ñ    3ú÷(BðBúsÁFÃ0F'ÆF$Æ'F0cóæ—|}|j|«}tdddgi«}d|vrd}nd}tjt|¬«5|j d|¬    «J‚    ddd«y#1swYyxYw)
NrŽyð?ð?y@r{zdatatypes not supportedzComplex datatypes not supportedrµÚ test_complexrz)r}rrr¶r·r~)rVrrèrÖr›s     r.Útest_api_complex_raisesr­–sx€à€IØ × "Ñ " 4Ó (€DÜ    C˜& "˜Ð&Ó    '€Bà ÑØ'‰à/ˆÜ    ‰”z¨Ô    -ñ;؏y‰y˜¨TˆyÓ2Ð:Ð:Ñ:÷;÷;ñ;ús ÁA'Á'A0zindex_name,index_label,expected))NNr­)NÚ other_labelr®)Ú
index_nameNr¯)r¯r®r®)rNÚ0)Nrr°có—d|vr9|jjtjj    d¬««|j |«}t jd|«r1t j|d¬«5}|jd«ddd«tdtd«i«}||j_ d    }t j|d||¬
«t j||«}|j d |k(sJ‚y#1swYŒvxYw) Nr{ú-index_label argument NotImplemented with ADBCr‚Útest_index_labelTr¥r
rKúSELECT * FROM test_index_label)Ú index_labelr)r„r…rr†r‡r}rr©rrrÚranger­r¤r~r#r¹)    rVrr¯rµrr«Ú
temp_framerÓr»s             r.Útest_api_to_sql_index_labelr¸¤sì€ð&~؏ ‰ ×ÑÜ K‰K× Ñ Ð%TÐ Ó Uô    
ð × "Ñ " 4Ó (€DÜ
‡}}Ð'¨Ô.Ü _‰_˜T°DÔ 9ð    5¸YØ ×  Ñ  Ð!3Ô 4÷    5ô˜F¤E¨!£HÐ-Ó.€JØ&€J×ÑÔØ ,€E܇JJˆzÐ-¨tÀÕMÜ × Ñ ˜u dÓ +€EØ =‰=˜Ñ ˜xÒ 'Ð'Ñ '÷    5ð    5ús Á<DÄD có²—|}d|vr1|jtjjdd¬««n=d|vr9|jj tjjd¬««|j |«}tjd|«r1tj|d    ¬
«5}|jd«ddd«d }td td «itjd dg«¬«}tj|d|«}||k(sJ‚tj d|«}|j"ddk(sJ‚|j"ddk(sJ‚tj|d|dddg¬«}||k(sJ‚tj d|«}|j"ddj%«ddgk(sJ‚ddg|j&_tj|d|d¬«}||k(sJ‚tj d|«}|j"ddj%«ddgk(sJ‚tj|d|dddg¬«}||k(sJ‚tj d|«}|j"ddj%«ddgk(sJ‚d}tj*t,|¬«5tj|d|dd¬«ddd«y#1swYŒýxYw#1swYyxYw)Nr'z/MySQL can fail using TEXT without length as keyFr£r{r²r‚r³Tr¥rKr
)ÚA0ÚA1)ÚB0ÚB1rnr´rr}rHÚlevel_1r”rÙrÚ)r|rµrIr¯rÛrÜzALength of 'index_label' should match number of levels, which is 2rµ)rãrr†r‡r„r…r}rr©rrrr¶rÚ from_productr~r#r¹r“r­Únamesr¶r·)    rVrrèr«Úexpected_row_countr·rr»r›s             r.Ú&test_api_to_sql_index_label_multiindexrÂÈsì€à€Iؐ)ÑØ×ÑÜ K‰K× Ñ ØHÐQVð ó õ    
ð
 
9Ñ    Ø ‰ ×ÑÜ K‰K× Ñ Ð%TÐ Ó Uô    
ð × "Ñ " 4Ó (€DÜ
‡}}Ð'¨Ô.Ü _‰_˜T°DÔ 9ð    5¸YØ ×  Ñ  Ð!3Ô 4÷    5ðÐÜØ    ”q“ÐÜ×%Ñ% |°\Ð&BÓCô€Jô Z‰Z˜
Ð$6¸Ó =€FØ Ð'Ò 'Ð'Ð 'Ü × Ñ Ð?ÀÓ F€EØ =‰=˜Ñ ˜yÒ (Ð(Ð (Ø =‰=˜Ñ ˜yÒ (Ð(Ð (ôZ‰ZØØØ ØØ˜#Jô €Fð Ð'Ò 'Ð'Ð 'Ü × Ñ Ð?ÀÓ F€EØ =‰=˜˜!Ð × #Ñ #Ó %¨#¨s¨Ò 3Ð3Ð 3ð" 3˜Z€J×ÑÔÜ Z‰Z˜
Ð$6¸È    Ô R€FØ Ð'Ò 'Ð'Ð 'Ü × Ñ Ð?ÀÓ F€EØ =‰=˜˜!Ð × #Ñ #Ó %¨#¨s¨Ò 3Ð3Ð 3ôZ‰ZØØØ ØØ˜#Jô €Fð Ð'Ò 'Ð'Ð 'Ü × Ñ Ð?ÀÓ F€EØ =‰=˜˜!Ð × #Ñ #Ó %¨#¨s¨Ò 3Ð3Ð 3à
M€CÜ    ‰”z¨Ô    -ñ
Ü 
‰
Ø Ø Ø ØØõ     
÷
ð
÷a    5ñ    5ú÷`
ð
úsÂ3KÊK ËK
Ë Kcó’—|j|«}tjd|«r1tj|d¬«5}|j    d«ddd«t j ddggd¢ddg¬    «}|jd|¬
«tjd |ddg¬ «}tj||d¬ «y#1swYŒmxYw)NÚtest_multiindex_roundtripTr¥©rHrÚline1©rIçø?Úline2©rÙrÚrÛrÙrÚ©r¹r­r¤z'SELECT * FROM test_multiindex_roundtrip©rž©Úcheck_index_type) r}rr©rrrÚ from_recordsr~r#r·rò)rVrr«rÖrs     r.Útest_api_multiindex_roundtriprÐs¼€à × "Ñ " 4Ó (€DÜ
‡}}Ð0°$Ô7Ü _‰_˜T°DÔ 9ð    >¸YØ ×  Ñ  Ð!<Ô =÷    >ô
×    Ñ    Ø    Ð-Ð.ÚØCˆjô
€Bð ‡IIÐ.°D€IÔ9Ü × Ñ Ø1°4ÀCÈÀ:ô€Fô×ј"˜f°tÖ<÷    >ð    >ús ¿B=Â=Cr@©rÙrÚcóº—|}|j|«}tjd|«r1tj|d¬«5}|j    d«ddd«t ddgddggdd    g¬
«}|j d|¬ «d k(sJ‚|j|«}d |vrd}nd}tj|||¬«}tj||«y#1swYŒxYw)NÚtest_dtype_argumentTr¥ç333333ó?g333333 @çffffff@g333333@rÙrÚrâr¤rIr4z(SELECT "A", "B" FROM test_dtype_argumentz$SELECT A, B FROM test_dtype_argument©ror@) r}rr©rrrr~rÕr#r·rò)    rVrr@rèr«rÖrrÓrs             r.Útest_api_dtype_argumentr×&sۀð€IØ × "Ñ " 4Ó (€DÜ
‡}}Ð*¨DÔ1Ü _‰_˜T°DÔ 9ð    8¸YØ ×  Ñ  Ð!6Ô 7÷    8ô
S˜#J  c 
Ð+°c¸3°ZÔ    @€BØ 9‰9Ð/°Tˆ9Ó :¸aÒ ?Ð?Ð ?ày‰y˜Ó€HàYÑØ:‰à6ˆÜ × Ñ  ¨4°uÔ =€Fä×ј& (Õ+÷    8ð    8ús ÁCÃCcó‚—|j|«}tddgddggddg¬«}tj|d|d¬    «y)
NrHrIrJrKrrâÚtest_frame_integer_col_namesr”r¯)r}rrr~rŸs   r.Útest_api_integer_col_namesrÚFsB€à × "Ñ " 4Ó (€DÜ    Q˜F˜Q ˜FÐ#¨a°¨VÔ    4€B܇JJˆrÐ1°4À9ÖMr-cóޗd|vr:|jjtjj    dd¬««|j |«}t j|d|¬«}d|vsJ‚y)Nr{ú-'get_schema' not implemented for ADBC driversTr£rzrzÚCREATE©r„r…rr†r‡r}rÚ
get_schema©rVrrår"s    r.Útest_api_get_schemaráMsj€à ~؏ ‰ ×ÑÜ K‰K× Ñ ØFØð ó ô    
ð × "Ñ " 4Ó (€DÜ—‘  ¨V¸Ô>€JØ zÑ !Ð!Ñ !r-cóà—d|vr:|jjtjj    dd¬««|j |«}t j|d|d¬«}d|vsJ‚y)    Nr{rÜTr£rzÚpypi)rorûzCREATE TABLE pypi.rÞràs    r.Útest_api_get_schema_with_schemarä[sn€ð~؏ ‰ ×ÑÜ K‰K× Ñ ØFØð ó ô    
ð × "Ñ " 4Ó (€DÜ—‘  ¨V¸ÀfÔM€JØ  :Ñ -Ð-Ñ -r-có8—d|vr:|jjtjj    dd¬««|}|j |«}t ddgddgd    œ«}|d
k(rd }nd d lm}|}tj|d|d|i¬«}d|vsJ‚d |vsJ‚y)Nr{rÜTr£皙™™™™ñ?rÔr皙™™™™@rïrsÚINTEGERr)rrzrðrÖrÝ) r„r…rr†r‡r}rr>rrrß)rVrrèÚ float_framer@rr"s       r.Útest_api_get_schema_dtypesrêjs°€à ~؏ ‰ ×ÑÜ K‰K× Ñ ØFØð ó ô    
ð €IØ × "Ñ " 4Ó (€DÜ 3¨ *°C¸°:Ñ>Ó?€KàÐ$Ò$؉å&àˆÜ—‘  ¨V¸ÀcÈ5À\ÔR€JØ zÑ !Ð!Ð !Ø ˜
Ñ "Ð"Ñ "r-cón—d|vr:|jjtjj    dd¬««|}|j |«}t ddgddgd    œ«}tj|d
|d ¬ «}d |vrd}nd}||vsJ‚tj|d
|ddg¬ «}d |vrd}nd}||vsJ‚y)Nr{rÜTr£rærÔrrç)ÚCol1ÚCol2rzrì)rorÔr'z'CONSTRAINT test_pk PRIMARY KEY (`Col1`)z'CONSTRAINT test_pk PRIMARY KEY ("Col1")rÙrÚz)CONSTRAINT test_pk PRIMARY KEY (`A`, `B`)z)CONSTRAINT test_pk PRIMARY KEY ("A", "B"))    r„r…rr†r‡r}rrrß)rVrrårèr»r"Úconstraint_sentences       r.Útest_api_get_schema_keysrï‚s؀à ~؏ ‰ ×ÑÜ K‰K× Ñ ØFØð ó ô    
ð €IØ × "Ñ " 4Ó (€DÜ   S˜z°C¸°:Ñ>Ó ?€EÜ—‘  v°4¸fÔE€Jà)ÑØGÑàGÐØ  *Ñ ,Ð,Ð ,ô—‘  ¨V¸ÀSÈ#ÀJÔO€Jؐ)ÑØIÑàIÐØ  *Ñ ,Ð,Ñ ,r-cóh—d|vr9|jjtjj    d¬««|}|j |«}t jd|«r1t j|d¬«5}|jd«ddd«ttjjd«jd«td    «¬
«}|j!d|d ¬ «t j"d |«}t«}d}gd¢}t j"d |d¬«D])}    t%||    gd¬«}t'|    «||k(sJ‚|dz }Œ+t)j*||«|dk(r=tj,t.d¬«5t j0d|d¬«ddd«yt«}
d}gd¢}t j0d|d¬«D])}    t%|
|    gd¬«}
t'|    «||k(sJ‚|dz }Œ+t)j*||
«y#1swYŒxYw#1swYyxYw)Nr{rØr‚Útest_chunksizeTr¥rI)ér¯ÚabcderâFrñzselect * from test_chunksizer)r¯r¯r¯r¯rIr¯rÄ©Ú ignore_indexrHrsrrµ)r„r…rr†r‡r}rr©rrrrµÚrandomÚ default_rngÚstandard_normalr!r~r#rrªr·ròr¶ÚNotImplementedErrorr$) rVrrèr«rÖrõröÚiÚsizesÚchunkÚres3s            r.Útest_api_chunksize_readrþŸs€à ~؏ ‰ ×ÑÜ K‰K× Ñ Ð%RÐ Ó Sô    
ð€IØ × "Ñ " 4Ó (€DÜ
‡}}Ð% tÔ,Ü _‰_˜T°DÔ 9ð    3¸YØ ×  Ñ  Ð!1Ô 2÷    3ô
Ü
    ‰    ×јaÓ ×0Ñ0°Ó9Ä4ÈÃ=ô
€Bð‡IIÐ#¨°U€IÔ;ô × Ñ Ð<¸dÓ C€Dô ‹;€DØ    €AÚ €Eä×#Ñ#Ð$BÀDÐTUÔVòˆÜt˜Um°$Ô7ˆÜ5‹z˜U 1™XÒ%Ð%Ð%Ø    ˆQ‰‰ðô
×ј$ Ô%ðÐ$Ò$Ü ]‰]Ô.°bÔ 9ñ    DÜ × Ñ Ð/°ÀÕ C÷    Dð    Dô‹{ˆØ ˆÚˆä×'Ñ'Ð(8¸$È!ÔLò    ˆEܘ4 ˜-°dÔ;ˆDܐu“:  q¡Ò)Ð )Ð)Ø ‰F‰Að    ô
     ×јd DÕ)÷K    3ñ    3ú÷2    Dð    DúsÁ>HÆH(ÈH%È(H1cóœ—|dk(rjtdd¬«}|[t|j«td«kr:|jj    t
j jdd¬««|j|«}tjd    |«r1tj|d¬
«5}|jd    «ddd«tgd ¢gd ¢d œ«}|j«}|djd«|d<|j!d    |d¬«tj"d|«}t%j&||«y#1swYŒƒxYw)Nr>r:rsrtz0.9.0z:categorical dtype not implemented for ADBC postgres driverTr£Útest_categoricalr¥rë)ú John P. Doez    Jane Dover)Ú    person_idÚ person_namerÚcategoryFrñzSELECT * FROM test_categorical)rrr?r„r…rr†r‡r}rr©rrrÚcopyrÕr~r#r·rò)rVrr{r«rÖÚdf2Úress       r.Útest_api_categoricalrÐs-€à Ð%Ò%Ü)Ð*BÈ8ÔTˆØ Ð ¤¨×(8Ñ(8Ó 9¼GÀGÓ<LÒ LØ L‰L× #Ñ #Ü— ‘ ×!Ñ!ØWØð"óô ð × "Ñ " 4Ó (€DÜ
‡}}Ð'¨Ô.Ü _‰_˜T°DÔ 9ð    5¸YØ ×  Ñ  Ð!3Ô 4÷    5ô
â"ÚFñ    
ó
€Bð '‰'‹)€Cؘ]Ñ+×2Ñ2°:Ó>€Cˆ Ñà‡JJÐ&¨D¸€JÔ>Ü
×
Ð=¸tÓ
D€Cä×ј#˜rÕ"÷    5ð    5ús Â.EÅE có—|j|«}tjd|«r1tj|d¬«5}|j    d«ddd«t ddgddggdd    g¬
«}|j d|d ¬ «y#1swYŒ3xYw) NÚ test_unicodeTr¥rHrIrJrKõérðrâFrñ)r}rr©rrrr~)rVrr«rÖs    r.Útest_api_unicode_column_namer ñs†€ð × "Ñ " 4Ó (€DÜ
‡}}^ TÔ*Ü _‰_˜T°DÔ 9ð    1¸YØ ×  Ñ   Ô 0÷    1ô
Q˜F˜Q ˜FÐ#¨f°c¨]Ô    ;€B؇II> t°5€IÕ9÷        1ð    1ús ¿BÂB có¤—|}|j|«}tjd|«r1tj|d¬«5}|j    d«ddd«t gd¢dt jdgdœ«}|jd|d¬    «d
|vrd }nd }tj||«}tj||«y#1swYŒtxYw) Nzd1187b08-4943-4c8d-a7f6Tr¥©rrHrIr«rÕrÑFrñr4z'SELECT * FROM "d1187b08-4943-4c8d-a7f6"z'SELECT * FROM `d1187b08-4943-4c8d-a7f6`) r}rr©rrrrµÚnanr~r#r·rò)rVrrèr«rÖrÓrs       r.Útest_api_escaped_table_namerýs¿€ð€IØ × "Ñ " 4Ó (€DÜ
‡}}Ð.°Ô5Ü _‰_˜T°DÔ 9ð    <¸YØ ×  Ñ  Ð!:Ô ;÷    <ô
š¨#¬r¯v©v°sÐ);Ñ<Ó    =€B؇IIÐ,°$¸e€IÔDàYÑØ9‰à9ˆÜ
×
˜U DÓ
)€Cä×ј#˜rÕ"÷    <ð    <ús ÁCÃCcó’—d|vrttjd«}t|j«td«k\r|dvs:|jj tj jdd¬««|j|«}tjd|«r1tj|d¬    «5}|jd«ddd«tgd
¢gd ¢d d œ«}|jd|d¬«tj d|«}tgd¢gd¢gd¢ggd¢¬«}t#j$||«y#1swYŒuxYw)Nr{r9z16.0)rhr>z!pyarrow->pandas throws ValueErrorTr£Ú
test_tabler¥rërìrH©rŽrðr÷Frñz)SELECT a, b, a +1 as a, c FROM test_table)rHrírIrH)rIr«rJrH)rJrîrKrH)rŽrðrŽr÷râ)rrrr?r„r…r†r‡r}rr©rrrr~r•r½r·rò)rVrÚpar«rÖrrs       r.Ú#test_api_read_sql_duplicate_columnsr    s€ð~Ü ×  Ñ   Ó +ˆä B—N‘NÓ #¤w¨v£Ò 6ØÐDÑDà L‰L× #Ñ #Ü— ‘ ×!Ñ!Ø>Àtð"óô ð
× "Ñ " 4Ó (€DÜ
‡}}\ 4Ô(Ü _‰_˜T°DÔ 9ð    /¸YØ ×  Ñ   Ô .÷    /ô
šª¸qÑAÓ    B€B؇II< T°€IÔ7ä [‰[ÐDÀdÓ K€FÜÚ    šªÐ8Ú$ô€Hô×ј& (Õ+÷    /ð    /ús Â7D=Ä=Ecó6—|}|dk(r/|jtjjd¬««|j    |«}t j |d|«ddg}t jd||¬«}|jj«|k(sJ‚y)NrsúNot Implementedr‚r§rÙrÚrâ)
rãrr†r‡r}rr~r$r¹r“)rVrrårèÚcolsrs      r.Útest_read_table_columnsr0    s‹€ð€IØÐ$Ò$Ø×ÑœFŸK™K×-Ñ-Ð5FÐ-ÓGÔHà × "Ñ " 4Ó (€D܇JJˆ{˜L¨$Ô/à ˆ:€Dä × Ñ   ¨d¸DÔ A€FØ >‰>×  Ñ  Ó " dÒ *Ð*Ñ *r-cóL—|}|dk(r/|jtjjd¬««|j    |«}t j |d|«t jd|d¬«}|jjdgk(sJ‚t jd|ddg¬«}|jjddgk(sJ‚t jd|ddgd    d
g¬ «}|jjddgk(sJ‚|jj«d    d
gk(sJ‚y) Nrsrr‚r§r­rÌrÙrÚrÛrÜ)ržr¹) rãrr†r‡r}rr~r$r­rÀr¹r“)rVrrårèrs     r.Útest_read_table_index_colr@    s€ð€IØÐ$Ò$Ø×ÑœFŸK™K×-Ñ-Ð5FÐ-ÓGÔHà × "Ñ " 4Ó (€D܇JJˆ{˜L¨$Ô/ä × Ñ   ¨d¸gÔ F€FØ <‰<× Ñ  ' Ò *Ð*Ð *ä × Ñ   ¨d¸sÀC¸jÔ I€FØ <‰<× Ñ  # s Ò +Ð+Ð +ä × Ñ Ød s¨C j¸3À¸*ô€Fð <‰<× Ñ  # s Ò +Ð+Ð +Ø >‰>×  Ñ  Ó " s¨C jÒ 0Ð0Ñ 0r-có–—|dk(r/|jtjjd¬««|j    |«}t j d|«}t jd|«}tj||«t jd|«}t jd|«}tj||«y)Nrurâr‚rºr7) rãrr†r‡r}rr#r½r·ròr$)rVrÚ iris_frame1Ú iris_frame2s    r.Útest_read_sql_delegaterW    s«€à Ð$Ò$Ø×ÑÜ K‰K× Ñ ØTð ó ô    
ð × "Ñ " 4Ó (€DÜ×$Ñ$Ð%9¸4Ó@€KÜ—,‘,Ð3°TÓ:€KÜ×ј+ {Ô3ä×$Ñ$ V¨TÓ2€KÜ—,‘,˜v tÓ,€KÜ×ј+ {Õ3r-có6—|}ddlm}ddlm}|d«|d«g}|D]|}t    ||«rD|j «5}|j «5|j|«ddd«ddd«ŒS|j «5|j|«ddd«Œ~tjd«5tjd|«tjd|«ddd«y#1swYŒ‰xYw#1swYŒßxYw#1swYŒëxYw#1swYyxYw)Nrrvr—z,CREATE TABLE invalid (x INTEGER, y UNKNOWN);z0CREATE TABLE other_table (x INTEGER, y INTEGER);Ú other_tablezSELECT * FROM other_table) r>rwr™r˜rxršrjrMr·r™rr$r#)rYrVrwr˜Ú
query_listrÓs      r.Útest_not_reflect_all_tablesr#j    s€Ø €DÝÝ(ñ     Ð ;Ó<Ù Ð ?Ó@ð€Jð
ò$ˆÜ d˜FÔ #Ø—‘“ð ( 4Ø—Z‘Z“\ñ(Ø—L‘L Ô'÷(÷ (ð (ð—‘“ñ $Ø— ‘ ˜UÔ#÷ $ð $ð $ô
×    #Ñ    # DÓ    )ñ>Ü ×ј=¨$Ô/Ü ×ÑÐ6¸Ô=÷>ð>÷ (ð(ú÷ (ð (ú÷ $ð $ú÷>ð>ús<ÁC7ÁC+Á#C7ÂDÂ5-DÃ+C4 Ã0C7Ã7D    ÄD     ÄDcóì—|}|dk(sd|vr/|jtjjd¬««|j    |«}t j td¬«5tj|«5}|jdd«ddd«ddd«t j d«5|jd    |¬
«ddd«y#1swYŒCxYw#1swYŒGxYw#1swYyxYw) Nrsr{zDoes not raise warningr‚z¶The provided table name 'TABLE1' is not found exactly as such in the database after writing the table, possibly due to case sensitivity issues. Consider using lower case table names.rµÚTABLE1rÚ CaseSensitiver¤) rãrr†r‡r}r·r™r˜rrÚcheck_case_sensitiver~)rVrrårèrs     r.Ú(test_warning_case_insensitive_table_namer(ƒ    sæ€à€IØÐ$Ò$¨°)Ñ(;Ø×ÑœFŸK™K×-Ñ-Ð5MÐ-ÓNÔOà × "Ñ " 4Ó (€Dä     ×    #Ñ    #Üð Jô
ñ    2ô_‰_˜TÓ "ð    2 bØ × #Ñ # H¨bÔ 1÷    2÷    2ô
×    #Ñ    # DÓ    )ñ;Ø×Ñ °TÐÔ:÷;ð;÷        2ð    2ú÷    2ð    2ú÷;ð;ús0Á'CÁ=CÂCÂ5C*ÃC    ÃCÃC'Ã*C3cóJ—|j|«}ddlm}tdt    ddgd¬«i«}t j |«5}t jd||¬    «}t|jjdj|«sJ‚    ddd«y#1swYyxYw)
Nr)Ú    TIMESTAMPrú2014-12-12 01:54ú2014-12-11 02:54T©ÚutcÚ    test_type©r») r}r>r*rrrrÚSQLTablerxrür÷r³)rVrr*rÖrrüs      r.Útest_sqlalchemy_type_mappingr2›    s•€à × "Ñ " 4Ó (€DÝ$ô
Ø    ”Ð0Ð2DÐEÈ4ÔPÐQó
€Bô
‰˜Ó    ðA "Ü— ‘ ˜[¨"°BÔ7ˆä˜%Ÿ+™+Ÿ-™-¨Ñ/×4Ñ4°iÔ@Ð@Ñ@÷A÷AñAús ÁABÂB"zinteger, expected)Úint8ÚSMALLINT)ÚInt8r4)Úuint8r4)ÚUInt8r4)Úint16r4)ÚInt16r4)Úuint16rè)ÚUInt16rè)r›rè)ÚInt32rè)Úuint32ÚBIGINT)ÚUInt32r>)rÓr>)ÚInt64r>rÓr>rècó@—|j|«}tddgdg|¬«}tj|«5}tjd||¬«}t |j jjj«}ddd«|k(sJ‚y#1swYŒxYw)NrrHrŽ©r¹r@r/r0)
r}rrrr1rÁrür÷rŽr³)rVrrärrÖrrürs        r.Útest_sqlalchemy_integer_mappingrCª    s‰€ð. × "Ñ " 4Ó (€DÜ    Aq6 C 5°Ô    8€BÜ     ‰˜Ó    ð+ "Ü— ‘ ˜[¨"°BÔ7ˆäU—[‘[—]‘]—_‘_×)Ñ)Ó*ˆ÷+ð XÒ ÐÑ ÷    +ð+ús ¸A BÂBräÚuint64ÚUInt64có,—|j|«}tddgdg|¬«}tj|«5}t    j
t d¬«5tjd||¬«ddd«ddd«y#1swYŒxYw#1swYyxYw)    NrrHrŽrBz1Unsigned 64 bit integer datatype is not supportedrµr/r0)r}rrrrr¶r·r1)rVrrärÖrs     r.Ú(test_sqlalchemy_integer_overload_mappingrGÊ    s‰€ð × "Ñ " 4Ó (€Dä    Aq6 C 5°Ô    8€BÜ     ‰˜Ó    ð4 "Ü ]‰]Ü ÐQô
ñ    4ô L‰L˜ b°Õ 3÷    4÷4ð4÷    4ð    4ú÷4ð4ús#¸B
ÁA>Á-B
Á>B    ÂB
Bcóæ—tjd«|j|«}tj«5}d|z}d}|j ||dd¬«t j||«}t j||«}d}t j||«}    ddd«tj|«tj|«tj|    «y#1swYŒLxYw)Nr>rSr7r”Fr{rº) rrr}r·rTr~rr½r$r#rò)
rVrrår¤Údb_urirür`rçrÓris
          r.Útest_database_uri_stringrJ×    sԀä
×ј Ô%Ø × "Ñ " 4Ó (€Dô
 
‰Ó    ð8˜dØ Ñ$ˆØˆØ×Ñ ¨6¸YÈeÐÔTÜ—l‘l 5¨&Ó1ˆ Ü×(Ñ(¨°Ó7ˆ Ø$ˆÜ×(Ñ(¨°Ó7ˆ ÷8ô×ј+ {Ô3Ü×ј+ {Ô3Ü×ј+ {Õ3÷8ð8ús »A!C'Ã'C0Úpg8000cóà—tjd«|j|«}d}tjtd¬«5t j d|«ddd«y#1swYyxYw)Nr>z)postgresql+pg8000://user:pass@host/dbnamerKrµzselect * from table)rrr}r¶Ú ImportErrorrr½)rVrrIs   r.Ú(test_pg8000_sqlalchemy_passthrough_errorrNì    s[€ô ×ј Ô%Ø × "Ñ " 4Ó (€Dð9€FÜ    ‰”{¨(Ô    3ñ4Ü  ‰ Ð*¨FÔ3÷4÷4ñ4ús ÁA$Á$A-cóÀ—|}|j|«}ddlm}d|vr    |d«}n|d«}tj||ddi¬«}t |d    «}|dhk(sJ‚y)
Nrrvr4z%select * from iris where "Name"=:namez#select * from iris where name=:namer¤zIris-versicolorrÌr<)r}r>rwrr½Úset)rVrrèrwÚ    name_textÚiris_dfÚ    all_namess       r.Útest_query_by_text_objrTø    sr€ð€IØ × "Ñ " 4Ó (€DÝàYÑÙÐ@ÓA‰    áÐ>Ó?ˆ    Ül‰l˜9 d°FÐ<MÐ3NÔO€GܐG˜F‘OÓ$€IØ Ð*Ð+Ò +Ð+Ñ +r-có—|j|«}ddlm}m}t    «}||«j |j j|d«k(«}tj||ddi¬«}t|d«}|dhk(sJ‚y)Nr)Ú    bindparamrÈr¤r¬rÌr<) r}r>rVrÈrBÚwherer÷r<rr½rP)rVrrVrÈr7Ú name_selectrRrSs        r.Útest_query_by_select_objrY
s|€à × "Ñ " 4Ó (€D÷ô
Ó  €DÙ˜“,×$Ñ$ T§V¡V§[¡[±I¸fÓ4EÑ%EÓF€K܏l‰l˜;¨°f¸mÐ5LÔM€GܐG˜F‘OÓ$€IØ ˜˜Ò 'Ð'Ñ 'r-có6—|}|dk(r/|jtjjd¬««|j    |«}t gd¢gd¢dœ«}|j d|d¬    «tjd|«}tj||«y)
Nrsrr‚r©rJrKr¯)rÙz %_variationÚtest_column_percentageFrñ) rãrr†r‡r}rr~rr$r·rò)rVrrèrÖrs     r.Útest_column_with_percentager]
sˆ€ð€IØÐ$Ò$Ø×ÑœFŸK™K×-Ñ-Ð5FÐ-ÓGÔHà × "Ñ " 4Ó (€DÜ    š²9Ñ=Ó    >€B؇IIÐ+°¸U€IÔCä
×
Ð5°tÓ
<€Cä×ј#˜rÕ"r-có¸—tj«5}ttj|««5}t j |d|d¬«dk(sJ‚    ddd«ttj|««5}t jd|«}ddd«ddd«tj|«y#1swYŒexYw#1swYŒ4xYw#1swYŒ8xYw)NÚtest_frame3_legacyFrnrKz!SELECT * FROM test_frame3_legacy;)    r·rTrryršrr~r#rò)rçr¤rVrs    r.Útest_sql_open_closer`(
sǀô
‰Ó    ðS˜dÜ ”W—_‘_ TÓ*Ó +ð    Y¨tÜ—:‘:˜kÐ+?ÀÈUÔSÐWXÒXÐ XÑX÷    Yô”W—_‘_ TÓ*Ó +ð    S¨tÜ×'Ñ'Ð(KÈTÓRˆF÷    S÷    Sô×ј+ vÕ.÷     Yð    Yú÷    Sð    Sú÷    SðSús:•C´B8Á&CÁ:CÂCÂ8C    Â=CÃC     Ã    CÃCcó˜—d}d}tjt|¬«5tjd|«ddd«y#1swYyxYw)Nzmysql://root@localhost/pandasz-Using URI string without sqlalchemy installedrµrº)rr¶rMrr½)rVr›s  r.Útest_con_string_import_errorrb6
s>€à *€DØ
9€CÜ    ‰”{¨#Ô    .ñ1Ü  ‰ Ð)¨4Ô0÷1÷1ñ1ús  AÁA    có—Gd„d«}tj|d««5}tjt«5t j d|«ddd«ddd«y#1swYŒxYw#1swYyxYw)Ncó —eZdZdd„Zd„Zd„Zy)úhtest_con_unknown_dbapi2_class_does_not_error_without_sql_alchemy_installed.<locals>.MockSqliteConnectioncó8—tj|i|¤Ž|_yr)ryrzrV)ÚselfÚargsÚkwargss   r.Ú__init__zqtest_con_unknown_dbapi2_class_does_not_error_without_sql_alchemy_installed.<locals>.MockSqliteConnection.__init__A
s€Ü×*Ñ*¨DÐ;°FÑ;ˆDIr-có.—t|j|«Sr)ÚgetattrrV)rgr¤s  r.Ú __getattr__zttest_con_unknown_dbapi2_class_does_not_error_without_sql_alchemy_installed.<locals>.MockSqliteConnection.__getattr__D
s€Ü˜4Ÿ9™9 dÓ+Ð +r-có8—|jj«yr)rVrT)rgs r.rTzntest_con_unknown_dbapi2_class_does_not_error_without_sql_alchemy_installed.<locals>.MockSqliteConnection.closeG
s€Ø I‰IO‰OÕ r-N)ÚreturnÚNone)Ú__name__Ú
__module__Ú __qualname__rjrmrTr,r-r.ÚMockSqliteConnectionre@
s„ó    <ò    ,ó    r-rtrozSELECT 1)rprr·r™r˜rr½)rtrVs  r.ÚJtest_con_unknown_dbapi2_class_does_not_error_without_sql_alchemy_installedru>
so€÷ñô
×    Ñ    Ñ0°Ó<Ó    =ð+ÀÜ × 'Ñ '¬ Ó 4ñ    +Ü L‰L˜ TÔ *÷    +÷+ð+÷    +ð    +ú÷+ð+ús#¦A4ÁA(ÁA4Á(A1    Á-A4Á4A=có0—|}tjd|«}tjd|«}tj||«d}t j tj|¬«5tjd|«ddd«y#1swYyxYw)Nrºz9Execution failed on sql 'iris': near "iris": syntax errorrµr7)rr#r½r·ròrr¶Ú DatabaseError)rurVrrr›s     r.Útest_sqlite_read_sql_delegaterxO
sw€Ø €DÜ×$Ñ$Ð%9¸4Ó@€KÜ—,‘,Ð3°TÓ:€KÜ×ј+ {Ô3à
G€CÜ    ‰”s×(Ñ(°Ô    4ñ#Ü  ‰ V˜TÔ"÷#÷#ñ#ús Á,B  Bcó<—tj|d«}d|vsJ‚y)NrzrÝ)rrß)rår"s  r.Útest_get_schema2rzZ
s €ä—‘  ¨VÓ4€JØ zÑ !Ð!Ñ !r-có^—|}tdtddgd¬«i«}tj|«}tjd||¬«}|j «}|j d«D]@}|j «d    jd
«dk(sŒ)|j «d d k(rŒ@J‚y) Nrr+r,Tr-r/r0ú
rrrHr*)rrrr Ú SQLiteTableÚ
sql_schemaÚsplitÚstrip)rsrVrÖrrürûÚcols       r.Útest_sqlite_type_mappingr‚`
s¦€à €DÜ    Ø    ”Ð0Ð2DÐEÈ4ÔPÐQó
€Bô
×    Ñ    ˜DÓ    !€BÜ O‰O˜K¨°2Ô 6€EØ × Ñ Ó €F؏|‰|˜DÓ!ò1ˆØ 9‰9‹;q‰>× Ñ  Ó $¨Ó .Ø—9‘9“;˜q‘> [Ó0Ð 0Ð0ñ1r-có—|dk(rtjd«|j|«}ddlm}t gd¢gd¢dœ«}t j|d¬    «5}|j|d
«d k(sJ‚    ddd«||«}|jd
«sJ‚t j|d¬    «5}|jd
«ddd«y#1swYŒVxYw#1swYyxYw) NrUú#sqlite_str has no inspection systemrrï©çð?ç@ç@ç@©r‰rˆr‡r†©ÚoneÚtwoTr¥r·rK) rÚskipr}r>rðrrrr~r©r©rVrrðr·r«Úinsps      r.Útest_create_tabler‘r
sҀà ˆ|Ò܏ ‰ Ð9Ô:à × "Ñ " 4Ó (€Då"äÒ#7Ò@TÑUÓV€JÜ     ‰˜°Ô    5ð?¸Ø×Ñ 
¨LÓ9¸QÒ>Ð>Ñ>÷?ñ 4‹=€DØ >‰>˜,Ô 'Ð'Ð 'ô
‰˜°Ô    5ð+¸Ø×ј\Ô*÷+ð+÷?ð?ú÷+ð+úsÁC    Â.Cà   CÃCcób—|dk(rtjd«|j|«}ddlm}t gd¢gd¢dœ«}t j|«5}|j«5|j|d«d    k(sJ‚    ddd«||«}|jd«sJ‚|j«5|jd«ddd«    |j«|jd«rJ‚    ddd«y#1swYŒ|xYw#1swYŒCxYw#t$rYŒ@wxYw#1swYyxYw)
NrUr„rrïr…rŠr‹r·rK)rrŽr}r>rðrrrrOr~r©rÚ clear_cacheÚAttributeErrorrs      r.Útest_drop_tabler•‡
s*€à ˆ|Ò܏ ‰ Ð9Ô:à × "Ñ " 4Ó (€Då"äÒ#7Ò@TÑUÓV€JÜ     ‰˜Ó    ð 0 )Ø × &Ñ &Ó (ñ    CØ×#Ñ# J° Ó=ÀÒBÐ BÑB÷    Cñt‹}ˆØ~‰~˜lÔ+Ð+Ð+à × &Ñ &Ó (ñ    /Ø ×  Ñ   Ô .÷    /ð    Ø × Ñ Ô ð—>‘> ,Ô/Ð/Ð/Ð/÷ 0ð 0÷    Cð    Cú÷     /ð    /ûôò    Ù ð    ú÷ 0ð 0ús`ÁD%Á*C>Â3D%Â6D
ÃD%ÃDÃ!D%Ã>D    ÄD%Ä
D    ÄD%Ä    D"ÄD%Ä!D"Ä"D%Ä%D.có²—|dk(rtjd«|}|j|«}t|«}|j    «5|j |d«dk(sJ‚|j d«}ddd«d|vrjddi¬    «}jdd
¬ «d|j_
tj||«y#1swYŒ\xYw) NrUr„ryrKr{r{r|r}râTr~) rrŽr}r"rOr~rPr€rr­r¤r·ròr‚s      r.Útest_roundtripr—¡
sـà ˆ|Ò܏ ‰ Ð9Ô:à€IØ × "Ñ " 4Ó (€DÜ! $Ó'€IØ    ×    "Ñ    "Ó    $ñLØ×Ñ  Ð-CÓDÈÒIÐIÐIØ×%Ñ%Ð&JÓKˆ÷LðÑØ—‘Ð(;¸YÐ'GÓHˆØ
×ѐY¨ÐÔ-ð€F‡LLÔä×ј& +Õ.÷LðLús Á    )C à Ccó6—|j|«}t|«5}|j«5|jd«}|j    «}|j «ddd«ddd«t «gd¢k(sJ‚y#1swYŒ$xYw#1swYŒ(xYwr‡)r}r"rOrMrÀrTr!)rVrr«r‰r\s     r.Útest_execute_sqlr™·
s’€à × "Ñ " 4Ó (€DÜ    ˜4Ó     ð! IØ × &Ñ &Ó (ñ    !Ø$×,Ñ,Ð-AÓBˆLØ×'Ñ'Ó)ˆCØ × Ñ Ô  ÷    !÷!ô
‹9Ò;Ò ;Ð;Ñ ;÷        !ð    !ú÷!ð!ús"B®2BÁ BÂB     ÂBÂBcój—|j|«}tjd|¬«}t|«y)Nr7rz)r}rr$r½r¾s   r.Útest_sqlalchemy_read_tabler›Â
s,€à × "Ñ " 4Ó (€DÜ×#Ñ# F°Ô5€JܐZÕ r-có°—|j|«}tjd|ddg¬«}tj|j
t ddg««y)Nr7r8)ror¹ÚSepalLength__1)r}rr$r·Úassert_index_equalr¹rr¾s   r.Ú"test_sqlalchemy_read_table_columnsrŸÉ
sQ€à × "Ñ " 4Ó (€DÜ×#Ñ#ؐD =°-Ð"@ô€Jô×ј*×,Ñ,¬e°]ÐDTÐ4UÓ.VÕWr-có¸—|j|«}d}tjt|¬«5t    j
d|¬«ddd«y#1swYyxYw)Nz!Table this_doesnt_exist not foundrµÚthis_doesnt_existrz)r}rr¶r·rr$)rVrr›s   r.Útest_read_table_absent_raisesr¢Ò
sK€à × "Ñ " 4Ó (€DØ
-€CÜ    ‰”z¨Ô    -ñ:Ü ×ÑÐ.°DÕ9÷:÷:ñ:ús ¯AÁAcó*—|}|dk(rtjd«n7d|vsd|vr/|jtjj    d¬««|j |«}t jd|«}t|jjjtj«sJ‚t|jjjtj«sJ‚t|j jjtj"«sJ‚t|j$jjtj«sJ‚t|j&jjt(«sJ‚y)NrUú.types tables not created in sqlite_str fixturer'r&z#boolean dtype not inferred properlyr‚r‚)rrŽrãr†r‡r}rr$r´r‡r@r³rµr¶rˆrär‰rårŠr‹rærçs    r.Ú'test_sqlalchemy_default_type_conversionr¥Ú
s'€à€IؐLҠ܏ ‰ ÐDÕEØ    IÑ     ¨YÑ!6Ø×ÑÜ K‰K× Ñ Ð%JÐ Ó Kô    
ð × "Ñ " 4Ó (€DÜ     ×    Ñ    ˜G TÓ    *€Bä b—k‘k×'Ñ'×,Ñ,¬b¯k©kÔ :Ð:Ð :Ü b—i‘i—o‘o×*Ñ*¬B¯J©JÔ 7Ð7Ð 7Ü b—j‘j×&Ñ&×+Ñ+¬R¯X©XÔ 6Ð6Ð 6ô b×'Ñ'×-Ñ-×2Ñ2´B·K±KÔ @Ð@Ð @ä b×(Ñ(×.Ñ.×3Ñ3´VÔ <Ð<Ñ <r-cóΗ|j|«}tddgi¬«}|jd|d¬«dk(sJ‚tjd|«}t j ||«y)NÚi64l)rÊÚ test_bigintFrñrHr ©rVrrÖrs    r.r¨r¨ñ
sd€ð × "Ñ " 4Ó (€DÜ    ˜  Ð(Ô    )€BØ 9‰9˜-¨T¸ˆ9Ó ?À1Ò DÐDÐ DÜ × Ñ   ¨tÓ 4€Fä×ј"˜fÕ%r-cóf—|}|dk(rtjd«n3d|vr/|jtjj    d¬««|j |«}t jd|«}t|jjjtj«sJ‚y)NrUr¤r&z"sqlite does not read date properlyr‚r‚)rrŽrãr†r‡r}rr$r´r„r@r³rµr’rçs    r.Útest_default_date_loadr«ü
s€à€IؐLҠ܏ ‰ ÐDÕEØ    YÑ    Ø×ÑÜ K‰K× Ñ Ð%IÐ Ó Jô    
ð × "Ñ " 4Ó (€DÜ     ×    Ñ    ˜G TÓ    *€Bä b—j‘j×&Ñ&×+Ñ+¬R¯]©]Ô ;Ð;Ñ ;r-rŽržcóœ—|j|«}t|«}td||¬«}|j}t    j
||«y)Núselect * from datetzr)r}r§r#ržr·r¸)rVrrŽrrÖrs      r.Ú!test_datetime_with_timezone_queryr® sJ€ð × "Ñ " 4Ó (€DÜ.¨tÓ4€Hô
Ð.°À+Ô    N€BØ
×
€CÜ×ј3 Õ)r-c    óė|j|«}t|«}ttt    d|d¬««d¬«}|j
}t j||«y)Nr­rHrÄTrô)r}r§rr!r#ržr·r¸)rVrrrÖrs     r.Ú+test_datetime_with_timezone_query_chunksizer° sX€à × "Ñ " 4Ó (€DÜ.¨tÓ4€Hä    Ü Œ^Ð2°DÀAÔ FÓGØô
€Bð ×
€CÜ×ј3 Õ)r-có°—|j|«}t|«}tjd|«}t    j
||j ««y)Nr)r}r§rr$r·ròrt)rVrrrs    r.Ú!test_datetime_with_timezone_tabler²( sG€à × "Ñ " 4Ó (€DÜ.¨tÓ4€HÜ × Ñ  ¨$Ó /€FÜ×ј& (×"3Ñ"3Ó"5Õ6r-có4—|}|j|«}tdtddd¬«i«}|jd|d¬«dk(sJ‚d    |vr"|djj d
«|d<n!|djj d«|d<tjd|«}tj||«tjd |«}d |vr0t|jd t«sJ‚t|d«|d<tj||«y)NrÙú2013-01-01 09:00:00rJú
US/Pacific©Úperiodsr¢Útest_datetime_tzFrñr(r zSELECT * FROM test_datetime_tzr&©rrÙ)r}rrr~ÚdtÚ
tz_convertÚ tz_localizerr$r·ròr#rxÚlocrÁr)rVrrèrrs     r.Ú%test_datetime_with_timezone_roundtripr¾0 s€à€IØ × "Ñ " 4Ó (€Dô
Ø     ŒjÐ.¸¸lÔKÐLó€Hð ?‰?Р2¸ÀEˆ?Ó JÈaÒ OÐOÐ OàyÑ à  ™ ×(Ñ(×3Ñ3°EÓ:ˆŠ ð! ™ ×(Ñ(×4Ñ4°TÓ:ˆ‰ ä × Ñ Р2°DÓ 9€FÜ×ј& (Ô+ä × Ñ Р@À$Ó G€Fؐ9Ñä˜&Ÿ*™* VÑ,¬cÔ2Ð2Ð2Ü! &¨¡+Ó.ˆˆs‰ Ü×ј& (Õ+r-có —|j|«}tdtddd«idg¬«}|jd|d¬«dk(sJ‚t    j
d|«}tt jgdg¬    «}tj||«y)
Nri'rHrrnÚtest_datetime_obbFrñrâ)
r}rrr~rr$r•ÚNaTr·rò)rVrrÊrrs     r.Útest_out_of_bounds_datetimerÂO s…€ð × "Ñ " 4Ó (€DÜ fœh t¨Q°Ó2Ð3¸A¸3Ô ?€DØ ;‰;Ð/°TÀˆ;Ó GÈ1Ò LÐLÐ LÜ × Ñ Р3°TÓ :€FÜœ"Ÿ&™&˜¨F¨8Ô4€HÜ×ј& (Õ+r-có"—|j|«}tddd¬«jd«}tdt    d«i|¬«}|j d|d¬    «dk(sJ‚t jd|d¬
«}tj||d ¬ «y) Nz
2018-01-01r¯Ú6h©r·ÚfreqÚnumsrnÚ    foo_tableÚ    info_date)r¤rorµrÌF)Ú check_names)
r}rÚ
_with_freqrr¶r~rr$r·rò)rVrÚdatesrrs     r.Ú"test_naive_datetimeindex_roundtriprÍZ s†€ð × "Ñ " 4Ó (€DÜ |¨Q°TÔ :× EÑ EÀdÓ K€Eܘ&¤%¨£(Ð+°5Ô9€HØ ?‰?  °À;ˆ?Ó OÐSTÒ TÐTÐ TÜ × Ñ   ¨T¸[Ô I€Fä×ј& (¸Ö>r-cóÖ—|}|j|«}tjd|«}d|vrtntj
}t |jjj|«sJ‚tjd|dg¬«}t |jjjtj
«sJ‚tjd|ddi¬«}t |jjjtj
«sJ‚tjd|dddii¬«}t |jjjtj
«sJ‚tjd|dg¬«}t |jjjtj
«sJ‚tjd|ddi¬«}t |jjjtj
«sJ‚tjd|dd    dii¬«}t |jjjtj
«sJ‚y)
Nr‚r&r„rrÚformatr…ruÚunit) r}rr$rærµr’r´r„r@r³r…)rVrrèrÖÚ expected_types     r.Útest_date_parsingrÒg s×€ð€IØ × "Ñ " 4Ó (€DÜ     ×    Ñ    ˜G TÓ    *€BØ&¨)Ñ3•F¼¿¹€MÜ b—j‘j×&Ñ&×+Ñ+¨]Ô ;Ð;Ð ;ä     ×    Ñ    ˜G T¸    °{Ô    C€BÜ b—j‘j×&Ñ&×+Ñ+¬R¯]©]Ô ;Ð;Ð ;ä     ×    Ñ    ˜G T¸    ÐCVÐ7WÔ    X€BÜ b—j‘j×&Ñ&×+Ñ+¬R¯]©]Ô ;Ð;Ð ;ä     ×    Ñ    ØØ Ø Ð+>Р?Ð@ô
€Bô
b—j‘j×&Ñ&×+Ñ+¬R¯]©]Ô ;Ð;Ð ;ä     ×    Ñ    ˜G T¸ °~Ô    F€BÜ b—m‘m×)Ñ)×.Ñ.´· ± Ô >Ð>Ð >ä     ×    Ñ    ˜G T¸ ÀcÐ7JÔ    K€BÜ b—m‘m×)Ñ)×.Ñ.´· ± Ô >Ð>Ð >ä     ×    Ñ    ˜G T¸ ÀvÈsÀmÐ7TÔ    U€BÜ b—m‘m×)Ñ)×.Ñ.´· ± Ô >Ð>Ñ >r-cóD—|}|j|«}ttdd¬«tjd«dœ«}|j d|¬«dk(sJ‚t jd|«}|jdd    ¬
«}tj||«t jd |«}|jdd    ¬
«}d |vrGt|jd t«sJ‚t|d«|d<tj||«ytj||«y)Nr´rJ©r·rˆrÑÚ test_datetimer¤r­rH)ÚaxisúSELECT * FROM test_datetimer&r¹rÙ)r}rrrµrsr~rr$rkr·ròr#rxr½rÁr©rVrrèrÖrs     r.rÕrÕ‡ s€à€IØ × "Ñ " 4Ó (€DÜ    ÜÐ.¸Ô:ÄÇÁÈ3ÃÑPó
€Bð 9‰9˜/¨tˆ9Ó 4¸Ò 9Ð9Ð 9ô× Ñ  °Ó 6€FØ [‰[˜ qˆ[Ó )€FÜ×ј& "Ô%ô× Ñ Р=¸tÓ D€FØ [‰[˜ qˆ[Ó )€Fؐ9Ñܘ&Ÿ*™* VÑ,¬cÔ2Ð2Ð2Ü! &¨¡+Ó.ˆˆs‰ Ü
×јf bÕ)ä
×јf bÕ)r-có8—|}|j|«}ttdd¬«tjd«dœ«}tj
|j d<|jd|d¬    «dk(sJ‚tjd|«}tj||«tjd
|«}d |vrIt|j d t«sJ‚t|d d¬«|d <tj||«ytj||«y)Nr´rJrÔrˆrÑ©rHrÙrÕFrñr×r&r¹rÙr—rt)r}rrrµrsrr½r~rr$r·ròr#rxrÁrrØs     r.Útest_datetime_NaTrÛ  s÷€à€IØ × "Ñ " 4Ó (€DÜ    ÜÐ.¸Ô:ÄÇÁÈ3ÃÑPó
€Bô—V‘V€B‡FFˆ6NØ 9‰9˜/¨t¸5ˆ9Ó AÀQÒ FÐFÐ Fô× Ñ  °Ó 6€FÜ×ј& "Ô%ô× Ñ Р=¸tÓ D€Fؐ9Ñܘ&Ÿ*™* VÑ,¬cÔ2Ð2Ð2Ü! &¨¡+°hÔ?ˆˆs‰ Ü
×јf bÕ)ä
×јf bÕ)r-có—|j|«}ttddd«tddd«gdg¬«}|jd|d¬«dk(sJ‚t    d|«}|d}t |d«}t j||«y)    NéÞrHrIrŽrâÚ    test_dateFrñ)r}rrr~r$rr·r¸)rVrrÖrrrs      r.Útest_datetime_dater߸ s‰€ð × "Ñ " 4Ó (€DÜ    ”D˜˜q !Ó$¤d¨4°°AÓ&6Ð7À#ÀÔ    G€BØ 9‰9˜+¨4°uˆ9Ó =ÀÒ BÐBÐ BÜ
˜ dÓ
+€CØ ‰X€Fܘ2˜c™7Ó#€Hä×ј6 8Õ,r-cóÀ—|}|j|«}ttddd«tddd«gdg¬«}|jd|d¬    «d
k(sJ‚t    d|«}t j ||«|}tj|d |d¬ «d
k(sJ‚tjd |«}|jd„«}t j ||«tj|d|d¬ «d
k(sJ‚d|vr>tjd|«}|jd„«}t j ||«tjd|«}t j ||«y)Né    rrHérŽrâÚ    test_timeFrñrIÚ
test_time2rnzSELECT * FROM test_time2có$—|jd«S©Nz %H:%M:%S.%f©Ústrftime©Ú_s r.ú<lambda>z$test_datetime_time.<locals>.<lambda>Ô s€˜1Ÿ:™: mÓ4€r-Ú
test_time3r&zSELECT * FROM test_time3có$—|jd«Srærçrés r.rëz$test_datetime_time.<locals>.<lambda>Ú s€˜qŸz™z¨-Ó8€r-)
r}rrr~r$r·ròrr#Úmap)rVrrsrèrÖrrYÚrefs        r.Útest_datetime_timerðÅ sD€ð€IØ × "Ñ " 4Ó (€DÜ    ”D˜˜A˜q“M¤4¨¨1¨b£>Ð2¸S¸EÔ    B€BØ 9‰9˜+¨4°uˆ9Ó =ÀÒ BÐBÐ BÜ
˜ dÓ
+€CÜ×ј#˜rÔ"ð!€KÜ :‰:b˜,¨ ¸5Ô AÀQÒ FÐFÐ FÜ
×
Ð7¸Ó
E€CØ
&‰&Ñ4Ó
5€CÜ×ј#˜sÔ#ä :‰:b˜,¨°EÔ :¸aÒ ?Ð?Ð ?ؐ9ÑÜ× Ñ Ð!;¸TÓBˆØf‰fÑ8Ó9ˆÜ
×јc 3Ô'Ü
×
˜\¨4Ó
0€CÜ×ј"˜cÕ"r-có>—|j|«}tdtj¬«}tdtj¬«}t ||dœ«}|j d|d¬«dk(sJ‚tjd|«}tj||dd    ¬
«y) Nir‹g)Ús1rvÚtest_read_writeFrñrHT)Ú check_dtypeÚ check_exact) r}rrµr›Úfloat32rr~rr$r·rò)rVrròrvrÖrs      r.Útest_mixed_dtype_insertr÷à sŠ€ð × "Ñ " 4Ó (€DÜ        ¤§¡Ô    *€BÜ    œ2Ÿ:™:Ô    &€BÜ    ˜" BÑ'Ó    (€Bð 9‰9Ð+°¸Uˆ9Ó CÀqÒ HÐHÐ HÜ
×
Ð.°Ó
5€Cä×ј"˜c¨uÀ$ÖGr-cóJ—|j|«}tgd¢dtjdgdœ«}|j    d|d¬«dk(sJ‚t j d|«}tj||«t jd    |«}tj||«y)
Nrr«rÕrÑÚtest_nanFrñrJúSELECT * FROM test_nan)
r}rrµrr~rr$r·ròr#r©s    r.Útest_nan_numericrûï s”€ð × "Ñ " 4Ó (€DÜ    š¨#¬r¯v©v°sÐ);Ñ<Ó    =€BØ 9‰9˜*¨$°eˆ9Ó <ÀÒ AÐAÐ Aô× Ñ  
¨DÓ 1€FÜ×ј& "Ô%ô× Ñ Р8¸$Ó ?€FÜ×ј& "Õ%r-cóº—|j|«}tgd¢tjtjtjgdœ«}|j    d|d¬«dk(sJ‚t j d|«}tj||«|djd«|d<d|d<t jd    |«}tj||«y)
NrrÑrùFrñrJrÚrærú) r}rrµrr~rr$r·ròrÕr#r©s    r.Útest_nan_fullcolumnrýÿ s»€ð × "Ñ " 4Ó (€DÜ    š¬"¯&©&´"·&±&¼"¿&¹&Ð)AÑBÓ    C€BØ 9‰9˜*¨$°eˆ9Ó <ÀÒ AÐAÐ Aô× Ñ  
¨DÓ 1€FÜ×ј& "Ô%ð‰gn‰n˜XÓ&€B€sGØ€B€sGÜ × Ñ Р8¸$Ó ?€FÜ×ј& "Õ%r-cóh—|j|«}tgd¢ddtjgdœ«}|j    d|d¬«dk(sJ‚d|j
d    <t jd|«}tj||«t jd
|«}tj||«y) NrrŽrðrÑrùFrñrJ©rIrÚrú) r}rrµrr~r½rr$r·ròr#r©s    r.Útest_nan_stringr s£€ð × "Ñ " 4Ó (€DÜ    š¨#¨s´B·F±FÐ);Ñ<Ó    =€BØ 9‰9˜*¨$°eˆ9Ó <ÀÒ AÐAÐ Að€B‡FFˆ6Nô× Ñ  
¨DÓ 1€FÜ×ј& "Ô%ô× Ñ Р8¸$Ó ?€FÜ×ј& "Õ%r-có—d|vr:|jjtjj    dd¬««|}|j |«}t jddggd¢dg¬    «}d
}t|«5}|j«5|j||«d k(sJ‚    ddd«ddd«|d vrqtjd |›d|«}g}|jD]E}tjd|›d|«}    |j|    jj««ŒGn1ddlm}
|
|«} | j%|«}|D cgc]} | d‘Œ    }} |dggk(sJ‚y#1swYŒÁxYw#1swYŒÅxYwcc} w)Nr{z)ADBC implementation does not create indexTr£rÅrÇrÊrÙrËÚtest_to_sql_saves_indexrI>rUrszASELECT * FROM sqlite_master WHERE type = 'index' AND tbl_name = 'ú'zPRAGMA index_info(ú)rrïÚ column_names)r„r…rr†r‡r}rrÏr"rOr~rr#r¤rõr“r>rðÚ get_indexes) rVrrèrÖÚtbl_namer«ÚixsÚix_colsÚix_nameÚix_inforðrrús              r.Útest_to_sql_save_indexr $ sš€à ~؏ ‰ ×ÑÜ K‰K× Ñ ØBÈ4ð ó ô    
ð
€IØ × "Ñ " 4Ó (€DÜ    ×    Ñ    Ø    Ð-Ð.ºÐPSÈuô
€Bð)€HÜ    ˜4Ó     ð7 IØ × &Ñ &Ó (ñ    7Ø×#Ñ# B¨Ó1°QÒ6Ð 6Ñ6÷    7÷7ðÐ4Ñ4Ü× Ñ ð Ø'˜j¨ð +à ó
ˆð
ˆØ—x‘xò    2ˆGÜ×(Ñ(Ð+=¸g¸YÀaÐ)HÈ$ÓOˆGØ N‰N˜7Ÿ<™<×.Ñ.Ó0Õ 1ñ    2õ    'át‹}ˆà×јxÓ(ˆØ.1Ö2¨1^Ó$Ð2ˆÐ2à ˜ugÒ ÐÑ ÷+    7ð    7ú÷7ð7üò(3s*Á<E2 E&Â&E2Å E>Å&E/    Å+E2Å2E;có—|}|j|«}d}|dk7rd|vrddlm}||«}t|«5}|j    «5}|j |«ddd«ddd«y#1swYŒxYw#1swYyxYw)Nú'CREATE TABLE test_trans (A INT, B TEXT)rsr{rrv)r}r>rwr"rOrM)rVrrèrXrwr«Útranss       r.Útest_transactionsrL s‹€à€IØ × "Ñ " 4Ó (€Dà 4€DØÐ$Ò$¨°yÑ)@Ý#áD‹zˆä    ˜4Ó     ð  IØ × &Ñ &Ó (ð     ¨EØ M‰M˜$Ô ÷     ÷ ð ÷     ð     ú÷ ð ús#¸A8Á    A,ÁA8Á,A5    Á1A8Á8Bcóf—|}|j|«}t|«5}|j«5}d}d|vst|t«r|j |«nddlm}||«}|j |«ddd«Gd„dt«}d}t|t«rddlm}||«}    |j«5}|j |«|d«‚#1swYŒcxYw#1swYnxYwn #|$rYnwxYw|j«5|jd    «}    ddd«n #1swYnxYwt    «dk(sJ‚|j«5}|j |«|jd    «}
ddd«n #1swYnxYwt
«d
k(sJ‚    ddd«y#1swYyxYw) Nrr{rrvcó —eZdZy)ú1test_transaction_rollback.<locals>.DummyExceptionN)rqrrrsr,r-r.ÚDummyExceptionrk s„Ø r-rz/INSERT INTO test_trans (A,B) VALUES (1, 'blah')r•zSELECT * FROM test_transrH) r}r"rOrxr rMr>rwÚ    ExceptionrrPrª) rVrrèr«rrXrwrÚins_sqlrrös            r.Útest_transaction_rollbackr\ s±€à€IØ × "Ñ " 4Ó (€DÜ    ˜4Ó     ð# IØ × &Ñ &Ó (ð    $¨EØ<ˆDؘÑ"¤j°¼NÔ&KØ— ‘ ˜dÕ#å+á˜D“zØ— ‘ ˜dÔ#÷    $ô    œYô    ðDˆÜ i¤Ô -Ý 'á˜7“mˆGð    Ø×*Ñ*Ó,ð .°Ø— ‘ ˜gÔ&Ù$ WÓ-Ð-÷-    $ð    $ú÷( .ð .úð .øðò    á ð    úð× &Ñ &Ó (ñ    CØ×&Ñ&Ð'AÓBˆC÷    C÷    Cñ    Cúä3‹x˜1Š}Ј}ð× &Ñ &Ó (ð    D¨EØ M‰M˜'Ô "Ø×'Ñ'Ð(BÓCˆD÷    D÷    Dñ    Dúô4‹y˜AŠ~Љ~÷G#÷#ñ#ús‰ŸF'°ACÁ87F'Â0C3ÃC&ÃC#    ÃF'Ã&C/    Ã+C3Ã2F'Ã3C;Ã8F'Ã:C;Ã;F'ÄD)Ä     F'Ä)D2    Ä.'F'Å#FÅ8    F'ÆF
    ÆF'Æ'F0cóV—|dk(r/|jtjjd¬««|j    |«}ddlm}ddlm}d}tj|||¬«}|jdd}||«}t||«rD|j«5}|j«5|j|«ddd«ddd«n|j|«tj ||«}    t#j$|    |d    ¬
«y#1swYŒRxYw#1swYŒDxYw) NrUz(test does not support sqlite_str fixturer‚rrvr—Útest_get_schema_create_tablerzFrÍ)rãrr†r‡r}r>rwr™r˜rrßr²rxršrjrMr$r·rò)
rVrrçrwr˜rr"Ú blank_test_dfÚnewconÚ returned_dfs
          r.rr† s€ð
 ˆ|ÒØ×ÑÜ K‰K× Ñ Ð%OÐ Ó Pô    
ð × "Ñ " 4Ó (€DåÝ(à
(€CÜ—‘  ¨S°dÔ;€JØ×$Ñ$ R aÐ(€MájÓ!€Jܐ$˜ÔØ \‰\‹^ð    +˜vØ—‘“ñ +Ø—‘˜zÔ*÷ +÷    +ð    +ð      ‰ ZÔ Ü×$Ñ$ S¨$Ó/€KÜ×ј+ }ÀuÖM÷  +ð +ú÷    +ð    +ús$ÂDÂ0DÃDÄD    ÄDÄD(cóP—|dk(rtjd«|j|«}ddlm}m}ddlm}ddg}dd    g}t||¬
«}|jd |¬ «d k(sJ‚|jd|d|i¬«d k(sJ‚|«}|j|¬«|jdjdj}    t|    |«sJ‚d}
tjt |
¬«5|jd|dt"i¬«ddd«|jd|d|d«i¬«d k(sJ‚|j|¬«|jdjdj}    t|    |«sJ‚|    j$dk(sJ‚|jd||¬«d k(sJ‚|j|¬«|jdjdj} |jdjdj} t| |«sJ‚t| |«sJ‚y#1swYŒxYw)NrUr„r)r~r5©r4rÙrÚ©gš™™™™™é?T©gÍÌÌÌÌÌì?NrâÚ
dtype_testr¤rIÚ dtype_test2©r¤ror@rez&The type of B is not a SQLAlchemy typerµr•Ú dtype_test3é
Úsingle_dtype_test)rrŽr}r>r~r5Úsqlalchemy.schemar4rr~ÚreflectÚtablesr¹r³rxr¶r·rÁrË) rVrr~r5r4rrÊrÖÚmetaÚsqltyper›ÚsqltypeaÚsqltypebs              r.Ú
test_dtyper.¤ s€à ˆ|Ò܏ ‰ Ð9Ô:à × "Ñ " 4Ó (€D÷õ+à ˆ:€DØ ˜Ð %€DÜ    4 Ô    &€BØ 9‰9˜,¨Dˆ9Ó 1°QÒ 6Ð6Ð 6Ø 9‰9˜-¨T¸#¸t¸ˆ9Ó EÈÒ JÐJÐ JÙ ‹:€D؇LLd€LÔØk‰k˜-Ñ(×0Ñ0°Ñ5×:Ñ:€GÜ g˜tÔ $Ð$Ð $Ø
2€CÜ    ‰”z¨Ô    -ñ<Ø
    ‰    w D°´c°
ˆ    Ô;÷<ð 9‰9˜-¨T¸#¹vÀb»zÐ9Jˆ9Ó KÈqÒ PÐPÐ P؇LLd€LÔØk‰k˜-Ñ(×0Ñ0°Ñ5×:Ñ:€GÜ g˜vÔ &Ð&Ð &Ø >‰>˜RÒ ÐÐ ð 9‰9Ð-°4¸tˆ9Ó DÈÒ IÐIÐ I؇LLd€LÔØ{‰{Ð.Ñ/×7Ñ7¸Ñ<×AÑA€H؏{‰{Ð.Ñ/×7Ñ7¸Ñ<×AÑA€HÜ h Ô %Ð%Ð %Ü h Ô %Ð%Ñ %÷!<ñ<ús Ã,HÈH%cóÄ—|dk(rtjd«|}|j|«}ddlm}m}m}m}ddlm    }tddg«ttddd    «dg«td    dgd
¬ «td dg«d œ}t|«}    d}
|    j|
|¬«dk(sJ‚tj|
|«} |«} | j!|¬«d|vr|n|} | j"|
j$}t'|dj(| «sJ‚t'|dj(|«sJ‚t'|dj(|«sJ‚t'|dj(|«sJ‚y)NrUr„r)rr€r3rrTéÜr¯rHrær‹ræ©ÚBoolÚDateÚIntr3Únotna_dtype_testr¤rIrer'r2r3r4r3)rrŽr}r>rr€r3rr'r4rrrr~rr$r(r)r¹rxr³)rVrrèrr€r3rr4rrÖrrêr*Úmy_typeÚcol_dicts               r.Útest_notna_dtyper8Î s_€à ˆ|Ò܏ ‰ Ð9Ô:à€IØ × "Ñ " 4Ó (€D÷óõ +ô˜˜d|Ó$Üœ  q¨!Ó,¨dÐ3Ó4ܐq˜$i xÔ0ܘ˜d˜ Ó$ñ     €Dô
4‹€Bà
€CØ 9‰9˜# 4ˆ9Ó (¨AÒ -Ð-Ð -Ü ×ј3 Ó%€AÙ ‹:€D؇LLd€LÔØ  IÑ-‰g°7€G؏{‰{˜3Ñ×'Ñ'€HÜ h˜vÑ&×+Ñ+¨WÔ 5Ð5Ð 5Ü h˜vÑ&×+Ñ+¨XÔ 6Ð6Ð 6Ü h˜u‘o×*Ñ*¨GÔ 4Ð4Ð 4Ü h˜wÑ'×,Ñ,¨eÔ 4Ð4Ñ 4r-c
óÌ—|dk(rtjd«|j|«}ddlm}m}m}ddlm}d}tt|gd¬«t|gd    ¬«t|gd    ¬«td
gd ¬«td
gd ¬«d œ«}|jd|ddd|d¬«i¬«dk(sJ‚tjd|«}tj|dj dd«tj|dj dd«k(sJ‚|«}    |    j#|¬«|    j$dj&}
t)|
dj*«t)|
dj*«k(sJ‚t-|
dj*|«sJ‚t-|
dj*|«sJ‚t-|
dj*|«sJ‚t-|
dj*|«sJ‚y)NrUr„r)Ú
BigIntegerr3rrgñYÉBÊÀó?rör‹Úfloat64r¯r›rÓ)Úf32Úf64Ú
f64_as_f32Úi32r§Ú test_dtypesFr”r>é)Ú    precision)r¤ror­r|r@rHr=érer<r?r§)rrŽr}r>r:r3rr'r4rrr~rr$rµÚroundr²r(r)r¹rÁr³rx) rVrr:r3rr4ÚVrÖrr*r7s            r.Útest_double_precisionrFó sÚ€à ˆ|Ò܏ ‰ Ð9Ô:à × "Ñ " 4Ó (€D÷ñõ
+à€Aä    ä˜1˜# YÔ/ܘ1˜# YÔ/Ü  ! ¨IÔ6ܘ1˜# WÔ-ܘ1˜# WÔ-ñ     
ó
€Bð         ‰    ØØØØØ¡°Ô!4Ð5ð     ó    
ð ò     ð    ð     ô ×
˜]¨DÓ
1€Cô 8‰8Bu‘I—N‘N 1Ñ% rÓ *¬b¯h©h°s¸5±z·±ÀqÑ7IÈ2Ó.NÒ NÐNÐ Nñ ‹:€D؇LLd€LÔØ{‰{˜=Ñ)×1Ñ1€HÜ ˆx˜‰×#Ñ#Ó $¬¨H°\Ñ,B×,GÑ,GÓ(HÒ HÐHÐ HÜ h˜u‘o×*Ñ*¨EÔ 2Ð2Ð 2Ü h˜u‘o×*Ñ*¨EÔ 2Ð2Ð 2Ü h˜u‘o×*Ñ*¨GÔ 4Ð4Ð 4Ü h˜u‘o×*Ñ*¨JÔ 7Ð7Ñ 7r-c󸇇‡‡—|j|«}ddlmŠd„Šd„Šˆˆfd„Šˆˆfd„}tdgd¢i«j    d|¬    «d
k(sJ‚||«y) Nrr—có4—d}tj||¬«S)Nz'SELECT test_foo_data FROM test_foo_datarz)rr#)rýrÓs  r.Ú test_selectz3test_connectable_issue_example.<locals>.test_select/ s€Ø9ˆÜ×!Ñ! %¨ZÔ8Ð8r-có,—|jd|d¬«y)NÚ test_foo_datarõ)r¤ror|)r~)rýrÊs  r.Ú test_appendz3test_connectable_issue_example.<locals>.test_append3 s€Ø  ‰ ˜¨jÀHˆ ÕMr-có(•—‰|«}‰||«yrr,)rVÚfoo_datarLrIs  €€r.Útest_connectablez8test_connectable_issue_example.<locals>.test_connectable6 sø€ñ˜tÓ$ˆÙD˜(Õ#r-cóԕ—t|‰«r;|j«5}|j«5‰|«ddd«ddd«y‰|«y#1swYŒxYw#1swYyxYwr)rxršrj)Ú connectablerVr˜rOs  €€r.Úmainz,test_connectable_issue_example.<locals>.main< seø€Ü k 6Ô *Ø×$Ñ$Ó&ð +¨$Ø—Z‘Z“\ñ+Ù$ TÔ*÷+÷ +ð +ñ ˜[Õ )÷+ð+ú÷ +ð +ús!žA¯    A¸AÁA    ÁAÁA'rKrr¤rJ)r}r™r˜rr~)rVrrRr˜rLrOrIs   @@@@r.Útest_connectable_issue_examplerS' shû€à × "Ñ " 4Ó (€Dõ)ò9òNõ$õ *ô    ?¢IÐ.Ó/×6Ñ6¸OÐQUÐ6ÓVØ ò     ðð     ñ    ˆ…Jr-Úinputr£Úbar)r£Úinfe0cóJ—t|«}|}|j|«}d|vr°tjd«}t    |j
«t    d«kr?d|j vr1tjjd¬«}|j|«d}tjt|¬«5|jd    |d
¬ «ddd«y|jd    |d
¬ «d k(sJ‚tjd    |«}tj ||«y#1swYyxYw) Nr'r z1.0.3rVzGH 36465r‚zinf cannot be used with MySQLrµÚfoobarFrñrH)rr}rrrr?r¹r†r‡rãr¶r·r~rr$r·Ú assert_equal)    rVrrTrÖrèr r†r›rs             r.Útest_to_sql_with_negative_npinfrZK s€ô
5Ó    €BØ€IØ × "Ñ " 4Ó (€Dà)Ñô
×%Ñ% iÓ0ˆä 7×&Ñ&Ó '¬'°'Ó*:Ò :¸wÈ"Ï*É*Ñ?TÜ—;‘;×$Ñ$¨JÐ$Ó7ˆDØ × Ñ  Ô %à-ˆÜ ]‰]œ:¨SÔ 1ñ    <Ø I‰I˜8¨°UˆIÔ ;÷    <ð    <ðy‰y˜h¨D¸ˆyÓ>À!ÒCÐCÐCÜ× Ñ  ¨4Ó0ˆÜ
‰˜˜CÕ ÷     <ð    <ús Â5DÄD"cóx‡ ‡ ‡ —|dk(rtjd«|j|«}ddlmŠ mŠ mŠ m}ddlm    }m
}d}td|gi«}|«}Gˆ ˆ ˆ fd„d    |«}||«5}    |    j«5|    j«}|jj|«|    j!||¬
««|    j#«t%j&||j(«|¬ «}
ddd«ddd«t+j,
|«y#1swYŒ(xYw#1swYŒ,xYw) NrUz&test does not work with str connectionr)r1rÚUnicoderÈ)ÚSessionÚdeclarative_basez Hello, World!ÚspamcóX•—eZdZdZddgiZW°W°d¬«ZW°W°d«d¬«Zy    )
ú'test_temporary_table.<locals>.TemporaryÚ    temp_testÚprefixesÚ    TEMPORARYT©Ú primary_keyrâF)ÚnullableN)rqrrrsÚ __tablename__Ú__table_args__Úidr_)r1rr\s€€€r.Ú    Temporaryra s0ø„Ø#ˆ Ø$ { mÐ4ˆÚ ‘G¨Ô .ˆÚ’g˜b“k¨EÔ2‰r-rk)r_)rro)rrŽr}r>r1rr\rÈÚsqlalchemy.ormr]r^rrjrýÚ    __table__rlÚaddÚflushrr#r_r·rò)rVrrÈr]r^r+rÚBaserkÚsessionrÖr1rr\s           @@@r.Útest_temporary_tablerrk sú€à ˆ|Ò܏ ‰ Ð<Ô=à × "Ñ " 4Ó (€D÷ó÷ ð
 €Iܘ& 9 +Ð.Ó/€HÙ Ó €D÷3ð3Dô3ñ
‹ðJ˜'Ø ]‰]‹_ñ    JØ×%Ñ%Ó'ˆDØ × Ñ × &Ñ & tÔ ,Ø K‰K™     yÔ1Ô 2Ø M‰MŒOÜ×#Ñ#©¨y¯~©~Ó(>ÀDÔIˆB÷     J÷Jô×ј"˜hÕ'÷     Jð    Jú÷JðJús%Á1D0ÂA;D$Ã=D0Ä$D-    Ä)D0Ä0D9cób—|dk(sd|vr/|jtjjd¬««|j    |«}d}t |«5}tj t|¬«5|j|dd¬    «ddd«ddd«y#1swYŒxYw#1swYyxYw)
Nrsr{z9SQLiteDatabase/ADBCDatabase does not raise for bad enginer‚z*engine must be one of 'auto', 'sqlalchemy'rµråÚ
bad_engine©rÆ)    rãrr†r‡r}r"r¶r·r~)rVrrår›r«s     r.Útest_invalid_enginerv‘ sµ€à ÐÒ 6¨T¡>Ø×ÑÜ K‰K× Ñ ØRð ó ô    
ð × "Ñ " 4Ó (€DØ
6€CÜ    ˜4Ó     ðN IÜ ]‰]œ:¨SÔ 1ñ    NØ × Ñ ˜[¨-À Ð Ô M÷    N÷NðN÷    Nð    Nú÷NðNús$ÁB%Á3BÂB%ÂB"    ÂB%Â%B.cóF—|j|«}t|«5}|j«5|j|dd¬«dk(sJ‚|j    d«sJ‚    ddd«ddd«t |«}t |d«}||k(sJ‚y#1swYŒ0xYw#1swYŒ4xYw)z `to_sql` with the `engine` paramråÚautorurKN)r}r"rOr~r©rªrÇrds      r.Útest_to_sql_with_sql_enginery¡ s¯€ð × "Ñ " 4Ó (€DÜ    ˜4Ó     ð6 IØ × &Ñ &Ó (ñ    6Ø×#Ñ# K°ÀvÐ#ÓNÐRSÒSÐ SÐSØ×&Ñ& }Ô5Ð 5Ñ5÷    6÷6ô
kÓ"€Kܘ$  Ó.€HØ {Ò "Ð"Ñ "÷     6ð    6ú÷6ð6ús"B®-B ÁB B    ÂBÂB cóš—|j|«}tjdd«5t|«5}|j    «5|j |d«dk(sJ‚|j d«sJ‚    ddd«ddd«t|«}t|d«}||k(sJ‚    ddd«y#1swYŒ9xYw#1swYŒ=xYw#1swYyxYw)Nú io.sql.enginer>rårK©    r}r•Úoption_contextr"rOr~r©rªrÇrds      r.Útest_options_sqlalchemyr~° sӀð × "Ñ " 4Ó (€DÜ     ×    Ñ    ˜?¨LÓ    9ñ'Ü ˜tÓ $ð    :¨    Ø×*Ñ*Ó,ñ :Ø ×'Ñ'¨ °]ÓCÀqÒHÐHÐHØ ×*Ñ*¨=Ô9Ð9Ñ9÷ :÷    :ô
˜+Ó&ˆ ܘd MÓ2ˆØ˜;Ò&Ð&Ñ&÷'ð'÷ :ð :ú÷    :ð    :ú÷'ð'úó:¨ C´B5Á+B)Á1B5Á9&CÂ)B2 Â.B5Â5B>    Â:CÃC
cóš—|j|«}tjdd«5t|«5}|j    «5|j |d«dk(sJ‚|j d«sJ‚    ddd«ddd«t|«}t|d«}||k(sJ‚    ddd«y#1swYŒ9xYw#1swYŒ=xYw#1swYyxYw)Nr{rxrårKr|rds      r.Útest_options_autor¿ sӀð × "Ñ " 4Ó (€DÜ     ×    Ñ    ˜?¨FÓ    3ñ'Ü ˜tÓ $ð    :¨    Ø×*Ñ*Ó,ñ :Ø ×'Ñ'¨ °]ÓCÀqÒHÐHÐHØ ×*Ñ*¨=Ô9Ð9Ñ9÷ :÷    :ô
˜+Ó&ˆ ܘd MÓ2ˆØ˜;Ò&Ð&Ñ&÷'ð'÷ :ð :ú÷    :ð    :ú÷'ð'úrcóì—tjd«ttd«t«sJ‚t j dd«5ttd«t«sJ‚ttd«t«sJ‚    ddd«t j dd«5ttd«t«sJ‚ttd«t«sJ‚    ddd«y#1swYŒ`xYw#1swYyxYw)Nr>r{rx)rrrxr!rr•r}r,r-r.Útest_options_get_enginerƒÎ s؀Ü
×ј Ô%Ü ”j Ó.Ô0@Ô AÐAÐ Aä     ×    Ñ    ˜?¨LÓ    9ñFÜœ* VÓ,Ô.>Ô?Ð?Ð?Üœ* \Ó2Ô4DÔEÐEÑE÷Fô
×    Ñ    ˜?¨FÓ    3ñFÜœ* VÓ,Ô.>Ô?Ð?Ð?Üœ* \Ó2Ô4DÔEÐEÑE÷FðF÷    FðFú÷FðFúsÁ7CÂ7C*ÃC'Ã*C3có—yrr,r,r-r.Ú"test_get_engine_auto_error_messager…Û s€ð    r-Úfuncr½r#cóp—|}|j|«}d}|}    |    j||dd¬«tjd|«5t    t|«d|›||¬«}
||||«} ddd«t j 
 «d|vr/|jtjjd    ¬
««tjd|«5t    t|«d|›||d ¬ «} ||||«} | D]}
t j |
| «Œ    ddd«y#1swYŒ·xYw#1swYyxYw) NrzFr”©r¤ror­r|úmode.string_storageúSelect * from ©Ú dtype_backendr{z(adbc does not support chunksize argumentr‚rJ)rorŒrÅ) r}r~r•r}rlr·ròrãrr†r‡© rVrÚstring_storager†rŒÚdtype_backend_dataÚdtype_backend_expectedrèrürÖrrÚiterators              r.Útest_read_sql_dtype_backendr’â sR€ð€IØ × "Ñ " 4Ó (€DØ €EØ    €B؇II5˜d¨%¸9€IÔEä     ×    Ñ    Ð0°.Ó    AñTØ"”œ˜TÓ"ؘU˜GÐ $ d¸-ô
ˆñ*¨.¸-ÈÓSˆ÷    Tô ×ј& (Ô+à Ñà×ÑÜ K‰K× Ñ Ð%OÐ Ó Pô    
ô
×    Ñ    Ð0°.Ó    Añ    4Ø$”7œ2˜tÓ$ؘU˜GÐ $ØØ'Øô    
ˆñ *¨.¸-ÈÓSˆØò    4ˆFÜ × !Ñ ! &¨(Õ 3ñ    4÷    4ð    4÷TðTú÷    4ð    4úsÁ'D ÃAD,Ä D)Ä,D5r$cóv—d|vr3d|vr/|jtjjd¬««|}|j    |«}d}|}    |    j ||dd¬«t jd    |«5tt |«|||¬
«}
||||«} ddd«tj
 «d|vryt jd    |«5tt |«|||d ¬ «} ||||«} | D]}
tj|
| «Œ    ddd«y#1swYŒ†xYw#1swYyxYw) Nr&r{zhSQLite actually returns proper boolean values via read_sql_table, but before pytest refactor was skippedr‚rzFr”rˆr‰r‹rJ)rŒrÅ) rãrr†r‡r}r~r•r}rlr·ròrs              r.Ú!test_read_sql_dtype_backend_tabler”sX€ð4јF¨$Ñ.Ø×ÑÜ K‰K× Ñ ðMð ó ô    
ð€IØ × "Ñ " 4Ó (€DØ €EØ    €B؇II5˜d¨%¸9€IÔEä     ×    Ñ    Ð0°.Ó    AñTØ"”œ˜TÓ" 5¨$¸mÔLˆÙ)¨.¸-ÈÓSˆ÷Tô×ј& (Ô+à Ñàä     ×    Ñ    Ð0°.Ó    Añ    4Ø$”7œ2˜tÓ$Ø Ø Ø'Øô    
ˆñ *¨.¸-ÈÓSˆØò    4ˆFÜ × !Ñ ! &¨(Õ 3ñ    4÷    4ð    4÷TðTú÷    4ð    4úsÁ:$D#ÃAD/Ä#D,Ä/D8)r½r$r#cóî—|j|«}d}|}|j||dd¬«d}tjt|¬«5t t |«||d¬«ddd«y#1swYyxYw)    NrzFr”rˆzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rµÚnumpyr‹)r}r~rr¶r·rlr•)rVrr†rrürÖr›s       r.Ú)test_read_sql_invalid_dtype_backend_tabler—>sv€ð × "Ñ " 4Ó (€DØ €EØ    €B؇II5˜d¨%¸9€IÔEð    !ðô
‰”z¨Ô    -ñ>ØŒ”DÓ˜% °WÕ=÷>÷>ñ>ús ÁA+Á+A4c óޗttdtjdgd¬«tgd¢d¬«tdtjdgd¬«tgd    ¢d¬«gd
¢gd ¢gd ¢gd ¢dœ«S)NrHrJr@r‹rërÈç@ÚFloat64©rÈr‡r™)TFN©TFTr©rŽrðN©rŽrðr÷ÚdÚeÚfÚgÚh)rrrµrr,r-r.rrNs]€ä 䘜BŸF™F A˜¨gÔ6Üš    ¨Ô1ܘœbŸf™f cÐ*°)Ô<Üš¨yÔ9Ú$Ú$Ú Ú!ñ        
ó ð r-có—dd„}|S)Nc ó2—|dk(r9tjd«}tj|j    ««}ntj
|«}t tdtjdgd¬«tgd¢d¬«tdtjdgd    ¬«tgd
¢d    ¬«td d tjgd ¬«tgd¢d ¬«tgd¢|¬«tgd¢|¬«dœ«}|dk(rYtjd«}ddl m }t |jDcic]}|||j||d ¬««“Œ!c}«}d|vsd|vr/|dk(r|jdddœ«}|S|jdddœ«}|Scc}w)Nr9rHrJr@r‹rërÈr™ršr›TFÚbooleanrœrrržr)ÚArrowExtensionArray)Ú from_pandasr'r&Únumpy_nullable)r r¡zint64[pyarrow])rrr•Ú
ArrowDtyperÚ StringDtyperrrµrÚNAÚ pandas.arraysr§r¹r–rÕ)rŽrŒrèrÚ string_dtyperÖr§rs        r.r†z$dtype_backend_expected.<locals>.func`sq€à ˜IÒ %Ü×$Ñ$ YÓ/ˆBÜŸ=™=¨¯©«Ó5‰LäŸ>™>¨.Ó9ˆLä ä˜Q¤§¡¨˜N°'Ô:ÜšI¨WÔ5ܘS¤"§&¡&¨#Ð.°iÔ@ÜšO°9Ô=ܘT 5¬"¯%©%Ð0¸    ÔBÜÒ/°yÔAÜšO°<Ô@ÜÒ,°LÔAñ     ó 
ˆð ˜IÒ %Ü×$Ñ$ YÓ/ˆBå 9äð "Ÿz™zöàðÑ,¨R¯X©X°b¸±gÈ4¨XÓ-PÓQÑQòóˆBð iÑ  8¨yÑ#8ØР0Ò0Ø—Y‘Y W°7Ñ;Ó<ðˆ    ð—Y‘YÐ%5Ð<LÑMÓNàˆ    ùòsÄ0$F©rorr,)r†s r.rr^s€ó&ðP €Kr-có‚—d|vr9|jjtjj    d¬««|j |«}dddœ}t ddg¬    «j|«}|j«}|jd
|d d ¬ «td||d¬«D]}tj||«Œy)Nr{rØr‚rÓrærïrŽrðrârzFr”rˆzSELECT * FROM testrH)r@rÅ) r„r…rr†r‡r}rrÕrr~r#r·rò)rVrr±rÖrrs      r.Útest_chunksize_empty_dtypesr±‹s¹€ð~؏ ‰ ×ÑÜ K‰K× Ñ Ð%RÐ Ó Sô    
ð × "Ñ " 4Ó (€DØ Ñ *€FÜ    ˜C ˜:Ô    &×    -Ñ    -¨fÓ    5€B؏w‰w‹y€H؇II6˜t¨5¸I€IÔFä ØØ ØØô    ò0ˆô      ×јf hÕ/ñ 0r-rŒr©cót—|j|«}d}tgd¢ddœ«}|j||dd¬«tt|«d|›|d    t
j i|¬
«}ttgd¢t
j ¬ «tgd ¢|d k(sdnd¬ «dœ«}tj||«y)Nrzrër¯rïFr”rˆrŠrŽ)r@rŒr‹)r¯r¯r¯r©rÓr@)
r}rr~rlr•rµr;rr·rò)rVrr†rŒrürÖrrs        r.Útest_read_sql_dtyper³¡s´€ð
× "Ñ " 4Ó (€DØ €EÜ    š¨Ñ+Ó    ,€B؇II5˜d¨%¸9€IÔEà ŒW”R˜Ó Ø
˜˜Ð Ø Ø”B—J‘JÐØ#ô    €Fô äš    ¬¯©Ô4ÜÚØ%2Ð6FÒ%F‘gÈGôñ    
ó€Hô×ј& (Õ+r-cóä—|}d}tddddœddddœg«}|jd|«tjt|¬«5|jd|dd¬    «ddd«y#1swYyxYw)
NzxStarting with pandas version 3.0 all arguments of to_sql except for the arguments 'name' and 'con' will be keyword-only.rHrIrJrÊÚexamplerµr”r¯)rr~r·r™rF)rWrVr›rÖs    r.Útest_keyword_deprecationr¶½sw€Ø €Dð    ;ðô
˜! !¨!Ñ,°A¸AÀAÑ.FÐGÓ    H€B؇IIˆi˜Ôä     ×    #Ñ    #¤M¸Ô    =ñ>Ø
    ‰    )˜T 4°9ˆ    Ô=÷>÷>ñ>ús ÁA&Á&A/cóܗ|}tdddgid¬«}|jd|d¬«dk(sJ‚tjd«5t    j
d|«ddd«y#1swYyxYw)    NrŽrHrIrÓr‹Útest_bigintwarningFrñ)rr~r·r™rr$©rWrVrÖs   r.Útest_bigint_warningrºËsm€Ø €Dä    C˜!˜Q˜=¨Ô    0€BØ 9‰9Ð.°DÀˆ9Ó FÈ!Ò KÐKÐ Kä     ×    #Ñ    # DÓ    )ñ7Ü ×ÑÐ/°Ô6÷7÷7ñ7ús ÁA"Á"A+có¶—|}tddgddgdœ«}tjtd¬«5|j    d|d    d
¬ «ddd«y#1swYyxYw) NrHrIrJrK©r
r zEmpty table name specifiedrµrr”Fr{)rrr¶r·r~r¹s   r.Útest_valueerror_exceptionr½ÕsZ€Ø €DÜ    ˜Q ˜F¨Q°¨FÑ3Ó    4€BÜ    ‰”zÐ)EÔ    FñGØ
    ‰    r˜t¨yÀˆ    ÔF÷G÷GñGús °AÁAcó:‡
‡ ‡ —|}ddlmŠ
mŠ mŠ ddlm}m}|«}Gˆ
ˆ ˆ fd„d|«}|j«5|jj|«ddd«||¬«}|«5}tddgdd    gd
œ«}|jd |d d ¬«dk(sJ‚|j«|j|j|j«}    t|    «}ddd«t!j"«ddgk(sJ‚y#1swYŒ¬xYw#1swYŒ2xYw)Nr©r1rr5)r^Ú sessionmakercóJ•—eZdZdZW°W°d¬«ZW°W°d««Zy)ú,test_row_object_is_named_tuple.<locals>.Testr§Treé2N)rqrrrsrhrjÚ string_columnr¿s€€€r.ÚTestrÂîs"ø„Ø$ˆ Ú ‘G¨Ô .ˆÚšv b›zÓ*‰ r-rÅrerHÚhelloÚworld)rjrÄr§Fr”rˆrIrjrÄ)r>r1rr5rlr^rÀrjrAÚ
create_allrr~rUrÓrjrÄr!r¹) rWrVr^rÀÚ    BaseModelrÅr]rqrÖÚ
test_queryr1rr5s           @@@r.Útest_row_object_is_named_tuplerËÜsú€Ø €D÷
ñ÷
ñ
!Ó"€I÷+ð+ˆyô+ð
 
‰‹ñ,Ø×Ñ×%Ñ% dÔ+÷,á Ô%€GÙ    ‹ð#gÜ ˜q !˜f¸ÀÐ7IÑJÓ Kˆà I‰I˜<¨T¸È)ˆIÓ TØò ð    
ð ð    ‰ÔØ—]‘] 4§7¡7¨D×,>Ñ,>Ó?ˆ
Ü zÓ "ˆ÷#ô —
‘
Ó   oÐ6Ò 6Ð6Ñ 6÷,ð,ú÷#ð#ús¾DÁ2A.DÄDÄDcór—|}d}tdddgi«}|j||dd¬«tjdd    «5t    ||«}ddd«tj
t j¬
«}tdddgi|tdg|¬ «¬ «}tj|«y#1swYŒbxYw) NrzrŽÚxÚyFr”)ror­r|zfuture.infer_stringT)Úna_valuer‹)r@r¹) rr~r•r}r$r«rµrrr·rò)rWrVrürÖrr@rs       r.Útest_read_sql_string_inferencerÐs®€Ø €Dà €EÜ    C˜#˜s˜Ð$Ó    %€B؇IIˆe˜ U°i€IÔ@ä     ×    Ñ    Ð0°$Ó    7ñ-Ü  tÓ,ˆ÷-ô N‰N¤B§F¡FÔ +€EÜØ     ˆsCˆjР´°s°eÀ5Ô0Iô€Hô×ј& (Õ+÷-ð-ús ¿ B-Â-B6c    ó¾—|}tdtdddd«gid¬«}|jd|dd    ¬
«tjd |«j
d }|d k(sJ‚y©NÚtiäréršr‹rzr”F)r|r­úselect * from test©rrz2020-12-31 12:00:00.000000)rrr~r•r½r²)rWrVrÖrs    r.Útest_roundtripping_datetimesr×sf€Ø €Dä    Cœ( 4¨¨R°Ó4Ð5Ð6Ð>NÔ    O€B؇IIˆfd i°u€IÔ=Ü [‰[Ð-¨tÓ 4× 9Ñ 9¸$Ñ ?€FØ Ð1Ò 1Ð1Ñ 1r-c#óÜK—tjtjdtj¬««5}|5}|–—ddd«ddd«y#1swYŒxYw#1swYyxYw­w)Nro)Ú detect_types)rprryršÚPARSE_DECLTYPESrqs  r.Úsqlite_builtin_detect_typesrÛscèø€ä    ×    Ñ    Ü‰˜
´×1HÑ1HÔIó
ðà    Ø ð    ˜TØŠJ÷    ÷ð÷    ð    ú÷ðüs3‚9A,»A ¾AÁA Á     A,ÁA    ÁA Á A)Á%A,c    óЗ|}tdtdddd«gid¬«}|jd|dd    ¬
«tjd |«j
d }|t d «k(sJ‚yrÒ)rrr~r•r½r²r)rÛrVrÖrs    r.Ú)test_roundtripping_datetimes_detect_typesrÝ'sk€à &€DÜ    Cœ( 4¨¨R°Ó4Ð5Ð6Ð>NÔ    O€B؇IIˆfd i°u€IÔ=Ü [‰[Ð-¨tÓ 4× 9Ñ 9¸$Ñ ?€FØ ”YÐ;Ó<Ò <Ð<Ñ <r-cóˆ—|}tddgddgddgdœ«}|j«5}|j«5|jd«|jd    «ddd«ddd«|j    d
|d ¬ «dk(sJ‚|j    d |d d¬«dk(sJ‚|j    d|d d¬«dk(sJ‚t j d
|«}tj||«t j d |«}tj||«t j d |d¬«}tj||«t j d|d¬«}tj||«d}tjt|¬«5t j d|d¬«ddd«|j«5}|j«5|jd«|jd    «ddd«ddd«|j    d|dd ¬«dk(sJ‚|j    d|dd d¬«|j    d|dd d¬«dk(sJ‚t j d|d¬«}    tjt||gd¬«|    «y#1swYŒ,xYw#1swYŒ1xYw#1swYŒþxYw#1swYŒ¾xYw#1swYŒÂxYw)NrHrIrír«rŽrr    z$DROP SCHEMA IF EXISTS other CASCADE;zCREATE SCHEMA other;Útest_schema_publicFrñÚtest_schema_public_explicitr))r¤ror­rûÚtest_schema_otherÚotherr*z!Table test_schema_other not foundrµ)r¤rorûr­r”)r¤rorûr­r|rõTrô) rršrjrÂr~rr$r·ròrr¶r·r)
r0rVrÖrorõrörýÚres4r›rs
          r.Útest_psycopg2_schema_supporträ0s×€à %€Dô
˜Q ˜F¨S°#¨JÀÀcÀ
ÑKÓ    L€Bð
‰‹ð8˜3Ø Y‰Y‹[ñ    8Ø × Ñ РFÔ GØ × Ñ Р6Ô 7÷    8÷8ð 9‰9Ð.°DÀˆ9Ó FÈ!Ò KÐKÐ Kà
    ‰    Ø.ØØØð        ó    
ð ò      ðð     ð         ‰    Ð*°¸EÈ'ˆ    ÓRÐVWÒWðØWô × Ñ Ð2°DÓ 9€DÜ×ј"˜dÔ#Ü × Ñ Ð;¸TÓ B€DÜ×ј"˜dÔ#Ü × Ñ Ð;¸TÈ(Ô S€DÜ×ј"˜dÔ#Ü × Ñ Ð1°4ÀÔ H€DÜ×ј"˜dÔ#Ø
-€CÜ    ‰”z¨Ô    -ñGÜ ×ÑÐ.°¸XÕF÷Gð
‰‹ð8˜3Ø Y‰Y‹[ñ    8Ø × Ñ РFÔ GØ × Ñ Р6Ô 7÷    8÷8ð         ‰    Ð*°¸WÈEˆ    ÓRÐVWÒWðØWà‡IIØ  Ø ØØØð ôð         ‰    Ø$ØØØØð     ó    
ð ò     ð    ð     ô ×
Ð0°$¸wÔ
G€CÜ×Ñœ& " b ¸Ô=¸sÕC÷}    8ñ    8ú÷8ñ8ú÷<GðGú÷    8ð    8ú÷8ð8úsR¨J¹#JÁJÆ
J Æ;J8Ç #J,Ç/J8ÊJ    Ê JÊJÊ J)Ê,J5    Ê1J8Ê8Kcóö—|}ddlm}|d«}|j«5}|j«5|j    |«ddd«ddd«d}t j ||«}tdtdd¬«gd    zgd
d gd    z¬ «}tj||«tj|d ¬«5}|jd«ddd«y#1swYŒ”xYw#1swYŒ˜xYw#1swYyxYw)NrrvzÐ
    CREATE TABLE person
    (
        id serial constraint person_pkey primary key,
        created_dt timestamp with time zone
    );
 
    INSERT INTO person
        VALUES (1, '2021-01-01T00:00:00Z');
    zHSELECT * FROM "person" AS p1 INNER JOIN "person" AS p2 ON p1.id = p2.id;rHÚ2021r r¡rIrjÚ
created_dtrâTr¥Úperson)r rwršrjrMr•r½rrr·ròrrr)    r0rVrwr>rorrrr«s             r.Útest_self_join_date_columnsré{sý€ð &€DÝ#áð        ó €Lð
‰‹ð&˜3Ø Y‰Y‹[ñ    &Ø K‰K˜ Ô %÷    &÷&ð
    Sðô[‰[˜ DÓ )€FÜØ
ŒYv %Ô (Р   )¨AÑ    -Ð.¸¸|Ð8LÈqÑ8Pô€Hô×ј& (Ô+ô
‰˜°Ô    5ð'¸Ø×јXÔ&÷'ð'÷    &ð    &ú÷&ð&ú÷'ð'ús.¡C#²CÁC#Â<C/ÃC     ÃC#Ã#C,Ã/C8có´—|}tgd¢gd¢dœ«}tj|«5}|j«5|j    |d«dk(sJ‚    ddd«|j d«sJ‚|j«5|j d«ddd«|j d«rJ‚    ddd«y#1swYŒcxYw#1swYŒ2xYw#1swYyxYw)Nr…rŠr‹Údrop_test_framerK)rrrrOr~r©r)rWrVr·r«s    r.Útest_create_and_drop_tablerìŸsâ€Ø €DÜÒ#7Ò@TÑUÓV€JÜ     ‰˜Ó    ð    : )Ø × &Ñ &Ó (ñ    HØ×#Ñ# JÐ0AÓBÀaÒGÐ GÑG÷    Hð×"Ñ"Ð#4Ô5Ð5Ð5à × &Ñ &Ó (ñ    4Ø ×  Ñ  Ð!2Ô 3÷    4ð×&Ñ&Ð'8Ô9Ð9Ð9Ð9÷    :ð    :÷    Hð    Hú÷
    4ð    4ú÷     :ð    :ús:ªC»B6Á+CÁ?CÂCÂ6B?    Â;CÃC     ÃCÃCcóð—|}ttddd«tddd«gdg¬«}|jd|d¬«dk(sJ‚td    |«}t    j
||j t««y)
NrÝrHrIrŽrârÞFrñzSELECT * FROM test_date)rrr~r#r·ròrÕrÁ)rsrVrÖrs    r.Útest_sqlite_datetime_daterî®sn€Ø €DÜ    ”D˜˜q !Ó$¤d¨4°°AÓ&6Ð7À#ÀÔ    G€BØ 9‰9˜+¨4°uˆ9Ó =ÀÒ BÐBÐ BÜ
Ð2°DÓ
9€Cä×ј#˜rŸy™y¬›~Õ.r-Útz_awareFTcóf—|}|stddd«tddd«g}n7tddd¬«}t|j««j    d    „«}t |d
g¬ «}|j d |d ¬«dk(sJ‚td|«}|j    d„«}tj||«y)NrárrHrâr´rIrµr¶có"—|j«Sr)Útimetz)rºs r.rëz+test_sqlite_datetime_time.<locals>.<lambda>¿s €ÀÇ    Á    Ã €r-rŽrârãFrñzSELECT * FROM test_timecó$—|jd«Srærçrés r.rëz+test_sqlite_datetime_time.<locals>.<lambda>Æs€ §
¡
¨=Ó 9€r-)
rrrÚ to_pydatetimerîrr~r#r·rò)rïrsrVÚtz_timesÚtz_dtrÖrrs        r.Útest_sqlite_datetime_timer÷·s©€à €Dá ܘ˜A˜q“M¤4¨¨1¨b£>Ð2‰äÐ0¸!À ÔMˆÜ˜%×-Ñ-Ó/Ó0×4Ñ4Ñ5KÓLˆä    8 c UÔ    +€Bà 9‰9˜+¨4°uˆ9Ó =ÀÒ BÐBÐ BÜ
Ð2°DÓ
9€Càv‰vÑ9Ó:€HÜ×ј#˜xÕ(r-có~—|jd|›d«}|D]\}}}}}}    ||k(sŒ|cStd|›d|›d«‚)NzPRAGMA table_info(rzTable z    , column z
 not found)rMr·)
rVrüÚcolumnÚrecsÚcidr¤ÚctypeÚnot_nullÚdefaultÚpks
          r.Úget_sqlite_column_typerÊs^€Ø <‰<Ð,¨U¨G°1Ð5Ó 6€DØ37òÑ/ˆˆT5˜( G¨RØ 6‹>ØŠLðô v˜e˜W I¨f¨X°ZÐ@Ó
AÐAr-cóò—|}ddg}ddg}t||¬«}|jd|¬«dk(sJ‚|jd    |dd
i¬ «dk(sJ‚t|dd«d k(sJ‚t|d    d«d
k(sJ‚d }tjt
|¬«5|jd|dt i¬ «ddd«|jd|d
¬ «dk(sJ‚t|dd«d
k(sJ‚t|dd«d
k(sJ‚y#1swYŒGxYw)NrÙrÚrr râr!r¤rIr"ÚSTRINGr#rèz!B \(<class 'bool'>\) not a stringrµr•r&)rr~rrr¶r·Úbool)rsrVrrÊrÖr›s      r.Útest_sqlite_test_dtyperÒs €Ø €DØ ˆ:€DØ ˜Ð %€DÜ    4 Ô    &€BØ 9‰9˜,¨Dˆ9Ó 1°QÒ 6Ð6Ð 6Ø 9‰9˜-¨T¸#¸x¸ˆ9Ó IÈQÒ NÐNÐ Nô " $¨ °cÓ :¸iÒ GÐGÐ Gä ! $¨ °sÓ ;¸xÒ GÐGÐ GØ
.€CÜ    ‰”z¨Ô    -ñ=Ø
    ‰    w D°´d° ˆ    Ô<÷=ð 9‰9Ð-°4¸xˆ9Ó HÈAÒ MÐMÐ MÜ ! $Ð(;¸SÓ AÀXÒ MÐMÐ MÜ ! $Ð(;¸SÓ AÀXÒ MÐMÑ M÷ =ð=ús  C-Ã-C6cób—|}tddg«ttddd«dg«tddgd¬«tddg«dœ}t|«}d    }|j||¬
«d k(sJ‚t    ||d «d k(sJ‚t    ||d«dk(sJ‚t    ||d«d k(sJ‚t    ||d«dk(sJ‚y)NTr0r¯rHrær‹rær1r5r¤rIr2rèr3r*r4r3ÚREAL)rrrr~r)rsrVrrÖrs     r.Útest_sqlite_notna_dtyperèsÑ€Ø €D䘘d|Ó$Üœ  q¨!Ó,¨dÐ3Ó4ܐq˜$i xÔ0ܘ˜d˜ Ó$ñ     €Dô
4‹€Bà
€CØ 9‰9˜# 4ˆ9Ó (¨AÒ -Ð-Ð -ä ! $¨¨VÓ 4¸    Ò AÐAÐ AÜ ! $¨¨VÓ 4¸ Ò CÐCÐ CÜ ! $¨¨UÓ 3°yÒ @Ð@Ð @Ü ! $¨¨WÓ 5¸Ò ?Ð?Ñ ?r-cóÔ—|}tddgddggddg¬«}d}tjt|¬    «5|j    d
|¬ «ddd«t gd ¢«D]|\}}|j    ||¬ «dk(sJ‚t j||«tddgddggd|g¬«}d |d›}|j    ||¬ «dk(sJ‚t j||«Œ~y#1swYŒ–xYw)NrHrIrJrKrŽrðrâz$Empty table or column name specifiedrµrr¤)
ztest_weird_name]ztest_weird_name[ztest_weird_name`ztest_weird_name"ztest_weird_name'z_b.test_weird_name_01-30z"_b.test_weird_name_01-30"Ú99beginswithnumberÚ12345r Útest_weird_col_namerŸ)rrr¶r·r~Ú    enumeraterÚ table_exists)rsrVrÖr›ÚndxÚ
weird_namerÚc_tbls        r.Útest_sqlite_illegal_namesrûsÿ€à €DÜ    Q˜F˜Q ˜FÐ#¨c°3¨ZÔ    8€Bà
0€CÜ    ‰”z¨Ô    -ñ%Ø
    ‰    r˜tˆ    Ô$÷%ô%ò     
ó ò&‰ˆˆZðy‰y˜j¨dˆyÓ3°qÒ8Ð8Ð8Ü ×ј TÔ*ä˜!˜Q˜ ! Q Ð(°3¸
Ð2CÔDˆØ% c¨! WÐ-ˆØz‰z˜u¨$ˆzÓ/°1Ò4Ð4Ð4Ü ×ј Õ%ñ)&÷%ð%ús µCÃC'cóø—tdjtdjtjdjt
djt djtdjtd«d„tjdjtdji    }g}|D]D}t|t «r t|«rd}|t|«}|j||««ŒF|t|«zS)Nz'{}'z{:.8f}z{:d}có—y)NÚNULLr,)rÍs r.rëzformat_query.<locals>.<lambda>#sr-z{:.10f}z'{!s}')rrÏrÁrµÚstr_ÚbytesrRrlr³r;rrxrrõrJ)rrhÚ _formattersÚprocessed_argsÚargÚ    formatters      r.Ú format_queryrs€ä&—-‘-Ü ˆV]‰]Ü
‰—‘Ü ˆv}‰}Ü ˆx‰Ü ˆV]‰]Ü ˆT‹
Ñ$Ü

‰
I×$Ñ$Ü ˆho‰oð
€Kð€NØò.ˆÜ cœ5Ô !¤d¨3¤i؈CठS£    Ñ*ˆ    Ø×Ñ™i¨›nÕ-ð .𠔐~Ó&Ñ &Ð&r-có²—tj|«5}|j|«j«}ddd«€dSt    |«S#1swYŒxYw)z#Replace removed sql.tquery functionN)rr"rMrñr!)rÓrorˆrs    r.Útqueryr2sS€ä     ×    Ñ    ˜sÓ    #ð3 zØ× Ñ  Ó'×0Ñ0Ó2ˆ÷3à;ˆ4Ð-¤D¨£IÐ-÷3ð3ús – A Á Ac    ó4—ttjjd«j    d«t t d««tddd¬«¬«}tj|d    |d
¬ «dk(sJ‚tjd |«}|j|_ |}tj||«d gt|«z|d<|j«}t tj t|««tj"¬«dz}|j«|d<tj|d|d
¬ «dk(sJ‚tjd|d¬«}|j«}||_ d|j_tj||«y)NrI©r%rKÚABCDú
2000-01-01r%rÚrÅrËrFrñzselect * from test_tablerŽÚtxtr‹ÚIdxÚ test_table2zselect * from test_table2rÌ)rrµrör÷rørr!rrr~r½r­r·ròrªrrsrÓr¤)rsr»rrÚframe2Únew_idxs      r.Útest_xsqlite_basicr'9sD€Ü Ü
    ‰    ×јaÓ ×0Ñ0°Ó9Ü”d˜6“lÓ#ܘ¨r¸Ô<ô €Eô
:‰:e ,°NÈ%Ô PÐTVÒ VÐVÐ VÜ \‰\Ð4°nÓ E€Fð—;‘;€F„Là€HÜ×ј& %Ô(à5œ3˜u›:Ñ%€Eˆ%LØ Z‰Z‹\€FÜ”B—I‘Iœc &›kÓ*´"·(±(Ô;¸bÑ@€GØ—L‘L“N€Fˆ5MÜ :‰:f =°nÈEÔ RÐVXÒ XÐXÐ XÜ \‰\Ð5°~ÐQVÔ W€F؏z‰z‹|€HØ€H„NØ€H‡NNÔÜ×ј( FÕ+r-c    ób—ttjjd«j    d«t t d««tddd¬«¬«}tj|jd    <tj|d
«}|j«}|j|«d }|j«D]\}}t|g|¢­Ž}t!||¬ «Œ |j#«tj$d |¬ «}|j&|_t)j*||d¬«y)NrIrr r!r%rÚrÅrËrÖrzz(INSERT INTO test VALUES (%s, %s, %s, %s)rzrÕgü©ñÒMbP?)Úrtol)rrµrör÷rørr!rrr²rrßrLrMÚiterrowsrrrUr½r­r·rò)    rsr»r"rYÚinsrêr\Úfmt_sqlrs             r.Útest_xsqlite_write_row_by_rowr-Tsó€Ü Ü
    ‰    ×јaÓ ×0Ñ0°Ó9Ü”d˜6“lÓ#ܘ¨r¸Ô<ô €Eô
—v‘v€E‡JJˆtÑÜ—‘  vÓ.€JØ
!€C؇KK
Ôà
4€CØ—.‘.Ó"ò,‰ˆˆ3ܘsÐ) SÒ)ˆÜˆw˜NÖ+ð,ð×ÑÔä \‰\Ð.°NÔ C€FØ—;‘;€F„LÜ×ј& %¨dÖ3r-c    ót—ttjjd«j    d«t t d««tddd¬«¬«}tj|d    «}|j«}|j|«d
}|jd }tj|«5}|j|t|««ddd«|j«tj d |«}|j"dd |_t%j&||dd «y#1swYŒ]xYw)NrIrr r!r%rÚrÅrËrzz$INSERT INTO test VALUES (?, ?, ?, ?)rrÕrH)rrµrör÷rørr!rrrßrLrMr²r"rJrUr½r­r·rò)rsr»r"rYr+r\rˆrs        r.Útest_xsqlite_executer/ksü€Ü Ü
    ‰    ×јaÓ ×0Ñ0°Ó9Ü”d˜6“lÓ#ܘ¨r¸Ô<ô €Eô
—‘  vÓ.€JØ
!€C؇KK
ÔØ
0€Cà
*‰*Q‰-€CÜ     ×    Ñ    ˜~Ó    .ð,°*Ø×ј3¤ c£
Ô+÷,à×ÑÔä \‰\Ð.°Ó ?€FØ—;‘;˜r ?€F„LÜ×ј& %¨¨ )Õ,÷ ,ð,ús Â6D.Ä.D7c    ó—ttjjd«j    d«t t d««tddd¬«¬«}tj|d    «}|j«}|D]5}|jd
«}t|«dk(sŒ#|d d k(sŒ,|d dk(rŒ5J‚tj|d    d dg¬«}|j«}d|vsJ‚|j«}|j|«y)NrIrr r!r%rÚrÅrËrzú rrÙrHÚDATETIME)rÔzPRIMARY KEY ("A", "B"))rrµrör÷rørr!rrrßÚ
splitlinesrrªrLrM)rsr»r"ÚlinesÚlineÚtokensrYs       r.Útest_xsqlite_schemar7€sô€Ü Ü
    ‰    ×јaÓ ×0Ñ0°Ó9Ü”d˜6“lÓ#ܘ¨r¸Ô<ô €Eô
—‘  vÓ.€JØ × !Ñ !Ó #€EØò+ˆØ—‘˜C“ˆÜ ˆv‹;˜!Ó   q¡    ¨SÓ 0ؘ!‘9 
Ó*Ð *Ð*ð+ô
—‘  v°S¸#°JÔ?€JØ × !Ñ !Ó #€EØ # zÑ 1Ð1Ð 1Ø
!€C؇KK
Õr-cóx—d}|j«}|j|«tj|«5}|jd«|jd«t    j
tj d¬«5|jd«ddd«ddd«y#1swYŒxYw#1swYyxYw)Núc
    CREATE TABLE test
    (
    a TEXT,
    b TEXT,
    c REAL,
    PRIMARY KEY (a, b)
    );
    ú,INSERT INTO test VALUES('foo', 'bar', 1.234)z,INSERT INTO test VALUES('foo', 'baz', 2.567)zExecution failed on sqlrµz(INSERT INTO test VALUES('foo', 'bar', 7))rLrMrr"rr¶rw)rsr"rYrˆs    r.Útest_xsqlite_execute_failr;”s¯€ð€Jð ×
!€C؇KK
Ôä     ×    Ñ    ˜~Ó    .ðK°*Ø×ÑÐIÔJØ×ÑÐIÔJä ]‰]œ3×,Ñ,Ð4MÔ Nñ    KØ × Ñ ÐIÔ J÷    K÷    KðK÷    Kð    Kú÷    KðKús$¹AB0ÂB$ÂB0Â$B-    Â)B0Â0B9cóÌ—d}tjtjd««5}|j    «}|j |«t j|«5}|j d«ddd«ddd«d}tjtj|¬«5td¬«ddd«y#1swYŒOxYw#1swYŒSxYw#1swYyxYw)Nr9ror:z$Cannot operate on a closed database.rµrÕrz) rprryršrLrMrr"rr¶rDr)r"rVrYrˆr›s     r.Ú&test_xsqlite_execute_closed_connectionr=©s̀ð€Jô
×    Ñ    œGŸO™O¨JÓ7Ó    8ðO¸D؏k‰k‹mˆØ  ‰ JÔä × "Ñ " 4Ó (ð    O¨JØ × Ñ ÐMÔ N÷    O÷    Oð 1€CÜ    ‰”w×/Ñ/°sÔ    ;ñ/ÜÐ#¨Õ.÷/ð/÷        Oð    Oú÷    OðOú÷/ð/ús/«7CÁ"CÁ4CÂ+CÃC     ÃCÃCÃC#có€—tdtjd«i«}tj||dd¬«dk(sJ‚y)NÚFromr¯Ú testkeywordsF©ror¤r­)rrµÚonesrr~)rsrÖs  r.Ú$test_xsqlite_keyword_as_column_namesrC¿s7€Ü    FœBŸG™G A›JÐ'Ó    (€BÜ :‰:b˜n°>ÈÔ OÐSTÒ TÐTÑ Tr-có —tddgdg¬«}tj||dd¬«dk(sJ‚|}td„|j    d    «D««}|d
k(sJ‚tj
d    |«}t j||«y) NrHrIÚc0râÚmono_dfFrAc3ó&K—|]    }|d–—Œ y­w)rNr,)Ú.0Úmy_c0s  r.ú    <genexpr>z4test_xsqlite_onecolumn_of_integer.<locals>.<genexpr>Ìsèø€ÒO˜u%˜•(ÑOùs‚zselect * from mono_dfrJ)rrr~ÚsumrMr½r·rò)rsrFÚcon_xÚthe_sumrs     r.Ú!test_xsqlite_onecolumn_of_integerrNÄs€€ô˜˜A˜¨¨Ô/€GÜ :‰:g >¸    ÈÔ OÐSTÒ TÐTÐ Tà €EÜÑO¨¯ © Ð6MÓ(NÔOÓO€Gà aŠ<Ј<ä \‰\Ð1°5Ó 9€FÜ×ј& 'Õ*r-có—tddgddgdœ«}tgd¢gd¢dœ«}d}d    |›}d
}tjt|¬ «5t    j
|||d ¬ «ddd«t ||«t    j
|||d¬ «d}tjt|¬ «5t    j
|||d¬ «ddd«t    j
|||dd¬«t||¬«ddgk(sJ‚t    j
|||dd¬«dk(sJ‚t||¬«gd¢k(sJ‚t ||«t    j
|||dd¬«dk(sJ‚t||¬«ddgk(sJ‚t    j
|||dd¬«dk(sJ‚t||¬«gd¢k(sJ‚t ||«y#1swYŒNxYw#1swYŒöxYw)NrHrIrÙrÚr¼r[)rÛrÜÚEÚtable_if_existszSELECT * FROM z*'notvalidvalue' is not valid for if_existsrµÚ notvalidvalue)r»ror¤r|r®z&Table 'table_if_exists' already existsr”F)r»ror¤r|r­rzrÚrÿrJ)©rJrÛ©rKrÜ©r¯rPrõ)rÚrÿrSrTrU)rrr¶r·rr~rr)rsÚdf_if_exists_1Údf_if_exists_2rÅÚ
sql_selectr›s      r.Útest_xsqlite_if_existsrYÔs€Ü¨¨A¨¸¸c¸
ÑCÓD€Nܪ    º?ÑKÓL€NØ"€JØ! * Ð.€Jà
6€CÜ    ‰”z¨Ô    -ñ
Ü 
‰
Ø ØØØ%õ        
÷
ôˆz˜>Ô*ô‡JJØ .°zÈVõð 3€CÜ    ‰”z¨Ô    -ñ
Ü 
‰
Ø ØØØõ        
÷
ô‡JJØØ Ø ØØõ ô * .Ô 1°hÀÐ5IÒ IÐIÐ Iä 
‰
Ø ØØØØô     
ð ò     ð    ð     ô * .Ô 1Ò5SÒ SÐSÐ S܈z˜>Ô*ô     
‰
Ø ØØØØô     
ð ò     ð    ð     ô * .Ô 1°hÀÐ5IÒ IÐIÐ Iä 
‰
Ø ØØØØô     
ð ò     ð    ð     ô * .Ô 1ò6ò ðð ôˆz˜>Õ*÷Q
ñ
ú÷
ð
úsÁ    F/Â-F<Æ/F9Æ<G)rWr )rŒrÁ)r‘ú
list[dict])r‘rZrŒrÁ)r»r)rÅrÁ)rÅrÁrVúLsqlite3.Connection | sqlalchemy.engine.Engine | sqlalchemy.engine.Connection)rýrÁrVr[r¯r(,Ú
__future__rrprrOrrrrrÉr    Úpathlibr ryÚtypingr r8r–rµrÚpandas._configr Ú pandas._libsrÚ pandas.compatrrÚpandas.compat._optionalrÚpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr•rrrrrrrrrrÚpandas._testingÚ_testingr·Úpandas.util.versionrÚ    pandas.iorÚ pandas.io.sqlrrr r!r"r#r$r>r†ÚfilterwarningsÚ
single_cpuÚ
pytestmarkÚfixturer/rBr]r_rpr|rr“r•r›r§r½rÇrÌr‘r×rårçrþrrr rrr!r%r(r*r0r2r5r7r>rGrMrOrQrUrWrYr[r]r_rarcrerhrjrmrsrurwÚparamrÚmysql_connectableÚmysql_connectable_irisÚmysql_connectable_typesÚpostgresql_connectableÚpostgresql_connectable_irisÚpostgresql_connectable_typesÚsqlite_connectableÚsqlite_connectable_irisÚsqlite_connectable_typesÚsqlalchemy_connectableÚsqlalchemy_connectable_irisÚsqlalchemy_connectable_typesÚadbc_connectableÚadbc_connectable_irisÚadbc_connectable_typesÚall_connectableÚall_connectable_irisÚall_connectable_typesÚ parametrizer€r‰rœrŸr¬r³r¸rÀrÆrÎrÔrÖrÙràrér÷rr%r-r2r<rArGrIrKrRrTrVrXr\r^rargrjrorwrƒr…rŠr”r½rœr rªr­r¸rÂrÐrlrRr×rÚrárärêrïrþrr rrrrrr#r(r2r@r¤rCrGrJÚskip_if_installedrNrTrYr]r`rbrurxrzr‚r‘r•r—r™r›rŸr¢r¥r¨r«r®r°r²r¾rÂrÍrÒrÕrÛrßrðr÷rûrýrr rrrr.r8rFrSÚinfrZrrrvryr~rrƒr…r’r”r—rrr±Ú
no_defaultr³r¶rºr½rËrÐr×rÛrÝrärérìrîr÷rrrrrrr'r-r/r7r;r=rCrNrYr,r-r.ú<module>rˆsÈðÝ"ãÝÛ
÷óõ ÝÛÝ Û ãÛ å-å÷õ?ß)Ð)ã÷ ÷ ÷ õÝ'å÷÷ññÛð ‡KK×ÑØGóð ‡KK×Ñð    €
ð‡ñóðò8ô2ôDô> ò "ô&ô>ô<ô2ò(*7ôZ-ô;ð8‡ñóðð
‡ñóðð6‡ñ ,óð ,𠇁ñ ,óð ,ðF‡ñ,óð,ò2ò23ð0.Øð.à
Vô.ð&"Øð"à
Vô"ð.‡ñ óð 𠇁ñóð𠇁ñóðð
‡ñóðð
‡ñóðð
‡ñóðð
‡ñ óð ð‡ñ%óð%𠇁ñ%óð%ð
‡ñóðð
‡ñ óð ð‡ñóðð$‡ñ óð 𠇁ñóðð
‡ñóðð
‡ñ"óð"𠇁ñóðð‡ñóðð
‡ñóðð‡ñóð𠇁ñóðð
‡ñóðð‡ñóðð
‡ñóðð
‡ñ óð 𠇁ñóðð"‡ñóðð*‡ñóð𠇁ñóð𠇁ñóðð€F‡LLÐ'¨v¯{©{¯~©~Ô>Ø€F‡LLÐ%¨V¯[©[¯^©^Ô<ðÐð €F‡LLÐ,°F·K±K·N±NÔCØ€F‡LLÐ*°&·+±+·.±.ÔAðÐð €F‡LLÐ-°V·[±[·^±^ÔDØ€F‡LLÐ+°6·;±;·>±>ÔBðÐð €F‡LLÐ-°V·[±[·^±^ÔDØ€F‡LLÐ+°6·;±;·>±>ÔBðÐð €F‡LLÐ2¸&¿+¹+¿.¹.ÔIØ€F‡LLÐ0¸¿ ¹ ¿¹ÔGðÐð €F‡LLÐ3¸6¿;¹;¿>¹>ÔJØ€F‡LLÐ1¸¿¹¿¹ÔHð Ðò
Ðò Ðò Ðð +Ð-CÑCÐFXÑXÐðÐ8Ñ8Ð;RÑRðð
Ð:Ñ:Ð=UÑUðð
Ø€F‡LLÐ'¨v¯{©{¯~©~Ô>ðÐð €F‡LLÐ'¨v¯{©{¯~©~Ô>ØðÐð €F‡LLÐ(°· ± ·±Ô?ØðÐð )Ð,<Ð+=Ñ=Ð@PÑP€ð Ð#8Ð"9Ñ9Ð<QÑQðð
!Ð$:Ð#;Ñ;Ð>TÑTðð
‡×Ò˜ Ó1ñOó2ðO𠇁×Ò˜ Ó1ñ Ló2ð Lð‡×Ò˜ Ó1ñQó2ðQðB‡×Ò˜ Ó1ñ Mó2ð Mð‡×Ò˜ Ó1؇×Ò˜ D¨' ?Ó3ñ >ó4ó2ð >ð‡×Ò˜ Ó1؇×ÒÐ-°À Ð/NÓOñMóPó2ðMð‡×Ò˜ Ó1ñJó2ðJð‡×Ò˜Ð!5Ó6ñ.ó7ð.ð‡×Ò˜Ð!5Ó6ñ.ó7ð.ð$‡×Ò˜Ð!<Ó=ñó>ðð6‡×Ò˜Ð!5Ó6ñ!ó7ð!ð&‡×Ò˜Ð!<Ó=ñ!ó>ð!ð‡×Ò˜Ð!<Ó=ñ    !ó>ð    !ð‡×Ò˜Ð!7Ó8ñ>ó9ð>ð"‡×Ò˜Ð!6Ó7ñFó8ðFð>‡×Ò˜Ð!2Ó3ñ!$ó4ð!$ðH‡×Ò˜Ð!7Ó8؇×ÒÐ)¨A¨z¨?Ó;ñ",ó<ó9ð",ðJ‡×Ò˜Ð!7Ó8ñ65ó9ð65ðr‡×Ò˜ Ó1ñ-ó2ð-ð.‡×Ò˜Ð!2Ó3ñ15ó4ð15ðh‡×Ò˜Ð!7Ó8ñ ,ó9ð ,òF,ò2Bò<ò=ð‡×Ò˜Ð!5Ó6ñ!ó7ð!ð$‡×Ò˜Ð!5Ó6ñ!ó7ð!ð&‡×Ò˜Ð!5Ó6ñ !ó7ð !ð$‡×Ò˜Ð!5Ó6ñ!ó7ð!𠇁×Ò˜Ð!5Ó6ñ    =ó7ð    =ð‡×Ò˜ Ó1ñ.ó2ð.ð‡×Ò˜ Ó1ñ Gó2ð Gð‡×Ò˜ Ó1ñ#ó2ð#ð"‡×Ò˜ Ó1ñ#ó2ð#ð$‡×Ò˜ Ó1ñ    /ó2ð    /ð‡×Ò˜ Ó1ñ    ,ó2ð    ,ð‡×Ò˜ Ó1ñ/ó2ð/ð(‡×Ò˜ Ó1ñ/ó2ð/ð*‡×Ò˜Ð!5Ó6ñ<ó7ð<ð‡×Ò˜Ð!6Ó7ñ4ó8ð4ðn‡×Ò˜Ð!6Ó7؇×Ò˜Ò"?Ó@؇×ÒØà     ŠÐ,Ð.HÐIØ     Šw Ð/à × Ñ Ø !Ø &ð    
ð
 
×    Ñ    ˜W |Ð5ð    ó ñ%,ó óAó8ð%,ðP‡×Ò˜Ð!6Ó7ñ ?ó8ð ?ð‡×Ò˜ Ó1ñ+4ó2ð+4ð\‡×Ò˜ Ó1ñ
;ó2ð
;ð‡×Ò˜ Ó1؇×ÒØ%ò óñ"(ó#ó2ð$(ð$‡×Ò˜ Ó1ñF
ó2ðF
ðR‡×Ò˜ Ó1ñ=ó2ð=ð&‡×Ò˜ Ó1؇×ÒØ à Ø Ø Ø˜Ñð    óñ,óó2ð,ð,‡×Ò˜ Ó1ñNó2ðN𠇁×Ò˜ Ó1ñ
"ó2ð
"ð‡×Ò˜ Ó1ñ .ó2ð .ð‡×Ò˜ Ó1ñ#ó2ð#ð.‡×Ò˜ Ó1ñ-ó2ð-ð8‡×Ò˜ Ó1ñ-*ó2ð-*ð`‡×Ò˜ Ó1ñ#ó2ð#ð@‡×Ò˜ Ó1ñ:ó2ð:ð‡×Ò˜ Ó1ñ#ó2ð#ð(‡×Ò˜ Ó1ñ,ó2ð,ð:‡×Ò˜ Ó1ñ +ó2ð +ð‡×Ò˜ Ó1ñ1ó2ð1ð,‡×Ò˜Ð!5Ó6ñ4ó7ð4ò$>ð2‡×Ò˜ Ó1ñ;ó2ð;ð.‡×Ò˜Ð!7Ó8ñ Aó9ð Að‡×Ò˜Ð!7Ó8؇×ÒØàØØØØØØØØØØØØØØ     ˜(˜"Ÿ(š( 3›-×,Ò,°Ò7‰h¸YÐGðóñ(ó)ó9ð*ð‡×Ò˜Ð!7Ó8؇×Ò˜ X¨xÐ$8Ó9ñ4ó:ó9ð4ð‡×Ò˜ Ó1ñ4ó2ð4ð(€×ҐhÓØ‡×Ò˜ Ó1ñ4ó2ó ð4ð‡×Ò˜Ð!<Ó=ñ ,ó>ð ,ð‡×Ò˜Ð!<Ó=ñ (ó>ð (ð‡×Ò˜ Ó1ñ #ó2ð #ò /ð€×ҐlÓ#ñ1ó$ð1ð€×ҐlÓ#ñ +ó$ð +ò #ò"ò 1ð$‡×Ò˜Ð!7Ó8ñ+ó9ð+ð(‡×Ò˜Ð!7Ó8ñ0ó9ð0ð2‡×Ò˜ Ó1ñ/ó2ð/ð*‡×Ò˜Ð!5Ó6ñ<ó7ð<ð‡×Ò˜Ð!<Ó=ñ!ó>ð!𠇁×Ò˜Ð!<Ó=ñXó>ðXð‡×Ò˜Ð!<Ó=ñ:ó>ð:ð‡×Ò˜Ð!=Ó>ñ=ó?ð=ð,‡×Ò˜Ð!7Ó8ñ&ó9ð&ð‡×Ò˜Ð!=Ó>ñ <ó?ð <ð‡×Ò˜Ð!7Ó8؇×Ò˜¨°Ð/@Ð(AÓBñ
*óCó9ð
*ð‡×Ò˜Ð!7Ó8ñ    *ó9ð    *ð‡×Ò˜Ð!7Ó8ñ7ó9ð7ð‡×Ò˜Ð!7Ó8ñ,ó9ð,ð<‡×Ò˜Ð!7Ó8ñ,ó9ð,ð‡×Ò˜Ð!7Ó8ñ    ?ó9ð    ?ð‡×Ò˜Ð!=Ó>ñ?ó?ð?ð>‡×Ò˜Ð!7Ó8ñ*ó9ð*ð0‡×Ò˜Ð!7Ó8ñ*ó9ð*ð.‡×Ò˜Ð!7Ó8ñ    -ó9ð    -ð‡×Ò˜Ð!7Ó8ñ#ó9ð#ð4‡×Ò˜Ð!7Ó8ñ Hó9ð Hð‡×Ò˜Ð!7Ó8ñ &ó9ð &ð‡×Ò˜Ð!7Ó8ñ&ó9ð&ð"‡×Ò˜Ð!7Ó8ñ&ó9ð&ð$‡×Ò˜ Ó1ñ$ó2ð$ðN‡×Ò˜ Ó1ñ  ó2ð  ð‡×Ò˜ Ó1ñ&ó2ð&ðR‡×Ò˜Ð!7Ó8ñNó9ðNð:‡×Ò˜Ð!7Ó8ñ&&ó9ð&&ðR‡×Ò˜Ð!7Ó8ñ!5ó9ð!5ðH‡×Ò˜Ð!7Ó8ñ08ó9ð08ðf‡×Ò˜Ð!7Ó8ñ ó9ð ðF‡×Ò˜Ð!7Ó8؇×ÒØ Ø ˆbfŠfˆXИ "§&¢&      Ð*°b·f²f°W°IÈÈÑ,PÐQóñ!ó    ó9ñ
!ð6‡×Ò˜Ð!7Ó8ñ"(ó9ñ"(ðJ‡×Ò˜ Ó1ñ Nó2ñ Nð‡×Ò˜ Ó1ñ #ó2ñ #ð‡×Ò˜Ð!7Ó8ò 'ó9ñ 'ð‡×Ò˜ Ó1ò 'ó2ñ 'ô
Fô    ð‡×Ò˜ Ó1؇×Ò™¡*Ñ.>Ð!?Ó@ò'4óAó2ñ'4ðT‡×Ò˜ Ó1؇×Ò™¡*Ñ.>Ð!?Ó@ò+4óAó2ñ+4ð\‡×Ò˜ Ó1؇×Ò™Ó!QÓRò >óSó2ñ >ð‡ô óñ ð‡ò)óñ)ðX‡×Ò˜ Ó1ò0ó2ñ0ð*‡×Ò˜ Ó1؇×Ò™¨3¯>ª>Ñ;KÐ*LÓM؇×Ò™¡*Ñ.>Ð!?Ó@ò,óAóNó2ñ,ô2 >ô7ôGô$7ôN,ô$2ð‡òóñô=ð‡‡òGDóñGDðT‡‡ò 'óñ 'ôF :ô/ð‡×Ò™¡e©T ]Ó3ò)ó4ñ)ô$BôNô,@ô&&ô@'ö..ô,ô64ô.-ô*ô(Kô*/ô,Uô
+õ O+r-