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 | |
| 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>
| -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__": |
