AdvancedPhotonSource / tike

Repository for ptychography software
http://tike.readthedocs.io
Other
29 stars 15 forks source link

added a test for studying the numerical stability of multislice propa… #303

Closed a4894z closed 5 months ago

a4894z commented 6 months ago

Added a test for studying the numerical stability of multislice propagation through a 3D sample and how it is affected using a 3PIE fold_slice style of 3D sample updates.

This is my first attempt at pushing a unittest, and I'm sure I'm messing something up...

Purpose

We need to incorporate multislice ptychography into TIKE, and the way fold_slice does it is very touchy numerically and requires regularization and very few slices in order to function.

This test seeks to understand the nature of why the 3PIE style of sample updates inherently causes numerical divergence in a multiplicative way.

This test should convince that 3PIE, which optimizes a 2D slice then Fresnel propagates that result to the next 2D slice and repeats this until all slices are updated, is inherently numerically unstable.

Approach

I use a predefined 3D sample array as a test object, create a simple 2D probe function, and simply evaluate the multislice forward model as well as the 3PIE-style inverse model some number of times in order to observe this numerical divergence.

Images are spit out in the results folder showing visually this divergence.

Pre-Merge Checklists

Submitter

Reviewer

pep8speaks commented 6 months ago

Hello @a4894z! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

