diff options
author | Chris Laplante <chris.laplante@agilent.com> | 2020-08-27 16:38:38 -0400 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-09-02 16:01:05 +0100 |
commit | ef26587a72bb648eecf03032d4bd9a75ab7a8a35 (patch) | |
tree | 84950b9d9bd2bf90dc545e96381c1537e01909b6 /bitbake | |
parent | b36dfafb69d24a3e7d32401c19b950a4ad391787 (diff) | |
download | poky-ef26587a72bb648eecf03032d4bd9a75ab7a8a35.tar.gz |
bitbake: COW: formatting
(Bitbake rev: d2b202e04cd4837992283577747475fa7d9e34e5)
Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/COW.py | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/bitbake/lib/bb/COW.py b/bitbake/lib/bb/COW.py index bc20ce38e2..3785a8b03e 100644 --- a/bitbake/lib/bb/COW.py +++ b/bitbake/lib/bb/COW.py | |||
@@ -3,13 +3,14 @@ | |||
3 | # | 3 | # |
4 | # Copyright (C) 2006 Tim Ansell | 4 | # Copyright (C) 2006 Tim Ansell |
5 | # | 5 | # |
6 | #Please Note: | 6 | # Please Note: |
7 | # Be careful when using mutable types (ie Dict and Lists) - operations involving these are SLOW. | 7 | # Be careful when using mutable types (ie Dict and Lists) - operations involving these are SLOW. |
8 | # Assign a file to __warn__ to get warnings about slow operations. | 8 | # Assign a file to __warn__ to get warnings about slow operations. |
9 | # | 9 | # |
10 | 10 | ||
11 | 11 | ||
12 | import copy | 12 | import copy |
13 | |||
13 | ImmutableTypes = ( | 14 | ImmutableTypes = ( |
14 | bool, | 15 | bool, |
15 | complex, | 16 | complex, |
@@ -22,9 +23,11 @@ ImmutableTypes = ( | |||
22 | 23 | ||
23 | MUTABLE = "__mutable__" | 24 | MUTABLE = "__mutable__" |
24 | 25 | ||
26 | |||
25 | class COWMeta(type): | 27 | class COWMeta(type): |
26 | pass | 28 | pass |
27 | 29 | ||
30 | |||
28 | class COWDictMeta(COWMeta): | 31 | class COWDictMeta(COWMeta): |
29 | __warn__ = False | 32 | __warn__ = False |
30 | __hasmutable__ = False | 33 | __hasmutable__ = False |
@@ -33,12 +36,15 @@ class COWDictMeta(COWMeta): | |||
33 | def __str__(cls): | 36 | def __str__(cls): |
34 | # FIXME: I have magic numbers! | 37 | # FIXME: I have magic numbers! |
35 | return "<COWDict Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) - 3) | 38 | return "<COWDict Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) - 3) |
39 | |||
36 | __repr__ = __str__ | 40 | __repr__ = __str__ |
37 | 41 | ||
38 | def cow(cls): | 42 | def cow(cls): |
39 | class C(cls): | 43 | class C(cls): |
40 | __count__ = cls.__count__ + 1 | 44 | __count__ = cls.__count__ + 1 |
45 | |||
41 | return C | 46 | return C |
47 | |||
42 | copy = cow | 48 | copy = cow |
43 | __call__ = cow | 49 | __call__ = cow |
44 | 50 | ||
@@ -70,8 +76,9 @@ class COWDictMeta(COWMeta): | |||
70 | return value | 76 | return value |
71 | 77 | ||
72 | __getmarker__ = [] | 78 | __getmarker__ = [] |
79 | |||
73 | def __getreadonly__(cls, key, default=__getmarker__): | 80 | def __getreadonly__(cls, key, default=__getmarker__): |
74 | """\ | 81 | """ |
75 | Get a value (even if mutable) which you promise not to change. | 82 | Get a value (even if mutable) which you promise not to change. |
76 | """ | 83 | """ |
77 | return cls.__getitem__(key, default, True) | 84 | return cls.__getitem__(key, default, True) |
@@ -138,24 +145,29 @@ class COWDictMeta(COWMeta): | |||
138 | 145 | ||
139 | def iterkeys(cls): | 146 | def iterkeys(cls): |
140 | return cls.iter("keys") | 147 | return cls.iter("keys") |
148 | |||
141 | def itervalues(cls, readonly=False): | 149 | def itervalues(cls, readonly=False): |
142 | if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False: | 150 | if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False: |
143 | print("Warning: If you arn't going to change any of the values call with True.", file=cls.__warn__) | 151 | print("Warning: If you aren't going to change any of the values call with True.", file=cls.__warn__) |
144 | return cls.iter("values", readonly) | 152 | return cls.iter("values", readonly) |
153 | |||
145 | def iteritems(cls, readonly=False): | 154 | def iteritems(cls, readonly=False): |
146 | if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False: | 155 | if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False: |
147 | print("Warning: If you arn't going to change any of the values call with True.", file=cls.__warn__) | 156 | print("Warning: If you aren't going to change any of the values call with True.", file=cls.__warn__) |
148 | return cls.iter("items", readonly) | 157 | return cls.iter("items", readonly) |
149 | 158 | ||
159 | |||
150 | class COWSetMeta(COWDictMeta): | 160 | class COWSetMeta(COWDictMeta): |
151 | def __str__(cls): | 161 | def __str__(cls): |
152 | # FIXME: I have magic numbers! | 162 | # FIXME: I have magic numbers! |
153 | return "<COWSet Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) -3) | 163 | return "<COWSet Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) - 3) |
164 | |||
154 | __repr__ = __str__ | 165 | __repr__ = __str__ |
155 | 166 | ||
156 | def cow(cls): | 167 | def cow(cls): |
157 | class C(cls): | 168 | class C(cls): |
158 | __count__ = cls.__count__ + 1 | 169 | __count__ = cls.__count__ + 1 |
170 | |||
159 | return C | 171 | return C |
160 | 172 | ||
161 | def add(cls, value): | 173 | def add(cls, value): |
@@ -173,11 +185,13 @@ class COWSetMeta(COWDictMeta): | |||
173 | def iteritems(cls): | 185 | def iteritems(cls): |
174 | raise TypeError("sets don't have 'items'") | 186 | raise TypeError("sets don't have 'items'") |
175 | 187 | ||
188 | |||
176 | # These are the actual classes you use! | 189 | # These are the actual classes you use! |
177 | class COWDictBase(object, metaclass = COWDictMeta): | 190 | class COWDictBase(metaclass=COWDictMeta): |
178 | __count__ = 0 | 191 | __count__ = 0 |
179 | 192 | ||
180 | class COWSetBase(object, metaclass = COWSetMeta): | 193 | |
194 | class COWSetBase(metaclass=COWSetMeta): | ||
181 | __count__ = 0 | 195 | __count__ = 0 |
182 | 196 | ||
183 | if __name__ == "__main__": | 197 | if __name__ == "__main__": |