diff --git a/bin/make_new_sv b/bin/make_new_sv index 229ee4e66..11fbab6ad 100755 --- a/bin/make_new_sv +++ b/bin/make_new_sv @@ -6,7 +6,7 @@ import numpy as np #import warnings #warnings.simplefilter('error') -from pkg_resources import resource_filename +from importlib import resources from glob import glob from time import time start = time() @@ -19,7 +19,7 @@ ap = ArgumentParser("Make a new sv directory, based on the highest existing sv d _ = ap.parse_args() # ADM the standard root name for a desitarget SV directory. -svroot = resource_filename('desitarget', 'sv') +svroot = str(resources.files('desitarget').joinpath('sv')) # ADM retrieve the highest current sv directory. fns = sorted(glob(svroot+'*')) diff --git a/doc/changes.rst b/doc/changes.rst index b5fbae469..8c5f91cab 100644 --- a/doc/changes.rst +++ b/doc/changes.rst @@ -5,6 +5,7 @@ desitarget Change Log 2.7.1 (unreleased) ------------------ +* Fix `pkg_resources`, `scipy.ndimage`, and `pytest` deprecation warnings [`PR #829`_]. * Add `GAIA_` prefix to `PHOT_*_MEAN_MAG` column names [`PR #827`_]. * So GD1/streams files conform to downstream data model. * Module file removed vars that are now defined in desimodules: @@ -36,6 +37,7 @@ desitarget Change Log .. _`PR #825`: https://github.com/desihub/desitarget/pull/825 .. _`PR #826`: https://github.com/desihub/desitarget/pull/826 .. _`PR #827`: https://github.com/desihub/desitarget/pull/827 +.. _`PR #829`: https://github.com/desihub/desitarget/pull/829 2.7.0 (2023-12-05) ------------------ diff --git a/py/desitarget/cmx/cmx_cuts.py b/py/desitarget/cmx/cmx_cuts.py index 7658b0579..aa6362518 100644 --- a/py/desitarget/cmx/cmx_cuts.py +++ b/py/desitarget/cmx/cmx_cuts.py @@ -23,7 +23,7 @@ from astropy.coordinates import SkyCoord from astropy.table import Table, Row -from pkg_resources import resource_filename +from importlib import resources from desitarget import io from desitarget.cuts import _psflike, _is_row, _get_colnames, _prepare_gaia @@ -1008,7 +1008,7 @@ def isQSO_randomforest(gflux=None, rflux=None, zflux=None, w1flux=None, colorsReducedIndex = colorsIndex[preSelection] # Path to random forest files - pathToRF = resource_filename('desitarget', 'data') + pathToRF = str(resources.files('desitarget').joinpath('data')) # ADM Use RF trained over DR7 rf_fileName = pathToRF + '/rf_model_dr7.npz' rf_HighZ_fileName = pathToRF + '/rf_model_dr7_HighZ.npz' diff --git a/py/desitarget/cmx/ms_cuts.py b/py/desitarget/cmx/ms_cuts.py index bb1f77aa8..327cb5fe6 100644 --- a/py/desitarget/cmx/ms_cuts.py +++ b/py/desitarget/cmx/ms_cuts.py @@ -11,7 +11,7 @@ """ import numpy as np -from pkg_resources import resource_filename +from importlib import resources from desitarget.geomask import imaging_mask # ADM set up the DESI default logger @@ -545,7 +545,7 @@ def isQSO_randomforest(gflux=None, rflux=None, zflux=None, maskbits=None, colorsReducedIndex = colorsIndex[preSelection] # Path to random forest files - pathToRF = resource_filename('desitarget', 'data') + pathToRF = str(resources.files('desitarget').joinpath('data')) # rf filenames rf_DR3_fileName = pathToRF + '/rf_model_dr3.npz' rf_DR7_fileName = pathToRF + '/rf_model_dr7.npz' diff --git a/py/desitarget/cuts.py b/py/desitarget/cuts.py index 034cb5bf4..06a573f0d 100644 --- a/py/desitarget/cuts.py +++ b/py/desitarget/cuts.py @@ -23,7 +23,7 @@ import fitsio import numpy as np import healpy as hp -from pkg_resources import resource_filename +from importlib import resources import numpy.lib.recfunctions as rfn from importlib import import_module @@ -1904,7 +1904,7 @@ def isQSO_randomforest(gflux=None, rflux=None, zflux=None, maskbits=None, colorsReducedIndex = colorsIndex[preSelection] # Path to random forest files. - pathToRF = resource_filename('desitarget', 'data') + pathToRF = str(resources.files('desitarget').joinpath('data')) # rf filename. rf_DR9_fileName = pathToRF + '/rf_model_dr9_final.npz' diff --git a/py/desitarget/io.py b/py/desitarget/io.py index 2e15afe34..bf9e76262 100644 --- a/py/desitarget/io.py +++ b/py/desitarget/io.py @@ -22,7 +22,7 @@ import healpy as hp from glob import glob, iglob from time import time -from pkg_resources import resource_filename +from importlib import resources import yaml import hashlib @@ -435,7 +435,7 @@ def write_with_units(filename, data, extname=None, header=None, ecsv=False): conversion is applied to `data`. """ # ADM read the desitarget units yaml file. - fn = resource_filename('desitarget', os.path.join('data', 'units.yaml')) + fn = resources.files('desitarget').joinpath('data/units.yaml') with open(fn) as f: unitdict = yaml.safe_load(f) diff --git a/py/desitarget/mock/mockmaker.py b/py/desitarget/mock/mockmaker.py index b8b6086b8..7bcb03903 100644 --- a/py/desitarget/mock/mockmaker.py +++ b/py/desitarget/mock/mockmaker.py @@ -10,7 +10,7 @@ import os import numpy as np from glob import glob -from pkg_resources import resource_filename +from importlib import resources import fitsio import healpy as hp @@ -514,11 +514,11 @@ def read_GMM(self, target=None): pass #return - gmmdir = resource_filename('desitarget', 'mock/data/dr9') + gmmdir = resources.files('desitarget').joinpath('mock/data/dr9') if not os.path.isdir: log.warning('DR9 GMM directory {} not found!'.format(gmmdir)) raise IOError - + fracfile = os.path.join(gmmdir, 'fractype_{}.fits'.format(target.lower())) fractype = Table.read(fracfile) diff --git a/py/desitarget/skyfibers.py b/py/desitarget/skyfibers.py index 9db137bee..810b71bc1 100644 --- a/py/desitarget/skyfibers.py +++ b/py/desitarget/skyfibers.py @@ -15,9 +15,9 @@ import photutils import healpy as hp from glob import glob -from scipy.ndimage.morphology import binary_dilation, binary_erosion -from scipy.ndimage.measurements import label, find_objects, center_of_mass -from scipy.ndimage.filters import gaussian_filter +from scipy.ndimage import binary_dilation, binary_erosion +from scipy.ndimage import label, find_objects, center_of_mass +from scipy.ndimage import gaussian_filter # ADM some utility code taken from legacypipe and astrometry.net. from desitarget.skyutilities.astrometry.fits import fits_table diff --git a/py/desitarget/streams/utilities.py b/py/desitarget/streams/utilities.py index 139f7395f..102f62743 100644 --- a/py/desitarget/streams/utilities.py +++ b/py/desitarget/streams/utilities.py @@ -13,7 +13,7 @@ import numpy as np import astropy.coordinates as acoo import astropy.units as auni -from pkg_resources import resource_filename +from importlib import resources from scipy.interpolate import UnivariateSpline from time import time import desitarget.streams.gaia_dr3_parallax_zero_point.zpt as gaia_zpt @@ -396,7 +396,7 @@ def get_stream_parameters(stream_name): stream_name = stream_name.upper() # ADM open and load the parameter yaml file. - fn = resource_filename('desitarget', os.path.join('data', 'streams.yaml')) + fn = resources.files('desitarget').joinpath('data/streams.yaml') with open(fn) as f: stream = yaml.safe_load(f) diff --git a/py/desitarget/sv1/sv1_cuts.py b/py/desitarget/sv1/sv1_cuts.py index 797b1fb16..aad77822b 100644 --- a/py/desitarget/sv1/sv1_cuts.py +++ b/py/desitarget/sv1/sv1_cuts.py @@ -16,7 +16,7 @@ import warnings from time import time -from pkg_resources import resource_filename +from importlib import resources import healpy as hp import fitsio @@ -780,7 +780,7 @@ def isQSO_randomforest(gflux=None, rflux=None, zflux=None, w1flux=None, colorsReducedIndex = colorsIndex[preSelection] # Path to random forest files - pathToRF = resource_filename('desitarget', 'data') + pathToRF = str(resources.files('desitarget').joinpath('data')) # Use RF trained over DR9 rf_fileName = pathToRF + '/rf_model_dr9.npz' rf_HighZ_fileName = pathToRF + '/rf_model_dr9_HighZ.npz' @@ -911,7 +911,7 @@ def isQSO_highz_faint(gflux=None, rflux=None, zflux=None, w1flux=None, colorsReducedIndex = colorsIndex[preSelection] # Path to random forest files. - pathToRF = resource_filename('desitarget', 'data') + pathToRF = str(resources.files('desitarget').joinpath('data')) # Use RF trained over DR9. rf_fileName = pathToRF + '/rf_model_dr9.npz' diff --git a/py/desitarget/sv2/sv2_cuts.py b/py/desitarget/sv2/sv2_cuts.py index ba6717eae..7855ffb30 100644 --- a/py/desitarget/sv2/sv2_cuts.py +++ b/py/desitarget/sv2/sv2_cuts.py @@ -20,7 +20,7 @@ import fitsio import numpy as np import healpy as hp -from pkg_resources import resource_filename +from importlib import resources import numpy.lib.recfunctions as rfn from importlib import import_module @@ -1516,7 +1516,7 @@ def isQSO_randomforest(gflux=None, rflux=None, zflux=None, maskbits=None, colorsReducedIndex = colorsIndex[preSelection] # Path to random forest files - pathToRF = resource_filename('desitarget', 'data') + pathToRF = str(resources.files('desitarget').joinpath('data')) # rf filenames rf_DR3_fileName = pathToRF + '/rf_model_dr3.npz' rf_DR7_fileName = pathToRF + '/rf_model_dr7.npz' diff --git a/py/desitarget/sv3/sv3_cuts.py b/py/desitarget/sv3/sv3_cuts.py index bc8a69dcd..2181db2f4 100644 --- a/py/desitarget/sv3/sv3_cuts.py +++ b/py/desitarget/sv3/sv3_cuts.py @@ -20,7 +20,7 @@ import fitsio import numpy as np import healpy as hp -from pkg_resources import resource_filename +from importlib import resources import numpy.lib.recfunctions as rfn from importlib import import_module @@ -1721,7 +1721,7 @@ def isQSO_randomforest(gflux=None, rflux=None, zflux=None, maskbits=None, colorsReducedIndex = colorsIndex[preSelection] # Path to random forest files - pathToRF = resource_filename('desitarget', 'data') + pathToRF = str(resources.files('desitarget').joinpath('data')) # rf filenames rf_DR3_fileName = pathToRF + '/rf_model_dr3.npz' rf_DR7_fileName = pathToRF + '/rf_model_dr7.npz' diff --git a/py/desitarget/targetmask.py b/py/desitarget/targetmask.py index 2ad5389c9..9af47608f 100644 --- a/py/desitarget/targetmask.py +++ b/py/desitarget/targetmask.py @@ -7,7 +7,7 @@ import os.path from desiutil.bitmask import BitMask import yaml -from pkg_resources import resource_filename +from importlib import resources def load_mask_bits(prefix=""): @@ -18,7 +18,7 @@ def load_mask_bits(prefix=""): us = '_' prename = prefix+us fn = os.path.join(prefix, "data", "{}targetmask.yaml".format(prename)) - _filepath = resource_filename('desitarget', fn) + _filepath = resources.files('desitarget').joinpath(fn) with open(_filepath) as fx: bitdefs = yaml.safe_load(fx) try: diff --git a/py/desitarget/test/__init__.py b/py/desitarget/test/__init__.py index 5514a00d1..f8626ff30 100644 --- a/py/desitarget/test/__init__.py +++ b/py/desitarget/test/__init__.py @@ -1,8 +1,5 @@ -def test_suite(): - """Returns unittest.TestSuite for this package""" - import unittest - from os.path import dirname - basedir = dirname(dirname(__file__)) - # print(desispec_dir) - return unittest.defaultTestLoader.discover(basedir, - top_level_dir=dirname(basedir)) +# Licensed under a 3-clause BSD style license - see LICENSE.rst +# -*- coding: utf-8 -*- +from __future__ import absolute_import + +from .desitarget_test_suite import runtests diff --git a/py/desitarget/test/make_testgaia.py b/py/desitarget/test/make_testgaia.py index 0dedadca5..c5f11adc2 100644 --- a/py/desitarget/test/make_testgaia.py +++ b/py/desitarget/test/make_testgaia.py @@ -7,7 +7,7 @@ import fitsio import numpy as np from time import time - from pkg_resources import resource_filename + from importlib import resources from desitarget.gaiamatch import find_gaia_files from desitarget.tychomatch import find_tycho_files from desitarget.uratmatch import find_urat_files @@ -17,7 +17,7 @@ # ADM choose the Gaia files to cover the same object # ADM locations as the sweeps/tractor files. - datadir = resource_filename('desitarget.test', 't') + datadir = resources.files('desitarget').joinpath('test/t') tractorfiles = sorted(io.list_tractorfiles(datadir)) sweepfiles = sorted(io.list_sweepfiles(datadir)) diff --git a/py/desitarget/test/test_brick_fluctuation.py b/py/desitarget/test/test_brick_fluctuation.py index b716accb2..f5953ad2b 100644 --- a/py/desitarget/test/test_brick_fluctuation.py +++ b/py/desitarget/test/test_brick_fluctuation.py @@ -57,15 +57,3 @@ def test_generate_depths(self): self.assertTrue(isinstance(self.depth[k], np.ndarray)) self.assertEqual(len(self.depth[k]), len(self.b['RA'])) self.assertEqual(len(self.depth[k]), len(self.b['DEC'])) - - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_brick_fluctuation - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_brightmask.py b/py/desitarget/test/test_brightmask.py index 7fa519f78..d26197768 100644 --- a/py/desitarget/test/test_brightmask.py +++ b/py/desitarget/test/test_brightmask.py @@ -3,7 +3,7 @@ """Test desitarget.brightmask. """ import unittest -from pkg_resources import resource_filename +from importlib import resources import os import sys import fitsio @@ -28,12 +28,12 @@ class TestBRIGHTMASK(unittest.TestCase): def setUpClass(cls): # ADM set up the necessary environment variables. cls.gaiadir_orig = os.getenv("GAIA_DIR") - testdir = 'desitarget.test' - os.environ["GAIA_DIR"] = resource_filename(testdir, 't4') + testdir = resources.files('desitarget').joinpath('test') + os.environ["GAIA_DIR"] = os.path.join(testdir, 't4') cls.tychodir_orig = os.getenv("TYCHO_DIR") - os.environ["TYCHO_DIR"] = resource_filename(testdir, 't4/tycho') + os.environ["TYCHO_DIR"] = os.path.join(testdir, 't4', 'tycho') cls.uratdir_orig = os.getenv("URAT_DIR") - os.environ["URAT_DIR"] = resource_filename(testdir, 't4/urat') + os.environ["URAT_DIR"] = os.path.join(testdir, 't4', 'urat') # ADM a temporary output directory to test writing masks. cls.maskdir = tempfile.mkdtemp() @@ -60,7 +60,7 @@ def setUpClass(cls): maglim=cls.maglim, maskepoch=cls.maskepoch) # ADM read in some targets. - targdir = resource_filename(testdir, 't') + targdir = os.path.join(testdir, 't') fn = os.path.join(targdir, 'sweep-320m005-330p000.fits') ts = fitsio.read(fn) # ADM targets are really sweeps objects, so add target fields. @@ -262,15 +262,3 @@ def test_targetid(self): brickidset = np.array( [int(bintargid[-lmostbit:-rmostbit], 2) for bintargid in bintargids]) self.assertTrue(np.all(brickidset == bid)) - - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_brightmask - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_cmx.py b/py/desitarget/test/test_cmx.py index b639f9738..bfbc3c9e9 100644 --- a/py/desitarget/test/test_cmx.py +++ b/py/desitarget/test/test_cmx.py @@ -4,7 +4,7 @@ """ import unittest import sys -from pkg_resources import resource_filename +from importlib import resources import os.path from uuid import uuid4 import numbers @@ -26,10 +26,10 @@ class TestCMX(unittest.TestCase): @classmethod def setUpClass(cls): - cls.datadir = resource_filename('desitarget.test', 't') + cls.datadir = resources.files('desitarget').joinpath('test/t') cls.tractorfiles = sorted(io.list_tractorfiles(cls.datadir)) cls.sweepfiles = sorted(io.list_sweepfiles(cls.datadir)) - cls.cmxdir = resource_filename('desitarget.test', 't3') + cls.cmxdir = resources.files('desitarget').joinpath('test/t3') # ADM find which HEALPixels are covered by test sweeps files. cls.nside = 32 @@ -43,7 +43,7 @@ def setUpClass(cls): # ADM set up the GAIA_DIR environment variable. cls.gaiadir_orig = os.getenv("GAIA_DIR") - os.environ["GAIA_DIR"] = resource_filename('desitarget.test', 't4') + os.environ["GAIA_DIR"] = str(resources.files('desitarget').joinpath('test/t4')) @classmethod def tearDownClass(cls): @@ -157,14 +157,3 @@ def test_parallel_select(self): self.assertTrue('CMX_TARGET' in targets.dtype.names) self.assertEqual(len(targets), np.count_nonzero(targets['CMX_TARGET'])) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_cmx - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_cuts.py b/py/desitarget/test/test_cuts.py index 8e11e7315..c749921b1 100644 --- a/py/desitarget/test/test_cuts.py +++ b/py/desitarget/test/test_cuts.py @@ -4,7 +4,7 @@ """ import unittest import sys -from pkg_resources import resource_filename +from importlib import resources import os.path from uuid import uuid4 import numbers @@ -27,7 +27,7 @@ class TestCuts(unittest.TestCase): @classmethod def setUpClass(cls): - cls.datadir = resource_filename('desitarget.test', 't') + cls.datadir = resources.files('desitarget').joinpath('test/t') cls.tractorfiles = sorted(io.list_tractorfiles(cls.datadir)) cls.sweepfiles = sorted(io.list_sweepfiles(cls.datadir)) @@ -43,7 +43,7 @@ def setUpClass(cls): # ADM set up the GAIA_DIR environment variable. cls.gaiadir_orig = os.getenv("GAIA_DIR") - os.environ["GAIA_DIR"] = resource_filename('desitarget.test', 't4') + os.environ["GAIA_DIR"] = str(resources.files('desitarget').joinpath('test/t4')) @classmethod def tearDownClass(cls): @@ -445,14 +445,3 @@ def test_targets_spatial_inputs(self): self.assertEqual(timesthrown, 3) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_cuts - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_geomask.py b/py/desitarget/test/test_geomask.py index 36e33bfd1..73d13a33c 100644 --- a/py/desitarget/test/test_geomask.py +++ b/py/desitarget/test/test_geomask.py @@ -3,7 +3,6 @@ """Test desitarget.geomask. """ import unittest -from pkg_resources import resource_filename import numpy as np import os @@ -57,14 +56,3 @@ def test_match(self): self.assertTrue(np.all(a[iia] == b[iib])) self.assertTrue(len(iia), len(a)) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_geomask - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_io.py b/py/desitarget/test/test_io.py index 660d7351d..b6627b809 100644 --- a/py/desitarget/test/test_io.py +++ b/py/desitarget/test/test_io.py @@ -3,7 +3,7 @@ """Test desitarget.io. """ import unittest -from pkg_resources import resource_filename +from importlib import resources import shutil import os.path from uuid import uuid4 @@ -20,7 +20,7 @@ class TestIO(unittest.TestCase): @classmethod def setUpClass(cls): - cls.datadir = resource_filename('desitarget.test', 't') + cls.datadir = str(resources.files('desitarget').joinpath('test/t')) def setUp(self): self.testdir = 'test-{}'.format(uuid4().hex) @@ -185,14 +185,3 @@ def test_write_targets(self): self.assertEqual(bt['SUBPRIORITY'][0], 2.0) self.assertNotEqual(bt['SUBPRIORITY'][1], 0.0) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_io - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_mock_build.py b/py/desitarget/test/test_mock_build.py index 1da9d6652..cccafd43d 100644 --- a/py/desitarget/test/test_mock_build.py +++ b/py/desitarget/test/test_mock_build.py @@ -6,7 +6,7 @@ import tempfile import os import shutil -from pkg_resources import resource_filename +from importlib import resources import numpy as np from astropy.table import Table import healpy as hp @@ -19,7 +19,7 @@ from desitarget.targetmask import desi_mask, bgs_mask, mws_mask class TestMockBuild(unittest.TestCase): - + def setUp(self): self.outdir = tempfile.mkdtemp() @@ -29,7 +29,7 @@ def tearDown(self): @unittest.skipUnless('DESITARGET_RUN_MOCK_UNITTEST' in os.environ, '$DESITARGET_RUN_MOCK_UNITTEST not set; skipping expensive mock tests') def test_targets_truth(self): - configfile = resource_filename('desitarget.mock', 'data/select-mock-targets.yaml') + configfile = resources.files('desitarget').joinpath('mock/data/select-mock-targets.yaml') import yaml with open(configfile) as fx: @@ -106,12 +106,3 @@ def test_sky(self): skypix = hp.ang2pix(nside, theta, phi, nest=True) self.assertEqual(set(surveypix), set(skypix)) -if __name__ == '__main__': - unittest.main() - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_mock_build - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_mtl.py b/py/desitarget/test/test_mtl.py index 9082c1e6e..72543632b 100644 --- a/py/desitarget/test/test_mtl.py +++ b/py/desitarget/test/test_mtl.py @@ -406,14 +406,3 @@ def test_zwarn_in_sync(self): "ZWARN bit value mismatch for {}".format( bitname)) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_mtl - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_mtl_multiple.py b/py/desitarget/test/test_mtl_multiple.py index aa1440bd1..1e62eb341 100644 --- a/py/desitarget/test/test_mtl_multiple.py +++ b/py/desitarget/test/test_mtl_multiple.py @@ -128,14 +128,3 @@ def test_numobs(self): toohigh |= more_zwarn > done self.assertFalse(toomany & toohigh, msg.format(bitname)) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_mtl - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_mtl_streams.py b/py/desitarget/test/test_mtl_streams.py index 2c9ce23e8..48decda90 100644 --- a/py/desitarget/test/test_mtl_streams.py +++ b/py/desitarget/test/test_mtl_streams.py @@ -123,14 +123,3 @@ def test_zcat(self): self.assertTrue(np.all(mtl['PRIORITY'] == self.post_prio[numobs])) self.assertTrue(np.all(mtl['NUMOBS_MORE'] == self.post_nom[numobs])) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_mtl_streams - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_priorities.py b/py/desitarget/test/test_priorities.py index a18feca15..dd9ffbbe4 100644 --- a/py/desitarget/test/test_priorities.py +++ b/py/desitarget/test/test_priorities.py @@ -347,14 +347,3 @@ def test_cmx_priorities(self): self.assertLess(lowest_bgs_priority_zgood, lowest_mws_priority) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_priorities - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_qa.py b/py/desitarget/test/test_qa.py index b76a59c06..d3f600abe 100644 --- a/py/desitarget/test/test_qa.py +++ b/py/desitarget/test/test_qa.py @@ -10,7 +10,7 @@ import warnings import numpy as np import healpy as hp -from pkg_resources import resource_filename +from importlib import resources from glob import glob from desitarget.QA import make_qa_page, _load_systematics from desitarget.QA import _parse_tcnames, _in_desi_footprint @@ -24,7 +24,7 @@ class TestQA(unittest.TestCase): @classmethod def setUpClass(cls): - cls.datadir = resource_filename('desitarget.test', 't/') + cls.datadir = resources.files('desitarget').joinpath('test/t') cls.targfile = os.path.join(cls.datadir, 'targets.fits') cls.mocktargfile = os.path.join(cls.datadir, 'targets-mocks.fits') cls.cmxfile = os.path.join(cls.datadir, 'cmx-targets.fits') @@ -148,14 +148,3 @@ def test_in_footprint(self): self.assertEqual(len(tin[0]), 1) self.assertEqual(len(tout[0]), 0) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_qa - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_secondary.py b/py/desitarget/test/test_secondary.py index 826604aa2..7cd8f5364 100644 --- a/py/desitarget/test/test_secondary.py +++ b/py/desitarget/test/test_secondary.py @@ -7,7 +7,7 @@ import unittest from importlib import import_module from glob import glob -from pkg_resources import resource_filename +from importlib import resources class TestSECONDARY(unittest.TestCase): @@ -16,7 +16,7 @@ def setUp(self): # ADM these are the allowed types of observations of secondaries. self.flavors = {"SPARE", "DEDICATED", "SSV", "QSO", "TOO"} # ADM this is the list of defined directories for SV. - fns = sorted(glob(resource_filename('desitarget', 'sv*'))) + fns = sorted(glob(str(resources.files('desitarget').joinpath('sv*')))) svlist = [os.path.basename(fn) for fn in fns if os.path.isdir(fn)] # ADM loop over all SV flavors and main survey to get all masks. from desitarget.targetmask import scnd_mask as Mx @@ -67,14 +67,3 @@ def test_downsample(self): # ADM check downsample is always less than 1 (< 100%). self.assertTrue(np.all(np.array(ds) <= 1)) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_mtl - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_skyfibers.py b/py/desitarget/test/test_skyfibers.py index 572ae8a89..3442fedbb 100644 --- a/py/desitarget/test/test_skyfibers.py +++ b/py/desitarget/test/test_skyfibers.py @@ -3,7 +3,7 @@ """Test desitarget.skyfibers. """ import unittest -from pkg_resources import resource_filename +from importlib import resources import numpy as np from glob import glob @@ -23,7 +23,7 @@ class TestSKYFIBERS(unittest.TestCase): @classmethod def setUp(self): # ADM location of input test survey directory structure. - self.sd = resource_filename('desitarget.test', 'dr6') + self.sd = str(resources.files('desitarget').joinpath('test/dr6')) # ADM create the survey object. self.survey = LegacySurveyData(self.sd) @@ -183,14 +183,3 @@ def test_select_skies(self): # ADM check the wrapper generates a single brick correctly. self.assertTrue(np.all(ss == skies)) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_skyfibers - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_subpriority.py b/py/desitarget/test/test_subpriority.py index 1c04e85cf..fa7b06f8e 100644 --- a/py/desitarget/test/test_subpriority.py +++ b/py/desitarget/test/test_subpriority.py @@ -3,7 +3,6 @@ """Test desitarget.subpriority """ import unittest -from pkg_resources import resource_filename import numpy as np import os from astropy.table import Table @@ -66,14 +65,3 @@ def test_override_duplicates(self): else: self.assertEqual(targets['SUBPRIORITY'][i], orig_subpriority[i]) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_geomask - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_sv.py b/py/desitarget/test/test_sv.py index 94e116553..384d7c80b 100644 --- a/py/desitarget/test/test_sv.py +++ b/py/desitarget/test/test_sv.py @@ -10,7 +10,7 @@ import healpy as hp from glob import glob -from pkg_resources import resource_filename +from importlib import resources from desitarget import io, cuts from desitarget.targetmask import desi_mask @@ -21,7 +21,7 @@ class TestSV(unittest.TestCase): @classmethod def setUpClass(cls): - cls.datadir = resource_filename('desitarget.test', 't') + cls.datadir = resources.files('desitarget').joinpath('test/t') cls.tractorfiles = sorted(io.list_tractorfiles(cls.datadir)) cls.sweepfiles = sorted(io.list_sweepfiles(cls.datadir)) @@ -37,7 +37,7 @@ def setUpClass(cls): # ADM set up the GAIA_DIR environment variable. cls.gaiadir_orig = os.getenv("GAIA_DIR") - os.environ["GAIA_DIR"] = resource_filename('desitarget.test', 't4') + os.environ["GAIA_DIR"] = str(resources.files('desitarget').joinpath('test/t4')) @classmethod def tearDownClass(cls): @@ -50,7 +50,7 @@ def test_sv_cuts(self): """Test SV cuts work. """ # ADM find all svX sub-directories in the desitarget directory. - fns = sorted(glob(resource_filename('desitarget', 'sv*'))) + fns = sorted(glob(str(resources.files('desitarget').joinpath('sv*')))) svlist = [os.path.basename(fn) for fn in fns if os.path.isdir(fn)] self.assertEqual(len(svlist), 3) @@ -90,14 +90,3 @@ def test_sv_cuts(self): self.assertEqual(number_of_calls, 3) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_sv - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_targetids.py b/py/desitarget/test/test_targetids.py index 315df5517..0586603e5 100644 --- a/py/desitarget/test/test_targetids.py +++ b/py/desitarget/test/test_targetids.py @@ -99,14 +99,3 @@ def test_decode_negative_targetid(self): self.assertLess(np.abs(ra1-ra), delta) self.assertLess(np.abs(dec1-dec), delta) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_geomask - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_top_level.py b/py/desitarget/test/test_top_level.py index 28890cbab..f3bcb7ea9 100644 --- a/py/desitarget/test/test_top_level.py +++ b/py/desitarget/test/test_top_level.py @@ -38,14 +38,3 @@ def test_version(self): else: self.assertRegexpMatches(theVersion, self.versionre) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_top_level - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/test/test_units.py b/py/desitarget/test/test_units.py index b636e4692..602960b63 100644 --- a/py/desitarget/test/test_units.py +++ b/py/desitarget/test/test_units.py @@ -9,7 +9,7 @@ import astropy.units as u import numpy as np from astropy.table import Table -from pkg_resources import resource_filename +from importlib import resources from desitarget.brightmask import maskdatamodel as dma from desitarget.gaiamatch import gaiadatamodel as dmb from desitarget.gfa import gfadatamodel as dmc @@ -25,7 +25,7 @@ class TestUNITS(unittest.TestCase): def setUp(self): # ADM load the units yaml file. basefn = os.path.join('data', 'units.yaml') - self.fn = resource_filename('desitarget', basefn) + self.fn = resources.files('desitarget').joinpath(basefn) with open(self.fn) as f: self.units = yaml.safe_load(f) @@ -88,14 +88,3 @@ def test_assigning(self): unitlist, tabunits) self.assertTrue(np.all(unitlist[tabunits != unitlist] == ""), msg=msg) - -if __name__ == '__main__': - unittest.main() - - -def test_suite(): - """Allows testing of only this module with the command: - - python setup.py test -m desitarget.test.test_mtl - """ - return unittest.defaultTestLoader.loadTestsFromName(__name__) diff --git a/py/desitarget/train/train_test_RF/Convert_to_DESI_RF.py b/py/desitarget/train/train_test_RF/Convert_to_DESI_RF.py index 2196ba216..ce6813d47 100644 --- a/py/desitarget/train/train_test_RF/Convert_to_DESI_RF.py +++ b/py/desitarget/train/train_test_RF/Convert_to_DESI_RF.py @@ -17,7 +17,6 @@ import time from desitarget.myRF import myRF -from pkg_resources import resource_filename import joblib from sklearn.ensemble import RandomForestClassifier diff --git a/py/desitarget/train/train_test_RF/Some_tests.py b/py/desitarget/train/train_test_RF/Some_tests.py index ba369dd92..8544d7304 100644 --- a/py/desitarget/train/train_test_RF/Some_tests.py +++ b/py/desitarget/train/train_test_RF/Some_tests.py @@ -4,7 +4,7 @@ import joblib from desitarget.myRF import myRF -from pkg_resources import resource_filename +from importlib import resources import matplotlib.pyplot as plt from matplotlib.gridspec import GridSpec @@ -59,7 +59,7 @@ def compute_proba_desitarget(sample): attributes = build_attributes(len(sample), nfeatures, sample) print("NOT FINAL VERSION 888") - pathToRF = resource_filename('desitarget', 'data') + pathToRF = str(resources.files('desitarget').joinpath('data')) rf_fileName = pathToRF + f'/rf_model_dr9.npz' rf_Highz_fileName = pathToRF + f'/rf_model_dr9_HighZ.npz' diff --git a/py/desitarget/tychomatch.py b/py/desitarget/tychomatch.py index 75a205596..bfa773159 100644 --- a/py/desitarget/tychomatch.py +++ b/py/desitarget/tychomatch.py @@ -13,7 +13,6 @@ import pickle from datetime import datetime -from pkg_resources import resource_filename from time import time from astropy.io import ascii from glob import glob diff --git a/py/desitarget/uratmatch.py b/py/desitarget/uratmatch.py index 9a3df8f2e..a47ed3828 100644 --- a/py/desitarget/uratmatch.py +++ b/py/desitarget/uratmatch.py @@ -14,7 +14,7 @@ import requests import pickle -from pkg_resources import resource_filename +from importlib import resources from time import time from astropy.io import ascii from glob import glob @@ -177,8 +177,8 @@ def urat_binary_to_csv(): .format(time()-start)) # ADM check the v1dump executable has been compiled. - readme = resource_filename('desitarget', 'urat/fortran/README') - cmd = resource_filename('desitarget', 'urat/fortran/v1dump') + readme = resources.files('desitarget').joinpath('urat/fortran/README') + cmd = resources.files('desitarget').joinpath('urat/fortran/v1dump') if not (os.path.exists(cmd) and os.access(cmd, os.X_OK)): msg = "{} must have been compiled (see {})".format(cmd, readme) log.critical(msg)