Ravenports generated: 10 Feb 2024 22:55
[ravenports.git] / bucket_A1 / python-pyrsistent
1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
2
3 NAMEBASE=               python-pyrsistent
4 VERSION=                0.20.0
5 KEYWORDS=               python
6 VARIANTS=               v11 v12
7 SDESC[v11]=             Persistent, Immutable data structures (3.11)
8 SDESC[v12]=             Persistent, Immutable data structures (3.12)
9 HOMEPAGE=               https://github.com/tobgu/pyrsistent/
10 CONTACT=                Python_Automaton[python@ironwolf.systems]
11
12 DOWNLOAD_GROUPS=        main
13 SITES[main]=            PYPIWHL/23/88/0acd180010aaed4987c85700b7cc17f9505f3edb4e5873e4dc67f613e338
14 DISTFILE[1]=            pyrsistent-0.20.0-py3-none-any.whl:main
15 DF_INDEX=               1
16 SPKGS[v11]=             single
17 SPKGS[v12]=             single
18
19 OPTIONS_AVAILABLE=      PY311 PY312
20 OPTIONS_STANDARD=       none
21 VOPTS[v11]=             PY311=ON PY312=OFF
22 VOPTS[v12]=             PY311=OFF PY312=ON
23
24 DISTNAME=               pyrsistent-0.20.0.dist-info
25
26 GENERATED=              yes
27
28 [PY311].USES_ON=                        python:v11,wheel
29
30 [PY312].USES_ON=                        python:v12,wheel
31
32 [FILE:3797:descriptions/desc.single]
33 Pyrsistent
34 ==========
35
36 .. _Pyrthon: https://www.github.com/tobgu/pyrthon
37 .. _Pyrsistent_extras: https://github.com/mingmingrr/pyrsistent-extras
38
39 Pyrsistent is a number of persistent collections (by some referred to as
40 functional data structures). Persistent in
41 the sense that they are immutable.
42
43 All methods on a data structure that would normally mutate it instead
44 return a new copy of the structure containing the
45 requested updates. The original structure is left untouched.
46
47 This will simplify the reasoning about what a program does since no hidden
48 side effects ever can take place to these
49 data structures. You can rest assured that the object you hold a reference
50 to will remain the same throughout its
51 lifetime and need not worry that somewhere five stack levels below you in
52 the darkest corner of your application
53 someone has decided to remove that element that you expected to be there.
54
55 Pyrsistent is influenced by persistent data structures such as those found
56 in the standard library of Clojure. The
57 data structures are designed to share common elements through path copying.
58 It aims at taking these concepts and make them as pythonic as possible so
59 that they can be easily integrated into any python
60 program without hassle.
61
62 If you want use literal syntax to define them in your code rather
63 than function calls check out Pyrthon_. Be aware, that one is experimental,
64 unmaintained and alpha software. 
65
66 If you cannot find the persistent data structure you're looking for here
67 you may want to take a look at
68 Pyrsistent_extras_ which is maintained by @mingmingrr. If you still don't
69 find what you're looking for please
70 open an issue for discussion. If we agree that functionality is missing you
71 may want to go ahead and create
72 a Pull Request implement the missing functionality.
73
74 Examples
75 --------
76 .. _Sequence: collections_
77 .. _Hashable: collections_
78 .. _Mapping: collections_
79 .. _Mappings: collections_
80 .. _Set: collections_
81 .. _collections: https://docs.python.org/3/library/collections.abc.html
82 .. _documentation: http://pyrsistent.readthedocs.org/
83
84 The collection types and key features currently implemented are:
85
86 * PVector_, similar to a python list
87 * PMap_, similar to dict
88 * PSet_, similar to set
89 * PRecord_, a PMap on steroids with fixed fields, optional type and
90 invariant checking and much more
91 * PClass_, a Python class fixed fields, optional type and invariant
92 checking and much more
93 * `Checked collections`_, PVector, PMap and PSet with optional type and
94 invariance checks and more
95 * PBag, similar to collections.Counter
96 * PList, a classic singly linked list
97 * PDeque, similar to collections.deque
98 * Immutable object type (immutable) built on the named tuple
99 * freeze_ and thaw_ functions to convert between pythons standard
100 collections and pyrsistent collections.
101 * Flexible transformations_ of arbitrarily complex structures built from
102 PMaps and PVectors.
103
104 Below are examples of common usage patterns for some of the structures and
105 features. More information and
106 full documentation for all data structures is available in the
107 documentation_.
108
109 .. _PVector:
110
111 PVector
112 ~~~~~~~
113 With full support for the Sequence_ protocol PVector is meant as a drop in
114 replacement to the built in list from a readers
115 point of view. Write operations of course differ since no in place mutation
116 is done but naming should be in line
117 with corresponding operations on the built in list.
118
119 Support for the Hashable_ protocol also means that it can be used as key in
120 Mappings_.
121
122 Appends are amortized O(1). Random access and insert is log32(n) where n is
123 the size of the vector.
124
125 .. code:: python
126
127     >>> from pyrsistent import v, pvector
128
129     # No mutation of vectors once created, instead they
130     # are "evolved" leaving the original untouched
131     >>> v1 = v(1, 2, 3)
132     >>> v2 = v1.append(4)
133
134
135 [FILE:113:distinfo]
136 c55acc4733aad6560a7f5f818466631f07efc001fd023f34a6c203f8b6df0f0b        58106 pyrsistent-0.20.0-py3-none-any.whl
137