Merge ~barryprice/spade/+git/spade:flake8 into spade: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)
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)

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

Subscribers

People subscribed via source and target branches

to all changes: