Merge ~barryprice/spade/+git/spade:flake8 into spade:master
- Git
- lp:~barryprice/spade/+git/spade
- flake8
- Merge into master
Proposed by
Barry Price
Status: | Superseded |
---|---|
Proposed branch: | ~barryprice/spade/+git/spade:flake8 |
Merge into: | spade:master |
Diff against target: |
262 lines (+64/-33) 9 files modified
Makefile (+13/-14) dev/null (+0/-3) setup.py (+1/-1) spade/AzureBucket.py (+2/-2) spade/S3Bucket.py (+3/-3) spade/Spade.py (+5/-5) spade/SwiftBucket.py (+3/-3) spade/spade.py (+3/-2) tox.ini (+34/-0) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Spade Developers | Pending | ||
Review via email: mp+394568@code.launchpad.net |
Commit message
Address all Flake8 errors bar complexity (noqa: C901)
Description of the change
To post a comment you must log in.
Unmerged commits
- aa2d273... by Barry Price
-
Address all Flake8 errors bar complexity (noqa: C901)
- 7e34f18... by Barry Price
-
Modernise, switch to python3 exclusively
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | diff --git a/Makefile b/Makefile | |||
2 | index c3b3ca6..d51fa68 100644 | |||
3 | --- a/Makefile | |||
4 | +++ b/Makefile | |||
5 | @@ -1,23 +1,22 @@ | |||
11 | 1 | version := $(shell python -c "from spade import __version__; print(__version__)") | 1 | version := $(shell python3 -c "from spade import __version__; print(__version__)") |
12 | 2 | tempfiles_whl := build dist spade.egg-info | 2 | tempfiles_snap := snap/snapcraft.yaml spade*.snap |
8 | 3 | tempfiles_snap := snapcraft.yaml parts prime stage spade*.snap | ||
9 | 4 | tempfiles_misc := spade/__pycache__ | ||
10 | 5 | tempfiles_export := spade-export spade-export27.tar.gz | ||
13 | 6 | 3 | ||
16 | 7 | whl: whl_clean | 4 | blacken: |
17 | 8 | python3 setup.py bdist_wheel | 5 | @echo "Normalising python layout with black (but not really)." |
18 | 9 | 6 | ||
21 | 10 | whl_clean: | 7 | lint: blacken |
22 | 11 | rm -Rf $(tempfiles_whl) | 8 | @echo "Running flake8" |
23 | 9 | @tox -e lint | ||
24 | 10 | |||
25 | 11 | clean: | ||
26 | 12 | @echo "Cleaninf files" | ||
27 | 13 | @git clean -fXd | ||
28 | 12 | 14 | ||
29 | 13 | snap: snap_clean | 15 | snap: snap_clean |
31 | 14 | sed -e "s/{{VERSION}}/$(version)/" snapcraft.yaml.in > snapcraft.yaml | 16 | sed -e "s/{{VERSION}}/$(version)/" snapcraft.yaml.in > snap/snapcraft.yaml |
32 | 15 | snapcraft | 17 | snapcraft |
33 | 16 | 18 | ||
34 | 17 | snap_clean: | 19 | snap_clean: |
35 | 18 | rm -Rf $(tempfiles_snap) | 20 | rm -Rf $(tempfiles_snap) |
36 | 19 | 21 | ||
41 | 20 | clean: whl_clean snap_clean | 22 | .PHONY: blacken lint clean snap snap_clean |
38 | 21 | |||
39 | 22 | lint: | ||
40 | 23 | @find spade -name \*py | xargs flake8 --config=/dev/null --ignore=C901 --max-line-length=120 --max-complexity=10 --hang-closing | ||
42 | diff --git a/setup.py b/setup.py | |||
43 | index e52b204..7286fa2 100644 | |||
44 | --- a/setup.py | |||
45 | +++ b/setup.py | |||
46 | @@ -6,7 +6,7 @@ import re | |||
47 | 6 | here = path.abspath(path.dirname(__file__)) | 6 | here = path.abspath(path.dirname(__file__)) |
48 | 7 | 7 | ||
49 | 8 | def find_version(*file_paths): | 8 | def find_version(*file_paths): |
51 | 9 | with open(path.join(here, *file_paths), 'r', 'latin1') as f: | 9 | with open(path.join(here, *file_paths), 'r', 'utf-8') as f: |
52 | 10 | version_file = f.read() | 10 | version_file = f.read() |
53 | 11 | version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", | 11 | version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", |
54 | 12 | version_file, re.M) | 12 | version_file, re.M) |
55 | diff --git a/snap/.snapcraft/state b/snap/.snapcraft/state | |||
56 | 13 | deleted file mode 100644 | 13 | deleted file mode 100644 |
57 | index 3497788..0000000 | |||
58 | --- a/snap/.snapcraft/state | |||
59 | +++ /dev/null | |||
60 | @@ -1,3 +0,0 @@ | |||
61 | 1 | !GlobalState | ||
62 | 2 | assets: | ||
63 | 3 | build-packages: [] | ||
64 | diff --git a/spade/AzureBucket.py b/spade/AzureBucket.py | |||
65 | index 92bf430..0f7a62d 100644 | |||
66 | --- a/spade/AzureBucket.py | |||
67 | +++ b/spade/AzureBucket.py | |||
68 | @@ -239,7 +239,7 @@ class AzureBucket(): | |||
69 | 239 | newStandardMetadata[k] = v | 239 | newStandardMetadata[k] = v |
70 | 240 | if not overwrite: | 240 | if not overwrite: |
71 | 241 | for k, v in m.userMetadata.items(): | 241 | for k, v in m.userMetadata.items(): |
73 | 242 | newUserMetadata[USER_META_PREFIX + k] = v | 242 | newUserMetadata[USER_META_PREFIX + k] = v |
74 | 243 | 243 | ||
75 | 244 | # Add new ones | 244 | # Add new ones |
76 | 245 | for k, v in metadata.items(): | 245 | for k, v in metadata.items(): |
77 | @@ -318,7 +318,7 @@ class AzureBucket(): | |||
78 | 318 | body=xml, | 318 | body=xml, |
79 | 319 | method="PUT") | 319 | method="PUT") |
80 | 320 | if not response.get("status") == "201": | 320 | if not response.get("status") == "201": |
82 | 321 | raise BucketError("Azure Failed to upload blocklist") | 321 | raise BucketError("Azure Failed to upload blocklist") |
83 | 322 | return | 322 | return |
84 | 323 | 323 | ||
85 | 324 | def putObject(self, bucketName, objectName, src, size, blockSize=DEFAULT_BLOCKSIZE): | 324 | def putObject(self, bucketName, objectName, src, size, blockSize=DEFAULT_BLOCKSIZE): |
86 | diff --git a/spade/S3Bucket.py b/spade/S3Bucket.py | |||
87 | index 90e6a84..6d3036e 100644 | |||
88 | --- a/spade/S3Bucket.py | |||
89 | +++ b/spade/S3Bucket.py | |||
90 | @@ -61,7 +61,7 @@ class S3Bucket(): | |||
91 | 61 | {'name': 'us-west-1', 'endpoint': 's3-us-west-1.amazonaws.com'}, | 61 | {'name': 'us-west-1', 'endpoint': 's3-us-west-1.amazonaws.com'}, |
92 | 62 | {'name': 'us-west-2', 'endpoint': 's3-us-west-2.amazonaws.com'}, | 62 | {'name': 'us-west-2', 'endpoint': 's3-us-west-2.amazonaws.com'}, |
93 | 63 | {'name': 'us-east-1', 'endpoint': 's3.amazonaws.com'}, | 63 | {'name': 'us-east-1', 'endpoint': 's3.amazonaws.com'}, |
95 | 64 | ] | 64 | ] |
96 | 65 | 65 | ||
97 | 66 | self.base_fields = set(['content-length', 'content-language', 'content-disposition', | 66 | self.base_fields = set(['content-length', 'content-language', 'content-disposition', |
98 | 67 | 'content-encoding', 'expires', 'content-md5', 'last-modified', | 67 | 'content-encoding', 'expires', 'content-md5', 'last-modified', |
99 | @@ -325,7 +325,7 @@ class S3Bucket(): | |||
100 | 325 | else: | 325 | else: |
101 | 326 | return aclData["s3_id"] | 326 | return aclData["s3_id"] |
102 | 327 | 327 | ||
104 | 328 | def getAcls(self, bucketName, objectName=None): | 328 | def getAcls(self, bucketName, objectName=None): # noqa: C901 |
105 | 329 | self.confirmRegion(bucketName) | 329 | self.confirmRegion(bucketName) |
106 | 330 | try: | 330 | try: |
107 | 331 | bucket = self.s3.get_bucket(bucketName) | 331 | bucket = self.s3.get_bucket(bucketName) |
108 | @@ -366,7 +366,7 @@ class S3Bucket(): | |||
109 | 366 | 366 | ||
110 | 367 | return acls | 367 | return acls |
111 | 368 | 368 | ||
113 | 369 | def setAcls(self, bucketName, acls, objectName=None): | 369 | def setAcls(self, bucketName, acls, objectName=None): # noqa: C901 |
114 | 370 | self.confirmRegion(bucketName) | 370 | self.confirmRegion(bucketName) |
115 | 371 | try: | 371 | try: |
116 | 372 | bucket = self.s3.get_bucket(bucketName) | 372 | bucket = self.s3.get_bucket(bucketName) |
117 | diff --git a/spade/Spade.py b/spade/Spade.py | |||
118 | index b33edb0..b8f4b12 100644 | |||
119 | --- a/spade/Spade.py | |||
120 | +++ b/spade/Spade.py | |||
121 | @@ -69,7 +69,7 @@ class Bucket(): | |||
122 | 69 | raise BucketError("Data is not in bzip2 format") | 69 | raise BucketError("Data is not in bzip2 format") |
123 | 70 | else: | 70 | else: |
124 | 71 | raise BucketError("Unknown IO error") | 71 | raise BucketError("Unknown IO error") |
126 | 72 | except lzma.LZMAError as e: | 72 | except lzma.LZMAError: |
127 | 73 | if "Input format not supported by decoder": | 73 | if "Input format not supported by decoder": |
128 | 74 | raise BucketError("Data is not in xz/lzma format") | 74 | raise BucketError("Data is not in xz/lzma format") |
129 | 75 | else: | 75 | else: |
130 | @@ -150,7 +150,7 @@ class Bucket(): | |||
131 | 150 | ret.output.append(retElement) | 150 | ret.output.append(retElement) |
132 | 151 | return ret | 151 | return ret |
133 | 152 | 152 | ||
135 | 153 | def ls(self, rawArgs): | 153 | def ls(self, rawArgs): # noqa: C901 |
136 | 154 | ret = Result() | 154 | ret = Result() |
137 | 155 | parser = argparse.ArgumentParser(description="Bucket ls") | 155 | parser = argparse.ArgumentParser(description="Bucket ls") |
138 | 156 | parser.add_argument("-l", dest="long", action="store_true") | 156 | parser.add_argument("-l", dest="long", action="store_true") |
139 | @@ -237,7 +237,7 @@ class Bucket(): | |||
140 | 237 | ret.output = [data.decode("utf-8")] | 237 | ret.output = [data.decode("utf-8")] |
141 | 238 | f.close() | 238 | f.close() |
142 | 239 | 239 | ||
144 | 240 | def grep(self, rawArgs): | 240 | def grep(self, rawArgs): # noqa: C901 |
145 | 241 | ret = Result() | 241 | ret = Result() |
146 | 242 | parser = argparse.ArgumentParser(description="Bucket grep") | 242 | parser = argparse.ArgumentParser(description="Bucket grep") |
147 | 243 | parser.add_argument("-e", dest="regex", action="store_true", help="Allow regexes in the search") | 243 | parser.add_argument("-e", dest="regex", action="store_true", help="Allow regexes in the search") |
148 | @@ -374,7 +374,7 @@ class Bucket(): | |||
149 | 374 | ret.output.append(e) | 374 | ret.output.append(e) |
150 | 375 | return ret | 375 | return ret |
151 | 376 | 376 | ||
153 | 377 | def cp(self, rawArgs): | 377 | def cp(self, rawArgs): # noqa: C901 |
154 | 378 | ret = Result() | 378 | ret = Result() |
155 | 379 | parser = argparse.ArgumentParser(description="Bucket cp") | 379 | parser = argparse.ArgumentParser(description="Bucket cp") |
156 | 380 | parser.add_argument(dest="src") | 380 | parser.add_argument(dest="src") |
157 | @@ -581,7 +581,7 @@ class Bucket(): | |||
158 | 581 | 581 | ||
159 | 582 | # FIXME: Need to pass add/remove to bucket acl functions instead of | 582 | # FIXME: Need to pass add/remove to bucket acl functions instead of |
160 | 583 | # just the processed acls list | 583 | # just the processed acls list |
162 | 584 | def acls(self, rawArgs): | 584 | def acls(self, rawArgs): # noqa: C901 |
163 | 585 | ret = Result() | 585 | ret = Result() |
164 | 586 | parser = argparse.ArgumentParser(description="Bucket ACLs") | 586 | parser = argparse.ArgumentParser(description="Bucket ACLs") |
165 | 587 | parser.add_argument("-a", "--add", dest="add", action="append", default=[]) | 587 | parser.add_argument("-a", "--add", dest="add", action="append", default=[]) |
166 | diff --git a/spade/SwiftBucket.py b/spade/SwiftBucket.py | |||
167 | index f49f2b9..2125b85 100644 | |||
168 | --- a/spade/SwiftBucket.py | |||
169 | +++ b/spade/SwiftBucket.py | |||
170 | @@ -108,7 +108,7 @@ class SwiftBucket(): | |||
171 | 108 | co.rawMetadata[k] = v | 108 | co.rawMetadata[k] = v |
172 | 109 | return co | 109 | return co |
173 | 110 | 110 | ||
175 | 111 | def setBucketMetadata(self, bucketName, metadata, overwrite=False): | 111 | def setBucketMetadata(self, bucketName, metadata, overwrite=False): # noqa: C901 |
176 | 112 | systemMetadata = ["content-type", "x-container-bytes-used", | 112 | systemMetadata = ["content-type", "x-container-bytes-used", |
177 | 113 | "x-container-object-count:", "x-timestamp"] | 113 | "x-container-object-count:", "x-timestamp"] |
178 | 114 | newMetadata = {} | 114 | newMetadata = {} |
179 | @@ -237,7 +237,7 @@ class SwiftBucket(): | |||
180 | 237 | headers = { | 237 | headers = { |
181 | 238 | 'x-object-manifest': manifest, | 238 | 'x-object-manifest': manifest, |
182 | 239 | 'x-object-meta-mtime': mtime, | 239 | 'x-object-meta-mtime': mtime, |
184 | 240 | } | 240 | } |
185 | 241 | try: | 241 | try: |
186 | 242 | self.swift.put_object(bucketName, | 242 | self.swift.put_object(bucketName, |
187 | 243 | objectName, | 243 | objectName, |
188 | @@ -265,7 +265,7 @@ class SwiftBucket(): | |||
189 | 265 | def open(self, bucketName, objectName, blockSize=DEFAULT_BLOCKSIZE): | 265 | def open(self, bucketName, objectName, blockSize=DEFAULT_BLOCKSIZE): |
190 | 266 | return ObjectIO(self, bucketName, objectName, blockSize) | 266 | return ObjectIO(self, bucketName, objectName, blockSize) |
191 | 267 | 267 | ||
193 | 268 | def deleteObject(self, bucketName, objectName): | 268 | def deleteObject(self, bucketName, objectName): # noqa: C901 |
194 | 269 | try: | 269 | try: |
195 | 270 | metadata = self.getObjectMetadata(bucketName, objectName) | 270 | metadata = self.getObjectMetadata(bucketName, objectName) |
196 | 271 | except BucketError: | 271 | except BucketError: |
197 | diff --git a/spade/spade.py b/spade/spade.py | |||
198 | index c0404a2..1b5811c 100755 | |||
199 | --- a/spade/spade.py | |||
200 | +++ b/spade/spade.py | |||
201 | @@ -1,4 +1,4 @@ | |||
203 | 1 | #!/usr/bin/env python | 1 | #!/usr/bin/env python3 |
204 | 2 | 2 | ||
205 | 3 | from __future__ import print_function | 3 | from __future__ import print_function |
206 | 4 | 4 | ||
207 | @@ -8,7 +8,7 @@ import argparse | |||
208 | 8 | from spade.Spade import Bucket | 8 | from spade.Spade import Bucket |
209 | 9 | 9 | ||
210 | 10 | 10 | ||
212 | 11 | def main(): | 11 | def main(): # noqa: C901 |
213 | 12 | parser = argparse.ArgumentParser(description="Bucket manipulation") | 12 | parser = argparse.ArgumentParser(description="Bucket manipulation") |
214 | 13 | parser.add_argument("--configfile", dest="configfile", help="Config file") | 13 | parser.add_argument("--configfile", dest="configfile", help="Config file") |
215 | 14 | parser.add_argument(dest="cmd") | 14 | parser.add_argument(dest="cmd") |
216 | @@ -157,5 +157,6 @@ def main(): | |||
217 | 157 | else: | 157 | else: |
218 | 158 | print("Unknown command {}".format(args.cmd), file=sys.stderr) | 158 | print("Unknown command {}".format(args.cmd), file=sys.stderr) |
219 | 159 | 159 | ||
220 | 160 | |||
221 | 160 | if __name__ == "__main__": | 161 | if __name__ == "__main__": |
222 | 161 | main() | 162 | main() |
223 | diff --git a/tox.ini b/tox.ini | |||
224 | 162 | new file mode 100644 | 163 | new file mode 100644 |
225 | index 0000000..b1b3e16 | |||
226 | --- /dev/null | |||
227 | +++ b/tox.ini | |||
228 | @@ -0,0 +1,34 @@ | |||
229 | 1 | [tox] | ||
230 | 2 | skipsdist=True | ||
231 | 3 | envlist = unit, functional | ||
232 | 4 | |||
233 | 5 | [testenv] | ||
234 | 6 | basepython = python3 | ||
235 | 7 | |||
236 | 8 | [testenv:unit] | ||
237 | 9 | commands = | ||
238 | 10 | pytest --ignore mod --ignore {toxinidir}/tests/functional \ | ||
239 | 11 | {posargs:-v --cov=spade --cov-report=term-missing --cov-branch} | ||
240 | 12 | deps = -r{toxinidir}/tests/unit/requirements.txt | ||
241 | 13 | -r{toxinidir}/requirements.txt | ||
242 | 14 | setenv = | ||
243 | 15 | PYTHONPATH={toxinidir}/spade | ||
244 | 16 | TZ=UTC | ||
245 | 17 | |||
246 | 18 | [testenv:black] | ||
247 | 19 | commands = black --skip-string-normalization --line-length=120 spade/ tests/ | ||
248 | 20 | deps = black | ||
249 | 21 | |||
250 | 22 | [testenv:lint] | ||
251 | 23 | commands = flake8 spade/ tests/ | ||
252 | 24 | # Pin flake8 to 3.7.9 to match focal | ||
253 | 25 | deps = | ||
254 | 26 | flake8==3.7.9 | ||
255 | 27 | |||
256 | 28 | [flake8] | ||
257 | 29 | exclude = | ||
258 | 30 | .git, | ||
259 | 31 | __pycache__, | ||
260 | 32 | .tox, | ||
261 | 33 | max-line-length = 120 | ||
262 | 34 | max-complexity = 10 |