Line 4:81: W291 trailing whitespace Line 5:81: E501 line too long (82 > 80 characters) Line 6:80: W291 trailing whitespace Line 28:1: E265 block comment should start with '# ' Line 28:81: E501 line too long (99 > 80 characters) Line 31:1: E302 expected 2 blank lines, found 1 Line 31:28: E201 whitespace after '(' Line 31:53: E202 whitespace before ')' Line 33:19: E201 whitespace after '(' Line 33:30: E202 whitespace before ')' Line 35:13: E201 whitespace after '[' Line 35:22: E202 whitespace before ']' Line 35:25: E201 whitespace after '[' Line 35:29: E202 whitespace before ']' Line 35:32: E201 whitespace after '[' Line 35:39: E202 whitespace before ']' Line 36:13: E201 whitespace after '[' Line 36:22: E202 whitespace before ']' Line 36:25: E201 whitespace after '[' Line 36:29: E202 whitespace before ']' Line 36:32: E201 whitespace after '[' Line 36:39: E202 whitespace before ']' Line 37:27: E201 whitespace after '(' Line 37:39: E201 whitespace after '(' Line 37:61: E251 unexpected spaces around keyword / parameter equals Line 37:63: E251 unexpected spaces around keyword / parameter equals Line 37:74: E202 whitespace before ')' Line 39:21: E201 whitespace after '[' Line 39:29: E203 whitespace before ':' Line 39:35: E202 whitespace before ']' Line 39:37: W291 trailing whitespace Line 84:1: E265 block comment should start with '# ' Line 84:81: E501 line too long (99 > 80 characters) Line 87:1: E302 expected 2 blank lines, found 1 Line 87:33: E201 whitespace after '(' Line 87:75: E202 whitespace before ')' Line 89:15: E201 whitespace after '(' Line 89:20: E201 whitespace after '(' Line 89:38: E202 whitespace before ')' Line 89:41: W291 trailing whitespace Line 90:20: E201 whitespace after '(' Line 90:38: E202 whitespace before ')' Line 92:24: E201 whitespace after '(' Line 92:37: E201 whitespace after '(' Line 92:69: E202 whitespace before ')' Line 92:72: W291 trailing whitespace Line 93:37: E201 whitespace after '(' Line 93:69: E202 whitespace before ')' Line 95:16: E201 whitespace after '(' Line 95:21: E201 whitespace after '(' Line 95:53: E202 whitespace before ')' Line 95:55: E202 whitespace before ')' Line 95:62: E202 whitespace before ')' Line 95:71: E201 whitespace after '(' Line 95:81: E501 line too long (119 > 80 characters) Line 95:103: E202 whitespace before ')' Line 95:105: E202 whitespace before ')' Line 95:112: E202 whitespace before ')' Line 96:1: W293 blank line contains whitespace Line 97:53: E201 whitespace after '(' Line 97:59: E251 unexpected spaces around keyword / parameter equals Line 97:61: E251 unexpected spaces around keyword / parameter equals Line 97:69: E201 whitespace after '(' Line 97:81: E201 whitespace after '(' Line 97:81: E501 line too long (107 > 80 characters) Line 97:108: W291 trailing whitespace Line 98:59: E251 unexpected spaces around keyword / parameter equals Line 98:61: E251 unexpected spaces around keyword / parameter equals Line 98:78: E202 whitespace before ')' Line 99:1: W293 blank line contains whitespace Line 102:1: E265 block comment should start with '# ' Line 102:81: E501 line too long (99 > 80 characters) Line 105:1: E302 expected 2 blank lines, found 1 Line 105:32: E201 whitespace after '(' Line 105:64: E202 whitespace before ')' Line 107:23: E201 whitespace after '(' Line 107:56: E251 unexpected spaces around keyword / parameter equals Line 107:58: E251 unexpected spaces around keyword / parameter equals Line 107:63: E202 whitespace before ')' Line 108:23: E201 whitespace after '(' Line 108:56: E251 unexpected spaces around keyword / parameter equals Line 108:58: E251 unexpected spaces around keyword / parameter equals Line 108:63: E202 whitespace before ')' Line 111:18: E201 whitespace after '(' Line 111:27: E201 whitespace after '[' Line 111:37: E202 whitespace before ']' Line 111:43: E201 whitespace after '(' Line 111:59: E202 whitespace before ')' Line 112:18: E201 whitespace after '(' Line 112:27: E201 whitespace after '[' Line 112:37: E202 whitespace before ']' Line 112:43: E201 whitespace after '(' Line 112:59: E202 whitespace before ')' Line 114:50: E201 whitespace after '(' Line 114:60: E201 whitespace after '(' Line 114:74: E201 whitespace after '(' Line 114:78: E202 whitespace before ')' Line 114:81: E501 line too long (87 > 80 characters) Line 114:85: E202 whitespace before ')' Line 118:1: E265 block comment should start with '# ' Line 118:81: E501 line too long (99 > 80 characters) Line 120:1: E302 expected 2 blank lines, found 1 Line 120:24: E201 whitespace after '(' Line 122:23: E201 whitespace after '(' Line 122:42: E251 unexpected spaces around keyword / parameter equals Line 122:44: E251 unexpected spaces around keyword / parameter equals Line 122:56: E202 whitespace before ')' Line 123:10: E221 multiple spaces before operator Line 123:23: E201 whitespace after '(' Line 123:42: E251 unexpected spaces around keyword / parameter equals Line 123:44: E251 unexpected spaces around keyword / parameter equals Line 123:56: E202 whitespace before ')' Line 125:25: E201 whitespace after '(' Line 125:47: E202 whitespace before ')' Line 125:49: E203 whitespace before ':' Line 127:15: E201 whitespace after '[' Line 127:16: E203 whitespace before ':' Line 127:25: E202 whitespace before ']' Line 128:16: E201 whitespace after '[' Line 128:25: E202 whitespace before ']' Line 128:36: E201 whitespace after '[' Line 128:45: E202 whitespace before ']' Line 133:28: E201 whitespace after '(' Line 133:41: E201 whitespace after '(' Line 133:49: E201 whitespace after '[' Line 133:58: E202 whitespace before ']' Line 133:60: E202 whitespace before ')' Line 133:81: E501 line too long (92 > 80 characters) Line 133:91: E202 whitespace before ')' Line 137:1: E265 block comment should start with '# ' Line 137:81: E501 line too long (99 > 80 characters) Line 139:1: E302 expected 2 blank lines, found 1 Line 139:32: E201 whitespace after '(' Line 139:78: E202 whitespace before ')' Line 141:42: E201 whitespace after '(' Line 141:69: E202 whitespace before ')' Line 143:20: E221 multiple spaces before operator Line 143:32: E201 whitespace after '(' Line 143:52: E251 unexpected spaces around keyword / parameter equals Line 143:54: E251 unexpected spaces around keyword / parameter equals Line 143:66: E202 whitespace before ')' Line 144:33: E201 whitespace after '(' Line 144:52: E251 unexpected spaces around keyword / parameter equals Line 144:54: E251 unexpected spaces around keyword / parameter equals Line 144:66: E202 whitespace before ')' Line 145:20: E221 multiple spaces before operator Line 145:33: E201 whitespace after '(' Line 145:52: E251 unexpected spaces around keyword / parameter equals Line 145:54: E251 unexpected spaces around keyword / parameter equals Line 145:66: E202 whitespace before ')' Line 147:25: E201 whitespace after '(' Line 147:27: E201 whitespace after '(' Line 147:47: E202 whitespace before ')' Line 147:57: E202 whitespace before ')' Line 148:1: W293 blank line contains whitespace Line 149:11: E221 multiple spaces before operator Line 149:16: E201 whitespace after '(' Line 149:29: E201 whitespace after '[' Line 149:38: E202 whitespace before ']' Line 149:49: E201 whitespace after '[' Line 149:58: E202 whitespace before ']' Line 149:60: E202 whitespace before ')' Line 150:21: E201 whitespace after '[' Line 150:30: E202 whitespace before ']' Line 150:36: E201 whitespace after '(' Line 150:48: E201 whitespace after '(' Line 150:56: E201 whitespace after '(' Line 150:63: E201 whitespace after '[' Line 150:72: E202 whitespace before ']' Line 150:74: E202 whitespace before ')' Line 150:81: E202 whitespace before ')' Line 150:81: E501 line too long (119 > 80 characters) Line 150:95: E201 whitespace after '(' Line 150:102: E201 whitespace after '[' Line 150:111: E202 whitespace before ']' Line 150:113: E202 whitespace before ')' Line 151:21: E201 whitespace after '[' Line 151:30: E202 whitespace before ']' Line 151:36: E201 whitespace after '(' Line 151:48: E201 whitespace after '(' Line 151:56: E201 whitespace after '(' Line 151:63: E201 whitespace after '[' Line 151:72: E202 whitespace before ']' Line 151:74: E202 whitespace before ')' Line 151:81: E202 whitespace before ')' Line 151:81: E501 line too long (119 > 80 characters) Line 151:95: E201 whitespace after '(' Line 151:102: E201 whitespace after '[' Line 151:111: E202 whitespace before ']' Line 151:113: E202 whitespace before ')' Line 153:26: E201 whitespace after '[' Line 153:35: E202 whitespace before ']' Line 154:25: E201 whitespace after '[' Line 154:26: E203 whitespace before ':' Line 154:35: E202 whitespace before ']' Line 155:25: E201 whitespace after '[' Line 155:26: E203 whitespace before ':' Line 155:35: E202 whitespace before ']' Line 160:28: E201 whitespace after '(' Line 160:41: E201 whitespace after '(' Line 160:45: E202 whitespace before ')' Line 160:76: E202 whitespace before ')' Line 164:1: E265 block comment should start with '# ' Line 164:81: E501 line too long (99 > 80 characters) Line 166:1: E305 expected 2 blank lines after class or function definition, found 1 Line 166:3: E271 multiple spaces after keyword Line 171:1: W293 blank line contains whitespace Line 172:14: E201 whitespace after '(' Line 172:31: E201 whitespace after '(' Line 172:49: E201 whitespace after '(' Line 172:58: E202 whitespace before ')' Line 174:34: E201 whitespace after '(' Line 174:80: E202 whitespace before ')' Line 174:81: E501 line too long (81 > 80 characters) Line 176:25: E201 whitespace after '(' Line 176:33: E251 unexpected spaces around keyword / parameter equals Line 176:35: E251 unexpected spaces around keyword / parameter equals Line 176:50: E251 unexpected spaces around keyword / parameter equals Line 176:52: E251 unexpected spaces around keyword / parameter equals Line 177:1: W293 blank line contains whitespace Line 182:37: E201 whitespace after '(' Line 182:51: E201 whitespace after '(' Line 182:81: E501 line too long (102 > 80 characters) Line 182:100: E202 whitespace before ')' Line 184:23: E201 whitespace after '(' Line 184:49: E251 unexpected spaces around keyword / parameter equals Line 184:51: E251 unexpected spaces around keyword / parameter equals Line 184:61: E202 whitespace before ')' Line 184:81: E501 line too long (137 > 80 characters) Line 186:16: E221 multiple spaces before operator Line 186:35: E201 whitespace after '(' Line 186:37: E201 whitespace after '[' Line 186:50: E201 whitespace after '[' Line 186:52: E202 whitespace before ']' Line 186:68: E201 whitespace after '[' Line 186:70: E202 whitespace before ']' Line 186:72: E202 whitespace before ']' Line 186:81: E251 unexpected spaces around keyword / parameter equals Line 186:81: E501 line too long (101 > 80 characters) Line 186:83: E251 unexpected spaces around keyword / parameter equals Line 186:94: E202 whitespace before ')' Line 187:35: E201 whitespace after '(' Line 187:37: E201 whitespace after '[' Line 187:50: E201 whitespace after '[' Line 187:52: E202 whitespace before ']' Line 187:68: E201 whitespace after '[' Line 187:70: E202 whitespace before ']' Line 187:72: E202 whitespace before ']' Line 187:81: E251 unexpected spaces around keyword / parameter equals Line 187:81: E501 line too long (95 > 80 characters) Line 187:83: E251 unexpected spaces around keyword / parameter equals Line 187:94: E202 whitespace before ')' Line 189:43: E201 whitespace after '(' Line 189:79: E202 whitespace before ')' Line 195:11: E221 multiple spaces before operator Line 195:71: W291 trailing whitespace Line 196:19: E201 whitespace after '(' Line 196:33: E202 whitespace before ')' Line 197:1: W293 blank line contains whitespace Line 198:81: E501 line too long (106 > 80 characters) Line 201:81: E501 line too long (135 > 80 characters) Line 203:26: E201 whitespace after '(' Line 203:28: E201 whitespace after '[' Line 203:57: E202 whitespace before ']' Line 203:66: E251 unexpected spaces around keyword / parameter equals Line 203:68: E251 unexpected spaces around keyword / parameter equals Line 203:79: E202 whitespace before ')' Line 205:61: E201 whitespace after '(' Line 205:81: E501 line too long (97 > 80 characters) Line 205:96: E202 whitespace before ')' Line 211:11: E221 multiple spaces before operator Line 211:26: E201 whitespace after '(' Line 211:33: E202 whitespace before ')' Line 212:26: E201 whitespace after '(' Line 212:34: E202 whitespace before ')' Line 214:13: E221 multiple spaces before operator Line 216:1: W293 blank line contains whitespace Line 217:45: E201 whitespace after '(' Line 217:72: E202 whitespace before ')' Line 220:47: W291 trailing whitespace Line 223:36: E201 whitespace after '(' Line 223:80: E202 whitespace before ')' Line 223:81: E501 line too long (81 > 80 characters) Line 225:26: E201 whitespace after '(' Line 225:39: E201 whitespace after '(' Line 225:47: E201 whitespace after '[' Line 225:48: E203 whitespace before ':' Line 225:57: E202 whitespace before ']' Line 225:59: E202 whitespace before ')' Line 236:28: E201 whitespace after '(' Line 236:34: E251 unexpected spaces around keyword / parameter equals Line 236:36: E251 unexpected spaces around keyword / parameter equals Line 236:45: E251 unexpected spaces around keyword / parameter equals Line 236:47: E251 unexpected spaces around keyword / parameter equals Line 236:55: E251 unexpected spaces around keyword / parameter equals Line 236:57: E251 unexpected spaces around keyword / parameter equals Line 236:61: E202 whitespace before ')' Line 238:16: E231 missing whitespace after ',' Line 238:27: E201 whitespace after '(' Line 238:35: E201 whitespace after '(' Line 238:44: E201 whitespace after '(' Line 238:63: E251 unexpected spaces around keyword / parameter equals Line 238:65: E251 unexpected spaces around keyword / parameter equals Line 238:68: E202 whitespace before ')' Line 238:81: E501 line too long (103 > 80 characters) Line 238:86: E202 whitespace before ')' Line 238:102: E202 whitespace before ')' Line 239:9: E231 missing whitespace after ',' Line 240:9: E231 missing whitespace after ',' Line 241:40: E231 missing whitespace after ',' Line 245:16: E231 missing whitespace after ',' Line 245:27: E201 whitespace after '(' Line 245:37: E201 whitespace after '(' Line 245:46: E201 whitespace after '(' Line 245:65: E251 unexpected spaces around keyword / parameter equals Line 245:67: E251 unexpected spaces around keyword / parameter equals Line 245:70: E202 whitespace before ')' Line 245:81: E501 line too long (103 > 80 characters) Line 245:88: E202 whitespace before ')' Line 245:102: E202 whitespace before ')' Line 246:9: E231 missing whitespace after ',' Line 247:9: E231 missing whitespace after ',' Line 248:40: E231 missing whitespace after ',' Line 252:16: E231 missing whitespace after ',' Line 252:27: E201 whitespace after '(' Line 252:35: E201 whitespace after '(' Line 252:49: E201 whitespace after '[' Line 252:57: E202 whitespace before ']' Line 252:59: E202 whitespace before ')' Line 252:75: E202 whitespace before ')' Line 253:9: E231 missing whitespace after ',' Line 254:9: E231 missing whitespace after ',' Line 255:40: E231 missing whitespace after ',' Line 259:16: E231 missing whitespace after ',' Line 259:27: E201 whitespace after '(' Line 259:37: E201 whitespace after '(' Line 259:51: E201 whitespace after '[' Line 259:59: E202 whitespace before ']' Line 259:61: E202 whitespace before ')' Line 259:75: E202 whitespace before ')' Line 260:9: E231 missing whitespace after ',' Line 261:9: E231 missing whitespace after ',' Line 262:40: E231 missing whitespace after ',' Line 265:1: W293 blank line contains whitespace Line 268:5: E265 block comment should start with '# ' Line 269:17: E201 whitespace after '(' Line 269:80: E251 unexpected spaces around keyword / parameter equals Line 269:81: E501 line too long (87 > 80 characters) Line 269:82: E251 unexpected spaces around keyword / parameter equals Line 269:86: E202 whitespace before ')' Line 279:17: E221 multiple spaces before operator Line 279:30: E201 whitespace after '(' Line 279:45: E251 unexpected spaces around keyword / parameter equals Line 279:47: E251 unexpected spaces around keyword / parameter equals Line 279:58: E202 whitespace before ')' Line 280:30: E201 whitespace after '(' Line 280:45: E251 unexpected spaces around keyword / parameter equals Line 280:47: E251 unexpected spaces around keyword / parameter equals Line 280:58: E202 whitespace before ')' Line 282:25: E201 whitespace after '(' Line 282:39: E202 whitespace before ')' Line 283:1: W293 blank line contains whitespace Line 284:15: E201 whitespace after '(' Line 284:39: E202 whitespace before ')' Line 286:44: E201 whitespace after '(' Line 286:81: E501 line too long (89 > 80 characters) Line 286:88: E202 whitespace before ')' Line 287:1: W293 blank line contains whitespace Line 288:81: E501 line too long (109 > 80 characters) Line 289:81: E501 line too long (109 > 80 characters) Line 292:81: E501 line too long (119 > 80 characters) Line 294:81: E501 line too long (109 > 80 characters) Line 296:81: E501 line too long (109 > 80 characters) Line 296:90: E201 whitespace after '(' Line 296:98: E201 whitespace after '[' Line 296:107: E202 whitespace before ']' Line 296:110: W291 trailing whitespace Line 297:81: E501 line too long (97 > 80 characters) Line 297:98: W291 trailing whitespace Line 298:81: E501 line too long (96 > 80 characters) Line 298:97: W291 trailing whitespace Line 299:81: E501 line too long (118 > 80 characters) Line 299:117: E202 whitespace before ')' Line 300:1: W293 blank line contains whitespace Line 301:22: E201 whitespace after '[' Line 301:25: E202 whitespace before ']' Line 301:27: E221 multiple spaces before operator Line 301:46: E201 whitespace after '(' Line 301:74: E202 whitespace before ')' Line 302:23: E201 whitespace after '[' Line 302:26: E202 whitespace before ']' Line 302:46: E201 whitespace after '(' Line 302:63: E201 whitespace after '[' Line 302:71: E202 whitespace before ']' Line 302:81: E501 line too long (86 > 80 characters) Line 302:85: E202 whitespace before ')' Line 304:15: E221 multiple spaces before operator Line 305:35: E201 whitespace after '[' Line 305:43: E202 whitespace before ']' Line 310:1: W293 blank line contains whitespace Line 311:14: E201 whitespace after '(' Line 311:22: E202 whitespace before ')' Line 311:29: E202 whitespace before ')' Line 311:36: E201 whitespace after '(' Line 311:56: W291 trailing whitespace Line 313:36: E201 whitespace after '(' Line 313:42: E251 unexpected spaces around keyword / parameter equals Line 313:44: E251 unexpected spaces around keyword / parameter equals Line 313:53: E251 unexpected spaces around keyword / parameter equals Line 313:55: E251 unexpected spaces around keyword / parameter equals Line 313:63: E251 unexpected spaces around keyword / parameter equals Line 313:65: E251 unexpected spaces around keyword / parameter equals Line 313:69: E202 whitespace before ')' Line 315:24: E231 missing whitespace after ',' Line 315:35: E201 whitespace after '(' Line 315:43: E201 whitespace after '(' Line 315:52: E201 whitespace after '(' Line 315:73: E251 unexpected spaces around keyword / parameter equals Line 315:75: E251 unexpected spaces around keyword / parameter equals Line 315:78: E202 whitespace before ')' Line 315:80: E202 whitespace before ')' Line 315:81: E501 line too long (97 > 80 characters) Line 315:96: E202 whitespace before ')' Line 316:17: E231 missing whitespace after ',' Line 317:17: E231 missing whitespace after ',' Line 318:48: E231 missing whitespace after ',' Line 322:24: E231 missing whitespace after ',' Line 322:35: E201 whitespace after '(' Line 322:45: E201 whitespace after '(' Line 322:54: E201 whitespace after '(' Line 322:75: E251 unexpected spaces around keyword / parameter equals Line 322:77: E251 unexpected spaces around keyword / parameter equals Line 322:80: E202 whitespace before ')' Line 322:81: E501 line too long (97 > 80 characters) Line 322:82: E202 whitespace before ')' Line 322:96: E202 whitespace before ')' Line 323:17: E231 missing whitespace after ',' Line 324:17: E231 missing whitespace after ',' Line 325:48: E231 missing whitespace after ',' Line 329:24: E231 missing whitespace after ',' Line 329:35: E201 whitespace after '(' Line 329:43: E201 whitespace after '(' Line 329:52: E201 whitespace after '(' Line 329:71: E251 unexpected spaces around keyword / parameter equals Line 329:73: E251 unexpected spaces around keyword / parameter equals Line 329:76: E202 whitespace before ')' Line 329:78: E202 whitespace before ')' Line 329:81: E501 line too long (95 > 80 characters) Line 329:94: E202 whitespace before ')' Line 330:17: E231 missing whitespace after ',' Line 331:17: E231 missing whitespace after ',' Line 332:48: E231 missing whitespace after ',' Line 336:24: E231 missing whitespace after ',' Line 336:35: E201 whitespace after '(' Line 336:45: E201 whitespace after '(' Line 336:54: E201 whitespace after '(' Line 336:73: E251 unexpected spaces around keyword / parameter equals Line 336:75: E251 unexpected spaces around keyword / parameter equals Line 336:78: E202 whitespace before ')' Line 336:80: E202 whitespace before ')' Line 336:81: E501 line too long (95 > 80 characters) Line 336:94: E202 whitespace before ')' Line 337:17: E231 missing whitespace after ',' Line 338:17: E231 missing whitespace after ',' Line 339:48: E231 missing whitespace after ',' Line 344:1: W293 blank line contains whitespace Line 345:25: E201 whitespace after '(' Line 345:81: E501 line too long (112 > 80 characters) Line 345:98: E202 whitespace before ')' Line 345:105: E251 unexpected spaces around keyword / parameter equals Line 345:107: E251 unexpected spaces around keyword / parameter equals Line 345:111: E202 whitespace before ')' Line 347:23: E201 whitespace after '(' Line 347:27: E202 whitespace before ')' Line 351:28: E201 whitespace after '(' Line 351:34: E251 unexpected spaces around keyword / parameter equals Line 351:36: E251 unexpected spaces around keyword / parameter equals Line 351:45: E251 unexpected spaces around keyword / parameter equals Line 351:47: E251 unexpected spaces around keyword / parameter equals Line 351:55: E251 unexpected spaces around keyword / parameter equals Line 351:57: E251 unexpected spaces around keyword / parameter equals Line 351:61: E202 whitespace before ')' Line 353:23: E201 whitespace after '(' Line 353:42: E202 whitespace before ')' Line 356:23: E201 whitespace after '(' Line 356:43: E202 whitespace before ')' Line 361:17: E201 whitespace after '(' Line 361:35: E201 whitespace after '(' Line 361:81: E501 line too long (120 > 80 characters) Line 361:82: E201 whitespace after '(' Line 361:90: E202 whitespace before ')' Line 361:106: E202 whitespace before ')' Line 361:113: E251 unexpected spaces around keyword / parameter equals Line 361:115: E251 unexpected spaces around keyword / parameter equals Line 361:119: E202 whitespace before ')' Line 363:15: E201 whitespace after '(' Line 363:19: E202 whitespace before ')' Line 365:1: W391 blank line at end of file