Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Factory:Rebuild
python-mrcz
numpy2.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File numpy2.patch of Package python-mrcz
From 07c01ce360fd3bad884f2a3c03c5f33c0f8348cf Mon Sep 17 00:00:00 2001 From: Eric Prestat <eric.prestat@gmail.com> Date: Sat, 22 Jun 2024 20:05:46 +0100 Subject: [PATCH 2/5] Replace `==/!=` with `is`/`is not` when comparing to `None` --- mrcz/ReliablePy.py | 8 ++++---- mrcz/ioMRC.py | 20 ++++++++++---------- mrcz/test_mrcz.py | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/mrcz/ReliablePy.py b/mrcz/ReliablePy.py index 64e3274..db0dc6e 100644 --- a/mrcz/ReliablePy.py +++ b/mrcz/ReliablePy.py @@ -398,7 +398,7 @@ def pruneParticlesNearImageEdge( self, box = None, shapeImage = [3838,3710] ): Image size is not stored anywhere obvious in Relion, so it must be passed in in terms of it's shape in [y,x] """ - if box == None: + if box is None: try: box = self.star[b'data_model_general'][b'OriginalImageSize'] except: @@ -570,7 +570,7 @@ def saveDataStar( self, outputName, particleKey = b"data_" ): Outputs a relion ..._data.star file that has been pruned, regrouped, etc. to outputName """ - if outputName == None: + if outputName is None: # Need to store input star names, and figure out which was the last loaded particles.star file. # [outFront, outExt] = os.path.splitext() raise IOError( "Default filenames for saveDataStar not implemented yet" ) @@ -652,11 +652,11 @@ def saveDataAsPar( self, outputPrefix, N_classes = 1, mag = None, pixelsize=None # kept track of in Relion with Magnification and DetectorPixelSize (which # defaults to 14.0) - if pixelsize == None: + if pixelsize is None: # Detector pixel size in um, we need pixelsize in Angstrom pixelsize = self.star[b'data_'][b'DetectorPixelSize'][0]*1E4 / self.star[b'data_'][b'Magnification'][0] print( "Found pixelsize of %0.f" % pixelsize ) - if mag == None: + if mag is None: print( "Using Relion magnification of %.f and DSTEP=%.1f" % ( self.star[b'data_'][b'Magnification'][0], self.star[b'data_'][b'DetectorPixelSize'][0]) ) print( "For a K2 (DSTEP=5.0) the appropriate magnification would be %0.f" % 50000/pixelsize ) else: diff --git a/mrcz/ioMRC.py b/mrcz/ioMRC.py index 998de75..c5b234b 100644 --- a/mrcz/ioMRC.py +++ b/mrcz/ioMRC.py @@ -282,16 +282,16 @@ def readMRC(MRCfilename, idx=None, endian='le', if ( (header['compressor'] in REVERSE_COMPRESSOR_ENUM) and (REVERSE_COMPRESSOR_ENUM[header['compressor']] > 0) - and idx == None ): + and idx is None ): return __MRCZImport(f, header, slices, endian=endian, fileConvention=fileConvention, n_threads=n_threads) # Else load as uncompressed MRC file - if idx != None: + if idx is not None: # If specific images were requested: # TO DO: add support to read all images within a range at once - if header['compressor'] != None: + if header['compressor'] is not None: raise RuntimeError('Reading from arbitrary positions not supported for compressed files. Compressor = %s'%header['compressor']) if np.isscalar( idx ): indices = np.array([idx, idx], dtype='int') @@ -370,7 +370,7 @@ def __MRCZImport(f, header, slices, endian='le', fileConvention='ccpem', if not BLOSC_PRESENT: raise ImportError( '`blosc` is not installed, cannot decompress file.' ) - if n_threads == None: + if n_threads is None: blosc.nthreads = DEFAULT_N_THREADS else: blosc.nthreads = n_threads @@ -751,7 +751,7 @@ def writeMRC(input_image, MRCfilename, meta=None, endian='le', dtype=None, # the file exists, but idx is 'None', it will be replaced by a new file # with new header anyway: if os.path.isfile(MRCfilename): - if idx == None: + if idx is None: idxnewfile = True else: idxnewfile = False @@ -760,11 +760,11 @@ def writeMRC(input_image, MRCfilename, meta=None, endian='le', dtype=None, if idxnewfile: - if dtype == 'uint4' and compressor != None: + if dtype == 'uint4' and compressor is not None: raise TypeError('uint4 packing is not compatible with compression, use int8 datatype.') header = {'meta': meta} - if dtype == None: + if dtype is None: if slices > 0: header['dtype'] = endchar + input_image[0].dtype.descr[0][1].strip('<>|') else: @@ -816,7 +816,7 @@ def writeMRC(input_image, MRCfilename, meta=None, endian='le', dtype=None, header['compressor'] = compressor header['clevel'] = clevel - if n_threads == None and BLOSC_PRESENT: + if n_threads is None and BLOSC_PRESENT: n_threads = DEFAULT_N_THREADS header['n_threads'] = n_threads @@ -848,8 +848,8 @@ def writeMRC(input_image, MRCfilename, meta=None, endian='le', dtype=None, header['meta'] = meta # Now that we have a proper header, we go into the details of writing to a specific position: - if idx != None: - if header['compressor'] != None: + if idx is not None: + if header['compressor'] is not None: raise RuntimeError('Writing at arbitrary positions not supported for compressed files. Compressor = %s' % header['compressor']) idx = int(idx) diff --git a/mrcz/test_mrcz.py b/mrcz/test_mrcz.py index d76f5fa..9701cdc 100644 --- a/mrcz/test_mrcz.py +++ b/mrcz/test_mrcz.py @@ -23,7 +23,7 @@ def which(program): program_ext = os.path.splitext(program)[1] if program_ext == '': prog_exe = which(program + '.exe') - if prog_exe != None: + if prog_exe is not None: return prog_exe return which(program + '.com') From 92e1b2397e2024c25b61d9eef1ed700c5bc00a4e Mon Sep 17 00:00:00 2001 From: Eric Prestat <eric.prestat@gmail.com> Date: Sat, 22 Jun 2024 20:18:25 +0100 Subject: [PATCH 3/5] Replace deprecated `disutils.version.StrictVersion` with `packaging.version.Version` --- mrcz/ioMRC.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mrcz/ioMRC.py b/mrcz/ioMRC.py index c5b234b..115044e 100644 --- a/mrcz/ioMRC.py +++ b/mrcz/ioMRC.py @@ -27,7 +27,7 @@ raise ImportError('Get the backport for `concurrent.futures` for Py2.7 as `pip install futures`') raise e from mrcz.__version__ import __version__ -from distutils.version import StrictVersion +from packaging.version import Version import logging logger = logging.getLogger('MRCZ') @@ -195,7 +195,7 @@ def _getMRCZVersion(label): Returns ------- - version: Optional[distutils.version.StrictVersion] + version: Optional[packaging.version.Version] areturns ``None`` if `label` cannot be parsed. """ if isinstance(label, bytes): @@ -207,7 +207,7 @@ def _getMRCZVersion(label): label = label[4:] try: - version = StrictVersion(label) + version = Version(label) return version except ValueError: return None @@ -537,7 +537,7 @@ def readMRCHeader(MRCfilename, slices=None, endian='le', fileConvention = 'ccpem # is essentially unknown (and wrong). So we have this version # check where we force slices to be 1 (i.e. we assume it is a # stack of 2D images). - if mrcz_version is not None and mrcz_version < StrictVersion('0.5.0'): + if mrcz_version is not None and mrcz_version < Version('0.5.0'): logger.warning('MRCZ version < 0.5.0 for file {}, assuming slices == 1.'.format(MRCfilename)) slices = 1 else: From 1c367b3c3a5bfbffbebf36e2bf6a1eab9a668252 Mon Sep 17 00:00:00 2001 From: Eric Prestat <eric.prestat@gmail.com> Date: Sat, 22 Jun 2024 20:20:13 +0100 Subject: [PATCH 4/5] Replace deprecated `warn` method with `warning` --- mrcz/ioMRC.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mrcz/ioMRC.py b/mrcz/ioMRC.py index 115044e..872ee2e 100644 --- a/mrcz/ioMRC.py +++ b/mrcz/ioMRC.py @@ -711,12 +711,12 @@ def writeMRC(input_image, MRCfilename, meta=None, endian='le', dtype=None, if z_slice.dtype == np.float64 or z_slice.dtype == float: if not WARNED_ABOUT_CASTING_F64: - logger.warn('Casting {} to `numpy.float32`, further warnings will be suppressed.'.format(MRCfilename)) + logger.warning('Casting {} to `numpy.float32`, further warnings will be suppressed.'.format(MRCfilename)) WARNED_ABOUT_CASTING_F64 = True input_image[J] = z_slice.astype(np.float32) elif z_slice.dtype == np.complex128: if not WARNED_ABOUT_CASTING_C128: - logger.warn('Casting {} to `numpy.complex64`, further warnings will be suppressed.'.format(MRCfilename)) + logger.warning('Casting {} to `numpy.complex64`, further warnings will be suppressed.'.format(MRCfilename)) WARNED_ABOUT_CASTING_C128 = True input_image[J] = z_slice.astype(np.complex64) else: @@ -732,12 +732,12 @@ def writeMRC(input_image, MRCfilename, meta=None, endian='le', dtype=None, # Cast float64 -> float32, and complex128 -> complex64 if input_image.dtype == np.float64 or input_image.dtype == float: if not WARNED_ABOUT_CASTING_F64: - logger.warn('Casting {} to `numpy.float64`'.format(MRCfilename)) + logger.warning('Casting {} to `numpy.float64`'.format(MRCfilename)) WARNED_ABOUT_CASTING_F64 = True input_image = input_image.astype(np.float32) elif input_image.dtype == np.complex128: if not WARNED_ABOUT_CASTING_C128: - logger.warn('Casting {} to `numpy.complex64`'.format(MRCfilename)) + logger.warning('Casting {} to `numpy.complex64`'.format(MRCfilename)) WARNED_ABOUT_CASTING_C128 = True input_image = input_image.astype(np.complex64) From 97644c4a957946deb1c510d83dba3d3e2fa155ba Mon Sep 17 00:00:00 2001 From: Eric Prestat <eric.prestat@gmail.com> Date: Sat, 22 Jun 2024 20:23:15 +0100 Subject: [PATCH 5/5] Fix numpy deprecation warning on conversion of an array with ndim > 0 to a scalar --- mrcz/ioMRC.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mrcz/ioMRC.py b/mrcz/ioMRC.py index 872ee2e..7a61b16 100644 --- a/mrcz/ioMRC.py +++ b/mrcz/ioMRC.py @@ -542,7 +542,7 @@ def readMRCHeader(MRCfilename, slices=None, endian='le', fileConvention = 'ccpem slices = 1 else: f.seek(36) - slices = int(np.fromfile(f, dtype=dtype_i4, count=1)) + slices = int(np.fromfile(f, dtype=dtype_i4, count=1)[0]) # Read in pixelsize f.seek(40) @@ -572,7 +572,7 @@ def readMRCHeader(MRCfilename, slices=None, endian='le', fileConvention = 'ccpem # Size of meta-data f.seek(92) - header['extendedBytes'] = int(np.fromfile(f, dtype=dtype_i4, count=1)) + header['extendedBytes'] = int(np.fromfile(f, dtype=dtype_i4, count=1)[0]) if header['extendedBytes'] > 0: f.seek(104) header['metaId'] = f.read(4)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor