diff --git a/CHANGES.rst b/CHANGES.rst
index f3b2832..b896220 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -1,5 +1,5 @@
-0.1.4 (Not released yet)
-========================
+0.2.0
+=====
 
 - Added messages when no file matches the `--obstype` value, by default is
   `FOCUS` [#9]
@@ -11,6 +11,9 @@
   several issues. For instance `--debug` was unusable, and also there were
   duplicated log entries for the file handler when used as a library in other
   application. [#10]
+- Replaced the use of the function `get_args` by using arguments on class
+  instantiation instead
+- Created name for modes [#11]
 
 0.1.3
 =====
diff --git a/goodman_focus/goodman_focus.py b/goodman_focus/goodman_focus.py
index f8b1316..25853ce 100644
--- a/goodman_focus/goodman_focus.py
+++ b/goodman_focus/goodman_focus.py
@@ -4,6 +4,7 @@ import matplotlib.pyplot as plt
 import numpy as np
 import os
 import pandas
+import re
 import sys
 
 from astropy.stats import sigma_clip
@@ -18,6 +19,7 @@ import logging.config
 
 LOG_FORMAT = '[%(asctime)s][%(levelname)s]: %(message)s'
 LOG_LEVEL = logging.INFO
+# LOG_LEVEL = logging.CRITICAL
 
 DATE_FORMAT = '%H:%M:%S'
 
@@ -65,6 +67,12 @@ def get_args(arguments=None):
                         help='Model to use in fitting the features in order to'
                              'obtain the FWHM for each of them')
 
+    parser.add_argument('--plot-results',
+                        action='store_true',
+                        dest='plot_results',
+                        help='Show a plot when it finishes the focus '
+                             'calculation')
+
     parser.add_argument('--debug',
                         action='store_true',
                         dest='debug',
@@ -72,14 +80,6 @@ def get_args(arguments=None):
 
     args = parser.parse_args(args=arguments)
 
-    if not os.path.isdir(args.data_path):
-        log.error("Data location {} does not exist".format(args.data_path))
-        sys.exit(0)
-    elif len(glob.glob(os.path.join(args.data_path, args.file_pattern))) == 0:
-        log.error("There are no files matching \"{}\" in the folder \"{}\""
-                  "".format(args.file_pattern, args.data_path))
-        sys.exit(0)
-
     return args
 
 
@@ -271,15 +271,28 @@ class GoodmanFocus(object):
                 'OBSTYPE',
                 'ROI']
 
-    def __init__(self, arguments=None):
-        self.args = get_args(arguments=arguments)
+    def __init__(self,
+                 data_path=os.getcwd(),
+                 file_pattern="*.fits",
+                 obstype="FOCUS",
+                 features_model='gaussian',
+                 plot_results=False,
+                 debug=False):
+
+        self.data_path = data_path
+        self.file_pattern = file_pattern
+        self.obstype = obstype
+        self.features_model = features_model
+        self.plot_results = plot_results
+        self.debug = debug
+
         self.log = logging.getLogger(__name__)
-        if self.args.debug:
+        if self.debug:
             self.log.setLevel(level=logging.DEBUG)
 
-        if self.args.features_model == 'gaussian':
+        if self.features_model == 'gaussian':
             self.feature_model = models.Gaussian1D()
-        elif self.args.features_model == 'moffat':
+        elif self.features_model == 'moffat':
             self.feature_model = models.Moffat1D()
 
         self.__ccd = None
@@ -291,16 +304,26 @@ class GoodmanFocus(object):
         self.fitter = fitting.LevMarLSQFitter()
         self.linear_fitter = fitting.LinearLSQFitter()
 
-        if os.path.isdir(self.args.data_path):
-            self.full_path = self.args.data_path
+        if os.path.isdir(self.data_path):
+            self.full_path = self.data_path
+            if not os.listdir(self.full_path):
+                self.log.critical("Directory is empty")
+                sys.exit(0)
+            # print(glob.glob(os.path.join(self.full_path, self.file_pattern)))
+            elif not glob.glob(os.path.join(self.full_path, self.file_pattern)):
+                self.log.critical('Directory {} does not containe files '
+                                  'matching the pattern {}'
+                                  ''.format(self.full_path, self.file_pattern))
+                sys.exit(0)
         else:
-            sys.exit("No such directory")
+            self.log.critical("No such directory")
+            sys.exit(0)
 
         _ifc = ImageFileCollection(self.full_path, keywords=self.keywords)
 
         self.ifc = _ifc.summary.to_pandas()
         self.log.debug("Found {} FITS files".format(self.ifc.shape[0]))
-        self.ifc = self.ifc[(self.ifc['OBSTYPE'] == self.args.obstype)]
+        self.ifc = self.ifc[(self.ifc['OBSTYPE'] == self.obstype)]
         if self.ifc.shape[0] != 0:
             self.log.debug("Found {} FITS files with OBSTYPE = FOCUS".format(
                 self.ifc.shape[0]))
@@ -348,22 +371,24 @@ class GoodmanFocus(object):
         if value is not None:
             self._fwhm = value
 
-
     def __call__(self, *args, **kwargs):
         for focus_group in self.focus_groups:
-            # print(focus_group)
+            mode_name = self._get_mode_name(focus_group)
 
             focus_dataframe = self.get_focus_data(group=focus_group)
 
             self._fit(df=focus_dataframe)
-            self.log.info("Best Focus for {} is {}".format(self.file_name,
-                                                           self.__best_focus))
-            if True:   # pragma: no cover
+            self.log.info("Best Focus for mode {} is {}".format(
+                mode_name,
+                self.__best_focus))
+            if self.plot_results:   # pragma: no cover
                 # TODO (simon): Do properly using matplotlib or pandas alone
                 # fig = plt.subplots()
                 focus_dataframe.plot(x='focus', y='fwhm', marker='x')
-                plt.axvline(self.__best_focus)
-                plt.title("Best Focus: {}".format(self.__best_focus))
+                plt.axvline(self.__best_focus, color='k', label='Best Focus')
+                plt.title("Best Focus:\n{} {:.3f}".format(
+                    mode_name,
+                    self.__best_focus))
                 focus_list = focus_dataframe['focus'].tolist()
                 new_x_axis = np.linspace(focus_list[0], focus_list[-1], 1000)
                 plt.plot(new_x_axis,
@@ -391,6 +416,24 @@ class GoodmanFocus(object):
 
         return self.__best_focus
 
+    @staticmethod
+    def _get_mode_name(group):
+        unique_values = group.drop_duplicates(
+            subset=['INSTCONF', 'FILTER', 'FILTER2', 'WAVMODE'], keep='first')
+
+        if unique_values['WAVMODE'].values == ['Imaging']:
+            mode_name = 'IM_{}_{}'.format(
+                unique_values['INSTCONF'].values[0],
+                unique_values['FILTER'].values[0])
+        else:
+            mode_name = 'SP_{}_{}_{}'.format(
+                unique_values['INSTCONF'].values[0],
+                unique_values['WAVMODE'].values[0],
+                unique_values['FILTER2'].values[0])
+        mode_name = re.sub('[<> ]', '', mode_name)
+        # mode_name = re.sub('[- ]', '_', mode_name)
+        return mode_name
+
     def get_focus_data(self, group):
         """Collects all the relevant data for finding best focus
 
@@ -416,7 +459,7 @@ class GoodmanFocus(object):
             peaks, values, x_axis,  profile = get_peaks(
                 ccd=self.__ccd,
                 file_name=self.file_name,
-                plots=self.args.debug)
+                plots=self.debug)
 
             self.fwhm = get_fwhm(peaks=peaks,
                                  values=values,
@@ -450,13 +493,16 @@ def run_goodman_focus(args=None):   # pragma: no cover
         args (list): (optional) a list of arguments and respective values.
 
     """
-
-    goodman_focus = GoodmanFocus(arguments=args)
+    args = get_args(arguments=args)
+    goodman_focus = GoodmanFocus(data_path=args.data_path,
+                                 file_pattern=args.file_pattern,
+                                 obstype=args.obstype,
+                                 features_model=args.features_model,
+                                 plot_results=args.plot_results,
+                                 debug=args.debug)
     goodman_focus()
 
 
 if __name__ == '__main__':   # pragma: no cover
     # full_path = '/user/simon/data/soar/work/focus2'
-    get_focus = GoodmanFocus()
-    get_focus()
-
+    run_goodman_focus()
diff --git a/goodman_focus/version.py b/goodman_focus/version.py
index 0e285e2..4e02b70 100644
--- a/goodman_focus/version.py
+++ b/goodman_focus/version.py
@@ -1,2 +1,2 @@
 # This is an automatic generated file please do not edit
-__version__ = '0.1.4.dev1'
\ No newline at end of file
+__version__ = '0.2.0'
\ No newline at end of file
diff --git a/setup.cfg b/setup.cfg
index e364ba8..b01f1cd 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -32,4 +32,4 @@ install_requires =
     sphinx>=2.1.2
 
 # version should be PEP440 compatible (http://www.python.org/dev/peps/pep-0440)
-version = 0.1.4.dev1
+version = 0.2.0

disable plot by default
plotting should be optional since not always anyone wants it.
diff --git a/goodman_focus/tests/test_goodman_focus.py b/goodman_focus/tests/test_goodman_focus.py
index 73c162b..a611a7a 100644
--- a/goodman_focus/tests/test_goodman_focus.py
+++ b/goodman_focus/tests/test_goodman_focus.py
@@ -9,12 +9,34 @@ from unittest import TestCase, skip
 from ccdproc import CCDData
 
 from ..goodman_focus import GoodmanFocus
-from ..goodman_focus import get_peaks, get_fwhm
+from ..goodman_focus import get_args, get_peaks, get_fwhm
 
 import matplotlib.pyplot as plt
 
 logging.disable(logging.CRITICAL)
 
+
+class ArgumentTests(TestCase):
+
+    def setUp(self):
+        self.arg_list = ['--data-path', os.getcwd(),
+                         '--file-pattern', '*.myfile',
+                         '--obstype', 'ANY',
+                         '--features-model', 'moffat',
+                         '--plot-results',
+                         '--debug']
+
+    def test_get_args_default(self):
+        args = get_args(arguments=self.arg_list)
+        self.assertEqual(args.__class__.__name__, 'Namespace')
+        self.assertEqual(args.data_path, os.getcwd())
+        self.assertEqual(args.file_pattern, '*.myfile')
+        self.assertEqual(args.obstype, 'ANY')
+        self.assertEqual(args.features_model, 'moffat')
+        self.assertTrue(args.plot_results)
+        self.assertTrue(args.debug)
+
+
 class GetPeaksTest(TestCase):
 
     def setUp(self):
@@ -143,7 +165,7 @@ class GoodmanFocusTests(TestCase):
             focus_data,
             columns=['file', 'fwhm', 'focus'])
 
-        self.goodman_focus = GoodmanFocus(arguments=arguments)
+        self.goodman_focus = GoodmanFocus()
 
     def test_get_focus_data(self):
 
@@ -163,21 +185,49 @@ class GoodmanFocusTests(TestCase):
         self.goodman_focus()
         self.assertIsNotNone(self.goodman_focus.fwhm)
 
+    def test__call__Moffat1D(self):
+        self.goodman_focus = GoodmanFocus(features_model='moffat')
+        self.goodman_focus()
+        self.assertIsNotNone(self.goodman_focus.fwhm)
+
     def tearDown(self):
         for _file in self.file_list:
             os.unlink(_file)
 
 
-class DirectoryAndFilesTest(TestCase):
+class SpectroscopicModeNameTests(TestCase):
 
     def setUp(self):
-        self.arguments = [
-            '--data-path', os.path.join(os.getcwd(), 'nonexisting'),
-            '--file-pattern', '*.fits',
-            '--obstype', 'FOCUS',
-            '--features-model', 'gaussian']
+        self.data = {'file': ['file_{}.fits'.format(i + 1) for i in range(5)],
+                     'INSTCONF': ['Blue'] * 5,
+                     'FILTER': ['FILTER-X'] * 5,
+                     'FILTER2': ['NO FILTER'] * 5,
+                     'WAVMODE': ['Imaging'] * 5}
+
+
+    def test_imaging_mode(self):
+        df = pandas.DataFrame(self.data)
+        expected_name = 'IM_Blue_FILTER-X'
+        mode_name = GoodmanFocus._get_mode_name(group=df)
+        self.assertEqual(mode_name, expected_name)
+
+    def test_spectroscopy_mode(self):
+        self.data['WAVMODE'] = ['400  z1'] * 5
+        df = pandas.DataFrame(self.data)
+
+        expected_name = 'SP_Blue_400z1_NOFILTER'
+
+        mode_name = GoodmanFocus._get_mode_name(group=df)
+
+        self.assertEqual(mode_name, expected_name)
 
+
+
+class DirectoryAndFilesTest(TestCase):
+
+    def setUp(self):
         os.mkdir(os.path.join(os.getcwd(), 'test_dir_empty'))
+        os.mkdir(os.path.join(os.getcwd(), 'test_dir_no_matching_files'))
         os.mkdir(os.path.join(os.getcwd(), 'test_dir_no_focus'))
         for i in range(3):
             ccd = CCDData(data=np.ones((100, 100)),
@@ -203,19 +253,37 @@ class DirectoryAndFilesTest(TestCase):
     def test_directory_does_not_exists(self):
 
         # goodman_focus = GoodmanFocus(arguments=arguments)
-        self.assertRaises(SystemExit, GoodmanFocus, self.arguments)
+        path_non_existing = os.path.join(os.getcwd(), 'non-existing')
+        self.assertRaises(SystemExit, GoodmanFocus, path_non_existing)
 
     def test_directory_exists_but_empty(self):
-        self.arguments[1] = os.path.join(os.getcwd(), 'test_dir_empty')
-        self.assertRaises(SystemExit, GoodmanFocus, self.arguments)
+        empty_path = os.path.join(os.getcwd(), 'test_dir_empty')
+        self.assertRaises(SystemExit, GoodmanFocus, empty_path)
 
-    def test_no_focus_files(self):
-        self.arguments[1] = os.path.join(os.getcwd(), 'test_dir_no_focus')
-        self.assertRaises(SystemExit, GoodmanFocus, self.arguments)
+    def test_directory_not_empty_and_no_matching_files(self):
+        path = os.path.join(os.getcwd(), 'test_dir_no_matching_files')
 
+        open(os.path.join(path, 'sample_file.txt'), 'a').close()
+
+        self.assertRaises(SystemExit, GoodmanFocus, path)
+
+    def test_no_focus_files(self):
+        path_no_focus_files = os.path.join(os.getcwd(), 'test_dir_no_focus')
+        self.assertRaises(SystemExit, GoodmanFocus, path_no_focus_files)
 
     def tearDown(self):
-        os.rmdir(os.path.join(os.getcwd(), 'test_dir_empty'))
+
         for _file in os.listdir(os.path.join(os.getcwd(), 'test_dir_no_focus')):
             os.unlink(os.path.join(os.getcwd(), 'test_dir_no_focus', _file))
+
+        for _file in os.listdir(os.path.join(
+                os.getcwd(),
+                'test_dir_no_matching_files')):
+
+            os.unlink(os.path.join(os.getcwd(),
+                                   'test_dir_no_matching_files',
+                                   _file))
+
+        os.rmdir(os.path.join(os.getcwd(), 'test_dir_empty'))
         os.rmdir(os.path.join(os.getcwd(), 'test_dir_no_focus'))
+        os.rmdir(os.path.join(os.getcwd(), 'test_dir_no_matching_files'))

environment.yml
pip install -e .
parse_log_pytest
environment.yml
pytest
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.16
asciitree==0.3.3
astropy @ file:///croot/astropy_1697468907928/work
astropy_healpix==1.0.3
astroscrappy==1.2.0
babel==2.17.0
Bottleneck @ file:///croot/bottleneck_1731058641041/work
Brotli @ file:///croot/brotli-split_1736182456865/work
ccdproc==2.4.3
certifi==2025.1.31
charset-normalizer==3.4.1
click==8.1.8
cloudpickle==3.1.1
contourpy @ file:///croot/contourpy_1738160616259/work
coverage==7.8.0
coveralls==4.0.1
cycler @ file:///tmp/build/80754af9/cycler_1637851556182/work
dask==2024.8.0
docopt==0.6.2
docutils==0.21.2
exceptiongroup==1.2.2
fasteners==0.19
fonttools @ file:///croot/fonttools_1737039080035/work
fsspec==2025.3.1
-e git+https://github.com/soar-telescope/goodman_focus.git@457f0d1169b8a1aea7b1e7944e55e54f4ff1c6ba#egg=goodman_focus
idna==3.10
imageio==2.37.0
imagesize==1.4.1
importlib_metadata==8.6.1
importlib_resources @ file:///croot/importlib_resources-suite_1720641103994/work
iniconfig==2.1.0
Jinja2==3.1.6
kiwisolver @ file:///croot/kiwisolver_1672387140495/work
lazy_loader==0.4
locket==1.0.0
m2r==0.3.1
MarkupSafe==3.0.2
matplotlib==3.9.2
mistune==0.8.4
networkx==3.2.1
numcodecs==0.12.1
numexpr @ file:///croot/numexpr_1730215937391/work
numpy @ file:///croot/numpy_and_numpy_base_1708638617955/work/dist/numpy-1.26.4-cp39-cp39-linux_x86_64.whl#sha256=b69ac3eb7538c5a224df429dc49031914fb977825ee007f2c77a13f7aa6cd769
packaging @ file:///croot/packaging_1734472117206/work
pandas @ file:///croot/pandas_1732735089971/work/dist/pandas-2.2.3-cp39-cp39-linux_x86_64.whl#sha256=0a51ed2e81ab863e3d00ed6c5049192ce578ecb38fb467d2f9a6585d3c25f666
partd==1.4.2
pillow @ file:///croot/pillow_1738010226202/work
pluggy==1.5.0
pockets==0.9.1
pyerfa @ file:///croot/pyerfa_1738082786199/work
Pygments==2.19.1
pyparsing @ file:///croot/pyparsing_1731445506121/work
PyQt6==6.7.1
PyQt6_sip @ file:///croot/pyqt-split_1740498191142/work/pyqt_sip
pytest==8.3.5
python-dateutil @ file:///croot/python-dateutil_1716495738603/work
pytz @ file:///croot/pytz_1713974312559/work
PyYAML @ file:///croot/pyyaml_1728657952215/work
reproject==0.13.0
requests==2.32.3
scikit-image==0.24.0
scipy @ file:///croot/scipy_1733756309941/work/dist/scipy-1.13.1-cp39-cp39-linux_x86_64.whl#sha256=3b247b926209f2d9f719ebae39faf3ff891b2596150ed8f8349adfc3eb19441c
sip @ file:///croot/sip_1738856193618/work
six @ file:///tmp/build/80754af9/six_1644875935023/work
snowballstemmer==2.2.0
Sphinx==7.4.7
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-napoleon==0.7
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
tifffile==2024.8.30
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
toolz==1.0.0
tornado @ file:///croot/tornado_1733960490606/work
tzdata @ file:///croot/python-tzdata_1690578112552/work
unicodedata2 @ file:///croot/unicodedata2_1736541023050/work
urllib3==2.3.0
zarr==2.18.2
zipp @ file:///croot/zipp_1732630741423/work

name: goodman_focus
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - astropy=5.3.4=py39ha9d4c09_0
  - blas=1.0=openblas
  - bottleneck=1.4.2=py39ha9d4c09_0
  - brotli-python=1.0.9=py39h6a678d5_9
  - bzip2=1.0.8=h5eee18b_6
  - c-ares=1.19.1=h5eee18b_0
  - ca-certificates=2025.2.25=h06a4308_0
  - contourpy=1.2.1=py39hdb19cb5_1
  - cycler=0.11.0=pyhd3eb1b0_0
  - cyrus-sasl=2.1.28=h52b45da_1
  - expat=2.6.4=h6a678d5_0
  - fontconfig=2.14.1=h55d465d_3
  - fonttools=4.55.3=py39h5eee18b_0
  - freetype=2.12.1=h4a9f257_0
  - icu=73.1=h6a678d5_0
  - importlib_resources=6.4.0=py39h06a4308_0
  - jpeg=9e=h5eee18b_3
  - kiwisolver=1.4.4=py39h6a678d5_0
  - krb5=1.20.1=h143b758_1
  - lcms2=2.16=hb9589c4_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - lerc=4.0.0=h6a678d5_0
  - libabseil=20250127.0=cxx17_h6a678d5_0
  - libcups=2.4.2=h2d74bed_1
  - libcurl=8.12.1=hc9e6f67_0
  - libdeflate=1.22=h5eee18b_0
  - libedit=3.1.20230828=h5eee18b_0
  - libev=4.33=h7f8727e_1
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgfortran-ng=11.2.0=h00389a5_1
  - libgfortran5=11.2.0=h1234567_1
  - libglib=2.78.4=hdc74915_0
  - libgomp=11.2.0=h1234567_1
  - libiconv=1.16=h5eee18b_3
  - libnghttp2=1.57.0=h2d74bed_0
  - libopenblas=0.3.21=h043d6bf_0
  - libpng=1.6.39=h5eee18b_0
  - libpq=17.4=hdbd6064_0
  - libprotobuf=5.29.3=hc99497a_0
  - libssh2=1.11.1=h251f7ec_0
  - libstdcxx-ng=11.2.0=h1234567_1
  - libtiff=4.5.1=hffd6297_1
  - libuuid=1.41.5=h5eee18b_0
  - libwebp-base=1.3.2=h5eee18b_1
  - libxcb=1.15=h7f8727e_0
  - libxkbcommon=1.0.1=h097e994_2
  - libxml2=2.13.5=hfdd30dd_0
  - lz4-c=1.9.4=h6a678d5_1
  - matplotlib=3.9.2=py39h06a4308_1
  - matplotlib-base=3.9.2=py39hbfdbfaf_1
  - mysql=8.4.0=h721767e_2
  - ncurses=6.4=h6a678d5_0
  - numexpr=2.10.1=py39hd28fd6d_0
  - numpy=1.26.4=py39heeff2f4_0
  - numpy-base=1.26.4=py39h8a23956_0
  - openjpeg=2.5.2=he7f1fd0_0
  - openldap=2.6.4=h42fbc30_0
  - openssl=3.0.16=h5eee18b_0
  - packaging=24.2=py39h06a4308_0
  - pandas=2.2.3=py39h6a678d5_0
  - pcre2=10.42=hebb0a14_1
  - pillow=11.1.0=py39hcea889d_0
  - pip=25.0=py39h06a4308_0
  - pybind11-abi=4=hd3eb1b0_1
  - pyerfa=2.0.1.5=py39h5eee18b_0
  - pyparsing=3.2.0=py39h06a4308_0
  - pyqt=6.7.1=py39h6a678d5_0
  - pyqt6-sip=13.9.1=py39h5eee18b_0
  - python=3.9.21=he870216_1
  - python-dateutil=2.9.0post0=py39h06a4308_2
  - python-tzdata=2023.3=pyhd3eb1b0_0
  - pytz=2024.1=py39h06a4308_0
  - pyyaml=6.0.2=py39h5eee18b_0
  - qtbase=6.7.3=hdaa5aa8_0
  - qtdeclarative=6.7.3=h6a678d5_0
  - qtsvg=6.7.3=he621ea3_0
  - qttools=6.7.3=h80c7b02_0
  - qtwebchannel=6.7.3=h6a678d5_0
  - qtwebsockets=6.7.3=h6a678d5_0
  - readline=8.2=h5eee18b_0
  - scipy=1.13.1=py39heeff2f4_1
  - setuptools=75.8.0=py39h06a4308_0
  - sip=6.10.0=py39h6a678d5_0
  - six=1.16.0=pyhd3eb1b0_1
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py39h06a4308_0
  - tornado=6.4.2=py39h5eee18b_0
  - tzdata=2025a=h04d1e81_0
  - unicodedata2=15.1.0=py39h5eee18b_1
  - wheel=0.45.1=py39h06a4308_0
  - xcb-util-cursor=0.1.4=h5eee18b_0
  - xz=5.6.4=h5eee18b_1
  - yaml=0.2.5=h7b6447c_0
  - zipp=3.21.0=py39h06a4308_0
  - zlib=1.2.13=h5eee18b_1
  - zstd=1.5.6=hc292b87_0
  - pip:
      - alabaster==0.7.16
      - asciitree==0.3.3
      - astropy-healpix==1.0.3
      - astroscrappy==1.2.0
      - babel==2.17.0
      - ccdproc==2.4.3
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - click==8.1.8
      - cloudpickle==3.1.1
      - coverage==7.8.0
      - coveralls==4.0.1
      - dask==2024.8.0
      - docopt==0.6.2
      - docutils==0.21.2
      - exceptiongroup==1.2.2
      - fasteners==0.19
      - fsspec==2025.3.1
      - idna==3.10
      - imageio==2.37.0
      - imagesize==1.4.1
      - importlib-metadata==8.6.1
      - iniconfig==2.1.0
      - jinja2==3.1.6
      - lazy-loader==0.4
      - locket==1.0.0
      - m2r==0.3.1
      - markupsafe==3.0.2
      - mistune==0.8.4
      - networkx==3.2.1
      - numcodecs==0.12.1
      - partd==1.4.2
      - pluggy==1.5.0
      - pockets==0.9.1
      - pygments==2.19.1
      - pytest==8.3.5
      - reproject==0.13.0
      - requests==2.32.3
      - scikit-image==0.24.0
      - snowballstemmer==2.2.0
      - sphinx==7.4.7
      - sphinxcontrib-applehelp==2.0.0
      - sphinxcontrib-devhelp==2.0.0
      - sphinxcontrib-htmlhelp==2.1.0
      - sphinxcontrib-jsmath==1.0.1
      - sphinxcontrib-napoleon==0.7
      - sphinxcontrib-qthelp==2.0.0
      - sphinxcontrib-serializinghtml==2.0.0
      - tifffile==2024.8.30
      - toolz==1.0.0
      - urllib3==2.3.0
      - zarr==2.18.2
prefix: /opt/conda/envs/goodman_focus

goodman_focus/tests/test_goodman_focus.py::ArgumentTests::test_get_args_default goodman_focus/tests/test_goodman_focus.py::GoodmanFocusTests::test__fit goodman_focus/tests/test_goodman_focus.py::SpectroscopicModeNameTests::test_imaging_mode goodman_focus/tests/test_goodman_focus.py::SpectroscopicModeNameTests::test_spectroscopy_mode
goodman_focus/tests/test_goodman_focus.py::GetPeaksTest::test_multiple_peaks goodman_focus/tests/test_goodman_focus.py::GetPeaksTest::test_single_peak goodman_focus/tests/test_goodman_focus.py::GoodmanFocusTests::test__call__ goodman_focus/tests/test_goodman_focus.py::GoodmanFocusTests::test__call__Moffat1D goodman_focus/tests/test_goodman_focus.py::GoodmanFocusTests::test_get_focus_data
goodman_focus/tests/test_goodman_focus.py::DirectoryAndFilesTest::test_directory_does_not_exists goodman_focus/tests/test_goodman_focus.py::DirectoryAndFilesTest::test_directory_exists_but_empty goodman_focus/tests/test_goodman_focus.py::DirectoryAndFilesTest::test_directory_not_empty_and_no_matching_files goodman_focus/tests/test_goodman_focus.py::DirectoryAndFilesTest::test_no_focus_files
goodman_focus/version.py goodman_focus/goodman_focus.py setup.cfg CHANGES.rst
goodman_focus/version.py goodman_focus/goodman_focus.py setup.cfg CHANGES.rst