diff --git a/.github/workflows/ci_cron.yml b/.github/workflows/ci_cron.yml
index f57c373739..2339ee6942 100644
--- a/.github/workflows/ci_cron.yml
+++ b/.github/workflows/ci_cron.yml
@@ -15,8 +15,8 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest]
- python: ['3.11', '3.12']
- toxenv: [test-alldeps, test-numpydev, test-linetoolsdev, test-gingadev, test-astropydev]
+ python: ['3.11', '3.12', '3.13']
+ toxenv: [test, test-alldeps-cov, test-numpydev, test-linetoolsdev, test-gingadev, test-astropydev]
steps:
- name: Check out repository
uses: actions/checkout@v3
diff --git a/.github/workflows/ci_tests.yml b/.github/workflows/ci_tests.yml
index a5f541cc70..6559028df7 100644
--- a/.github/workflows/ci_tests.yml
+++ b/.github/workflows/ci_tests.yml
@@ -17,7 +17,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest]
- python: ['3.11', '3.12']
+ python: ['3.11', '3.12', '3.13']
toxenv: [test, test-alldeps-cov, test-numpydev, test-linetoolsdev, test-gingadev, test-astropydev]
steps:
- name: Check out repository
@@ -48,7 +48,7 @@ jobs:
fail-fast: false
matrix:
os: [windows-latest, macos-latest]
- python: ['3.11', '3.12']
+ python: ['3.11', '3.12', '3.13']
toxenv: [test-alldeps]
steps:
- name: Check out repository
diff --git a/deprecated/qa.py b/deprecated/qa.py
index 3eb94ff317..67992554ae 100644
--- a/deprecated/qa.py
+++ b/deprecated/qa.py
@@ -213,3 +213,23 @@ def match_qa(arc_spec, tcent, line_list, IDs, scores, outfile = None, title=None
plt.close()
return
+
+
+def gen_timestamp():
+ """ Generate a simple time stamp including the current user
+
+ Returns
+ -------
+ timestamp : str
+ user_datetime
+ """
+ tstamp = datetime.datetime.today().strftime('%Y-%m-%d-T%Hh%Mm%Ss')
+ try:
+ import getpass
+ user = getpass.getuser()
+ except ModuleNotFoundError:
+ # there appears to be a bug in getpass in windows systems where the pwd module doesn't load
+ user = os.getlogin()
+ # Return
+ return '{:s}_{:s}'.format(user, tstamp)
+
diff --git a/doc/help/pypeit_chk_for_calibs.rst b/doc/help/pypeit_chk_for_calibs.rst
index 653b5d1e81..745a4b5d90 100644
--- a/doc/help/pypeit_chk_for_calibs.rst
+++ b/doc/help/pypeit_chk_for_calibs.rst
@@ -12,7 +12,7 @@
options:
-h, --help show this help message and exit
- -s SPECTROGRAPH, --spectrograph SPECTROGRAPH
+ -s, --spectrograph SPECTROGRAPH
A valid spectrograph identifier: aat_uhrf, bok_bc,
gemini_flamingos1, gemini_flamingos2,
gemini_gmos_north_e2v, gemini_gmos_north_ham,
@@ -34,7 +34,7 @@
soar_goodman_red, tng_dolores, vlt_fors2, vlt_sinfoni,
vlt_xshooter_nir, vlt_xshooter_uvb, vlt_xshooter_vis,
wht_isis_blue, wht_isis_red (default: None)
- -e EXTENSION, --extension EXTENSION
+ -e, --extension EXTENSION
File extension to use. Must include the period (e.g.,
".fits") and it must be one of the allowed extensions
for this spectrograph. If None, root directory will be
diff --git a/doc/help/pypeit_clean_cache.rst b/doc/help/pypeit_clean_cache.rst
index 7e07b2134d..af59b1044a 100644
--- a/doc/help/pypeit_clean_cache.rst
+++ b/doc/help/pypeit_clean_cache.rst
@@ -8,13 +8,13 @@
options:
-h, --help show this help message and exit
- -p PATTERN [PATTERN ...], --pattern PATTERN [PATTERN ...]
+ -p, --pattern PATTERN [PATTERN ...]
Remove any files matching the provided pattern. If
combined with --version, this selects only files
downloaded from the identified GitHub versoin. If the
version is not specified, any file matching the provided
pattern(s) are removed. (default: None)
- -v VERSION [VERSION ...], --version VERSION [VERSION ...]
+ -v, --version VERSION [VERSION ...]
Remove files associated one or more provided tags,
branches, or commit references on GitHub. These must be
an exact match to the relevant GitHub reference. If
diff --git a/doc/help/pypeit_coadd_1dspec.rst b/doc/help/pypeit_coadd_1dspec.rst
index d363703531..de925ee79b 100644
--- a/doc/help/pypeit_coadd_1dspec.rst
+++ b/doc/help/pypeit_coadd_1dspec.rst
@@ -107,7 +107,7 @@
--show show QA during coadding process
--par_outfile PAR_OUTFILE
Output to save the parameters
- -v VERBOSITY, --verbosity VERBOSITY
+ -v, --verbosity VERBOSITY
Verbosity level between 0 [none] and 2 [all]. Default:
1. Level 2 writes a log with filename
coadd_1dspec_YYYYMMDD-HHMM.log
diff --git a/doc/help/pypeit_coadd_2dspec.rst b/doc/help/pypeit_coadd_2dspec.rst
index d5d0aae36c..91c8a3b4ee 100644
--- a/doc/help/pypeit_coadd_2dspec.rst
+++ b/doc/help/pypeit_coadd_2dspec.rst
@@ -21,7 +21,7 @@
--basename BASENAME Basename of files to save the parameters, spec1d, and
spec2d (default: None)
--debug show debug plots? (default: False)
- -v VERBOSITY, --verbosity VERBOSITY
+ -v, --verbosity VERBOSITY
Verbosity level between 0 [none] and 2 [all]. Default:
1. Level 2 writes a log with filename
coadd_2dspec_YYYYMMDD-HHMM.log (default: 1)
diff --git a/doc/help/pypeit_coadd_datacube.rst b/doc/help/pypeit_coadd_datacube.rst
index 8443926bdf..c5d29fed99 100644
--- a/doc/help/pypeit_coadd_datacube.rst
+++ b/doc/help/pypeit_coadd_datacube.rst
@@ -13,7 +13,7 @@
--det DET Detector (default: 1)
-o, --overwrite Overwrite any existing files/directories (default:
False)
- -v VERBOSITY, --verbosity VERBOSITY
+ -v, --verbosity VERBOSITY
Verbosity level between 0 [none] and 2 [all]. Default:
1. Level 2 writes a log with filename
coadd_datacube_YYYYMMDD-HHMM.log (default: 1)
diff --git a/doc/help/pypeit_collate_1d.rst b/doc/help/pypeit_collate_1d.rst
index 1054c1ee55..ca4ab6036e 100644
--- a/doc/help/pypeit_collate_1d.rst
+++ b/doc/help/pypeit_collate_1d.rst
@@ -94,7 +94,7 @@
to crash or lead to erroneous results. I.e., you really
need to know what you are doing if you set this to
False!
- -v VERBOSITY, --verbosity VERBOSITY
+ -v, --verbosity VERBOSITY
Verbosity level between 0 [none] and 2 [all]. Default:
1. Level 2 writes a log with filename
collate_1d_YYYYMMDD-HHMM.log
diff --git a/doc/help/pypeit_extract_datacube.rst b/doc/help/pypeit_extract_datacube.rst
index f4b16eab69..dd395e3ed3 100644
--- a/doc/help/pypeit_extract_datacube.rst
+++ b/doc/help/pypeit_extract_datacube.rst
@@ -13,16 +13,16 @@
options:
-h, --help show this help message and exit
- -e EXT_FILE, --ext_file EXT_FILE
+ -e, --ext_file EXT_FILE
Configuration file with extraction parameters (default:
None)
- -s SAVE, --save SAVE Output spec1d filename (default: None)
+ -s, --save SAVE Output spec1d filename (default: None)
-o, --overwrite Overwrite any existing files/directories (default:
False)
- -b BOXCAR_RADIUS, --boxcar_radius BOXCAR_RADIUS
+ -b, --boxcar_radius BOXCAR_RADIUS
Radius of the circular boxcar (in arcseconds) to use for
the extraction. (default: None)
- -v VERBOSITY, --verbosity VERBOSITY
+ -v, --verbosity VERBOSITY
Verbosity level between 0 [none] and 2 [all]. Default:
1. Level 2 writes a log with filename
extract_datacube_YYYYMMDD-HHMM.log (default: 1)
diff --git a/doc/help/pypeit_flux_calib.rst b/doc/help/pypeit_flux_calib.rst
index 162dab294c..8af82dd6e4 100644
--- a/doc/help/pypeit_flux_calib.rst
+++ b/doc/help/pypeit_flux_calib.rst
@@ -50,7 +50,7 @@
options:
-h, --help show this help message and exit
--par_outfile Output to save the parameters
- -v VERBOSITY, --verbosity VERBOSITY
+ -v, --verbosity VERBOSITY
Verbosity level between 0 [none] and 2 [all]. Default:
1. Level 2 writes a log with filename
flux_calib_YYYYMMDD-HHMM.log
diff --git a/doc/help/pypeit_identify.rst b/doc/help/pypeit_identify.rst
index df7667c261..91c1347213 100644
--- a/doc/help/pypeit_identify.rst
+++ b/doc/help/pypeit_identify.rst
@@ -41,7 +41,7 @@
--force_save Save the solutions, despite the RMS (default: False)
--rescale_resid Rescale the residual plot to include all points?
(default: False)
- -v VERBOSITY, --verbosity VERBOSITY
+ -v, --verbosity VERBOSITY
Verbosity level between 0 [none] and 2 [all]. Default:
1. Level 2 writes a log with filename identify_YYYYMMDD-
HHMM.log (default: 1)
diff --git a/doc/help/pypeit_obslog.rst b/doc/help/pypeit_obslog.rst
index 5b399fcee0..f473def8c7 100644
--- a/doc/help/pypeit_obslog.rst
+++ b/doc/help/pypeit_obslog.rst
@@ -34,7 +34,7 @@
options:
-h, --help show this help message and exit
- -r ROOT, --root ROOT Root to search for data files. You can provide the top-
+ -r, --root ROOT Root to search for data files. You can provide the top-
level directory (e.g., /data/Kast) or the search string
up through the wildcard (.e.g, /data/Kast/b). Use the
--extension option to set the types of files to search
@@ -44,7 +44,7 @@
associated header cards. Metadata keys with header cards
that are None have no simple mapping between keyword and
header card. (default: False)
- -c COLUMNS, --columns COLUMNS
+ -c, --columns COLUMNS
A comma-separated list of columns to include in the
output table. Each column must be a valid pypeit
metadata keyword specific to this spectrograph (run
@@ -57,7 +57,7 @@
(default: pypeit)
-b, --bad_frames Clean the output of bad frames that cannot be reduced by
pypeit. (default: False)
- -t BAD_TYPES, --bad_types BAD_TYPES
+ -t, --bad_types BAD_TYPES
Dictates how frames that could not be given a valid type
should be treated. Options are: "keep" to include them
in the output, "rm" to remove them from the output,
@@ -72,20 +72,20 @@
IPython session that you can use to interact with the
table (an Astropy.Table called fitstbl) directly.
(default: False)
- -s SORT, --sort SORT Metadata keyword (pypeit-specific) to use to sort the
+ -s, --sort SORT Metadata keyword (pypeit-specific) to use to sort the
output table. (default: mjd)
- -e EXTENSION, --extension EXTENSION
+ -e, --extension EXTENSION
File extension to use. Must include the period (e.g.,
".fits") and it must be one of the allowed extensions
for this spectrograph. If None, root directory will be
searched for all files with any of the allowed
extensions. (default: None)
- -d OUTPUT_PATH, --output_path OUTPUT_PATH
+ -d, --output_path OUTPUT_PATH
Path to top-level output directory. (default: current
working directory)
-o, --overwrite Overwrite any existing files/directories (default:
False)
- -f FILE, --file FILE Name for the ascii output file. Any leading directory
+ -f, --file FILE Name for the ascii output file. Any leading directory
path is stripped; use -d to set the output directory. If
None, the table is just printed to stdout. If set to
'default', the file is set to [spectrograph].obslog.
diff --git a/doc/help/pypeit_sensfunc.rst b/doc/help/pypeit_sensfunc.rst
index 26ac6639bb..9a7be117f2 100644
--- a/doc/help/pypeit_sensfunc.rst
+++ b/doc/help/pypeit_sensfunc.rst
@@ -55,7 +55,7 @@
[sensfunc]
multi_spec_det = 3,7
- -o OUTFILE, --outfile OUTFILE
+ -o, --outfile OUTFILE
Output file for sensitivity function. If not specified,
the sensitivity function will be written out to a
standard filename in the current working directory, i.e.
@@ -69,7 +69,7 @@
same extensions for QA and throughput will be used if
outfile is provided but with .fits trimmed off if it is
in the filename.
- -s SENS_FILE, --sens_file SENS_FILE
+ -s, --sens_file SENS_FILE
Configuration file with sensitivity function parameters
-f, --use_flat Use the extracted spectrum of the flatfield calibration
to estimate the blaze function when generating the
@@ -89,7 +89,7 @@
--par_outfile PAR_OUTFILE
Name of output file to save the parameters used by the
fit
- -v VERBOSITY, --verbosity VERBOSITY
+ -v, --verbosity VERBOSITY
Verbosity level between 0 [none] and 2 [all]. Default:
1. Level 2 writes a log with filename sensfunc_YYYYMMDD-
HHMM.log
diff --git a/doc/help/pypeit_setup.rst b/doc/help/pypeit_setup.rst
index 01e0c078dd..180bcf4142 100644
--- a/doc/help/pypeit_setup.rst
+++ b/doc/help/pypeit_setup.rst
@@ -10,7 +10,7 @@
options:
-h, --help show this help message and exit
- -s SPECTROGRAPH, --spectrograph SPECTROGRAPH
+ -s, --spectrograph SPECTROGRAPH
A valid spectrograph identifier: aat_uhrf, bok_bc,
gemini_flamingos1, gemini_flamingos2,
gemini_gmos_north_e2v, gemini_gmos_north_ham,
@@ -32,24 +32,24 @@
soar_goodman_red, tng_dolores, vlt_fors2, vlt_sinfoni,
vlt_xshooter_nir, vlt_xshooter_uvb, vlt_xshooter_vis,
wht_isis_blue, wht_isis_red (default: None)
- -r ROOT [ROOT ...], --root ROOT [ROOT ...]
+ -r, --root ROOT [ROOT ...]
Root to search for data files. You can provide the top-
level directory (e.g., /data/Kast) or the search string
up through the wildcard (.e.g, /data/Kast/b). Use the
--extension option to set the types of files to search
for. (default: current working directory)
- -e EXTENSION, --extension EXTENSION
+ -e, --extension EXTENSION
File extension to use. Must include the period (e.g.,
".fits") and it must be one of the allowed extensions
for this spectrograph. If None, root directory will be
searched for all files with any of the allowed
extensions. (default: None)
- -d OUTPUT_PATH, --output_path OUTPUT_PATH
+ -d, --output_path OUTPUT_PATH
Path to top-level output directory. (default: current
working directory)
-o, --overwrite Overwrite any existing files/directories (default:
False)
- -c CFG_SPLIT, --cfg_split CFG_SPLIT
+ -c, --cfg_split CFG_SPLIT
Generate the PypeIt files and folders by input
configuration. To write all unique configurations
identifed, use 'all', otherwise provide the list of
@@ -62,7 +62,7 @@
-m, --manual_extraction
Include the manual extraction column for the user to
edit (default: False)
- -v VERBOSITY, --verbosity VERBOSITY
+ -v, --verbosity VERBOSITY
Verbosity level between 0 [none] and 2 [all]. Default:
1. Level 2 writes a log with filename setup_YYYYMMDD-
HHMM.log (default: 1)
diff --git a/doc/help/pypeit_setup_coadd2d.rst b/doc/help/pypeit_setup_coadd2d.rst
index 54d9f23f6a..185fbbdb66 100644
--- a/doc/help/pypeit_setup_coadd2d.rst
+++ b/doc/help/pypeit_setup_coadd2d.rst
@@ -1,10 +1,9 @@
.. code-block:: console
$ pypeit_setup_coadd2d -h
- usage: pypeit_setup_coadd2d [-h]
- (-f PYPEIT_FILE | -d SCIENCE_DIR [SCIENCE_DIR ...])
- [--keep_par] [--obj OBJ [OBJ ...]]
- [--det DET [DET ...]]
+ usage: pypeit_setup_coadd2d [-h] (-f PYPEIT_FILE |
+ -d SCIENCE_DIR [SCIENCE_DIR ...]) [--keep_par]
+ [--obj OBJ [OBJ ...]] [--det DET [DET ...]]
[--only_slits ONLY_SLITS [ONLY_SLITS ...]]
[--exclude_slits EXCLUDE_SLITS [EXCLUDE_SLITS ...]]
[--spat_toler SPAT_TOLER] [--offsets OFFSETS]
@@ -16,9 +15,9 @@
options:
-h, --help show this help message and exit
- -f PYPEIT_FILE, --pypeit_file PYPEIT_FILE
+ -f, --pypeit_file PYPEIT_FILE
PypeIt reduction file (default: None)
- -d SCIENCE_DIR [SCIENCE_DIR ...], --science_dir SCIENCE_DIR [SCIENCE_DIR ...]
+ -d, --science_dir SCIENCE_DIR [SCIENCE_DIR ...]
One or more directories with spec2d files to stack (use
wildcard to specify multiple directories). (default:
None)
diff --git a/doc/help/pypeit_show_2dspec.rst b/doc/help/pypeit_show_2dspec.rst
index 9b46fbc745..18b4e3f4b5 100644
--- a/doc/help/pypeit_show_2dspec.rst
+++ b/doc/help/pypeit_show_2dspec.rst
@@ -45,7 +45,7 @@
--prefix PREFIX Channel name prefix [lets you display more than one set]
(default: )
--no_clear Do *not* clear all existing tabs (default: True)
- -v VERBOSITY, --verbosity VERBOSITY
+ -v, --verbosity VERBOSITY
Verbosity level between 0 [none] and 2 [all] (default:
1)
--try_old Attempt to load old datamodel versions. A crash may
diff --git a/doc/help/pypeit_skysub_regions.rst b/doc/help/pypeit_skysub_regions.rst
index 99e96054be..43f669eeda 100644
--- a/doc/help/pypeit_skysub_regions.rst
+++ b/doc/help/pypeit_skysub_regions.rst
@@ -19,7 +19,7 @@
-i, --initial Use initial slit edges? (default: False)
-f, --flexure Use flexure corrected slit edges? (default: False)
-s, --standard List standard stars as well? (default: False)
- -v VERBOSITY, --verbosity VERBOSITY
+ -v, --verbosity VERBOSITY
Verbosity level between 0 [none] and 2 [all]. Default:
1. Level 2 writes a log with filename
skysub_regions_YYYYMMDD-HHMM.log (default: 1)
diff --git a/doc/help/pypeit_tellfit.rst b/doc/help/pypeit_tellfit.rst
index 134ba35556..743acf8e1a 100644
--- a/doc/help/pypeit_tellfit.rst
+++ b/doc/help/pypeit_tellfit.rst
@@ -28,15 +28,15 @@
poly = For other type object, You might need to set
fit_wv_min_max, and norder in the tell_file.
- -r REDSHIFT, --redshift REDSHIFT
+ -r, --redshift REDSHIFT
Specify redshift. Used with the --objmodel qso option
above.
- -g TELL_GRID, --tell_grid TELL_GRID
+ -g, --tell_grid TELL_GRID
Telluric grid. You should download the giant grid file
to the pypeit/data/telluric folder. It should only be
passed if you want to overwrite the default tell_grid
that is set via each spectrograph file.
- -p PCA_FILE, --pca_file PCA_FILE
+ -p, --pca_file PCA_FILE
Quasar PCA fits file with full path. The default file
(qso_pca_1200_3100.fits) is stored in the
pypeit/data/telluric folder. If you change the fits
@@ -44,7 +44,7 @@
the tell_file to specify the wavelength coverage of your
model. The defaults are pca_lower=1220. and
pca_upper=3100.
- -t TELL_FILE, --tell_file TELL_FILE
+ -t, --tell_file TELL_FILE
Configuration file to change default telluric
parameters. Note that the parameters in this file will
be overwritten if you set argument in your terminal.
@@ -71,7 +71,7 @@
--par_outfile PAR_OUTFILE
Name of output file to save the parameters used by the
fit
- -v VERBOSITY, --verbosity VERBOSITY
+ -v, --verbosity VERBOSITY
Verbosity level between 0 [none] and 2 [all]. Default:
1. Level 2 writes a log with filename tellfit_YYYYMMDD-
HHMM.log
diff --git a/doc/help/pypeit_trace_edges.rst b/doc/help/pypeit_trace_edges.rst
index a9b5e21814..cd22f7ba57 100644
--- a/doc/help/pypeit_trace_edges.rst
+++ b/doc/help/pypeit_trace_edges.rst
@@ -10,21 +10,20 @@
options:
-h, --help show this help message and exit
- -f PYPEIT_FILE, --pypeit_file PYPEIT_FILE
+ -f, --pypeit_file PYPEIT_FILE
PypeIt reduction file (default: None)
- -t TRACE_FILE, --trace_file TRACE_FILE
+ -t, --trace_file TRACE_FILE
Image to trace (default: None)
- -g GROUP, --group GROUP
- If providing a pypeit file, use the trace images for
+ -g, --group GROUP If providing a pypeit file, use the trace images for
this calibration group. If None, use the first
calibration group. (default: None)
- -d [DETECTOR ...], --detector [DETECTOR ...]
+ -d, --detector [DETECTOR ...]
Detector(s) to process. If more than one, the list of
detectors must be one of the allowed mosaics hard-coded
for the selected spectrograph. Using "mosaic" for
gemini_gmos, keck_deimos, or keck_lris will use the
default mosaic. (default: None)
- -s SPECTROGRAPH, --spectrograph SPECTROGRAPH
+ -s, --spectrograph SPECTROGRAPH
A valid spectrograph identifier, which is only used if
providing files directly: aat_uhrf, bok_bc,
gemini_flamingos1, gemini_flamingos2,
@@ -47,14 +46,14 @@
soar_goodman_red, tng_dolores, vlt_fors2, vlt_sinfoni,
vlt_xshooter_nir, vlt_xshooter_uvb, vlt_xshooter_vis,
wht_isis_blue, wht_isis_red (default: None)
- -b BINNING, --binning BINNING
+ -b, --binning BINNING
Image binning in spectral and spatial directions. Only
used if providing files directly; default is 1,1.
(default: None)
- -p REDUX_PATH, --redux_path REDUX_PATH
+ -p, --redux_path REDUX_PATH
Path to top-level output directory. (default: current
working directory)
- -c CALIB_DIR, --calib_dir CALIB_DIR
+ -c, --calib_dir CALIB_DIR
Name for directory in output path for calibration
file(s) relative to the top-level directory. (default:
Calibrations)
@@ -63,7 +62,7 @@
--debug Run in debug mode. (default: False)
--show Show the stages of trace refinements (only for the new
code). (default: False)
- -v VERBOSITY, --verbosity VERBOSITY
+ -v, --verbosity VERBOSITY
Verbosity level between 0 [none] and 2 [all]. Default:
1. Level 2 writes a log with filename
trace_edges_YYYYMMDD-HHMM.log (default: 1)
diff --git a/doc/help/run_pypeit.rst b/doc/help/run_pypeit.rst
index b0262023ad..e1c41d7f54 100644
--- a/doc/help/run_pypeit.rst
+++ b/doc/help/run_pypeit.rst
@@ -4,7 +4,7 @@
usage: run_pypeit [-h] [-v VERBOSITY] [-r REDUX_PATH] [-m] [-s] [-o] [-c]
pypeit_file
- ## [1;37;42mPypeIt : The Python Spectroscopic Data Reduction Pipeline v1.16.1.dev635+g9540496b9[0m
+ ## [1;37;42mPypeIt : The Python Spectroscopic Data Reduction Pipeline v1.17.1.dev2+g6e8b74d14[0m
##
## Available spectrographs include:
## aat_uhrf, bok_bc, gemini_flamingos1, gemini_flamingos2,
@@ -29,9 +29,9 @@
options:
-h, --help show this help message and exit
- -v VERBOSITY, --verbosity VERBOSITY
+ -v, --verbosity VERBOSITY
Verbosity level between 0 [none] and 2 [all]
- -r REDUX_PATH, --redux_path REDUX_PATH
+ -r, --redux_path REDUX_PATH
Path to directory for the reduction. Only advised for
testing
-m, --do_not_reuse_calibs
diff --git a/doc/include/dependencies_table.rst b/doc/include/dependencies_table.rst
index 5156b259ec..c6081eab84 100644
--- a/doc/include/dependencies_table.rst
+++ b/doc/include/dependencies_table.rst
@@ -1,5 +1,5 @@
======================= ========================================================================================================================================================================================================================================================================================================================================================
-Python Version ``>=3.11,<3.13``
-Required for users ``IPython>=8.0.0``, ``PyERFA>=2.0.0``, ``PyYAML>=6.0``, ``astropy>=6.0``, ``bottleneck``, ``configobj>=5.0.6``, ``extension-helpers>=1.0``, ``fast-histogram>=0.11``, ``ginga>=5.1.0``, ``linetools>=0.3.2``, ``matplotlib>=3.7``, ``numpy>=1.24``, ``packaging>=22.0``, ``pygithub``, ``pyqt6``, ``qtpy>=2.2.0``, ``scikit-learn>=1.2``, ``scipy>=1.9``
+Python Version ``>=3.11,<3.14``
+Required for users ``IPython>=8.0.0``, ``PyERFA>=2.0.0``, ``PyYAML>=6.0``, ``astropy>=6.0``, ``bottleneck``, ``configobj>=5.0.6``, ``extension-helpers>=1.0``, ``fast-histogram>=0.11``, ``ginga>=5.1.0``, ``linetools>=0.3.2``, ``matplotlib>=3.7``, ``numpy>=1.26``, ``packaging>=22.0``, ``pygithub``, ``pyqt6``, ``qtpy>=2.2.0``, ``scikit-learn>=1.2``, ``scipy>=1.9``
Required for developers ``coverage``, ``docutils<0.21``, ``psutil``, ``pygit2``, ``pytest-astropy``, ``pytest-cov``, ``pytest-qt``, ``pytest>=7.0.0``, ``scikit-image>=0.23``, ``specutils>=1.13``, ``sphinx-automodapi``, ``sphinx>=1.6,<8``, ``sphinx_rtd_theme==2.0.0``, ``tox``
======================= ========================================================================================================================================================================================================================================================================================================================================================
diff --git a/doc/include/dev_suite_readme.rst b/doc/include/dev_suite_readme.rst
index 676dc66976..86ddf07b00 100644
--- a/doc/include/dev_suite_readme.rst
+++ b/doc/include/dev_suite_readme.rst
@@ -360,7 +360,7 @@ Finally, set the ``QT_QPA_PLATFORM`` environment variable to
Running in Nautilus
-------------------
-The dev-suite can be run in the `Nautilus cluster `__.
+The dev-suite can be run in the `Nautilus cluster `__.
To generate the YAML for a dev-suite job, use ``gen_kube_devsuite``. If needed,
a specific branch of both the PypeIt repository and the Pypeit-development-suite
repository can be chosen using ``-p`` and ``-d`` respectively. These default to
@@ -386,6 +386,10 @@ follows:
``rclone`` can also be used access the Nautilus S3 storage. When
configuring use ``https://s3-west.nrp-nautilus.io`` as the endpoint.
+The default job created by ``gen_kube_devsuite`` runs directly from git. However it can be changed to run
+by building a new PypeIt package and installing from that, simulating what a user would get when
+installing from PyPi. This is enabled with the ``--from_wheel`` or ``-w`` option.
+
``gen_kube_devsuite`` has additional code for generating coverage
information and the test priority list. If ``--coverage`` and
``--priority_list`` are used, these files are also copied to S3:
@@ -419,8 +423,8 @@ To monitor a test in Nautilus as it is running, the logs can be tailed:
Additionally they can be monitored with the `Nautilus Grafana page `__.
-By default ``gen_kube_devsuite`` creates a job using a default container with PypeIt
-pre-installed. It also supports running with different python versions by
+By default ``gen_kube_devsuite`` creates a job using a the latest Python container
+available on Docker Hub. It also supports running with different python versions by
selecting a different container. For example:
.. code-block:: console
diff --git a/doc/include/gemini_gnirs_echelle_A.pypeit.rst b/doc/include/gemini_gnirs_echelle_A.pypeit.rst
index 996d0ea8ad..23fb41a9dd 100644
--- a/doc/include/gemini_gnirs_echelle_A.pypeit.rst
+++ b/doc/include/gemini_gnirs_echelle_A.pypeit.rst
@@ -1,7 +1,7 @@
.. code-block:: console
- # Auto-generated PypeIt input file using PypeIt version: 1.16.0
- # UTC 2024-06-11T08:31:55
+ # Auto-generated PypeIt input file using PypeIt version: 1.17.0
+ # UTC 2024-11-04T15:38:09
# User-defined execution parameters
[rdx]
diff --git a/doc/include/keck_deimos_A.pypeit.rst b/doc/include/keck_deimos_A.pypeit.rst
index ba4dae4c2b..fd224bb74b 100644
--- a/doc/include/keck_deimos_A.pypeit.rst
+++ b/doc/include/keck_deimos_A.pypeit.rst
@@ -1,7 +1,7 @@
.. code-block:: console
- # Auto-generated PypeIt input file using PypeIt version: 1.16.0
- # UTC 2024-06-11T08:31:55
+ # Auto-generated PypeIt input file using PypeIt version: 1.17.0
+ # UTC 2024-11-04T15:38:09
# User-defined execution parameters
[rdx]
diff --git a/doc/include/keck_nires_A.pypeit.rst b/doc/include/keck_nires_A.pypeit.rst
index d50c6ffb58..d33cec00c4 100644
--- a/doc/include/keck_nires_A.pypeit.rst
+++ b/doc/include/keck_nires_A.pypeit.rst
@@ -1,7 +1,7 @@
.. code-block:: console
- # Auto-generated PypeIt input file using PypeIt version: 1.16.0
- # UTC 2024-06-11T08:31:55
+ # Auto-generated PypeIt input file using PypeIt version: 1.17.0
+ # UTC 2024-11-04T15:38:09
# User-defined execution parameters
[rdx]
diff --git a/doc/include/shane_kast_blue_A.pypeit.rst b/doc/include/shane_kast_blue_A.pypeit.rst
index 50fed58129..f8f4693439 100644
--- a/doc/include/shane_kast_blue_A.pypeit.rst
+++ b/doc/include/shane_kast_blue_A.pypeit.rst
@@ -1,7 +1,7 @@
.. code-block:: console
- # Auto-generated PypeIt input file using PypeIt version: 1.16.0
- # UTC 2024-06-11T08:31:55
+ # Auto-generated PypeIt input file using PypeIt version: 1.17.0
+ # UTC 2024-11-04T15:38:09
# User-defined execution parameters
[rdx]
diff --git a/doc/releases/1.17.1.rst b/doc/releases/1.17.1.rst
new file mode 100644
index 0000000000..fd035e386d
--- /dev/null
+++ b/doc/releases/1.17.1.rst
@@ -0,0 +1,5 @@
+Version 1.17.1
+==============
+
+- Bumped to ``numpy>=1.26``
+- Lifts restriction from ``python<3.13`` to ``python<3.14``
diff --git a/doc/whatsnew.rst b/doc/whatsnew.rst
index 85de8cae70..013b1c4cc8 100644
--- a/doc/whatsnew.rst
+++ b/doc/whatsnew.rst
@@ -11,6 +11,10 @@ What's New in PypeIt
----
+.. include:: releases/1.17.1.rst
+
+----
+
.. include:: releases/1.17.0.rst
----
diff --git a/environment.yml b/environment.yml
index c020c2fd15..bd94b1a56a 100644
--- a/environment.yml
+++ b/environment.yml
@@ -2,7 +2,7 @@ name: pypeit
channels:
- defaults
dependencies:
- - python>=3.11,<3.13
+ - python>=3.11,<3.14
- pip
- pip:
- pypeit
diff --git a/pypeit/__init__.py b/pypeit/__init__.py
index edaee7df32..aa4bb169a3 100644
--- a/pypeit/__init__.py
+++ b/pypeit/__init__.py
@@ -28,6 +28,24 @@ def short_warning(message, category, filename, lineno, file=None, line=None):
# Report current coverage
__coverage__ = 0.55
+# Import and instantiate the user
+# NOTE: This **MUST** come before instantiating the logger, msgs
+try:
+ # There appears to be a bug in getpass in windows systems where the pwd
+ # module doesn't load
+ import getpass
+ pypeit_user = getpass.getuser()
+except (ModuleNotFoundError, OSError):
+ pypeit_user = None
+if pypeit_user is None:
+ try:
+ pypeit_user = os.getlogin()
+ except OSError:
+ pypeit_user = None
+if pypeit_user is None:
+ # Assume the user is not defined
+ pypeit_user = 'unknownuser'
+
# Import and instantiate the logger
# NOTE: This **MUST** be defined after __version__; i.e., pypmsgs imports pypeit
# and uses pypeit.__version__.
diff --git a/pypeit/core/qa.py b/pypeit/core/qa.py
index 1929f9c5c2..8c8e498e13 100644
--- a/pypeit/core/qa.py
+++ b/pypeit/core/qa.py
@@ -4,8 +4,6 @@
"""
import os
-import datetime
-import getpass
import glob
import numpy as np
import yaml
@@ -132,24 +130,6 @@ def get_dimen(x, maxp=25):
return pages, npp
-def gen_timestamp():
- """ Generate a simple time stamp including the current user
-
- Returns
- -------
- timestamp : str
- user_datetime
- """
- tstamp = datetime.datetime.today().strftime('%Y-%m-%d-T%Hh%Mm%Ss')
- try:
- user = getpass.getuser()
- except ModuleNotFoundError:
- # there appears to be a bug in getpass in windows systems where the pwd module doesn't load
- user = os.getlogin()
- # Return
- return '{:s}_{:s}'.format(user, tstamp)
-
-
def html_header(title):
"""
Generate a simple HTML header
diff --git a/pypeit/pypmsgs.py b/pypeit/pypmsgs.py
index ba5033a410..7b2e815078 100644
--- a/pypeit/pypmsgs.py
+++ b/pypeit/pypmsgs.py
@@ -8,7 +8,6 @@
from datetime import datetime
import sys
import os
-import getpass
import inspect
import io
@@ -27,6 +26,7 @@
import pypeit
from pypeit.core.qa import close_qa
+from pypeit import pypeit_user
#pypeit_logger = None
@@ -73,13 +73,7 @@ def __init__(self, log=None, verbosity=None, colors=True):
# Initialize other variables
self._defverb = 1
- try:
- user = getpass.getuser()
- except ModuleNotFoundError:
- # there appears to be a bug in getpass in windows systems where the pwd module doesn't load
- user = os.getlogin()
-
- if user in developers:
+ if pypeit_user in developers:
self._defverb = 2
self._verbosity = self._defverb if verbosity is None else verbosity
diff --git a/setup.cfg b/setup.cfg
index 294a1e1615..42a738f7af 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -19,6 +19,7 @@ classifiers =
Programming Language :: Python
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
+ Programming Language :: Python :: 3.13
Topic :: Documentation :: Sphinx
Topic :: Scientific/Engineering :: Astronomy
Topic :: Software Development :: Libraries :: Python Modules
@@ -28,11 +29,11 @@ classifiers =
zip_safe = False
use_2to3=False
packages = find:
-python_requires = >=3.11,<3.13
+python_requires = >=3.11,<3.14
setup_requires = setuptools_scm
include_package_data = True
install_requires =
- numpy>=1.24
+ numpy>=1.26
astropy>=6.0
extension-helpers>=1.0
packaging>=22.0
diff --git a/tox.ini b/tox.ini
index c8b7d51210..927c23351d 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,8 +1,8 @@
[tox]
envlist =
- {3.11,3.12}-test{,-alldeps,-shapely,-specutils}{,-cov}
- {3.11,3.12}-test-numpy{124,125,126,200,201}
- {3.11,3.12}-test-{numpy,astropy,linetools,ginga}dev
+ {3.11,3.12,3.13}-test{,-alldeps,-shapely,-specutils}{,-cov}
+ {3.11,3.12,3.13}-test-numpy{126,200,201,202}
+ {3.11,3.12,3.13}-test-{numpy,astropy,linetools,ginga}dev
codestyle
requires =
setuptools >= 65.0
@@ -36,21 +36,19 @@ description =
devdeps: with the latest developer version of key dependencies
oldestdeps: with the oldest supported version of key dependencies
cov: and test coverage
- numpy124: with numpy 1.24.*
- numpy125: with numpy 1.25.*
numpy126: with numpy 1.26.*
numpy200: with numpy 2.0.*
numpy201: with numpy 2.1.*
+ numpy202: with numpy 2.2.*
# The following provides some specific pinnings for key packages
deps =
cov: coverage
- numpy124: numpy==1.24.*
- numpy125: numpy==1.25.*
numpy126: numpy==1.26.*
numpy200: numpy==2.0.*
numpy201: numpy==2.1.*
+ numpy202: numpy==2.2.*
numpydev: numpy>=0.0.dev0
astropydev: git+https://github.com/astropy/astropy.git#egg=astropy