quicklook-package 1.1.2__tar.gz → 1.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. quicklook_package-1.3.2/.flake8 +5 -0
  2. quicklook_package-1.3.2/.github/workflows/build-and-test.yml +76 -0
  3. quicklook_package-1.3.2/.github/workflows/release.yml +32 -0
  4. quicklook_package-1.3.2/.gitignore +160 -0
  5. quicklook_package-1.3.2/.pre-commit-config.yaml +16 -0
  6. {quicklook_package-1.1.2/quicklook_package.egg-info → quicklook_package-1.3.2}/PKG-INFO +22 -19
  7. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/README.md +16 -17
  8. quicklook_package-1.3.2/data/simbad_obj_types.csv +186 -0
  9. quicklook_package-1.3.2/environment.yml +12 -0
  10. quicklook_package-1.3.2/notebook/examples.ipynb +1552 -0
  11. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/pyproject.toml +12 -2
  12. quicklook_package-1.3.2/pytest.ini +21 -0
  13. quicklook_package-1.3.2/quicklook/compat.py +61 -0
  14. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/quicklook/plot.py +7 -0
  15. quicklook_package-1.3.2/quicklook/science.mplstyle +66 -0
  16. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/quicklook/tql.py +179 -123
  17. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/quicklook/utils.py +11 -3
  18. {quicklook_package-1.1.2 → quicklook_package-1.3.2/quicklook_package.egg-info}/PKG-INFO +22 -19
  19. quicklook_package-1.3.2/quicklook_package.egg-info/SOURCES.txt +35 -0
  20. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/quicklook_package.egg-info/requires.txt +1 -0
  21. quicklook_package-1.3.2/requirements.txt +20 -0
  22. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/scripts/ql +9 -15
  23. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/setup.py +1 -1
  24. quicklook_package-1.3.2/tests/TOI5071_s46_pdcsap_sc.png +0 -0
  25. quicklook_package-1.3.2/tests/TOI5071_s46_pdcsap_sc_tls.h5 +0 -0
  26. quicklook_package-1.3.2/tests/conftest.py +54 -0
  27. quicklook_package-1.3.2/tests/test_import.py +56 -0
  28. quicklook_package-1.3.2/tests/test_notebooks.py +106 -0
  29. quicklook_package-1.3.2/tests/test_tql.py +599 -0
  30. quicklook_package-1.1.2/quicklook_package.egg-info/SOURCES.txt +0 -18
  31. quicklook_package-1.1.2/tests/test_tql.py +0 -21
  32. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/LICENSE +0 -0
  33. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/quicklook/__init__.py +0 -0
  34. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/quicklook/gls.py +0 -0
  35. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/quicklook/measure.py +0 -0
  36. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/quicklook_package.egg-info/dependency_links.txt +0 -0
  37. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/quicklook_package.egg-info/top_level.txt +0 -0
  38. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/scripts/read_tls +0 -0
  39. {quicklook_package-1.1.2 → quicklook_package-1.3.2}/setup.cfg +0 -0
