Skip to content

Commit ea8b85f

Browse files
authored
Issue 341 (#342)
* Fixes #341 * Residual py3 issues in DDFacet based predictor
1 parent a7a7216 commit ea8b85f

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

cubical/data_handler/DDFacetSim.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import DDFacet.cbuild.Gridder._pyGridderSmearPolsClassic3x as _pyGridderSmearPolsClassic
1212
else:
1313
import DDFacet.cbuild.Gridder._pyGridderSmearPolsClassic27 as _pyGridderSmearPolsClassic
14-
from DDFacet.cbuild.Gridder import _pyGridderSmearPolsClassic27
1514
from DDFacet.ToolsDir.ModToolBox import EstimateNpix
1615
from DDFacet.Array import shared_dict
1716
from DDFacet.ToolsDir import ModFFTW
@@ -138,6 +137,9 @@ def init_sems(cls, NSemaphores = 3373):
138137
@classmethod
139138
def del_sems(cls):
140139
""" Deinit semaphores """
140+
if not cls.__should_init_sems:
141+
return
142+
cls.__should_init_sems = True
141143
_pyGridderSmearPolsClassic.pyDeleteSemaphore()
142144
cls.__degridding_semaphores = None
143145

@@ -165,7 +167,7 @@ def __cachename_compute(self, src):
165167
" scale:" + "x".join(map(str, list(np.deg2rad(src.get_direction_pxoffset(subregion_index=subregion_index)) *
166168
src.pixel_scale / 3600.0)))
167169
res = "dir_{0:s}_{1:s}_{2:s}".format(str(self.__model), str(self.__direction), str(reg_props))
168-
return hashlib.md5(res).hexdigest()
170+
return hashlib.md5(res.encode()).hexdigest()
169171

170172
def __init_grid_machine(self, src, dh, tile, poltype, freqs):
171173
""" initializes a grid machine for this direction """
@@ -349,9 +351,9 @@ def simulate(self, dh, tile, tile_subset, poltype, uvwco, freqs, model_type):
349351

350352
import atexit
351353

352-
def _cleanup_degridders():
354+
def cleanup_degridders():
353355
DDFacetSim.del_sems()
354356
DDFacetSim.dealloc_degridders()
355357
DDFacetSim.shutdown_pool()
356358

357-
atexit.register(_cleanup_degridders)
359+
atexit.register(cleanup_degridders)

cubical/data_handler/DicoSourceProvider.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from regions import DS9Parser
99
import numpy as np
10-
from geometry import BoundingConvexHull, BoundingBox, BoundingBoxFactory
10+
from .geometry import BoundingConvexHull, BoundingBox, BoundingBoxFactory
1111
from cubical.tools import logger, ModColor
1212
log = logger.getLogger("DDFacetSim")
1313

@@ -108,7 +108,7 @@ def __read_regions_file(self, fn, padding_factor, max_size, min_nfacet_per_axis)
108108
with open(fn) as f:
109109
parser = DS9Parser(f.read())
110110
for regi, reg in enumerate(parser.shapes):
111-
coords = map(int, [c.value for c in reg.coord])
111+
coords = list(map(int, [c.value for c in reg.coord]))
112112
assert len(coords) % 2 == 0, "Number of region coords must be multiple of 2-tuple"
113113
coords = np.array(coords).reshape([len(coords) // 2, 2])
114114
clusters.append(BoundingConvexHull(coords,
@@ -133,19 +133,19 @@ def __split_regular_region(reg, max_size):
133133
log(2).print("\tSplitting regions into facetted regions, with maximum unpadded size of {0:.2f} degrees per facet".format(max_size))
134134
clusters = [aasubreg for aareg in map(lambda reg: __split_regular_region(reg, max_size), clusters)
135135
for aasubreg in aareg]
136-
clusters = map(lambda reg: BoundingBoxFactory.AxisAlignedBoundingBox(reg, square=True, check_mask_outofbounds=False), clusters)
136+
clusters = list(map(lambda reg: BoundingBoxFactory.AxisAlignedBoundingBox(reg, square=True, check_mask_outofbounds=False), clusters))
137137

138138
def __pad_cluster(c, padding_factor):
139139
npx,_ = c.box_npx # square facet at this point
140140
# this returns an odd npix:
141141
npixunpadded, npixpadded = EstimateNpix(npx, Padding=padding_factor)
142142
return BoundingBoxFactory.PadBox(c, npixpadded, npixpadded, check_mask_outofbounds=False)
143143
log(2).print("\tPadding all facets by a minimum factor of {0:.2f}x".format(padding_factor))
144-
clusters = map(lambda c: __pad_cluster(c, padding_factor), clusters)
144+
clusters = list(map(lambda c: __pad_cluster(c, padding_factor), clusters))
145145
log.debug("\tNormalizing regional weights")
146146
BoundingConvexHull.normalize_masks(clusters)
147147
log(2).print("\tCaching regional weight maps for future predicts")
148-
map(lambda x: x.mask, clusters) # cache mask
148+
list(map(lambda x: x.mask, clusters)) # cache mask
149149
dirs = {}
150150
for c in clusters:
151151
dirs[c.name] = dirs.get(c.name, []) + [c]

cubical/data_handler/ms_tile.py

+2
Original file line numberDiff line numberDiff line change
@@ -1363,6 +1363,8 @@ def release(self):
13631363
if subset.label is not None:
13641364
data = shared_dict.attach(subset.datadict)
13651365
data.delete()
1366+
from .DDFacetSim import cleanup_degridders
1367+
cleanup_degridders()
13661368

13671369

13681370

0 commit comments

Comments
 (0)