-
Notifications
You must be signed in to change notification settings - Fork 14
/
acquisition.json
1595 lines (1595 loc) · 65.5 KB
/
acquisition.json
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
{
"classifiers": [
"development status :: 6 - mature",
"environment :: web environment",
"framework :: zope :: 2",
"framework :: zope :: 4",
"framework :: zope :: 5",
"license :: osi approved :: zope public license",
"operating system :: os independent",
"programming language :: python",
"programming language :: python :: 3",
"programming language :: python :: 3.10",
"programming language :: python :: 3.11",
"programming language :: python :: 3.12",
"programming language :: python :: 3.7",
"programming language :: python :: 3.8",
"programming language :: python :: 3.9",
"programming language :: python :: implementation :: cpython",
"programming language :: python :: implementation :: pypy"
],
"description": "acquisition is a mechanism that allows objects to obtain attributes from the containment hierarchy they're in.\nacquisition is a mechanism that allows objects to obtain attributes from the containment hierarchy they're in.\nenvironmental acquisiton\n========================\n\nthis package implements \"environmental acquisiton\" for python, as\nproposed in the oopsla96_ paper by joseph gil and david h. lorenz:\n\n we propose a new programming paradigm, environmental acquisition in\n the context of object aggregation, in which objects acquire\n behaviour from their current containers at runtime. the key idea is\n that the behaviour of a component may depend upon its enclosing\n composite(s). in particular, we propose a form of feature sharing in\n which an object \"inherits\" features from the classes of objects in\n its environment. by examining the declaration of classes, it is\n possible to determine which kinds of classes may contain a\n component, and which components must be contained in a given kind of\n composite. these relationships are the basis for language constructs\n that supports acquisition.\n\n.. _oopsla96: http://www.cs.virginia.edu/~lorenz/papers/oopsla96/>`_:\n\n.. contents::\n\nintroductory example\n--------------------\n\nzope implements acquisition with \"extension class\" mix-in classes. to\nuse acquisition your classes must inherit from an acquisition base\nclass. for example::\n\n >>> import extensionclass, acquisition\n\n >>> class c(extensionclass.base):\n ... color = 'red'\n\n >>> class a(acquisition.implicit):\n ... def report(self):\n ... print(self.color)\n ...\n >>> a = a()\n >>> c = c()\n >>> c.a = a\n\n >>> c.a.report()\n red\n\n >>> d = c()\n >>> d.color = 'green'\n >>> d.a = a\n\n >>> d.a.report()\n green\n\n >>> try:\n ... a.report()\n ... except attributeerror:\n ... pass\n ... else:\n ... raise assertionerror('attributeerror not raised.')\n\nthe class ``a`` inherits acquisition behavior from\n``acquisition.implicit``. the object, ``a``, \"has\" the color of\nobjects ``c`` and d when it is accessed through them, but it has no\ncolor by itself. the object ``a`` obtains attributes from its\nenvironment, where its environment is defined by the access path used\nto reach ``a``.\n\nacquisition wrappers\n--------------------\n\nwhen an object that supports acquisition is accessed through an\nextension class instance, a special object, called an acquisition\nwrapper, is returned. in the example above, the expression ``c.a``\nreturns an acquisition wrapper that contains references to both ``c``\nand ``a``. it is this wrapper that performs attribute lookup in ``c``\nwhen an attribute cannot be found in ``a``.\n\nacquisition wrappers provide access to the wrapped objects through the\nattributes ``aq_parent``, ``aq_self``, ``aq_base``. continue the\nexample from above::\n\n >>> c.a.aq_parent is c\n true\n >>> c.a.aq_self is a\n true\n\nexplicit and implicit acquisition\n---------------------------------\n\ntwo styles of acquisition are supported: implicit and explicit\nacquisition.\n\nimplicit acquisition\n--------------------\n\nimplicit acquisition is so named because it searches for attributes\nfrom the environment automatically whenever an attribute cannot be\nobtained directly from an object or through inheritance.\n\nan attribute can be implicitly acquired if its name does not begin\nwith an underscore.\n\nto support implicit acquisition, your class should inherit from the\nmix-in class ``acquisition.implicit``.\n\nexplicit acquisition\n--------------------\n\nwhen explicit acquisition is used, attributes are not automatically\nobtained from the environment. instead, the method aq_acquire must be\nused. for example::\n\n >>> print(c.a.aq_acquire('color'))\n red\n\nto support explicit acquisition, your class should inherit from the\nmix-in class ``acquisition.explicit``.\n\ncontrolling acquisition\n-----------------------\n\na class (or instance) can provide attribute by attribute control over\nacquisition. you should subclass from ``acquisition.explicit``, and set\nall attributes that should be acquired to the special value\n``acquisition.acquired``. setting an attribute to this value also allows\ninherited attributes to be overridden with acquired ones. for example::\n\n >>> class c(acquisition.explicit):\n ... id = 1\n ... secret = 2\n ... color = acquisition.acquired\n ... __roles__ = acquisition.acquired\n\nthe only attributes that are automatically acquired from containing\nobjects are color, and ``__roles__``. note that the ``__roles__``\nattribute is acquired even though its name begins with an\nunderscore. in fact, the special ``acquisition.acquired`` value can be\nused in ``acquisition.implicit`` objects to implicitly acquire\nselected objects that smell like private objects.\n\nsometimes, you want to dynamically make an implicitly acquiring object\nacquire explicitly. you can do this by getting the object's\naq_explicit attribute. this attribute provides the object with an\nexplicit wrapper that replaces the original implicit wrapper.\n\nfiltered acquisition\n--------------------\n\nthe acquisition method, ``aq_acquire``, accepts two optional\narguments. the first of the additional arguments is a \"filtering\"\nfunction that is used when considering whether to acquire an\nobject. the second of the additional arguments is an object that is\npassed as extra data when calling the filtering function and which\ndefaults to ``none``. the filter function is called with five\narguments:\n\n* the object that the aq_acquire method was called on,\n\n* the object where an object was found,\n\n* the name of the object, as passed to aq_acquire,\n\n* the object found, and\n\n* the extra data passed to aq_acquire.\n\nif the filter returns a true object that the object found is returned,\notherwise, the acquisition search continues.\n\nhere's an example::\n\n >>> from acquisition import explicit\n\n >>> class handyfortesting(object):\n ... def __init__(self, name):\n ... self.name = name\n ... def __str__(self):\n ... return \"%s(%s)\" % (self.name, self.__class__.__name__)\n ... __repr__=__str__\n ...\n >>> class e(explicit, handyfortesting): pass\n ...\n >>> class nice(handyfortesting):\n ... isnice = 1\n ... def __str__(self):\n ... return handyfortesting.__str__(self)+' and i am nice!'\n ... __repr__ = __str__\n ...\n >>> a = e('a')\n >>> a.b = e('b')\n >>> a.b.c = e('c')\n >>> a.p = nice('spam')\n >>> a.b.p = e('p')\n\n >>> def find_nice(self, ancestor, name, object, extra):\n ... return hasattr(object,'isnice') and object.isnice\n\n >>> print(a.b.c.aq_acquire('p', find_nice))\n spam(nice) and i am nice!\n\nthe filtered acquisition in the last line skips over the first\nattribute it finds with the name ``p``, because the attribute doesn't\nsatisfy the condition given in the filter.\n\nfiltered acquisition is rarely used in zope.\n\nacquiring from context\n----------------------\n\nnormally acquisition allows objects to acquire data from their\ncontainers. however an object can acquire from objects that aren't its\ncontainers.\n\nmost of the examples we've seen so far show establishing of an\nacquisition context using getattr semantics. for example, ``a.b`` is a\nreference to ``b`` in the context of ``a``.\n\nyou can also manually set acquisition context using the ``__of__``\nmethod. for example::\n\n >>> from acquisition import implicit\n >>> class c(implicit): pass\n ...\n >>> a = c()\n >>> b = c()\n >>> a.color = \"red\"\n >>> print(b.__of__(a).color)\n red\n\nin this case, ``a`` does not contain ``b``, but it is put in ``b``'s\ncontext using the ``__of__`` method.\n\nhere's another subtler example that shows how you can construct an\nacquisition context that includes non-container objects::\n\n >>> from acquisition import implicit\n\n >>> class c(implicit):\n ... def __init__(self, name):\n ... self.name = name\n\n >>> a = c(\"a\")\n >>> a.b = c(\"b\")\n >>> a.b.color = \"red\"\n >>> a.x = c(\"x\")\n\n >>> print(a.b.x.color)\n red\n\neven though ``b`` does not contain ``x``, ``x`` can acquire the color\nattribute from ``b``. this works because in this case, ``x`` is accessed\nin the context of ``b`` even though it is not contained by ``b``.\n\nhere acquisition context is defined by the objects used to access\nanother object.\n\ncontainment before context\n--------------------------\n\nif in the example above suppose both a and b have an color attribute::\n\n >>> a = c(\"a\")\n >>> a.color = \"green\"\n >>> a.b = c(\"b\")\n >>> a.b.color = \"red\"\n >>> a.x = c(\"x\")\n\n >>> print(a.b.x.color)\n green\n\nwhy does ``a.b.x.color`` acquire color from ``a`` and not from ``b``?\nthe answer is that an object acquires from its containers before\nnon-containers in its context.\n\nto see why consider this example in terms of expressions using the\n``__of__`` method::\n\n a.x -> x.__of__(a)\n\n a.b -> b.__of__(a)\n\n a.b.x -> x.__of__(a).__of__(b.__of__(a))\n\nkeep in mind that attribute lookup in a wrapper is done by trying to\nlook up the attribute in the wrapped object first and then in the\nparent object. so in the expressions above proceeds from left to\nright.\n\nthe upshot of these rules is that attributes are looked up by\ncontainment before context.\n\nthis rule holds true also for more complex examples. for example,\n``a.b.c.d.e.f.g.attribute`` would search for attribute in ``g`` and\nall its containers first. (containers are searched in order from the\ninnermost parent to the outermost container.) if the attribute is not\nfound in ``g`` or any of its containers, then the search moves to\n``f`` and all its containers, and so on.\n\nadditional attributes and methods\n---------------------------------\n\nyou can use the special method ``aq_inner`` to access an object\nwrapped only by containment. so in the example above,\n``a.b.x.aq_inner`` is equivalent to ``a.x``.\n\nyou can find out the acquisition context of an object using the\naq_chain method like so:\n\n >>> [obj.name for obj in a.b.x.aq_chain]\n ['x', 'b', 'a']\n\nyou can find out if an object is in the containment context of another\nobject using the ``aq_incontextof`` method. for example:\n\n >>> a.b.aq_incontextof(a)\n true\n\n.. note: as of this writing the aq_incontextof examples don't work the\n way they should be working. according to jim, this is because\n aq_incontextof works by comparing object pointer addresses, which\n (because they are actually different wrapper objects) doesn't give\n you the expected results. he acknowledges that this behavior is\n controversial, and says that there is a collector entry to change\n it so that you would get the answer you expect in the above. (we\n just need to get to it).\n\nacquisition module functions\n----------------------------\n\nin addition to using acquisition attributes and methods directly on\nobjects you can use similar functions defined in the ``acquisition``\nmodule. these functions have the advantage that you don't need to\ncheck to make sure that the object has the method or attribute before\ncalling it.\n\n``aq_acquire(object, name [, filter, extra, explicit, default, containment])``\n acquires an object with the given name.\n\n this function can be used to explictly acquire when using explicit\n acquisition and to acquire names that wouldn't normally be\n acquired.\n\n the function accepts a number of optional arguments:\n\n ``filter``\n a callable filter object that is used to decide if an object\n should be acquired.\n\n the filter is called with five arguments:\n\n * the object that the aq_acquire method was called on,\n\n * the object where an object was found,\n\n * the name of the object, as passed to aq_acquire,\n\n * the object found, and\n\n * the extra argument passed to aq_acquire.\n\n if the filter returns a true object that the object found is\n returned, otherwise, the acquisition search continues.\n\n ``extra``\n extra data to be passed as the last argument to the filter.\n\n ``explicit``\n a flag (boolean value) indicating whether explicit acquisition\n should be used. the default value is true. if the flag is\n true, then acquisition will proceed regardless of whether\n wrappers encountered in the search of the acquisition\n hierarchy are explicit or implicit wrappers. if the flag is\n false, then parents of explicit wrappers are not searched.\n\n this argument is useful if you want to apply a filter without\n overriding explicit wrappers.\n\n ``default``\n a default value to return if no value can be acquired.\n\n ``containment``\n a flag indicating whether the search should be limited to the\n containment hierarchy.\n\n in addition, arguments can be provided as keywords.\n\n``aq_base(object)``\n return the object with all wrapping removed.\n\n``aq_chain(object [, containment])``\n return a list containing the object and it's acquisition\n parents. the optional argument, containment, controls whether the\n containment or access hierarchy is used.\n\n``aq_get(object, name [, default, containment])``\n acquire an attribute, name. a default value can be provided, as\n can a flag that limits search to the containment hierarchy.\n\n``aq_inner(object)``\n return the object with all but the innermost layer of wrapping\n removed.\n\n``aq_parent(object)``\n return the acquisition parent of the object or none if the object\n is unwrapped.\n\n``aq_self(object)``\n return the object with one layer of wrapping removed, unless the\n object is unwrapped, in which case the object is returned.\n\nin most cases it is more convenient to use these module functions\ninstead of the acquisition attributes and methods directly.\n\nacquisition and methods\n-----------------------\n\npython methods of objects that support acquisition can use acquired\nattributes. when a python method is called on an object that is\nwrapped by an acquisition wrapper, the wrapper is passed to the method\nas the first argument. this rule also applies to user-defined method\ntypes and to c methods defined in pure mix-in classes.\n\nunfortunately, c methods defined in extension base classes that define\ntheir own data structures, cannot use aquired attributes at this\ntime. this is because wrapper objects do not conform to the data\nstructures expected by these methods. in practice, you will seldom\nfind this a problem.\n\nconclusion\n----------\n\nacquisition provides a powerful way to dynamically share information\nbetween objects. zope uses acquisition for a number of its key\nfeatures including security, object publishing, and dtml variable\nlookup. acquisition also provides an elegant solution to the problem\nof circular references for many classes of problems. while acquisition\nis powerful, you should take care when using acquisition in your\napplications. the details can get complex, especially with the\ndifferences between acquiring from context and acquiring from\ncontainment.\n\n\nchangelog\n=========\n\n5.1 (2023-10-05)\n----------------\n\n- add support for python 3.12.\n\n\n5.0 (2023-03-24)\n----------------\n\n- build linux binary wheels for python 3.11.\n\n- drop support for python 2.7, 3.5, 3.6.\n\n- add preliminary support for python 3.12a5.\n\n\n4.13 (2022-11-17)\n-----------------\n\n- add support for building arm64 wheels on macos.\n\n\n4.12 (2022-11-03)\n-----------------\n\n- add support for final python 3.11 release.\n\n\n4.11 (2022-09-16)\n-----------------\n\n- add support for python 3.11 (as of 3.11.0rc1).\n\n- switch from ``-ofast`` to ``-o3`` when compiling code for linux wheels.\n (`#64 <https://github.com/zopefoundation/acquisition/pull/64>`_)\n\n\n4.10 (2021-12-07)\n-----------------\n\n- fix bug in the ``pure_python`` version affecting ``aq_acquire`` applied\n to a class with a filter.\n\n- improve interface documentation.\n\n- add support for python 3.10.\n\n\n4.9 (2021-08-19)\n----------------\n\n- on cpython no longer omit compiling the c code when ``pure_python`` is\n required. just evaluate it at runtime.\n (`#53 <https://github.com/zopefoundation/acquisition/issues/53>`_)\n\n\n4.8 (2021-07-20)\n----------------\n\n- various fixes for the ``pure_python`` version, e.g.\n make ``acquired`` an ``str`` (as required by ``zope``),\n avoid infinite ``__cmp__`` loop.\n (`#51 <https://github.com/zopefoundation/acquisition/issues/51>`_,\n `#48 <https://github.com/zopefoundation/acquisition/issues/48>`_)\n\n- create aarch64 wheels.\n\n\n4.7 (2020-10-07)\n----------------\n\n- add support for python 3.8 and 3.9.\n\n\n4.6 (2019-04-24)\n----------------\n\n- drop support for python 3.4.\n\n- add support for python 3.8a3.\n\n- add support to call ``bytes()`` on an object wrapped by an\n ``implicitacquisitionwrapper``.\n (`#38 <https://github.com/zopefoundation/acquisition/issues/38>`_)\n\n\n4.5 (2018-10-05)\n----------------\n\n- avoid deprecation warnings by using current api.\n\n- add support for python 3.7.\n\n4.4.4 (2017-11-24)\n------------------\n\n- add appveyor configuration to automate building windows eggs.\n\n4.4.3 (2017-11-23)\n------------------\n\n- fix the extremely rare potential for a crash when the c extensions\n are in use. see `issue 21 <https://github.com/zopefoundation/acquisition/issues/21>`_.\n\n4.4.2 (2017-05-12)\n------------------\n\n- fix c capsule name to fix import errors.\n\n- ensure our dependencies match our expactations about c extensions.\n\n4.4.1 (2017-05-04)\n------------------\n\n- fix c code under python 3.4, with missing py_xsetref.\n\n4.4.0 (2017-05-04)\n------------------\n\n- enable the c extension under python 3.\n\n- drop support for python 3.3.\n\n4.3.0 (2017-01-20)\n------------------\n\n- make tests compatible with extensionclass 4.2.0.\n\n- drop support for python 2.6 and 3.2.\n\n- add support for python 3.5 and 3.6.\n\n4.2.2 (2015-05-19)\n------------------\n\n- make the pure-python acquirer objects cooperatively use the\n superclass ``__getattribute__`` method, like the c implementation.\n see https://github.com/zopefoundation/acquisition/issues/7.\n\n- the pure-python implicit acquisition wrapper allows wrapped objects\n to use ``object.__getattribute__(self, name)``. this differs from\n the c implementation, but is important for compatibility with the\n pure-python versions of libraries like ``persistent``. see\n https://github.com/zopefoundation/acquisition/issues/9.\n\n4.2.1 (2015-04-23)\n------------------\n\n- correct several dangling pointer uses in the c extension,\n potentially fixing a few interpreter crashes. see\n https://github.com/zopefoundation/acquisition/issues/5.\n\n4.2 (2015-04-04)\n----------------\n\n- add support for pypy, pypy3, and python 3.2, 3.3, and 3.4.\n\n4.1 (2014-12-18)\n----------------\n\n- bump dependency on ``extensionclass`` to match current release.\n\n4.0.3 (2014-11-02)\n------------------\n\n- skip readme.rst tests when tests are run outside a source checkout.\n\n4.0.2 (2014-11-02)\n------------------\n\n- include ``*.rst`` files in the release.\n\n4.0.1 (2014-10-30)\n------------------\n\n- tolerate unicode attribute names (ascii only). lp #143358.\n\n- make module-level ``aq_acquire`` api respect the ``default`` parameter.\n lp #1387363.\n\n- don't raise an attribute error for ``__iter__`` if the fallback to\n ``__getitem__`` succeeds. lp #1155760.\n\n\n4.0 (2013-02-24)\n----------------\n\n- added trove classifiers to project metadata.\n\n4.0a1 (2011-12-13)\n------------------\n\n- raise `runtimeerror: recursion detected in acquisition wrapper` if an object\n with a `__parent__` pointer points to a wrapper that in turn points to the\n original object.\n\n- prevent wrappers to be created while accessing `__parent__` on types derived\n from explicit or implicit base classes.\n\n2.13.9 (2015-02-17)\n-------------------\n\n- tolerate unicode attribute names (ascii only). lp #143358.\n\n- make module-level ``aq_acquire`` api respect the ``default`` parameter.\n lp #1387363.\n\n- don't raise an attribute error for ``__iter__`` if the fallback to\n ``__getitem__`` succeeds. lp #1155760.\n\n2.13.8 (2011-06-11)\n-------------------\n\n- fixed a segfault on 64bit platforms when providing the `explicit` argument to\n the aq_acquire method of an acquisition wrapper. thx to lp #675064 for the\n hint to the solution. the code passed an int instead of a pointer into a\n function.\n\n2.13.7 (2011-03-02)\n-------------------\n\n- fixed bug: when an object did not implement ``__unicode__``, calling\n ``unicode(wrapped)`` was calling ``__str__`` with an unwrapped ``self``.\n\n2.13.6 (2011-02-19)\n-------------------\n\n- add ``aq_explicit`` to ``iacquisitionwrapper``.\n\n- fixed bug: ``unicode(wrapped)`` was not calling a ``__unicode__``\n method on wrapped objects.\n\n2.13.5 (2010-09-29)\n-------------------\n\n- fixed unit tests that failed on 64bit python on windows machines.\n\n2.13.4 (2010-08-31)\n-------------------\n\n- lp 623665: fixed typo in acquisition.h.\n\n2.13.3 (2010-04-19)\n-------------------\n\n- use the doctest module from the standard library and no longer depend on\n zope.testing.\n\n2.13.2 (2010-04-04)\n-------------------\n\n- give both wrapper classes a ``__getnewargs__`` method, which causes the zodb\n optimization to fail and create persistent references using the ``_p_oid``\n alone. this happens to be the persistent oid of the wrapped object. this lets\n these objects to be persisted correctly, even though they are passed to the\n zodb in a wrapped state.\n\n- added failing tests for http://dev.plone.org/plone/ticket/10318. this shows\n an edge-case where aq wrappers can be pickled using the specific combination\n of cpickle, pickle protocol one and a custom pickler class with an\n ``inst_persistent_id`` hook. unfortunately this is the exact combination used\n by zodb3.\n\n2.13.1 (2010-02-23)\n-------------------\n\n- update to include extensionclass 2.13.0.\n\n- fix the ``tp_name`` of the implicitacquisitionwrapper and\n explicitacquisitionwrapper to match their python visible names and thus have\n a correct ``__name__``.\n\n- expand the ``tp_name`` of our extension types to hold the fully qualified\n name. this ensures classes have their ``__module__`` set correctly.\n\n2.13.0 (2010-02-14)\n-------------------\n\n- added support for method cache in acquisition. patch contributed by\n yoshinori k. okuji. see https://bugs.launchpad.net/zope2/+bug/486182.\n\n2.12.4 (2009-10-29)\n-------------------\n\n- fix iteration proxying to pass `self` acquisition-wrapped into both\n `__iter__` as well as `__getitem__` (this fixes\n https://bugs.launchpad.net/zope2/+bug/360761).\n\n- add tests for the __getslice__ proxying, including open-ended slicing.\n\n2.12.3 (2009-08-08)\n-------------------\n\n- more 64-bit fixes in py_buildvalue calls.\n\n- more 64-bit issues fixed: use correct integer size for slice operations.\n\n2.12.2 (2009-08-02)\n-------------------\n\n- fixed 64-bit compatibility issues for python 2.5.x / 2.6.x. see\n http://www.python.org/dev/peps/pep-0353/ for details.\n\n2.12.1 (2009-04-15)\n-------------------\n\n- update for iteration proxying: the proxy for `__iter__` must not rely on the\n object to have an `__iter__` itself, but also support fall-back iteration via\n `__getitem__` (this fixes https://bugs.launchpad.net/zope2/+bug/360761).\n\n2.12 (2009-01-25)\n-----------------\n\n- release as separate package.\n",
"docs_url": null,
"keywords": "",
"license": "zpl 2.1",
"name": "acquisition",
"package_url": "https://pypi.org/project/Acquisition/",
"project_url": "https://pypi.org/project/Acquisition/",
"project_urls": {
"Homepage": "https://github.com/zopefoundation/Acquisition"
},
"release_url": "https://pypi.org/project/Acquisition/5.1/",
"requires_dist": [
"ExtensionClass>=4.2.0",
"zope.interface",
"zope.testrunner; extra == \"test\""
],
"requires_python": ">=3.7",
"summary": "acquisition is a mechanism that allows objects to obtain attributes from the containment hierarchy they're in.",
"version": "5.1",
"releases": [],
"developers": [
"zope_foundation_and_contributors"
],
"kwds": "objects semantics constructs aggregation python",
"license_kwds": "zpl 2.1",
"libtype": "pypi",
"id": "pypi_acquisition",
"homepage": "https://github.com/zopefoundation/acquisition",
"release_count": 49,
"dependency_ids": [
"pypi_extensionclass",
"pypi_zope.interface",
"pypi_zope.testrunner"
],
"documentation_summary": "The HTML text provides information about the Acquisition package version 5.2, released on February 13, 2024. Acquisition is a Python mechanism that enables objects to inherit attributes from their containment hierarchy. It is designed for use in web environments and is compatible with Python versions 3.7 and above, including support for Python 3.13 as of its alpha release. The package is licensed under the Zope Public License (ZPL 2.1) and is maintained by the Zope Foundation and Contributors. It supports both implicit and explicit acquisition, allowing for dynamic behavior and attribute sharing among objects based on their runtime environment. The document also includes detailed explanations of acquisition concepts, methods, and examples.",
"embedding": [
0.0005338550545275211,
0.03453020006418228,
0.007136707194149494,
-0.028253253549337387,
-0.03475387766957283,
0.03584430366754532,
0.011896842159330845,
-0.01264476403594017,
-0.02494003064930439,
-0.010456918738782406,
0.004106577485799789,
0.004777609836310148,
0.023695826530456543,
0.030783602967858315,
-0.009359501302242279,
-0.0026788865216076374,
0.03710249066352844,
-0.02214406430721283,
-0.0017300050240010023,
0.01200169138610363,
0.02478625252842903,
-0.006158118601888418,
-0.021584870293736458,
-0.02415716089308262,
-0.012225368991494179,
0.022018244490027428,
0.004005223512649536,
-0.025401366874575615,
-0.009485320188105106,
-0.002161632524803281,
0.017614595592021942,
-0.004686740692704916,
-0.019907290115952492,
0.007807739544659853,
-0.016510188579559326,
-0.02695312723517418,
0.007563092280179262,
-0.021081596612930298,
0.01992126926779747,
0.017712455242872238,
0.019473914057016373,
0.02837907150387764,
-0.020438523963093758,
0.005612905137240887,
0.007017878815531731,
-0.013162017799913883,
-0.022046204656362534,
-0.026421893388032913,
-0.025694942101836205,
-0.0035858284682035446,
0.018467366695404053,
0.03480979800224304,
-0.03377528861165047,
-0.00021898106206208467,
0.021766608580946922,
-0.01762857660651207,
-2.7986979489469377e-07,
0.0214310921728611,
0.007779779843986034,
-0.015671398490667343,
0.011666174978017807,
0.006979434285312891,
-0.02573688142001629,
0.007049333304166794,
-0.018033990636467934,
0.031202998012304306,
0.0004163370467722416,
0.0027854826766997576,
-0.024324918165802956,
0.005148075520992279,
0.043253619223833084,
0.03383120894432068,
0.003613788168877363,
-0.0004836150328628719,
0.04280626401305199,
0.005567470565438271,
-0.014000807888805866,
0.016146713867783546,
-0.013812080025672913,
0.00688157556578517,
0.013951878994703293,
-0.010240231640636921,
-0.036151859909296036,
0.06128761172294617,
0.019082479178905487,
0.025177689269185066,
-0.0006387038738466799,
0.027624160051345825,
-0.005784158129245043,
5.0158130761701614e-05,
0.01282650139182806,
-0.016314471140503883,
0.021445071324706078,
0.02021484635770321,
-0.003816495882347226,
0.02837907150387764,
-0.010974173434078693,
0.026463834568858147,
-0.0017029190203174949,
-0.01007247343659401,
0.002184349810704589,
0.007940548472106457,
-0.02860274910926819,
-0.015992935746908188,
-0.02851887047290802,
-0.012854461558163166,
-0.01569935865700245,
0.013728201389312744,
0.03475387766957283,
-0.007786769885569811,
-0.037577804177999496,
0.07621807605028152,
0.013909938745200634,
-0.04205135256052017,
0.0050711864605546,
-0.019977189600467682,
0.015321902930736542,
-0.0053822374902665615,
-0.02415716089308262,
0.0033516662660986185,
-0.01135861873626709,
0.00571425911039114,
0.0014364283997565508,
0.004239385947585106,
0.029469499364495277,
-0.01042196899652481,
-0.011994700878858566,
-0.022605398669838905,
-0.007626001723110676,
-0.027931716293096542,
-0.0019222277915105224,
0.025708923116326332,
0.004791589453816414,
0.021612830460071564,
-0.02459053508937359,
-0.0014582718722522259,
-0.005689794197678566,
-0.003400595625862479,
-0.019893309101462364,
-0.031426675617694855,
0.02572290226817131,
0.008716429583728313,
-0.012246338650584221,
-0.020047087222337723,
0.001820873934775591,
0.03204178810119629,
0.004833529237657785,
-0.0005705521325580776,
-0.022815095260739326,
-0.020746080204844475,
0.04149216040968895,
0.01604885421693325,
-0.014818628318607807,
-0.006713817361742258,
0.003907364793121815,
0.013106098398566246,
-0.017307039350271225,
-0.0007645224104635417,
-0.012477005831897259,
-0.010953202843666077,
-0.004903428256511688,
0.0074232942424714565,
-0.02021484635770321,
-0.011386577971279621,
0.00045434472849592566,
0.025764841586351395,
0.02459053508937359,
-0.0022088144905865192,
-0.025457285344600677,
0.008478771895170212,
-0.017950112000107765,
-0.0038863951340317726,
0.019907290115952492,
0.008576630614697933,
0.007199616637080908,
0.018159810453653336,
0.022884994745254517,
0.013448604382574558,
-0.02192038670182228,
-0.00966705847531557,
0.02006106823682785,
-0.008227135054767132,
-0.026925168931484222,
0.013182987459003925,
-0.004662276245653629,
-0.019613713026046753,
-0.009890735149383545,
-0.006594988517463207,
-0.008052387274801731,
0.026631591841578484,
0.0057981377467513084,
0.037577804177999496,
-0.007024868857115507,
-0.02056434191763401,
-0.5855874419212341,
0.011456477455794811,
-0.02874254807829857,
-0.02988889440894127,
-0.009932675398886204,
-0.0017876718193292618,
0.016524169594049454,
0.016663966700434685,
-0.01307813823223114,
0.0378294438123703,
-0.03570450842380524,
0.025694942101836205,
-0.013127068057656288,
-0.010729526169598103,
-0.004113567527383566,
-0.0081362659111619,
0.0034460301976650953,
-0.04571407288312912,
0.022912954911589622,
0.014986386522650719,
-0.007119232788681984,
0.014594950713217258,
-0.02516370825469494,
0.02006106823682785,
0.019725551828742027,
0.02480023354291916,
-0.0022542488295584917,
0.0014879790833219886,
0.033076297491788864,
-0.001512443763203919,
-0.03609594330191612,
0.014049737714231014,
0.00852770172059536,
-0.013700241222977638,
0.052480313926935196,
0.001278281444683671,
-0.02401736192405224,
0.047335732728242874,
-0.0017745656659826636,
0.03190198913216591,
-0.004550437442958355,
-0.006011330522596836,
0.009904715232551098,
0.020158926025032997,
0.015182103961706161,
-0.007975497283041477,
-0.007779779843986034,
0.03978661820292473,
-0.00330448430031538,
-0.03531306982040405,
0.022479580715298653,
0.01207858044654131,
0.0103171207010746,
-0.025457285344600677,
0.03869619220495224,
-0.009065925143659115,
0.004316275008022785,
-0.007954527623951435,
0.015601499006152153,
-0.0053962175734341145,
0.00791258830577135,
0.008653519675135612,
0.013993818312883377,
-0.026072397828102112,
-0.01813185028731823,
0.05189315974712372,
-0.0011743063805624843,
0.008583621121942997,
-0.0037431016098707914,
-0.027777938172221184,
-0.0026072398759424686,
0.02523360773921013,
-0.006525089498609304,
-0.0006155497394502163,
0.0229269340634346,
0.008758368901908398,
-0.00820616539567709,
-0.00264218938536942,
0.003739606821909547,
0.02787579782307148,
0.0013411907711997628,
-0.0046797506511211395,
-0.0014224485494196415,
-0.03153851628303528,
0.04358913376927376,
0.014692810364067554,
-0.010491868481040001,
0.004606356844305992,
0.011959752067923546,
-0.012435066513717175,
0.021333232522010803,
0.02014494687318802,
-0.03631962090730667,
-0.018397467210888863,
-0.01354646310210228,
0.029860934242606163,
-0.018677063286304474,
-0.003400595625862479,
-0.012483995407819748,
-0.007115737535059452,
-0.026030458509922028,
-0.030196450650691986,
-0.01347656361758709,
-0.011561326682567596,
-0.00046395589015446603,
0.028994183987379074,
0.004204436205327511,
0.008625560440123081,
0.03430652245879173,
-0.02429695799946785,
0.007653961423784494,
-0.007353394757956266,
-0.00023023046378511935,
0.007702890783548355,
-0.007105252705514431,
-0.03346773236989975,
0.02528952807188034,
0.007744830567389727,
0.012714662589132786,
-0.01451107207685709,
0.003816495882347226,
0.004882458597421646,
0.01569935865700245,
0.008171215653419495,
0.018802883103489876,
0.02766609936952591,
0.002918291138485074,
-0.011400558054447174,
-0.035089392215013504,
-0.0018156315200030804,
0.019655652344226837,
0.003112261416390538,
-0.003952799364924431,
0.006252482533454895,
0.05544403940439224,
0.010373040102422237,
0.015811197459697723,
-0.013560443185269833,
0.0017911667237058282,
-0.023667866364121437,
-0.02629607543349266,
0.0011349881533533335,
0.011086011305451393,
-0.0028693617787212133,
-0.023304389789700508,
-0.03875211253762245,
-0.009869765490293503,
-0.000718651048373431,
-0.01121881976723671,
-0.023597966879606247,
0.0018907730700448155,
0.002696361392736435,
-0.029860934242606163,
0.039087627083063126,
-0.0142664248123765,
-0.005123610608279705,
-0.021696709096431732,
-0.019236257299780846,
-0.018509306013584137,
0.017237139865756035,
0.003914354834705591,
0.02629607543349266,
0.005312338471412659,
-0.0016015651635825634,
-0.02243763953447342,
0.00856265053153038,
-0.02287101559340954,
0.02542932517826557,
-0.04588183015584946,
-0.038808029145002365,
-0.00942241121083498,
-0.003753586672246456,
-0.005549995694309473,
-0.01690162532031536,
-0.008821277879178524,
0.01892870105803013,
-0.002107460517436266,
0.010128392837941647,
-0.011771024204790592,
0.003924839664250612,
0.015727318823337555,
0.01606283336877823,
-0.023122653365135193,
0.006140643730759621,
0.025037890300154686,
0.012798542156815529,
0.017432859167456627,
0.024450737982988358,
0.003753586672246456,
0.027358543127775192,
0.002762765623629093,
0.015252003446221352,
-0.03397100791335106,
0.0154756810516119,
-0.05401809513568878,
-0.00014209194341674447,
-0.00370815210044384,
0.007584062404930592,
0.013847029767930508,
0.058659400790929794,
0.02013096772134304,
0.016663966700434685,
0.013085128739476204,
0.005008277017623186,
0.012623794376850128,
0.0001273475936613977,
0.011134941130876541,
-0.017964093014597893,
0.03461407870054245,
0.007779779843986034,
-0.004505002871155739,
-0.019110439345240593,
0.018103890120983124,
-0.006958464626222849,
0.014315354637801647,
0.020746080204844475,
-0.02960929647088051,
0.010484878905117512,
-0.0378294438123703,
-0.011484436690807343,
0.025988519191741943,
0.013155028223991394,
0.018033990636467934,
0.007381354458630085,
0.00700739398598671,
-0.0029899380169808865,
-0.009695017710328102,
0.018313588574528694,
0.00856265053153038,
-0.03905966877937317,
-0.0023066732101142406,
-0.005735228769481182,
0.024912072345614433,
0.0029846953693777323,
0.013343755155801773,
0.025051869451999664,
0.04042969271540642,
-0.0122603178024292,
0.01912441849708557,
0.007451253943145275,
0.04143624007701874,
0.01892870105803013,
0.034418363124132156,
-0.010617687366902828,
0.0035718486178666353,
-0.010554777458310127,
0.011833933182060719,
0.021389152854681015,
-0.03357957303524017,
0.0008440327364951372,
0.01114193070679903,
-0.004983812104910612,
-0.002077753422781825,
0.008143255487084389,
0.02120741456747055,
-0.012567874975502491,
-0.0007203985587693751,
0.0028920790646225214,
0.0214310921728611,
0.00296372571028769,
0.014525052160024643,
-0.007143697235733271,
0.005612905137240887,
-0.020801998674869537,
0.041967473924160004,
-0.009855786338448524,
-0.0009252905147150159,
-0.03433448448777199,
-0.0031804132740944624,
-0.008989036083221436,
-0.03360753133893013,
-0.04269442707300186,
-0.03883599117398262,
-0.005679309368133545,
0.04199543222784996,
0.010736515745520592,
-0.0122603178024292,
0.010177322663366795,
0.027106907218694687,
0.017139282077550888,
-0.028966225683689117,
-0.028826426714658737,
0.022968873381614685,
0.03850047290325165,
0.01121183019131422,
-0.01705540344119072,
-0.023052753880620003,
0.011847913265228271,
-0.018886761739850044,
0.0018820357508957386,
0.012658743187785149,
-0.008178205229341984,
0.0031472111586481333,
-0.007129717618227005,
-0.016146713867783546,
-0.011512396857142448,
0.023122653365135193,
0.0004879837215412408,
-0.022465599700808525,
-0.018649104982614517,
0.008324993774294853,
-0.027428442612290382,
-0.03777352347970009,
0.03970273956656456,
0.03153851628303528,
-0.0101423729211092,
-0.008143255487084389,
-0.019390035420656204,
-0.02537340670824051,
-0.03494959697127342,
0.013881979510188103,
0.008045396767556667,
-0.005819107871502638,
-0.01458097156137228,
0.02344418875873089,
0.014790669083595276,
0.012365167029201984,
0.0018173789139837027,
0.01604885421693325,
-0.008324993774294853,
0.0026858763303607702,
-0.028127433732151985,
-0.015867115929722786,
0.01082039438188076,
0.034642040729522705,
0.027204765006899834,
-0.013259876519441605,
0.025974540039896965,
-0.052060917019844055,
-0.013895959593355656,
-0.016034875065088272,
0.015531600452959538,
0.02329041063785553,
0.005885512102395296,
-0.01698550395667553,
0.03685085475444794,
0.030504006892442703,
-0.004085607826709747,
0.013749171048402786,
0.0053717526607215405,
-0.0028833416290581226,
0.0036382528487592936,
-0.015210064128041267,
-0.032992418855428696,
0.003613788168877363,
-0.02006106823682785,
0.01950187422335148,
0.015937015414237976,
0.020885879173874855,
0.005930946208536625,
0.038584355264902115,
0.027386503294110298,
-0.00041808452806435525,
-0.02737252414226532,
-0.0010720788268372416,
-0.033719368278980255,
0.00877933856099844,
0.025121768936514854,
-0.022311821579933167,
0.0024324918631464243,
0.030783602967858315,
0.01747479848563671,
0.0112887192517519,
-0.004344234708696604,
0.031985871493816376,
0.03458612039685249,
0.00270509859547019,
-0.027568241581320763,
-0.0039003747515380383,
-0.012686703354120255,
0.012609814293682575,
0.004368699621409178,
-0.0016968029085546732,
-0.019977189600467682,
0.014308364130556583,
-0.003250312292948365,
-0.015377822332084179,
-0.003300989279523492,
0.022703256458044052,
-0.030504006892442703,
0.003236332442611456,
-0.0005867163417860866,
0.01154035609215498,
-0.03556470945477486,
-0.012805531732738018,
-0.020983736962080002,
0.01290339045226574,
-0.006581008899956942,
-0.006574018858373165,
-0.0010589727899059653,
-0.00838790275156498,
0.002951493253931403,
-0.025191668421030045,
0.023695826530456543,
-0.005494076292961836,
-0.012882420793175697,
-0.020899858325719833,
-0.022521520033478737,
0.02893826551735401,
-0.01192480232566595,
0.020242806524038315,
0.004431608598679304,
-0.010841364972293377,
-0.012127509340643883,
0.010561767965555191,
-0.028560809791088104,
-0.010303140617907047,
-0.020382603630423546,
0.030364207923412323,
-0.001074700034223497,
-0.006518099457025528,
0.010240231640636921,
-0.010380029678344727,
0.025135749951004982,
-0.0004783725889865309,
0.014455152675509453,
0.03058788552880287,
0.001480989158153534,
-0.001289640087634325,
0.0031244938727468252,
-0.025778822600841522,
0.01606283336877823,
0.012155469506978989,
-0.0009829574264585972,
-0.010107423178851604,
-0.0038619302213191986,
0.009653078392148018,
0.0122603178024292,
0.0013612867332994938,
-0.0023486127611249685,
-0.014371274039149284,
0.011512396857142448,
-0.01755867712199688,
0.0030947867780923843,
0.022954894229769707,
-0.011169890873134136,
0.006179088726639748,
-0.012511955574154854,
0.010512838140130043,
0.006329371593892574,
-0.001149841700680554,
0.04118460416793823,
0.008583621121942997,
-0.01690162532031536,
0.011840922757983208,
-0.023695826530456543,
0.02737252414226532,
-0.006165108643472195,
-0.008157235570251942,
0.023178571835160255,
0.0006046280032023787,
0.04006621614098549,
-0.038025159388780594,
0.011568316258490086,
0.017642555758357048,
0.00788462907075882,
-0.002086490858346224,
-0.014210505411028862,
0.0051061357371509075,
0.015433741733431816,
-0.011708114296197891,
-0.006224522832781076,
-0.022339781746268272,
0.009401441551744938,
-0.004805569536983967,
-0.006301411893218756,
-0.0005360394134186208,
-0.02085791900753975,
0.03444632142782211,
-0.030923401936888695,
-0.008366933092474937,
0.020760059356689453,
0.0012555642751976848,
0.015014346688985825,
-0.01790817268192768,
-0.007730850484222174,
-0.0015272973105311394,
-0.0068466258235275745,
-7.148284203140065e-05,
-0.022912954911589622,
0.0030004228465259075,
-0.010505848564207554,
0.032489143311977386,
0.01747479848563671,
0.0332440547645092,
0.011421527713537216,
0.018788902088999748,
0.015252003446221352,
0.01620263233780861,
0.008891177363693714,
-0.010519828647375107,
0.02414317987859249,
-0.007563092280179262,
0.0043931640684604645,
0.0030301299411803484,
0.0072485459968447685,
0.0015902066370472312,
-0.02306673303246498,
0.02580678090453148,
0.04244278743863106,
0.0038863951340317726,
-0.019865350797772408,
-0.007178646977990866,
-0.018816862255334854,
0.003196140518411994,
0.003984253853559494,
0.020103007555007935,
0.017810313031077385,
-0.03891986981034279,
-0.0018418437102809548,
0.020899858325719833,
0.023346329107880592,
0.003155948594212532,
0.005298358853906393,
0.016160693019628525,
-0.026030458509922028,
0.023625927045941353,
-0.00038684834726154804,
0.026100357994437218,
-0.0031262412667274475,
0.022130083292722702,
-0.02057832106947899,
-0.026757409796118736,
-0.0057072690688073635,
-0.014427193440496922,
0.011155910789966583,
0.0005172539968043566,
-0.03824883699417114,
-0.0032765245996415615,
-0.0014477870427072048,
0.016566108912229538,
-0.028351111337542534,
0.024967990815639496,
-0.016789786517620087,
-0.03176219388842583,
-0.023625927045941353,
-0.03640349954366684,
-0.0373820886015892,
0.01913839764893055,
-0.010554777458310127,
0.010778455063700676,
0.006741777062416077,
0.015182103961706161,
-0.013588402420282364,
0.014028768055140972,
0.010093443095684052,
0.06268559396266937,
-0.015447720885276794,
0.02794569730758667,
0.01769847609102726,
-0.003599808318540454,
-0.02836509235203266,
-0.010883304290473461,
-0.008394893258810043,
0.01778235472738743,
0.04040173068642616,
0.010044514201581478,
-0.014371274039149284,
-0.0006631685537286103,
0.0032310900278389454,
0.011267749592661858,
-0.0401221364736557,
-0.026673531159758568,
0.02629607543349266,
0.03109116107225418,
0.02228386141359806,
-0.022158043459057808,
-0.007730850484222174,
-0.016594067215919495,
-0.0040261936374008656,
-0.003442535176873207,
-0.01168015506118536,
0.011736074462532997,
-0.012735632248222828,
-0.010701566003262997,
0.03998233750462532,
0.02429695799946785,
0.011148921214044094,
0.038808029145002365,
-0.004927893169224262,
-0.015797216445207596,
-0.019292177632451057,
-0.000836605962831527,
0.004658780992031097,
-0.02391950413584709,
-0.011016112752258778,
0.020256785675883293,
-0.006605473347008228,
0.057652853429317474,
-0.03103524073958397,
-0.008122285827994347,
-0.017167242243885994,
-0.0045783971436321735,
0.03265690058469772,
-0.008171215653419495,
-0.025471264496445656,
-0.029916854575276375,
0.02070414088666439,
-0.002004359383136034,
-0.001831358764320612,
-0.02134721353650093,
-0.005909976549446583,
0.004560922272503376,
-0.01634243130683899,
0.008793318644165993,
-0.003400595625862479,
-0.010680596344172955,
0.00968103762716055,
2.3454455003957264e-05,
0.02078801952302456,
0.019012579694390297,
-0.022982854396104813,
0.015964975580573082,
0.00684313103556633,
-0.00917776394635439,
-0.023751745000481606,
0.0013577918289229274,
0.015210064128041267,
0.017167242243885994,
-0.00967404805123806,
-0.022521520033478737,
0.02944153919816017,
-0.01955779455602169,
-0.0004892943543381989,
-0.022451620548963547,
0.0013044936349615455,
-0.009065925143659115,
0.01926421746611595,
0.005882016848772764,
0.007283495739102364,
0.04026193544268608,
0.019865350797772408,
-0.035089392215013504,
-0.02716282568871975,
0.0020637735724449158,
0.038164958357810974,
0.01328783668577671,
-0.0225774385035038,
-0.023052753880620003,
0.0030545946210622787,
0.03556470945477486,
-0.022060183808207512,
0.011701124720275402,
0.01110698189586401,
0.010303140617907047,
0.02551320567727089,
0.017530716955661774,
-0.036291658878326416,
0.017894193530082703,
0.02494003064930439,
0.013162017799913883,
0.0001247263717232272,
-0.022465599700808525,
0.0029549882747232914,
-0.013637332245707512,
0.015587519854307175,
0.01082039438188076,
0.007961518131196499,
0.0022717237006872892,
-0.03274078294634819,
-0.018006032332777977,
0.028281211853027344,
-0.01712530106306076,
-0.006081229541450739,
0.0061196740716695786,
-0.018397467210888863,
-0.004036678466945887,
0.016104774549603462,
-0.0013254634104669094,
0.011568316258490086,
-0.003150705946609378,
-0.00287635182030499,
-0.04118460416793823,
-0.02092781849205494,
-0.026715470477938652,
0.033272016793489456,
0.015196084044873714,
-0.047251854091882706,
-0.007982487790286541,
-0.011099991388618946,
-0.004550437442958355,
0.012546904385089874,
-0.027973655611276627,
-5.6028569815680385e-05,
0.010743505321443081,
-0.007807739544659853,
-0.01568537764251232,
0.017502756789326668,
-0.0071227275766432285,
0.01274961233139038,
-0.04179971665143967,
0.00812927633523941,
0.014566991478204727,
0.022801116108894348,
0.013707231730222702,
-0.0030441097915172577,
-0.06000146642327309,
-0.012463025748729706,
0.012092560529708862,
-0.010582737624645233,
0.016244571655988693,
0.03699065372347832,
0.02020086534321308,
-0.02164078876376152,
-0.005078176036477089,
0.004697225522249937,
-0.0014215748524293303,
0.029273781925439835,
0.004057648126035929,
-0.01207858044654131,
-0.013749171048402786,
-0.009373481385409832,
0.005364763084799051,
-0.02035464532673359,
0.0025932600256055593,
0.03103524073958397,
-0.014126626774668694,
0.023975422605872154,
0.0037850411608815193,
-0.0387241505086422,
0.02264733798801899,
-0.00037942154449410737,
0.04042969271540642,
0.024199100211262703,
0.02408726140856743,
0.00798947736620903,
-0.006311897188425064,
0.005679309368133545,
-0.03044808842241764,
-0.011253769509494305,
-0.011903832666575909,
0.007570082321763039,
-0.002792472718283534,
-0.009548229165375233,
0.006783716380596161,
-0.04319769889116287,
0.038304757326841354,
-0.01418254617601633,
0.0010345079936087132,
0.012092560529708862,
0.0036382528487592936,
-0.03768964484333992,
-0.006388786248862743,
0.0025111285503953695,
-0.032489143311977386,
0.002726068487390876,
-0.020885879173874855,
-0.003655727719888091,
-0.006238502915948629,