From 14ed66bcf2e7512dde4745a0d7a6c16193fd53a4 Mon Sep 17 00:00:00 2001 From: Niko Ehrenfeuchter <nikolaus.ehrenfeuchter@unibas.ch> Date: Thu, 8 Apr 2021 11:30:19 +0200 Subject: [PATCH] Blackenize code --- src/imcflibs/__init__.py | 2 +- src/imcflibs/imagej/misc.py | 3 ++- src/imcflibs/imagej/prefs.py | 1 + src/imcflibs/imagej/projections.py | 19 ++++++++------- src/imcflibs/imagej/shading.py | 11 ++++----- src/imcflibs/imagej/split.py | 3 ++- src/imcflibs/imagej/stitching.py | 38 +++++++++++++++--------------- src/imcflibs/iotools.py | 14 +++++------ src/imcflibs/log.py | 2 +- src/imcflibs/pathtools.py | 19 ++++++++------- src/imcflibs/strtools.py | 4 ++-- 11 files changed, 61 insertions(+), 55 deletions(-) diff --git a/src/imcflibs/__init__.py b/src/imcflibs/__init__.py index 16c39bc..3b59a6f 100644 --- a/src/imcflibs/__init__.py +++ b/src/imcflibs/__init__.py @@ -21,4 +21,4 @@ Biozentrum, University of Basel, Switzerland. [imagej]: https://imagej.net """ -__version__ = '${project.version}' +__version__ = "${project.version}" diff --git a/src/imcflibs/imagej/misc.py b/src/imcflibs/imagej/misc.py index 2d0e33e..1762007 100644 --- a/src/imcflibs/imagej/misc.py +++ b/src/imcflibs/imagej/misc.py @@ -15,9 +15,10 @@ def show_status(msg): def show_progress(cur, final): """Wrapper to update the progress bar and issue a log message.""" # ij.IJ.showProgress is adding 1 to the value given as first parameter... - log.info("Progress: %s / %s (%s)", cur+1, final, (1.0+cur)/final) + log.info("Progress: %s / %s (%s)", cur + 1, final, (1.0 + cur) / final) IJ.showProgress(cur, final) + def error_exit(msg): """Convenience wrapper to log an error and exit then.""" log.error(msg) diff --git a/src/imcflibs/imagej/prefs.py b/src/imcflibs/imagej/prefs.py index 54e51f4..179907c 100644 --- a/src/imcflibs/imagej/prefs.py +++ b/src/imcflibs/imagej/prefs.py @@ -2,6 +2,7 @@ from ij import Prefs # pylint: disable-msg=E0401 + def debug_mode(): """Wrapper to check if 'imcf.debugging' is enabled. diff --git a/src/imcflibs/imagej/projections.py b/src/imcflibs/imagej/projections.py index 6313875..1a6d050 100644 --- a/src/imcflibs/imagej/projections.py +++ b/src/imcflibs/imagej/projections.py @@ -82,18 +82,21 @@ def create_and_save(imp, projections, path, filename, export_format): return False command = { - 'Average': 'avg', - 'Maximum': 'max', - 'Sum': 'sum', + "Average": "avg", + "Maximum": "max", + "Sum": "sum", } for projection in projections: log.debug("Creating '%s' projection...", projection) proj = ZProjector.run(imp, command[projection]) - export_using_orig_name(proj, - path, filename, - "-%s" % command[projection], - export_format, - overwrite=True) + export_using_orig_name( + proj, + path, + filename, + "-%s" % command[projection], + export_format, + overwrite=True, + ) proj.close() return True diff --git a/src/imcflibs/imagej/shading.py b/src/imcflibs/imagej/shading.py index c0a20a3..ab59777 100644 --- a/src/imcflibs/imagej/shading.py +++ b/src/imcflibs/imagej/shading.py @@ -105,10 +105,10 @@ def correct_and_project(filename, path, model, proj, fmt): imps = [imp] ret_corr = True - if proj == 'None': + if proj == "None": projs = [] - elif proj == 'ALL': - projs = ['Average', 'Maximum'] + elif proj == "ALL": + projs = ["Average", "Maximum"] else: projs = [proj] for imp in imps: @@ -159,8 +159,7 @@ def process_files(files, outpath, model_file, fmt): fmt : str The file format suffix for storing the results. """ - log.info("Running shading correction and projections on %s files...", - len(files)) + log.info("Running shading correction and projections on %s files...", len(files)) if model_file.upper() in ["-", "NONE"]: model = None @@ -177,7 +176,7 @@ def process_files(files, outpath, model_file, fmt): misc.error_exit("Opening shading model [%s] failed!" % model_file) for in_file in files: - correct_and_project(in_file, outpath, model, 'ALL', fmt) + correct_and_project(in_file, outpath, model, "ALL", fmt) if model: model.close() diff --git a/src/imcflibs/imagej/split.py b/src/imcflibs/imagej/split.py index 8aa15b0..5184e91 100644 --- a/src/imcflibs/imagej/split.py +++ b/src/imcflibs/imagej/split.py @@ -6,6 +6,7 @@ from ij import IJ, ImagePlus # pylint: disable-msg=E0401 from ij.io import FileSaver # pylint: disable-msg=E0401 from ij.plugin import ChannelSplitter # pylint: disable-msg=E0401 + def split_by_c_and_z(log, dname, imgf, skip_top, skip_bottom): """Helper function to open, split and save a file. @@ -36,7 +37,7 @@ def split_by_c_and_z(log, dname, imgf, skip_top, skip_bottom): if not os.path.isdir(tgt_dir): os.mkdir(tgt_dir) stack = channel.getStack() - for z in range(1+skip_top, stack.getSize()+1-skip_bottom): + for z in range(1 + skip_top, stack.getSize() + 1 - skip_bottom): proc = stack.getProcessor(z) fout = "%s/%s-z%s%s" % (tgt_dir, fname[0], z, fname[1]) # fout = dname + "/" + c_name + "/" + fname[0] + "-z" + z + fname[1] diff --git a/src/imcflibs/imagej/stitching.py b/src/imcflibs/imagej/stitching.py index 29fd30b..a82a66d 100644 --- a/src/imcflibs/imagej/stitching.py +++ b/src/imcflibs/imagej/stitching.py @@ -26,12 +26,12 @@ def process_fluoview_project(infile): micrometa.experiment.MosaicExperiment The mosaic object if parsing the project file has been successful. """ - if infile[-9:] == '.omp2info': + if infile[-9:] == ".omp2info": mosaicclass = micrometa.fluoview.FluoView3kMosaic - elif infile[-4:] == '.log': + elif infile[-4:] == ".log": mosaicclass = micrometa.fluoview.FluoViewMosaic else: - error_exit('Unsupported input file: %s' % infile) + error_exit("Unsupported input file: %s" % infile) log.info("Parsing project file: [%s]", infile) ij.IJ.showStatus("Parsing mosaics...") @@ -41,15 +41,15 @@ def process_fluoview_project(infile): ij.IJ.showProgress(0.0) show_status("Parsed %s / %s mosaics" % (0, total)) for i, subtree in enumerate(mosaics.mosaictrees): - log.info("Parsing mosaic %s...", i+1) + log.info("Parsing mosaic %s...", i + 1) try: mosaics.add_mosaic(subtree, i) except (ValueError, IOError) as err: - log.warn('Skipping mosaic %s: %s', i, err) + log.warn("Skipping mosaic %s: %s", i, err) except RuntimeError as err: - log.warn('Error parsing mosaic %s, SKIPPING: %s', i, err) + log.warn("Error parsing mosaic %s, SKIPPING: %s", i, err) show_progress(i, total) - show_status("Parsed %s / %s mosaics" % (i+1, total)) + show_status("Parsed %s / %s mosaics" % (i + 1, total)) show_progress(total, total) show_status("Parsed %i mosaics." % total) @@ -79,30 +79,30 @@ def gen_macro(mosaics, indir, outfile=None, opts=None): list(str) The generated macro code as a list of strings (one str per line). """ - templates = join(getProperty('fiji.dir'), 'jars', 'python-micrometa.jar') + templates = join(getProperty("fiji.dir"), "jars", "python-micrometa.jar") log.info("Using macro templates from [%s].", templates) log.info("Using [%s] as base directory.", indir) # set the default stitcher options stitcher_options = { - 'export_format': '".ids"', - 'split_z_slices': 'false', - 'rotation_angle': 0, - 'stitch_regression': 0.3, - 'stitch_maxavg_ratio': 2.5, - 'stitch_abs_displace': 3.5, - 'compute' : 'false', + "export_format": '".ids"', + "split_z_slices": "false", + "rotation_angle": 0, + "stitch_regression": 0.3, + "stitch_maxavg_ratio": 2.5, + "stitch_abs_displace": 3.5, + "compute": "false", } # merge explicit options, overriding the defaults from above if applicable: if opts: stitcher_options.update(opts) code = micrometa.imagej.gen_stitching_macro( - name=mosaics.infile['dname'], + name=mosaics.infile["dname"], path=indir, - tplpfx='templates/imagej-macro/stitching', + tplpfx="templates/imagej-macro/stitching", tplpath=templates, - opts=stitcher_options + opts=stitcher_options, ) log.debug("============= begin of generated macro code =============") @@ -110,7 +110,7 @@ def gen_macro(mosaics, indir, outfile=None, opts=None): log.debug("============= end of generated macro code =============") if outfile is not None: - log.info('Writing stitching macro.') + log.info("Writing stitching macro.") micrometa.imagej.write_stitching_macro(code, outfile) return code diff --git a/src/imcflibs/iotools.py b/src/imcflibs/iotools.py index 6c5a955..9d0d44c 100644 --- a/src/imcflibs/iotools.py +++ b/src/imcflibs/iotools.py @@ -7,7 +7,7 @@ from .log import LOG as log from .strtools import flatten -def filehandle(fname, mode='r'): +def filehandle(fname, mode="r"): """Make sure a variable is either a filehandle or create one from it. This function takes a variable and checks whether it is already a @@ -41,13 +41,13 @@ def filehandle(fname, mode='r'): <type 'file'> """ log.debug(type(fname)) - if type(fname).__name__ == 'str': + if type(fname).__name__ == "str": try: return open(fname, mode) except IOError as err: message = "can't open '%s': %s" raise SystemExit(message % (fname, err)) - elif type(fname).__name__ == 'file': + elif type(fname).__name__ == "file": if fname.mode != mode: message = "mode mismatch: %s != %s" raise IOError(message % (fname.mode, mode)) @@ -57,7 +57,7 @@ def filehandle(fname, mode='r'): raise SystemExit(message % type(fname)) -def readtxt(fname, path='', flat=False): +def readtxt(fname, path="", flat=False): """Commodity function for reading text files plain or zipped. Read a text file line by line either plainly from a directory or a .zip or @@ -90,13 +90,13 @@ def readtxt(fname, path='', flat=False): """ zipread = None suffix = splitext(path)[1].lower() - if ((suffix == '.zip') or (suffix == '.jar')): + if (suffix == ".zip") or (suffix == ".jar"): # ZipFile only works as a context manager from Python 2.7 on # tag:python25 - zipread = zipfile.ZipFile(path, 'r') + zipread = zipfile.ZipFile(path, "r") fin = zipread.open(fname) else: - fin = open(join(path, fname), 'r') + fin = open(join(path, fname), "r") txt = fin.readlines() # returns file as a list, one entry per line if flat: txt = flatten(txt) diff --git a/src/imcflibs/log.py b/src/imcflibs/log.py index 2d96820..4b0b967 100644 --- a/src/imcflibs/log.py +++ b/src/imcflibs/log.py @@ -38,7 +38,7 @@ def enable_console_logging(): return stream_handler -def enable_file_logging(fname, mode='a'): +def enable_file_logging(fname, mode="a"): """Add a logging handler writing to a file. Returns diff --git a/src/imcflibs/pathtools.py b/src/imcflibs/pathtools.py index da45be7..7007fbb 100644 --- a/src/imcflibs/pathtools.py +++ b/src/imcflibs/pathtools.py @@ -53,13 +53,13 @@ def parse_path(path): '' """ parsed = {} - parsed['orig'] = path - path = path.replace('\\', sep) - parsed['full'] = path - parsed['path'] = os.path.dirname(path) + sep - parsed['fname'] = os.path.basename(path) - parsed['dname'] = os.path.basename(os.path.dirname(parsed['path'])) - parsed['ext'] = os.path.splitext(parsed['fname'])[1] + parsed["orig"] = path + path = path.replace("\\", sep) + parsed["full"] = path + parsed["path"] = os.path.dirname(path) + sep + parsed["fname"] = os.path.basename(path) + parsed["dname"] = os.path.basename(os.path.dirname(parsed["path"])) + parsed["ext"] = os.path.splitext(parsed["fname"])[1] return parsed @@ -130,7 +130,7 @@ def image_basename(orig_name): 'FoObAr' """ base = os.path.splitext(os.path.basename(orig_name))[0] - if base.lower().endswith('.ome'): + if base.lower().endswith(".ome"): base = base[:-4] return base @@ -190,10 +190,11 @@ def derive_out_dir(in_dir, out_dir): # pylint: disable-msg=C0103 # we use the variable name 'exists' in its common spelling (lowercase), so # removing this workaround will be straightforward at a later point -if platform.python_implementation() == 'Jython': +if platform.python_implementation() == "Jython": # pylint: disable-msg=F0401 # java.lang is only importable within Jython, pylint would complain import java.lang + exists = jython_fiji_exists else: exists = os.path.exists diff --git a/src/imcflibs/strtools.py b/src/imcflibs/strtools.py index 2f1c626..ecbb790 100644 --- a/src/imcflibs/strtools.py +++ b/src/imcflibs/strtools.py @@ -18,7 +18,7 @@ def _is_string_like(obj): False """ try: - obj + '' + obj + "" except (TypeError, ValueError): return False return True @@ -95,5 +95,5 @@ def strip_prefix(string, prefix): string doesn't start with the prefix, it is returned unchanged. """ if string.startswith(prefix): - string = string[len(prefix):] + string = string[len(prefix) :] return string -- GitLab