-
Notifications
You must be signed in to change notification settings - Fork 0
/
history.html
1122 lines (1085 loc) · 70.8 KB
/
history.html
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
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!doctype html>
<html class="no-js" lang="en" data-content_root="./">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="prev" title="Contributing to jsonpickle" href="contrib.html" />
<!-- Generated with Sphinx 8.1.3 and Furo 2024.08.06 -->
<title>History - jsonpickle documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=a746c00c" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=354aac6f" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=302659d7" />
<style>
body {
--color-code-background: #f8f8f8;
--color-code-foreground: black;
}
@media not print {
body[data-theme="dark"] {
--color-code-background: #202020;
--color-code-foreground: #d0d0d0;
}
@media (prefers-color-scheme: dark) {
body:not([data-theme="light"]) {
--color-code-background: #202020;
--color-code-foreground: #d0d0d0;
}
}
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024">
<path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"/>
</svg>
</symbol>
<symbol id="svg-menu" viewBox="0 0 24 24">
<title>Menu</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu">
<line x1="3" y1="12" x2="21" y2="12"></line>
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
</symbol>
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
<title>Expand</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right">
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
</symbol>
<symbol id="svg-sun" viewBox="0 0 24 24">
<title>Light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather-sun">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</symbol>
<symbol id="svg-moon" viewBox="0 0 24 24">
<title>Dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1" stroke-linecap="round" stroke-linejoin="round"
class="icon-custom-derived-from-feather-sun-and-tabler-moon">
<path style="opacity: 50%" d="M 5.411 14.504 C 5.471 14.504 5.532 14.504 5.591 14.504 C 3.639 16.319 4.383 19.569 6.931 20.352 C 7.693 20.586 8.512 20.551 9.25 20.252 C 8.023 23.207 4.056 23.725 2.11 21.184 C 0.166 18.642 1.702 14.949 4.874 14.536 C 5.051 14.512 5.231 14.5 5.411 14.5 L 5.411 14.504 Z"/>
<line x1="14.5" y1="3.25" x2="14.5" y2="1.25"/>
<line x1="14.5" y1="15.85" x2="14.5" y2="17.85"/>
<line x1="10.044" y1="5.094" x2="8.63" y2="3.68"/>
<line x1="19" y1="14.05" x2="20.414" y2="15.464"/>
<line x1="8.2" y1="9.55" x2="6.2" y2="9.55"/>
<line x1="20.8" y1="9.55" x2="22.8" y2="9.55"/>
<line x1="10.044" y1="14.006" x2="8.63" y2="15.42"/>
<line x1="19" y1="5.05" x2="20.414" y2="3.636"/>
<circle cx="14.5" cy="9.55" r="3.6"/>
</svg>
</symbol>
<symbol id="svg-moon-with-sun" viewBox="0 0 24 24">
<title>Auto light/dark, in dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1" stroke-linecap="round" stroke-linejoin="round"
class="icon-custom-derived-from-feather-sun-and-tabler-moon">
<path d="M 8.282 7.007 C 8.385 7.007 8.494 7.007 8.595 7.007 C 5.18 10.184 6.481 15.869 10.942 17.24 C 12.275 17.648 13.706 17.589 15 17.066 C 12.851 22.236 5.91 23.143 2.505 18.696 C -0.897 14.249 1.791 7.786 7.342 7.063 C 7.652 7.021 7.965 7 8.282 7 L 8.282 7.007 Z"/>
<line style="opacity: 50%" x1="18" y1="3.705" x2="18" y2="2.5"/>
<line style="opacity: 50%" x1="18" y1="11.295" x2="18" y2="12.5"/>
<line style="opacity: 50%" x1="15.316" y1="4.816" x2="14.464" y2="3.964"/>
<line style="opacity: 50%" x1="20.711" y1="10.212" x2="21.563" y2="11.063"/>
<line style="opacity: 50%" x1="14.205" y1="7.5" x2="13.001" y2="7.5"/>
<line style="opacity: 50%" x1="21.795" y1="7.5" x2="23" y2="7.5"/>
<line style="opacity: 50%" x1="15.316" y1="10.184" x2="14.464" y2="11.036"/>
<line style="opacity: 50%" x1="20.711" y1="4.789" x2="21.563" y2="3.937"/>
<circle style="opacity: 50%" cx="18" cy="7.5" r="2.169"/>
</svg>
</symbol>
<symbol id="svg-pencil" viewBox="0 0 24 24">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-pencil-code">
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
<path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-eye-code">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path
d="M11.11 17.958c-3.209 -.307 -5.91 -2.293 -8.11 -5.958c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6c-.21 .352 -.427 .688 -.647 1.008" />
<path d="M20 21l2 -2l-2 -2" />
<path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
</svg>
<input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation">
<input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc">
<label class="overlay sidebar-overlay" for="__navigation">
<div class="visually-hidden">Hide navigation sidebar</div>
</label>
<label class="overlay toc-overlay" for="__toc">
<div class="visually-hidden">Hide table of contents sidebar</div>
</label>
<a class="skip-to-content muted-link" href="#furo-main-content">Skip to content</a>
<div class="page">
<header class="mobile-header">
<div class="header-left">
<label class="nav-overlay-icon" for="__navigation">
<div class="visually-hidden">Toggle site navigation sidebar</div>
<i class="icon"><svg><use href="#svg-menu"></use></svg></i>
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">jsonpickle documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg>
<svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-header-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
</header>
<aside class="sidebar-drawer">
<div class="sidebar-container">
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">jsonpickle documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
<input type="hidden" name="check_keywords" value="yes">
<input type="hidden" name="area" value="default">
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul>
<li class="toctree-l1"><a class="reference internal" href="api.html">jsonpickle API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="extensions.html">jsonpickle extensions</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="contrib.html">Contributing to jsonpickle</a></li>
</ul>
<ul class="current">
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">History</a></li>
</ul>
</div>
</div>
</div>
</div>
</aside>
<div class="main">
<div class="content">
<div class="article-container">
<a href="#" class="back-to-top muted-link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path>
</svg>
<span>Back to top</span>
</a>
<div class="content-icon-container">
<div class="view-this-page">
<a class="muted-link" href="_sources/history.rst.txt" title="View this page">
<svg><use href="#svg-eye"></use></svg>
<span class="visually-hidden">View this page</span>
</a>
</div>
<div class="theme-toggle-container theme-toggle-content">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg>
<svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-content-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
<article role="main" id="furo-main-content">
<section id="history">
<span id="changes"></span><h1>History<a class="headerlink" href="#history" title="Link to this heading">¶</a></h1>
<section id="upcoming">
<h2>Upcoming<a class="headerlink" href="#upcoming" title="Link to this heading">¶</a></h2>
<blockquote>
<div><ul class="simple">
<li><p><strong>Breaking Change</strong>: Support for pre-0.7.0 <code class="docutils literal notranslate"><span class="pre">repr</span></code>-serialized objects is no
longer enabled by default. The <code class="docutils literal notranslate"><span class="pre">safe</span></code> option to <code class="docutils literal notranslate"><span class="pre">decode()</span></code> was changed from
<code class="docutils literal notranslate"><span class="pre">False</span></code> to <code class="docutils literal notranslate"><span class="pre">True</span></code>. Users can still pass <code class="docutils literal notranslate"><span class="pre">safe=False</span></code> to <code class="docutils literal notranslate"><span class="pre">decode()</span></code> in order
to enable this feature for the purposes of loading older files, but beware that
this feature relies on unsafe behavior through its use of <code class="docutils literal notranslate"><span class="pre">eval()</span></code>. Users are
encouraged to re-pickle old data in order to migrate away from the the unsafe loading
feature. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/514">+514</a>)</p></li>
<li><p>The pickler no longer produces <code class="docutils literal notranslate"><span class="pre">py/repr</span></code> tags when pickling modules.
<code class="docutils literal notranslate"><span class="pre">py/mod</span></code> is used instead, as it is clearer and uses one less byte. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/514">+514</a>)</p></li>
</ul>
</div></blockquote>
</section>
<section id="v3-4-0">
<h2>v3.4.0<a class="headerlink" href="#v3-4-0" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>05 Nov 2024</dt><dd><ul class="simple">
<li><p>Officially support Python 3.12 in the GitHub Actions testing matrix, and update
GHA package versions used. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/524">+524</a>)</p></li>
<li><p>Improve reproducibility of benchmarking commands on Linux by using taskset and
adding a “HOWTO” run benchmarks section in <code class="docutils literal notranslate"><span class="pre">benchmarking/README.md</span></code>. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/526">+526</a>)</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">setup.cfg</span></code> packaging configuration has been replaced by
<code class="docutils literal notranslate"><span class="pre">pyproject.toml</span></code>. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/527">+527</a>)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">yaml</span></code> is now supported as a jsonpickle backend. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/528">+528</a>)</p></li>
<li><p><a class="reference external" href="https://github.com/google/oss-fuzz">OSSFuzz</a> scripts are now available in
the <code class="docutils literal notranslate"><span class="pre">fuzzing/</span></code> directory. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/525">+525</a>)</p></li>
<li><p>Pure-python dtypes are now preserved across <code class="docutils literal notranslate"><span class="pre">encode()</span></code>/<code class="docutils literal notranslate"><span class="pre">decode()</span></code> roundtrips
for the pandas extension. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/407">#407</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/534">+534</a>)</p></li>
<li><p>Pandas dataframe columns with an <code class="docutils literal notranslate"><span class="pre">object</span></code> dtype that contain multiple different
types within (e.g. a column of type <code class="docutils literal notranslate"><span class="pre">list[Union[str,</span> <span class="pre">int]]</span></code>) now preserve the types
upon being roundtripped. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/457">#457</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/358">#358</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/534">+534</a>)</p></li>
<li><p>Fix warnings in the test suite regarding numpy.compat usage. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/533">#533</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/535">+535</a>)</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v3-3-0">
<h2>v3.3.0<a class="headerlink" href="#v3-3-0" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>02 Sep 2024</dt><dd><ul class="simple">
<li><p>The unpickler was updated to avoid using <code class="docutils literal notranslate"><span class="pre">eval</span></code>, which helps improve its
security. Users can still pass <code class="docutils literal notranslate"><span class="pre">safe=False</span></code> to <code class="docutils literal notranslate"><span class="pre">decode</span></code> to use the old
behavior, though this is not recommended. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/513">+513</a>)</p></li>
<li><p>Objects can now exclude specific attributes from pickling by providing a
<code class="docutils literal notranslate"><span class="pre">_jsonpickle_exclude</span></code> class or instance attribute. This attribute should contain
the list of attribute names to exclude when pickling the object.</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v3-2-2">
<h2>v3.2.2<a class="headerlink" href="#v3-2-2" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>19 Jun 2024</dt><dd><ul class="simple">
<li><p>A bug with the incorrect (de)serialization of NoneType objects has been fixed.
(<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/507">+507</a>)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">tests/benchmark.py</span></code> was updated to avoid Python 2 syntax. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/508">+508</a>)</p></li>
<li><p>The unpickler was updated to avoid creating temporary functions. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/508">+508</a>)</p></li>
<li><p>Some basic scripts have been made to analyze benchmark results. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/511">+511</a>)</p></li>
<li><p>Fix test suite compatibility with Numpy 2.x (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/512">+512</a>)</p></li>
<li><p><cite>setup.cfg</cite> was updated to use <cite>license_files</cite> instead of <cite>license_file</cite>.</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v3-2-1">
<h2>v3.2.1<a class="headerlink" href="#v3-2-1" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>09 Jun 2024</dt><dd><ul class="simple">
<li><p>The <code class="docutils literal notranslate"><span class="pre">ignorereserved</span></code> parameter to the private <code class="docutils literal notranslate"><span class="pre">_restore_from_dict()</span></code>
function has been restored for backwards compatibility. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/501">+501</a>)</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v3-2-0">
<h2>v3.2.0<a class="headerlink" href="#v3-2-0" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>08 Jun 2024</dt><dd><ul class="simple">
<li><p>Nested dictionaries in <cite>py/state</cite> are now correctly restored when
tracking object references. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/501">+501</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/500">#500</a>)</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v3-1-0">
<h2>v3.1.0<a class="headerlink" href="#v3-1-0" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>08 Jun 2024</dt><dd><ul class="simple">
<li><p><cite>jsonpickle.ext.numpy.register_handlers</cite> now provides options that are forwarded
to the <cite>NumpyNDArrayHandler</cite> constructor. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/489">+489</a>)</p></li>
<li><p>Fix bug of not handling <code class="docutils literal notranslate"><span class="pre">classes</span></code> argument to <cite>jsonpickle.decode</cite>
being a dict. Previously, the keys were ignored and only values were
used. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/494">+494</a>)</p></li>
<li><p>Allow the <code class="docutils literal notranslate"><span class="pre">classes</span></code> argument to <cite>jsonpickle.pickle</cite> to have class
objects as keys. This extends the current functionality of only having
class name strings as keys. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/494">+494</a>)</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">garden</span> <span class="pre">setup/dev</span></code> action and <code class="docutils literal notranslate"><span class="pre">requirements-dev.txt</span></code> requirements file
now include test dependencies for use during development.</p></li>
<li><p>Added support for Python 3.13. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/505">+505</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/504">#504</a>)</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v3-0-4">
<h2>v3.0.4<a class="headerlink" href="#v3-0-4" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>11 Apr 2024</dt><dd><ul class="simple">
<li><p>Fixed an issue with django.SafeString and other classes inheriting from
str having read-only attribute errors (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/478">#478</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/481">+481</a>)</p></li>
<li><p>The test suite was made compatible with <cite>pytest-ruff>=0.3.0</cite>. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/482">+482</a>)</p></li>
<li><p>A <cite>garden.yaml</cite> file was added for use with the
<cite>garden <https://crates.io/crates/garden-tools>_</cite> command runner. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/486">+486</a>)</p></li>
<li><p>The test suite was updated to avoid deprecated SQLALchemy APIs.</p></li>
<li><p>The <cite>jaraco.packaging.sphinx</cite> documentation dependency was removed.</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v3-0-3">
<h2>v3.0.3<a class="headerlink" href="#v3-0-3" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>19 Feb 2024</dt><dd><ul class="simple">
<li><p>Compatibilty with Pandas and Cython 3.0 was added. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/460">#460</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/477">+477</a>)</p></li>
<li><p>Fixed a bug where pickling some built-in classes (e.g. zoneinfo)
could return a <code class="docutils literal notranslate"><span class="pre">None</span></code> module. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/447">#447</a>)</p></li>
<li><p>Fixed a bug where unpickling a missing class would return a different object
instead of <code class="docutils literal notranslate"><span class="pre">None</span></code>. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/471">+471</a>)</p></li>
<li><p>Fixed the handling of missing classes when setting <code class="docutils literal notranslate"><span class="pre">on_missing</span></code> to <code class="docutils literal notranslate"><span class="pre">warn</span></code>
or <code class="docutils literal notranslate"><span class="pre">error</span></code>. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/471">+471</a>)</p></li>
<li><p>The test suite was made compatible with Python 3.12.</p></li>
<li><p>The tox configuration was updated to generate code coverage reports.</p></li>
<li><p>The suite now uses <code class="docutils literal notranslate"><span class="pre">ruff</span></code> to validate python code.</p></li>
<li><p>The documentation can now be built offline when <code class="docutils literal notranslate"><span class="pre">rst.linker</span></code> and
<code class="docutils literal notranslate"><span class="pre">jaraco.packaging.sphinx</span></code> are not available.</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v3-0-2">
<h2>v3.0.2<a class="headerlink" href="#v3-0-2" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>13 Aug 2023</dt><dd><ul class="simple">
<li><p>Properly raise warning if a custom pickling handler returns None. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/433">#433</a>)</p></li>
<li><p>Fix issue with serialization of certain sklearn objects breaking when
the numpy handler was enabled. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/431">#431</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/434">+434</a>)</p></li>
<li><p>Allow custom backends to not implement _encoder_options (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/436">#436</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/446">+446</a>)</p></li>
<li><p>Implement compatibility with pandas 2 (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/446">+446</a>)</p></li>
<li><p>Fix encoding/decoding of dictionary subclasses with referencing (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/455">+455</a>)</p></li>
<li><p>Fix depth tracking for list/dict referencing (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/456">+456</a>)</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v3-0-1">
<h2>v3.0.1<a class="headerlink" href="#v3-0-1" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>16 Dec 2022</dt><dd><ul class="simple">
<li><p>Remove accidental pin of setuptools to versions below 59. This allows
jsonpickle to build with CPython 3.11 and 3.12 alphas. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/424">#424</a>)</p></li>
<li><p>Remove accidental dependency on pytz in pandas tests. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/421">+421</a>)</p></li>
<li><p>Fix issue with decoding bson.bson.Int64 objects (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/422">#422</a>)</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v3-0-0">
<h2>v3.0.0<a class="headerlink" href="#v3-0-0" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>01 Dec 2022</dt><dd><ul class="simple">
<li><p>Drop support for CPython<3.7. CPython 3.6 and below have reached EOL
and no longer receive security updates. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/375">#375</a>)</p></li>
<li><p>Add support for CPython 3.11. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/395">#395</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/396">+396</a>)</p></li>
<li><p>Remove jsonlib and yajl backends (py2 only)</p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">include_properties</span></code> option to the pickler. This should only
be used if analyzing generated json outside of Python. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/297">#297</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/387">+387</a>)</p></li>
<li><p>Allow the <code class="docutils literal notranslate"><span class="pre">classes</span></code> argument to <code class="docutils literal notranslate"><span class="pre">jsonpickle.decode</span></code> to be a dict
of class name to class object. This lets you decode arbitrary dumps
into different classes. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/148">#148</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/392">+392</a>)</p></li>
<li><p>Fix bug with deserializing <cite>numpy.poly1d</cite>. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/391">#391</a>)</p></li>
<li><p>Allow frozen dataclasses to be deserialized. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/240">#240</a>)</p></li>
<li><p>Fixed a bug where pickling a function could return a <code class="docutils literal notranslate"><span class="pre">None</span></code> module. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/399">#399</a>)</p></li>
<li><p>Removed old bytes/quopri and ref decoding abaility from the unpickler.
These were last used in jsonpickle<1. Removing them causes a slight speedup
in unpickling lists (~5%). (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/403">+403</a>)</p></li>
<li><p>Fixed a bug with namedtuples encoding on CPython 3.11. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/411">#411</a>)</p></li>
<li><p>When using the <code class="docutils literal notranslate"><span class="pre">sort_keys</span></code> option for the <code class="docutils literal notranslate"><span class="pre">simplejson</span></code> backend,
jsonpickle now produces correct object references with py/id tags. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/408">#408</a>)</p></li>
<li><p>Speed up the internal method <code class="docutils literal notranslate"><span class="pre">_restore_tags</span></code> by ~10%. This should speed
up unpickling of almost every object.</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v2-2-0">
<h2>v2.2.0<a class="headerlink" href="#v2-2-0" title="Link to this heading">¶</a></h2>
<p>10 May 2022</p>
<blockquote>
<div><ul class="simple">
<li><p>Classes with a custom <code class="docutils literal notranslate"><span class="pre">__getitem__()</span></code> and <code class="docutils literal notranslate"><span class="pre">append()</span></code>
now pickle properly. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/362">#362</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/379">+379</a>)</p></li>
<li><p>Remove the demjson backend, as demjson hasn’t been maintained
for 5 years. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/379">+379</a>)</p></li>
<li><p>Added new handler for numpy objects when using unpickleable=False.
(<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/381">#381</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/382">+382</a>)</p></li>
<li><p>Added exception handling for class attributes that can’t be accessed.
(<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/301">#301</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/383">+383</a>)</p></li>
<li><p>Added a long-requested on_missing attribute to the Unpickler class.
This lets you choose behavior for when jsonpickle can’t find a class
to deserialize to. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/190">#190</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/193">#193</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/384">+384</a>)</p></li>
<li><p>Private members of <code class="docutils literal notranslate"><span class="pre">__slots__</span></code> are no longer skipped when encoding.
Any objects encoded with versions prior to 2.2.0 should still decode
properly. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/318">#318</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/385">+385</a>)</p></li>
</ul>
</div></blockquote>
</section>
<section id="v2-1-0">
<h2>v2.1.0<a class="headerlink" href="#v2-1-0" title="Link to this heading">¶</a></h2>
<p>10 Jan 2022</p>
<blockquote>
<div><ul class="simple">
<li><p>Python 3.10 is now officially supported. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/376">+376</a>)</p></li>
<li><p>Benchmarks were added to aid in optimization efforts. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/350">#350</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/352">+352</a>)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">is_reducible()</span></code> was sped up by ~80%. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/353">+353</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/354">+354</a>)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">_restore_tags()</span></code> was sped up by ~100%. Unpickling items
with a lot of tuples and sets will benefit most. Python 2 users
and users deserializing pickles from jsonpickle <= 0.9.6 may see
a slight performance decrease if using a lot of bytes, ref,
and/or repr objects. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/354">+354</a>)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">is_iterator()</span></code> was sped up by ~20% by removing an unnecessary
variable assignment. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/354">+354</a>)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">jsonpickle.decode</span></code> has a new option, <code class="docutils literal notranslate"><span class="pre">v1_decode</span></code> to assist in
decoding objects created in jsonpickle version 1. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/364">#364</a>)</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">encode()</span></code> documentation has been updated to help sklearn users.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">demjson</span></code> has been removed from the test suite. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/374">+374</a>)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">SQLALchemy<1.2</span></code> is no longer being tested by jsonpickle.
Users of sqlalchemy + jsonpickle can always use 1.2 or 1.3.
When jsonpickle v3 is released we will add SQLAlchemy 1.4 to
the test suite alongside removal of support for Python 3.5 and earlier.</p></li>
</ul>
</div></blockquote>
</section>
<section id="v2-0-0">
<h2>v2.0.0<a class="headerlink" href="#v2-0-0" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>07 Feb 2021</dt><dd><ul class="simple">
<li><p>Major release: the serialized JSON format now preserves dictionary
identity, which is a subtle change in the serialized format. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/351">#351</a>)</p></li>
<li><p>Dictionary identity is now preserved. For example, if the same
dictionary appears twice in a list, the reconstituted list
will now contain two references to the same dictionary. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/255">#255</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/332">+332</a>)</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v1-5-2">
<h2>v1.5.2<a class="headerlink" href="#v1-5-2" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>07 Feb 2021</dt><dd><ul class="simple">
<li><p>Patch release to avoid the change in behavior from the preservation
of dict identity. The next release will be v2.0.0. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/351">#351</a>)</p></li>
<li><p>This release does <em>not</em> include the performance improvements
from v1.5.1.</p></li>
<li><p>Pandas DataFrame objects with multilevel columns are now supported.
(<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/346">#346</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/347">+347</a>)</p></li>
<li><p>Numpy 1.20 is now officially supported. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/336">#336</a>)</p></li>
<li><p>Python 3.9 is now officially supported. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/348">+348</a>)</p></li>
<li><p>Achieved a small speedup for _get_flattener by merging type checks. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/349">+349</a>)</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v1-5-1">
<h2>v1.5.1<a class="headerlink" href="#v1-5-1" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>30 Jan 2021</dt><dd><ul class="simple">
<li><p>The performance of the unpickler was drastically improved by
avoiding tag checks for basic Python types. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/340">+340</a>)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">decode()</span></code> documentation improvements. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/341">+341</a>)</p></li>
<li><p>Serialization of Pandas DataFrame objects that contain
timedelta64[ns] dtypes are now supported. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/330">+330</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/331">#331</a>)</p></li>
<li><p>Dictionary identity is now preserved. For example, if the same
dictionary appears twice in a list, the reconstituted list
will now contain two references to the same dictionary. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/255">#255</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/332">+332</a>)</p></li>
<li><p>Unit tests were added to ensure that sklearn.tree.DecisionTreeClassifier
objects are properly serialized. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/155">#155</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/344">+344</a>)</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">is_reducible()</span></code> utility function used by <code class="docutils literal notranslate"><span class="pre">encode()</span></code> is now
4x faster! Objects that provide <code class="docutils literal notranslate"><span class="pre">__getstate__()</span></code>, <code class="docutils literal notranslate"><span class="pre">__setstate__()</span></code>,
and <code class="docutils literal notranslate"><span class="pre">__slots__</span></code> benefit most from these improvements. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/343">+343</a>)</p></li>
<li><p>Improved pickler <code class="docutils literal notranslate"><span class="pre">flatten()/encode()</span></code> performance. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/345">+345</a>)</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v1-5-0">
<h2>v1.5.0<a class="headerlink" href="#v1-5-0" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>16 Jan 2021</dt><dd><ul class="simple">
<li><p>Previous versions of jsonpickle with <cite>make_refs=False</cite> would emit
<code class="docutils literal notranslate"><span class="pre">null</span></code> when encountering an object it had already seen when
traversing objects. All instances of the object are now serialized.
While this is arguably an improvement in the vast majority of
scenarios, it is a change in behavior and is thus considered a
minor-level change. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/333">#333</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/334">#334</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/337">#337</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/338">+338</a>)</p></li>
<li><p>Multiple enums are now serialized correctly with <cite>make_refs=False</cite>. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/235">#235</a>)</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v1-4-2">
<h2>v1.4.2<a class="headerlink" href="#v1-4-2" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>29 Nov 2020</dt><dd><ul class="simple">
<li><p>Use importlib.metadata from the stdlib on Python 3.8. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/305">+305</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/303">#303</a>)</p></li>
<li><p>Micro-optimize type checks to use a <cite>set</cite> for lookups. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/327">+327</a>)</p></li>
<li><p>Documentation improvements.</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v1-4-1">
<h2>v1.4.1<a class="headerlink" href="#v1-4-1" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>20 Apr 2020</dt><dd><ul class="simple">
<li><p>Patch release for Python 3.8 <cite>importlib_metadata</cite> support.
(<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/300">#300</a>)</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v1-4">
<h2>v1.4<a class="headerlink" href="#v1-4" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>13 Apr 2020</dt><dd><ul class="simple">
<li><p>Python 3.8 support. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/292">#292</a>)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">jsonpickle.encode</span></code> now supports the standard <code class="docutils literal notranslate"><span class="pre">indent</span></code>
and <code class="docutils literal notranslate"><span class="pre">separators</span></code> arguments, and passes them through to the
active JSON backend library. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/183">#183</a>)</p></li>
<li><p>We now include a custom handler for <cite>array.array</cite> objects. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/199">#199</a>)</p></li>
<li><p>Dict key order is preserved when pickling dictionaries on Python3. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/193">#193</a>)</p></li>
<li><p>Improved serialization of dictionaries with non-string keys.
Previously, using an enum that was both the key and a value in
a dictionary could end up with incorrect references to other
objects. The references are now properly maintained for dicts
with object keys that are also referenced in the dict’s values. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/286">#286</a>)</p></li>
<li><p>Improved serialization of pandas.Series objects. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/287">#287</a>)</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v1-3">
<h2>v1.3<a class="headerlink" href="#v1-3" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>13 Feb 2020</dt><dd><ul class="simple">
<li><p>Improved round tripping of default dicts. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/283">+283</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/282">#282</a>)</p></li>
<li><p>Better support for cyclical references when encoding with
<code class="docutils literal notranslate"><span class="pre">unpicklable=False</span></code>. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/264">+264</a>)</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v1-2">
<h2>v1.2<a class="headerlink" href="#v1-2" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>15 May 2019</dt><dd><ul class="simple">
<li><p>Simplified JSON representation for <cite>__reduce__</cite> values. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/261">+261</a>)</p></li>
<li><p>Improved Pandas support with new handlers for more Pandas data types.
(<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/256">+256</a>)</p></li>
<li><p>Prevent stack overflows caused by bugs in user-defined <cite>__getstate__</cite>
functions which cause infinite recursion. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/260">+260</a>)
(<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/259">#259</a>)</p></li>
<li><p>Improved support for objects that contain dicts with Integer keys.
Previously, jsonpickle could not restore objects that contained
dicts with integer keys and provided getstate only.
These objects are now handled robustly. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/247">#247</a>).</p></li>
<li><p>Support for encoding binary data in <a class="reference external" href="https://en.wikipedia.org/wiki/Ascii85">base85</a> instead of base64 has been
added on Python 3. Base85 produces payloads about 10% smaller than base64,
albeit at the cost of lower throughput. For performance and backwards
compatibility with Python 2 the pickler uses base64 by default, but it can
be configured to use <code class="docutils literal notranslate"><span class="pre">base85</span></code> with the new <code class="docutils literal notranslate"><span class="pre">use_base85</span></code> argument.
(<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/251">#251</a>).</p></li>
<li><p>Dynamic SQLAlchemy tables in SQLAlchemy >= 1.3 are now supported.
(<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/254">#254</a>).</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v1-1">
<h2>v1.1<a class="headerlink" href="#v1-1" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>22 Jan 2019</dt><dd><ul class="simple">
<li><p>Python 3.7 <cite>collections.Iterator</cite> deprecation warnings have been fixed.
(<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/229">#229</a>).</p></li>
<li><p>Improved Pandas support for datetime and complex numbers. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/245">+245</a>)</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v1-0">
<h2>v1.0<a class="headerlink" href="#v1-0" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>01 Sep 2018</dt><dd><ul class="simple">
<li><p><em>NOTE</em> jsonpickle no longer supports Python2.6, or Python3 < 3.4.
The officially supported Python versions are now 2.7 and 3.4+.</p></li>
<li><p>Improved Pandas and Numpy support. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/227">+227</a>)</p></li>
<li><p>Improved support for pickling iterators. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/216">+216</a>)</p></li>
<li><p>Better support for the stdlib <cite>json</cite> module when <cite>simplejson</cite>
is not installed. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/217">+217</a>)</p></li>
<li><p>jsonpickle will now output python3-style module names when
pickling builtins methods or functions. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/223">+223</a>)</p></li>
<li><p>jsonpickle will always flatten primitives, even when <code class="docutils literal notranslate"><span class="pre">max_depth</span></code>
is reached, which avoids encoding unicode strings into their
<code class="docutils literal notranslate"><span class="pre">u'string'</span></code> representation. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/207">+207</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/180">#180</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/198">#198</a>).</p></li>
<li><p>Nested classes are now supported on Python 3. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/206">+206</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/176">#176</a>).</p></li>
<li><p>Better support for older (pre-1.9) versions of numpy (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/195">+195</a>).</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v0-9-6">
<h2>v0.9.6<a class="headerlink" href="#v0-9-6" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>09 Feb 2018</dt><dd><ul class="simple">
<li><p>Better support for SQLAlchemy (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/180">#180</a>).</p></li>
<li><p>Better support for NumPy and SciKit-Learn. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/184">#184</a>).</p></li>
<li><p>Better support for dict sub-classes (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/156">#156</a>).</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v0-9-5">
<h2>v0.9.5<a class="headerlink" href="#v0-9-5" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>16 Jul 2017</dt><dd><ul class="simple">
<li><p>Better support for objects that implement the reduce protocol. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/170">+170</a>)
This backward-incompatible change removes the SimpleReduceHandler.
Any projects registering that handler for a particular type should
instead remove references to the handler and jsonpickle will now
handle those types directly.</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v0-9-4">
<h2>v0.9.4<a class="headerlink" href="#v0-9-4" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>10 Jan 2017</dt><dd><ul class="simple">
<li><p>Arbitrary byte streams are now better supported. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/143">#143</a>)</p></li>
<li><p>Better support for NumPy data types. The Python3 NumPy support
is especially robust.</p></li>
<li><p>Fortran-ordered based NumPy arrays are now properly serialized.</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v0-9-3">
<h2>v0.9.3<a class="headerlink" href="#v0-9-3" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>09 Mar 2016</dt><dd><ul class="simple">
<li><p>UUID objects can now be serialized (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/130">#130</a>)</p></li>
<li><p>Added <cite>set_decoder_options</cite> method to allow decoder specific options
equal to <cite>set_encoder_options</cite>.</p></li>
<li><p>Int keys can be encoded directly by e.g. demjson by passing
<cite>numeric_keys=True</cite> and setting its backend options via
<cite>jsonpickle.set_encoder_options(‘demjson’, strict=False)</cite>.</p></li>
<li><p>Newer Numpy versions (v1.10+) are now supported.</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v0-9-2">
<h2>v0.9.2<a class="headerlink" href="#v0-9-2" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>20 Mar 2015</dt><dd><ul class="simple">
<li><p>Fixes for serializing objects with custom handlers.</p></li>
<li><p>We now properly serialize deque objects constructed with a <cite>maxlen</cite> parameter.</p></li>
<li><p>Test suite fixes</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v0-9-1">
<h2>v0.9.1<a class="headerlink" href="#v0-9-1" title="Link to this heading">¶</a></h2>
<p>12 Mar 2015</p>
<blockquote>
<div><ul class="simple">
<li><p>Support datetime objects with FixedOffsets.</p></li>
</ul>
</div></blockquote>
</section>
<section id="v0-9-0">
<h2>v0.9.0<a class="headerlink" href="#v0-9-0" title="Link to this heading">¶</a></h2>
<dl class="simple">
<dt>16 Jan 2015</dt><dd><ul class="simple">
<li><p>Support for Pickle Protocol v4.</p></li>
<li><p>We now support serializing defaultdict subclasses that use <cite>self</cite>
as their default factory.</p></li>
<li><p>We now have a decorator syntax for registering custom handlers,
and allow custom handlers to register themselves for all subclasses.
(<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/pull/104">+104</a>)</p></li>
<li><p>We now support serializing types with metaclasses and their
instances (e.g., Python 3 <cite>enum</cite>).</p></li>
<li><p>We now support serializing bytestrings in both Python 2 and Python 3.
In Python 2, the <cite>str</cite> type is decoded to UTF-8 whenever possible and
serialized as a true bytestring elsewise; in Python 3, bytestrings
are explicitly encoded/decoded as bytestrings. Unicode strings are
always encoded as is in both Python 2 and Python 3.</p></li>
<li><p>Added support for serializing numpy arrays, dtypes and scalars
(see <cite>jsonpickle.ext.numpy</cite> module).</p></li>
</ul>
</dd>
</dl>
</section>
<section id="v0-8-0">
<h2>v0.8.0<a class="headerlink" href="#v0-8-0" title="Link to this heading">¶</a></h2>
<p>06 Sep 2014</p>
<blockquote>
<div><ul class="simple">
<li><p>We now support serializing objects that contain references to
module-level functions. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/77">#77</a>)</p></li>
<li><p>Better Pickle Protocol v2 support. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/78">#78</a>)</p></li>
<li><p>Support for string <code class="docutils literal notranslate"><span class="pre">__slots__</span></code> and iterable <code class="docutils literal notranslate"><span class="pre">__slots__</span></code>. (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/67">#67</a>) (<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/68">#68</a>)</p></li>
<li><p><cite>encode()</cite> now has a <cite>warn</cite> option that makes jsonpickle emit warnings
when encountering objects that cannot be pickled.</p></li>
<li><p>A Javascript implementation of jsonpickle is now included
in the jsonpickleJS directory.</p></li>
</ul>
</div></blockquote>
</section>
<section id="v0-7-2">
<h2>v0.7.2<a class="headerlink" href="#v0-7-2" title="Link to this heading">¶</a></h2>
<p>06 Aug 2014</p>
<blockquote>
<div><ul class="simple">
<li><p>We now properly serialize classes that inherit from classes
that use <cite>__slots__</cite> and add additional slots in the derived class.</p></li>
<li><p>jsonpickle can now serialize objects that implement <cite>__getstate__()</cite> but
not <cite>__setstate__()</cite>. The result of <cite>__getstate__()</cite> is returned as-is
when doing a round-trip from Python objects to jsonpickle and back.</p></li>
<li><p>Better support for collections.defaultdict with custom factories.</p></li>
<li><p>Added support for <cite>queue.Queue</cite> objects.</p></li>
</ul>
</div></blockquote>
</section>
<section id="v0-7-1">
<h2>v0.7.1<a class="headerlink" href="#v0-7-1" title="Link to this heading">¶</a></h2>
<p>06 May 2014</p>
<blockquote>
<div><ul class="simple">
<li><p>Added support for Python 3.4.</p></li>
<li><p>Added support for <cite>posix.stat_result</cite>.</p></li>
</ul>
</div></blockquote>
</section>
<section id="v0-7-0">
<h2>v0.7.0<a class="headerlink" href="#v0-7-0" title="Link to this heading">¶</a></h2>
<p>15 Mar 2014</p>
<blockquote>
<div><ul class="simple">
<li><p>Added <code class="docutils literal notranslate"><span class="pre">handles</span></code> decorator to <a class="reference internal" href="api.html#jsonpickle.handlers.BaseHandler" title="jsonpickle.handlers.BaseHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">jsonpickle.handlers.BaseHandler</span></code></a>,
enabling simple declaration of a handler for a class.</p></li>
<li><p><cite>__getstate__()</cite> and <cite>__setstate__()</cite> are now honored
when pickling objects that subclass <a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a>.</p></li>
<li><p>jsonpickle can now serialize <a class="reference external" href="https://docs.python.org/3/library/collections.html#collections.Counter" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.Counter</span></code></a> objects.</p></li>
<li><p>Object references are properly handled when using integer keys.</p></li>
<li><p>Object references are now supported when using custom handlers.</p></li>
<li><p>Decimal objects are supported in Python 3.</p></li>
<li><p>jsonpickle’s “fallthrough-on-error” behavior can now be disabled.</p></li>
<li><p>Simpler API for registering custom handlers.</p></li>
<li><p>A new “safe-mode” is provided which avoids eval().
Backwards-compatible deserialization of repr-serialized objects
is disabled in this mode. e.g. <cite>decode(string, safe=True)</cite></p></li>
</ul>
</div></blockquote>
</section>
<section id="v0-6-1">
<h2>v0.6.1<a class="headerlink" href="#v0-6-1" title="Link to this heading">¶</a></h2>
<p>25 Aug 2013</p>
<blockquote>
<div><ul class="simple">
<li><p>Python 3.2 support, and additional fixes for Python 3.</p></li>
</ul>
</div></blockquote>
</section>
<section id="v0-6-0">
<h2>v0.6.0<a class="headerlink" href="#v0-6-0" title="Link to this heading">¶</a></h2>
<p>24 Aug 2013</p>
<blockquote>
<div><ul class="simple">
<li><p>Python 3 support!</p></li>
<li><p><a class="reference external" href="https://docs.python.org/3/library/time.html#time.struct_time" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">time.struct_time</span></code></a> is now serialized using the built-in
<cite>jsonpickle.handlers.SimpleReduceHandler</cite>.</p></li>
</ul>
</div></blockquote>
</section>
<section id="v0-5-0">
<h2>v0.5.0<a class="headerlink" href="#v0-5-0" title="Link to this heading">¶</a></h2>
<p>22 Aug 2013</p>
<blockquote>
<div><ul class="simple">
<li><p>Non-string dictionary keys (e.g. ints, objects) are now supported
by passing <cite>keys=True</cite> to <a class="reference internal" href="api.html#jsonpickle.encode" title="jsonpickle.encode"><code class="xref py py-func docutils literal notranslate"><span class="pre">jsonpickle.encode()</span></code></a> and
<a class="reference internal" href="api.html#jsonpickle.decode" title="jsonpickle.decode"><code class="xref py py-func docutils literal notranslate"><span class="pre">jsonpickle.decode()</span></code></a>.</p></li>
<li><p>We now support namedtuple, deque, and defaultdict.</p></li>
<li><p>Datetimes with timezones are now fully supported.</p></li>
<li><p>Better support for complicated structures e.g.
datetime inside dicts.</p></li>
<li><p>jsonpickle added support for references and cyclical data structures
in 0.4.0. This can be disabled by passing <cite>make_refs=False</cite> to
<a class="reference internal" href="api.html#jsonpickle.encode" title="jsonpickle.encode"><code class="xref py py-func docutils literal notranslate"><span class="pre">jsonpickle.encode()</span></code></a>.</p></li>
</ul>
</div></blockquote>
</section>
<section id="id150">
<h2>0.4.0<a class="headerlink" href="#id150" title="Link to this heading">¶</a></h2>
<p>21 Jun 2011</p>
<blockquote>
<div><ul class="simple">
<li><p>Switch build from setuptools to distutils</p></li>
<li><p>Consistent dictionary key ordering</p></li>
<li><p>Fix areas with improper support for unpicklable=False</p></li>
<li><p>Added support for cyclical data structures
(<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/16">#16</a>).</p></li>
<li><p>Experimental support for <a class="reference external" href="http://pypi.python.org/pypi/jsonlib/">jsonlib</a>
and <a class="reference external" href="http://github.com/rtyler/py-yajl/">py-yajl</a> backends.</p></li>
<li><p>New contributors David K. Hess and Alec Thomas</p></li>
</ul>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>To support cyclical data structures
(<a class="reference external" href="https://github.com/jsonpickle/jsonpickle/issues/16">#16</a>),
the storage format has been modified. Efforts have been made to
ensure backwards-compatibility. jsonpickle 0.4.0 can read data
encoded by jsonpickle 0.3.1, but earlier versions of jsonpickle may be
unable to read data encoded by jsonpickle 0.4.0.</p>
</div>
</div></blockquote>
</section>
<section id="id153">
<h2>0.3.1<a class="headerlink" href="#id153" title="Link to this heading">¶</a></h2>
<p>12 Dec 2009</p>
<blockquote>
<div><ul class="simple">
<li><p>Include tests and docs directories in sdist for distribution packages.</p></li>
</ul>
</div></blockquote>
</section>
<section id="id154">
<h2>0.3.0<a class="headerlink" href="#id154" title="Link to this heading">¶</a></h2>
<p>11 Dec 2009</p>
<blockquote>
<div><ul class="simple">
<li><p>Officially migrated to git from subversion. Project home now at
<a class="reference external" href="http://jsonpickle.github.com/">http://jsonpickle.github.com/</a>. Thanks to Michael Jone’s
<a class="reference external" href="http://github.com/michaeljones/sphinx-to-github">sphinx-to-github</a>.</p></li>
<li><p>Fortified jsonpickle against common error conditions.</p></li>
<li><p>Added support for:</p></li>
</ul>
<blockquote>
<div><ul class="simple">
<li><p>List and set subclasses.</p></li>
<li><p>Objects with module references.</p></li>
<li><p>Newstyle classes with <cite>__slots__</cite>.</p></li>
<li><p>Objects implementing <cite>__setstate__()</cite> and <cite>__getstate__()</cite>
(follows the <a class="reference external" href="https://docs.python.org/3/library/pickle.html#module-pickle" title="(in Python v3.13)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a> protocol).</p></li>
</ul>
</div></blockquote>
<ul class="simple">
<li><p>Improved support for Zope objects via pre-fetch.</p></li>
<li><p>Support for user-defined serialization handlers via the
jsonpickle.handlers registry.</p></li>
<li><p>Removed cjson support per John Millikin’s recommendation.</p></li>
<li><p>General improvements to style, including <span class="target" id="index-0"></span><a class="pep reference external" href="https://peps.python.org/pep-0257/"><strong>PEP 257</strong></a> compliance and
refactored project layout.</p></li>
<li><p>Steps towards Python 2.3 and Python 3 support.</p></li>
<li><p>New contributors Dan Buch and Ian Schenck.</p></li>
<li><p>Thanks also to Kieran Darcy, Eoghan Murray, and Antonin Hildebrand
for their assistance!</p></li>
</ul>
</div></blockquote>
</section>
<section id="id155">
<h2>0.2.0<a class="headerlink" href="#id155" title="Link to this heading">¶</a></h2>
<p>10 Jan 2009</p>
<blockquote>
<div><ul class="simple">
<li><p>Support for all major Python JSON backends (including json in Python 2.6,
simplejson, cjson, and demjson)</p></li>
<li><p>Handle several datetime objects using the repr() of the objects
(Thanks to Antonin Hildebrand).</p></li>
<li><p>Sphinx documentation</p></li>
<li><p>Added support for recursive data structures</p></li>
<li><p>Unicode dict-keys support</p></li>
<li><p>Support for Google App Engine and Django</p></li>
<li><p>Tons of additional testing and bug reports (Antonin Hildebrand, Sorin,
Roberto Saccon, Faber Fedor,
<a class="reference external" href="http://github.com/darwin/firepython/tree/master">FirePython</a>, and
<a class="reference external" href="http://code.google.com/p/joose-js/">Joose</a>)</p></li>
</ul>
</div></blockquote>
</section>
<section id="id156">
<h2>0.1.0<a class="headerlink" href="#id156" title="Link to this heading">¶</a></h2>
<p>22 Aug 2008</p>
<blockquote>
<div><ul class="simple">
<li><p>Added long as basic primitive (thanks Adam Fisk)</p></li>
<li><p>Prefer python-cjson to simplejson, if available</p></li>
<li><p>Major API change, use python-cjson’s decode/encode instead of
simplejson’s load/loads/dump/dumps</p></li>
<li><p>Added benchmark.py to compare simplejson and python-cjson</p></li>
</ul>
</div></blockquote>
</section>
<section id="id157">
<h2>0.0.5<a class="headerlink" href="#id157" title="Link to this heading">¶</a></h2>
<p>22 Jul 2008</p>
<blockquote>
<div><ul class="simple">
<li><p>Changed prefix of special fields to conform with CouchDB
requirements (Thanks Dean Landolt). Break backwards compatibility.</p></li>
<li><p>Moved to Google Code subversion</p></li>
<li><p>Fixed unit test imports</p></li>
</ul>
</div></blockquote>
</section>
<section id="id158">
<h2>0.0.3<a class="headerlink" href="#id158" title="Link to this heading">¶</a></h2>
<blockquote>
<div><ul class="simple">
<li><p>Convert back to setup.py from pavement.py (issue found by spidaman)</p></li>
</ul>
</div></blockquote>
</section>
<section id="id159">
<h2>0.0.2<a class="headerlink" href="#id159" title="Link to this heading">¶</a></h2>
<blockquote>
<div><ul class="simple">
<li><p>Handle feedparser’s FeedParserDict</p></li>
<li><p>Converted project to Paver</p></li>
<li><p>Restructured directories</p></li>
<li><p>Increase test coverage</p></li>
</ul>
</div></blockquote>