@@ -0,0 +1,5 @@
1
+ [flake8]
2
+ ignore = E203, E266, E501, W503, F403, F401, C901
3
+ max-line-length = 79
4
+ max-complexity = 18
5
+ select = B,C,E,F,W,T4,B9
@@ -0,0 +1,76 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ # tags: ['v*'] # skip tags
7
+
8
+ jobs:
9
+ build:
10
+ runs-on: ${{ matrix.os }}
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ # macos-13 is x86_64 (Intel-based), macos-14 is ARM64
15
+ os: [ubuntu-latest, macos-13] #exclude macos-14, macos-15 for now
16
+ python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
17
+
18
+ steps:
19
+ - uses: actions/checkout@v3
20
+ with:
21
+ fetch-depth: 0
22
+
23
+ - name: Set up Python ${{ matrix.python-version }}
24
+ uses: actions/setup-python@v4
25
+ with:
26
+ python-version: ${{ matrix.python-version }}
27
+
28
+ - name: Set up Miniconda
29
+ uses: conda-incubator/setup-miniconda@v2
30
+ with:
31
+ python-version: ${{ matrix.python-version }}
32
+ miniconda-version: "latest"
33
+ auto-activate-base: true
34
+
35
+ - name: Install mamba for faster environment setup
36
+ run: conda install -n base -c conda-forge mamba
37
+
38
+ - name: Cache Conda Environment
39
+ id: cache-conda
40
+ uses: actions/cache@v3
41
+ with:
42
+ path: /Users/runner/miniconda3/envs/ql
43
+ key: ${{ runner.os }}-conda-${{ matrix.python-version }}-${{ hashFiles('environment.yml') }}
44
+ restore-keys: |
45
+ ${{ runner.os }}-conda-${{ matrix.python-version }}-
46
+
47
+ - name: Remove existing Conda environment if cache not hit
48
+ if: steps.cache-conda.outputs.cache-hit != 'true'
49
+ run: conda env remove -n ql || echo "Environment does not exist"
50
+
51
+ - name: Create Conda environment using mamba
52
+ if: steps.cache-conda.outputs.cache-hit != 'true'
53
+ run: mamba env create -f environment.yml
54
+
55
+ - name: Install pip dependencies
56
+ shell: bash -l {0}
57
+ run: |
58
+ conda activate ql
59
+ pip install -r requirements.txt
60
+
61
+ - name: Install the package in editable mode
62
+ shell: bash -l {0}
63
+ run: |
64
+ conda activate ql
65
+ pip install -e .
66
+
67
+ - name: Run all tests
68
+ shell: bash -l {0}
69
+ run: |
70
+ conda activate ql
71
+ pip install jupyter nbconvert
72
+ export KERNEL_INSTALLED=1
73
+ echo "Running regular tests..."
74
+ pytest -v -m "not notebook"
75
+ echo "Running notebook tests..."
76
+ pytest -v -m "notebook"
@@ -0,0 +1,32 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ workflow_dispatch: #optional manual run
5
+ release:
6
+ types: [published] # run only when published after creating a tag (e.g. v.1.4)
7
+
8
+ jobs:
9
+ publish:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v3
13
+ with:
14
+ fetch-depth: 0
15
+
16
+ - name: Set up Python
17
+ uses: actions/setup-python@v4
18
+ with:
19
+ python-version: "3.10"
20
+
21
+ - name: Install build tools
22
+ run: |
23
+ pip install build twine
24
+
25
+ - name: Build package
26
+ run: python -m build
27
+
28
+ - name: Publish to PyPI
29
+ run: twine upload dist/*
30
+ env:
31
+ TWINE_USERNAME: "__token__"
32
+ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,160 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # poetry
98
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102
+ #poetry.lock
103
+
104
+ # pdm
105
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106
+ #pdm.lock
107
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108
+ # in version control.
109
+ # https://pdm.fming.dev/#use-with-ide
110
+ .pdm.toml
111
+
112
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113
+ __pypackages__/
114
+
115
+ # Celery stuff
116
+ celerybeat-schedule
117
+ celerybeat.pid
118
+
119
+ # SageMath parsed files
120
+ *.sage.py
121
+
122
+ # Environments
123
+ .env
124
+ .venv
125
+ env/
126
+ venv/
127
+ ENV/
128
+ env.bak/
129
+ venv.bak/
130
+
131
+ # Spyder project settings
132
+ .spyderproject
133
+ .spyproject
134
+
135
+ # Rope project settings
136
+ .ropeproject
137
+
138
+ # mkdocs documentation
139
+ /site
140
+
141
+ # mypy
142
+ .mypy_cache/
143
+ .dmypy.json
144
+ dmypy.json
145
+
146
+ # Pyre type checker
147
+ .pyre/
148
+
149
+ # pytype static type analyzer
150
+ .pytype/
151
+
152
+ # Cython debug symbols
153
+ cython_debug/
154
+
155
+ # PyCharm
156
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
159
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
160
+ #.idea/
@@ -0,0 +1,16 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v5.0.0
4
+ hooks:
5
+ - id: check-yaml
6
+ - id: end-of-file-fixer
7
+ - id: trailing-whitespace
8
+ - repo: https://github.com/psf/black
9
+ rev: 25.1.0
10
+ hooks:
11
+ - id: black
12
+ language_version: python3.10
13
+ - repo: https://github.com/pycqa/flake8
14
+ rev: 7.2.0
15
+ hooks:
16
+ - id: flake8
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: quicklook-package
3
- Version: 1.1.2
3
+ Version: 1.3.2
4
4
  Summary: Quicklook lightcurve plot generator
5
5
  Home-page: https://github.com/jpdeleon/quicklook
6
6
  Author-email: jpdeleon <jpdeleon.bsap@gmail.com>
@@ -23,32 +23,35 @@ Requires-Dist: flammkuchen==1.0.3
23
23
  Requires-Dist: reproject==0.12.0
24
24
  Requires-Dist: astroplan==0.9
25
25
  Requires-Dist: loguru
26
+ Requires-Dist: importlib_resources>=5.0.0
27
+ Dynamic: home-page
28
+ Dynamic: license-file
29
+ Dynamic: summary
26
30
 
27
31
  # QuickLook
28
- `quicklook` is a Python program that runs a simple pipeline to search for transit signal in TESS (and Kepler soon) light curves. This program can be run in a jupyter notebook (see [example](https://github.com/jpdeleon/quicklook/tree/main/notebook)) or from the terminal using the `ql` script.
32
+ `quicklook` is a Python program that runs a simple pipeline to search for transit signal in TESS (and Kepler soon) light curves. This program can be run in a jupyter notebook or from the terminal using the `ql` script.
29
33
 
30
34
  ## Use case
31
35
  Given target name, run periodograms on a TESS or Kepler lightcurve (if it exists) to measure the stellar rotation period and the orbital period of a potential companion i.e. planet, brown dwarf, or star.
32
36
  Although `quicklook` is optimized to find transiting exoplanets, this tool can also find eclipsing binaries and many other periodic signals.
33
37
 
34
- ## Try it on Google colab
35
-
36
- <a href="https://colab.research.google.com/github/jpdeleon/quicklook/blob/main/notebook/examples.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>
37
-
38
-
39
38
  ## Installation
40
- Create a conda environment called, say `my_env`, and install there an editable version of `quicklook`
39
+ Create a conda environment called, say `my_env`, and install there the latest version of `quicklook-package`
41
40
  ```bash
42
41
  $ conda create -n my_env python=3.10
43
42
  $ conda activate my_env
44
- (my_env) $ python -m python -m pip install -r https://raw.githubusercontent.com/jpdeleon/quicklook/main/requirements.txt
45
- (my_env) $ python -m pip install -e git+https://github.com/jpdeleon/quicklook.git#egg=quicklook
43
+ (my_env) $ pip install -U quicklook-package
46
44
  ```
47
45
 
48
- If you want to run `quicklook` in a notebook, you also need to install jupyter
46
+ If you want to run `quicklook` locally in a notebook, you also need to install jupyter
49
47
  ```
50
- (my_env) $ python -m pip install jupyterlab
48
+ (my_env) $ pip install jupyter notebook
51
49
  ```
50
+ See [example notebook](https://github.com/jpdeleon/quicklook/blob/main/notebook/examples.ipynb).
51
+
52
+ ## Try it on Google colab
53
+
54
+ <a href="https://colab.research.google.com/github/jpdeleon/quicklook/blob/main/notebook/examples.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>
52
55
 
53
56
  ## Command line script
54
57
  ```bash
@@ -63,7 +66,7 @@ Notes:
63
66
  * use single hyphen (-flag) if no value is needed.
64
67
  * use double hyphen (--flag value) if value is needed.
65
68
 
66
- Example: ql --name TOI-1234 --sector 27 -save -verbose
69
+ Example: ql --name TOI-5071 --sector 46 -save -verbose
67
70
 
68
71
  options:
69
72
  -h, --help show this help message and exit
@@ -101,12 +104,12 @@ options:
101
104
 
102
105
  ## Examples
103
106
 
104
- 1. Run `quicklook` on the most recent TESS lightcurve of TOI 5071 (aka K2-100).
107
+ 1. Run `quicklook` on the most recent TESS lightcurve of TOI-5071 (aka K2-100).
105
108
 
106
109
  ```shell
107
110
  (my_env) $ ql --name TOI-5071
108
111
  ```
109
- ![img](tests/k2-100_s46_pdcsap_sc.png)
112
+ ![img](tests/TOI5071_s46_pdcsap_sc.png)
110
113
 
111
114
  The figure above shows 9 panels. Let's break them down.
112
115
  * top row
@@ -124,7 +127,7 @@ The figure above shows 9 panels. Let's break them down.
124
127
 
125
128
  Try changing the parameters:
126
129
  ```shell
127
- (my_env) $ ql --name TIC52368076 -verbose -save | tee output.log
130
+ (my_env) $ ql --name TIC-52368076 -verbose -save | tee output.log
128
131
  (my_env) $ ql --name TOI-125.01 --pipeline qlp #specific pipeline
129
132
  (my_env) $ ql --name TOI-125.01 --sector 2 #specific TESS sector
130
133
  (my_env) $ ql --name TOI-125.01 --flatten_method cosine #specific function to detrend baseline
@@ -133,10 +136,10 @@ Try changing the parameters:
133
136
 
134
137
  ## Advanced usage
135
138
 
136
- If you would like to run `ql` on a list of TIC IDs (saved as `tic_ids.txt`), then you can make a batch script named `run_ql_given_tic.batch`. The output files containing the plots (*.png) and periodogram results (*_tls.h5) will be saved in `tic_dir` directory:
139
+ If you would like to run `ql` on a list of TIC IDs (saved as `tic_ids.txt`), then you can make a batch script named `run_ql_given_tic.batch`. The output files containing the logs (*.log), plots (*.png), and periodogram results (*_tls.h5) will be saved in `tic_dir` directory:
137
140
 
138
141
  ```shell
139
- (my_env) $ cat tic_ids.txt | while read tic; do echo ql --name TIC$tic -save --outdir tic_dir > TIC$tic.log 2>&1; done > run_ql_given_tic.batch
142
+ (my_env) $ cat tic_ids.txt | while read tic; do echo ql --name TIC$tic -save --outdir tic_dir | tee TIC$tic.log; done > run_ql_given_tic.batch
140
143
  ```
141
144
 
142
145
  To test the Nth line of the batch script,
@@ -1,28 +1,27 @@
1
1
  # QuickLook
2
- `quicklook` is a Python program that runs a simple pipeline to search for transit signal in TESS (and Kepler soon) light curves. This program can be run in a jupyter notebook (see [example](https://github.com/jpdeleon/quicklook/tree/main/notebook)) or from the terminal using the `ql` script.
2
+ `quicklook` is a Python program that runs a simple pipeline to search for transit signal in TESS (and Kepler soon) light curves. This program can be run in a jupyter notebook or from the terminal using the `ql` script.
3
3
 
4
4
  ## Use case
5
5
  Given target name, run periodograms on a TESS or Kepler lightcurve (if it exists) to measure the stellar rotation period and the orbital period of a potential companion i.e. planet, brown dwarf, or star.
6
6
  Although `quicklook` is optimized to find transiting exoplanets, this tool can also find eclipsing binaries and many other periodic signals.
7
7
 
8
- ## Try it on Google colab
9
-
10
- <a href="https://colab.research.google.com/github/jpdeleon/quicklook/blob/main/notebook/examples.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>
11
-
12
-
13
8
  ## Installation
14
- Create a conda environment called, say `my_env`, and install there an editable version of `quicklook`
9
+ Create a conda environment called, say `my_env`, and install there the latest version of `quicklook-package`
15
10
  ```bash
16
11
  $ conda create -n my_env python=3.10
17
12
  $ conda activate my_env
18
- (my_env) $ python -m python -m pip install -r https://raw.githubusercontent.com/jpdeleon/quicklook/main/requirements.txt
19
- (my_env) $ python -m pip install -e git+https://github.com/jpdeleon/quicklook.git#egg=quicklook
13
+ (my_env) $ pip install -U quicklook-package
20
14
  ```
21
15
 
22
- If you want to run `quicklook` in a notebook, you also need to install jupyter
16
+ If you want to run `quicklook` locally in a notebook, you also need to install jupyter
23
17
  ```
24
- (my_env) $ python -m pip install jupyterlab
18
+ (my_env) $ pip install jupyter notebook
25
19
  ```
20
+ See [example notebook](https://github.com/jpdeleon/quicklook/blob/main/notebook/examples.ipynb).
21
+
22
+ ## Try it on Google colab
23
+
24
+ <a href="https://colab.research.google.com/github/jpdeleon/quicklook/blob/main/notebook/examples.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>
26
25
 
27
26
  ## Command line script
28
27
  ```bash
@@ -37,7 +36,7 @@ Notes:
37
36
  * use single hyphen (-flag) if no value is needed.
38
37
  * use double hyphen (--flag value) if value is needed.
39
38
 
40
- Example: ql --name TOI-1234 --sector 27 -save -verbose
39
+ Example: ql --name TOI-5071 --sector 46 -save -verbose
41
40
 
42
41
  options:
43
42
  -h, --help show this help message and exit
@@ -75,12 +74,12 @@ options:
75
74
 
76
75
  ## Examples
77
76
 
78
- 1. Run `quicklook` on the most recent TESS lightcurve of TOI 5071 (aka K2-100).
77
+ 1. Run `quicklook` on the most recent TESS lightcurve of TOI-5071 (aka K2-100).
79
78
 
80
79
  ```shell
81
80
  (my_env) $ ql --name TOI-5071
82
81
  ```
83
- ![img](tests/k2-100_s46_pdcsap_sc.png)
82
+ ![img](tests/TOI5071_s46_pdcsap_sc.png)
84
83
 
85
84
  The figure above shows 9 panels. Let's break them down.
86
85
  * top row
@@ -98,7 +97,7 @@ The figure above shows 9 panels. Let's break them down.
98
97
 
99
98
  Try changing the parameters:
100
99
  ```shell
101
- (my_env) $ ql --name TIC52368076 -verbose -save | tee output.log
100
+ (my_env) $ ql --name TIC-52368076 -verbose -save | tee output.log
102
101
  (my_env) $ ql --name TOI-125.01 --pipeline qlp #specific pipeline
103
102
  (my_env) $ ql --name TOI-125.01 --sector 2 #specific TESS sector
104
103
  (my_env) $ ql --name TOI-125.01 --flatten_method cosine #specific function to detrend baseline
@@ -107,10 +106,10 @@ Try changing the parameters:
107
106
 
108
107
  ## Advanced usage
109
108
 
110
- If you would like to run `ql` on a list of TIC IDs (saved as `tic_ids.txt`), then you can make a batch script named `run_ql_given_tic.batch`. The output files containing the plots (*.png) and periodogram results (*_tls.h5) will be saved in `tic_dir` directory:
109
+ If you would like to run `ql` on a list of TIC IDs (saved as `tic_ids.txt`), then you can make a batch script named `run_ql_given_tic.batch`. The output files containing the logs (*.log), plots (*.png), and periodogram results (*_tls.h5) will be saved in `tic_dir` directory:
111
110
 
112
111
  ```shell
113
- (my_env) $ cat tic_ids.txt | while read tic; do echo ql --name TIC$tic -save --outdir tic_dir > TIC$tic.log 2>&1; done > run_ql_given_tic.batch
112
+ (my_env) $ cat tic_ids.txt | while read tic; do echo ql --name TIC$tic -save --outdir tic_dir | tee TIC$tic.log; done > run_ql_given_tic.batch
114
113
  ```
115
114
 
116
115
  To test the Nth line of the batch script,