microlens-submit 0.16.0__tar.gz → 0.16.1__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 (44) hide show
  1. {microlens_submit-0.16.0/microlens_submit.egg-info → microlens_submit-0.16.1}/PKG-INFO +32 -9
  2. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/README.md +26 -7
  3. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/__init__.py +1 -1
  4. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/dossier/dashboard.py +6 -2
  5. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/dossier/event_page.py +2 -1
  6. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/dossier/solution_page.py +2 -1
  7. {microlens_submit-0.16.0 → microlens_submit-0.16.1/microlens_submit.egg-info}/PKG-INFO +32 -9
  8. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/pyproject.toml +3 -3
  9. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/setup.py +2 -2
  10. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/tests/test_cli.py +13 -11
  11. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/LICENSE +0 -0
  12. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/MANIFEST.in +0 -0
  13. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/assets/github-desktop_logo.png +0 -0
  14. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/assets/rges-pit_logo.png +0 -0
  15. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/cli/__init__.py +0 -0
  16. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/cli/__main__.py +0 -0
  17. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/cli/commands/__init__.py +0 -0
  18. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/cli/commands/dossier.py +0 -0
  19. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/cli/commands/export.py +0 -0
  20. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/cli/commands/init.py +0 -0
  21. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/cli/commands/solutions.py +0 -0
  22. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/cli/commands/validation.py +0 -0
  23. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/cli/main.py +0 -0
  24. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/dossier/__init__.py +0 -0
  25. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/dossier/full_report.py +0 -0
  26. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/dossier/utils.py +0 -0
  27. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/error_messages.py +0 -0
  28. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/models/__init__.py +0 -0
  29. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/models/event.py +0 -0
  30. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/models/solution.py +0 -0
  31. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/models/submission.py +0 -0
  32. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/tier_validation.py +0 -0
  33. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/utils.py +0 -0
  34. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit/validate_parameters.py +0 -0
  35. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit.egg-info/SOURCES.txt +0 -0
  36. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit.egg-info/dependency_links.txt +0 -0
  37. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit.egg-info/entry_points.txt +0 -0
  38. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit.egg-info/requires.txt +0 -0
  39. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/microlens_submit.egg-info/top_level.txt +0 -0
  40. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/setup.cfg +0 -0
  41. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/tests/test_api.py +0 -0
  42. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/tests/test_dossier_generation.py +0 -0
  43. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/tests/test_dossier_pages.py +0 -0
  44. {microlens_submit-0.16.0 → microlens_submit-0.16.1}/tests/test_tier_validation.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: microlens-submit
3
- Version: 0.16.0
3
+ Version: 0.16.1
4
4
  Summary: A tool for managing and submitting microlensing solutions
5
5
  Home-page: https://github.com/AmberLee2427/microlens-submit
6
6
  Author: Amber Malpas
@@ -41,6 +41,10 @@ Requires-Dist: isort; extra == "dev"
41
41
  Requires-Dist: sphinx; extra == "dev"
42
42
  Requires-Dist: sphinx_rtd_theme; extra == "dev"
43
43
  Requires-Dist: importlib_resources; extra == "dev"
44
+ Dynamic: author
45
+ Dynamic: home-page
46
+ Dynamic: license-file
47
+ Dynamic: requires-python
44
48
 
45
49
  <p align="center">
46
50
  <a href="https://github.com/AmberLee2427/microlens-submit">
@@ -52,11 +56,7 @@ Requires-Dist: importlib_resources; extra == "dev"
52
56
 
53
57
  *A stateful submission toolkit for the RGES-PIT Microlensing Data Challenge.*
54
58
 
55
- [![PyPI - v0.16.0](https://img.shields.io/pypi/v/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)
56
- [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)
57
- [![PyPI - License](https://img.shields.io/pypi/l/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)
58
- [![CI](https://github.com/AmberLee2427/microlens-submit/actions/workflows/ci.yml/badge.svg)](https://github.com/AmberLee2427/microlens-submit/actions/workflows/ci.yml)
59
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
59
+ [![PyPI - v0.16.0](https://img.shields.io/pypi/v/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)[![Read the Docs](https://readthedocs.org/projects/microlens-submit/badge/?version=latest)](https://microlens-submit.readthedocs.io/en/latest/?badge=latest)[![CI](https://github.com/AmberLee2427/microlens-submit/actions/workflows/ci.yml/badge.svg)](https://github.com/AmberLee2427/microlens-submit/actions/workflows/ci.yml)[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
60
60
 
61
61
  <br>
62
62
 
@@ -93,8 +93,21 @@ The CLI is the recommended way to interact with your submission project.
93
93
 
94
94
  You can pass ``--no-color`` to any command if your terminal does not support ANSI colors.
95
95
 
96
- 1. Initialize your project: `microlens-submit init --team-name "Planet Pounders" --tier "advanced"`
96
+ 1. Initialize your project:
97
+
98
+ ```bash
99
+ microlens-submit init --team-name "Planet Pounders" --tier "advanced"
100
+ # if a project directory was provided to `init`, you should now `cd` into that project
101
+ ```
102
+
103
+ To pass validation, you need to have provided a `repo_url` and `hardware_info` to the project and have a git project initialized in your sumission-project directory.
104
+
105
+ ```bash
106
+ microlens-submit set-repo-url <url> ./
107
+ microlens-submit set-hardware-info --cpu-details "intel i7 xxx" --ram-gb 32 ./
108
+ ```
97
109
  2. Add a new solution to an event:
110
+
98
111
  ```bash
99
112
  microlens-submit add-solution ogle-2025-blg-0042 1S2L \
100
113
  --param t0=555.5 \
@@ -102,18 +115,28 @@ You can pass ``--no-color`` to any command if your terminal does not support ANS
102
115
  --param tE=25.0 \
103
116
  --notes "This is a great fit!"
104
117
  ```
118
+
105
119
  Model types must be one of `1S1L`, `1S2L`, `2S1L`, `2S2L`, `1S3L`, `2S3L`, or `other`.
106
120
  This will create a new solution and print its unique `solution_id`.
121
+
107
122
  You can run the same command with `--dry-run` first to verify the
108
123
  parsed input without saving anything.
124
+
109
125
  3. **Bulk import multiple solutions from a CSV file:**
126
+
110
127
  ```bash
111
128
  microlens-submit import-solutions tests/data/test_import.csv --dry-run
112
129
  ```
113
- See the file `tests/data/test_import.csv` for a comprehensive example covering all features and edge cases. You can use this file as a template for your own imports.
130
+
131
+ See the file `tests/data/test_import.csv` for a comprehensive example covering all features and edge cases.
132
+ You can use this file as a template for your own imports.
133
+
114
134
  4. Deactivate a solution that didn't work out: `microlens-submit deactivate <solution_id>`
135
+
115
136
  5. List all solutions for an event: `microlens-submit list-solutions ogle-2025-blg-0042`
137
+
116
138
  6. Validate solutions and check for issues: `microlens-submit validate-solution <solution_id>`
139
+
117
140
  7. Export your final submission: `microlens-submit export final_submission.zip`
118
141
 
119
142
  **Note:** When you add a solution, it's automatically validated and any warnings are displayed. Use `--dry-run` to check validation without saving.
@@ -8,11 +8,7 @@
8
8
 
9
9
  *A stateful submission toolkit for the RGES-PIT Microlensing Data Challenge.*
10
10
 
11
- [![PyPI - v0.16.0](https://img.shields.io/pypi/v/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)
12
- [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)
13
- [![PyPI - License](https://img.shields.io/pypi/l/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)
14
- [![CI](https://github.com/AmberLee2427/microlens-submit/actions/workflows/ci.yml/badge.svg)](https://github.com/AmberLee2427/microlens-submit/actions/workflows/ci.yml)
15
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
+ [![PyPI - v0.16.0](https://img.shields.io/pypi/v/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)[![Read the Docs](https://readthedocs.org/projects/microlens-submit/badge/?version=latest)](https://microlens-submit.readthedocs.io/en/latest/?badge=latest)[![CI](https://github.com/AmberLee2427/microlens-submit/actions/workflows/ci.yml/badge.svg)](https://github.com/AmberLee2427/microlens-submit/actions/workflows/ci.yml)[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
16
12
 
17
13
  <br>
18
14
 
@@ -49,8 +45,21 @@ The CLI is the recommended way to interact with your submission project.
49
45
 
50
46
  You can pass ``--no-color`` to any command if your terminal does not support ANSI colors.
51
47
 
52
- 1. Initialize your project: `microlens-submit init --team-name "Planet Pounders" --tier "advanced"`
48
+ 1. Initialize your project:
49
+
50
+ ```bash
51
+ microlens-submit init --team-name "Planet Pounders" --tier "advanced"
52
+ # if a project directory was provided to `init`, you should now `cd` into that project
53
+ ```
54
+
55
+ To pass validation, you need to have provided a `repo_url` and `hardware_info` to the project and have a git project initialized in your sumission-project directory.
56
+
57
+ ```bash
58
+ microlens-submit set-repo-url <url> ./
59
+ microlens-submit set-hardware-info --cpu-details "intel i7 xxx" --ram-gb 32 ./
60
+ ```
53
61
  2. Add a new solution to an event:
62
+
54
63
  ```bash
55
64
  microlens-submit add-solution ogle-2025-blg-0042 1S2L \
56
65
  --param t0=555.5 \
@@ -58,18 +67,28 @@ You can pass ``--no-color`` to any command if your terminal does not support ANS
58
67
  --param tE=25.0 \
59
68
  --notes "This is a great fit!"
60
69
  ```
70
+
61
71
  Model types must be one of `1S1L`, `1S2L`, `2S1L`, `2S2L`, `1S3L`, `2S3L`, or `other`.
62
72
  This will create a new solution and print its unique `solution_id`.
73
+
63
74
  You can run the same command with `--dry-run` first to verify the
64
75
  parsed input without saving anything.
76
+
65
77
  3. **Bulk import multiple solutions from a CSV file:**
78
+
66
79
  ```bash
67
80
  microlens-submit import-solutions tests/data/test_import.csv --dry-run
68
81
  ```
69
- See the file `tests/data/test_import.csv` for a comprehensive example covering all features and edge cases. You can use this file as a template for your own imports.
82
+
83
+ See the file `tests/data/test_import.csv` for a comprehensive example covering all features and edge cases.
84
+ You can use this file as a template for your own imports.
85
+
70
86
  4. Deactivate a solution that didn't work out: `microlens-submit deactivate <solution_id>`
87
+
71
88
  5. List all solutions for an event: `microlens-submit list-solutions ogle-2025-blg-0042`
89
+
72
90
  6. Validate solutions and check for issues: `microlens-submit validate-solution <solution_id>`
91
+
73
92
  7. Export your final submission: `microlens-submit export final_submission.zip`
74
93
 
75
94
  **Note:** When you add a solution, it's automatically validated and any warnings are displayed. Use `--dry-run` to check validation without saving.
@@ -5,7 +5,7 @@ validate, and export a challenge submission using either the Python API or
5
5
  the command line interface.
6
6
  """
7
7
 
8
- __version__ = "0.16.0"
8
+ __version__ = "0.16.1"
9
9
 
10
10
  from .models import Event, Solution, Submission
11
11
  from .utils import load
@@ -11,8 +11,12 @@ import webbrowser
11
11
  from datetime import datetime
12
12
  from pathlib import Path
13
13
 
14
- import importlib_resources
14
+ try: # Prefer stdlib importlib.resources when available (Python >= 3.9)
15
+ import importlib.resources as importlib_resources
16
+ except ImportError: # pragma: no cover - fallback for Python < 3.9
17
+ import importlib_resources
15
18
 
19
+ from .. import __version__
16
20
  from ..models.submission import Submission
17
21
  from .utils import extract_github_repo_name, format_hardware_info
18
22
 
@@ -485,7 +489,7 @@ style="width: {progress_percentage}%"></div>
485
489
 
486
490
  <!-- Footer -->
487
491
  <div class="text-sm text-gray-500 text-center pt-8 pb-6">
488
- Generated by microlens-submit v0.16.0 on
492
+ Generated by microlens-submit v{__version__} on
489
493
  {datetime.now().strftime('%Y-%m-%d %H:%M:%S UTC')}
490
494
  </div>
491
495
 
@@ -9,6 +9,7 @@ evaluator-only visualizations.
9
9
  from datetime import datetime
10
10
  from pathlib import Path
11
11
 
12
+ from .. import __version__
12
13
  from ..models import Event, Submission
13
14
  from .solution_page import generate_solution_page
14
15
 
@@ -357,7 +358,7 @@ Event {event.event_id}. Points colored by Relative Probability (Evaluator View).
357
358
 
358
359
  <!-- Footer -->
359
360
  <div class='text-sm text-gray-500 text-center pt-8 border-t border-gray-200 mt-10'>
360
- Generated by microlens-submit v0.13.0 on {datetime.now().strftime('%Y-%m-%d %H:%M:%S UTC')}
361
+ Generated by microlens-submit v{__version__} on {datetime.now().strftime('%Y-%m-%d %H:%M:%S UTC')}
361
362
  </div>
362
363
 
363
364
  <!-- Regex Finish -->
@@ -11,6 +11,7 @@ from pathlib import Path
11
11
 
12
12
  import markdown
13
13
 
14
+ from .. import __version__
14
15
  from ..models.event import Event
15
16
  from ..models.solution import Solution
16
17
  from ..models.submission import Submission
@@ -521,7 +522,7 @@ def _generate_solution_page_content(solution: Solution, event: Event, submission
521
522
 
522
523
  <!-- Footer -->
523
524
  <div class='text-sm text-gray-500 text-center pt-8 border-t border-gray-200 mt-10'>
524
- Generated by microlens-submit v0.16.0 on {datetime.now().strftime('%Y-%m-%d %H:%M:%S UTC')}
525
+ Generated by microlens-submit v{__version__} on {datetime.now().strftime('%Y-%m-%d %H:%M:%S UTC')}
525
526
  </div>
526
527
 
527
528
  <!-- Regex Finish -->
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: microlens-submit
3
- Version: 0.16.0
3
+ Version: 0.16.1
4
4
  Summary: A tool for managing and submitting microlensing solutions
5
5
  Home-page: https://github.com/AmberLee2427/microlens-submit
6
6
  Author: Amber Malpas
@@ -41,6 +41,10 @@ Requires-Dist: isort; extra == "dev"
41
41
  Requires-Dist: sphinx; extra == "dev"
42
42
  Requires-Dist: sphinx_rtd_theme; extra == "dev"
43
43
  Requires-Dist: importlib_resources; extra == "dev"
44
+ Dynamic: author
45
+ Dynamic: home-page
46
+ Dynamic: license-file
47
+ Dynamic: requires-python
44
48
 
45
49
  <p align="center">
46
50
  <a href="https://github.com/AmberLee2427/microlens-submit">
@@ -52,11 +56,7 @@ Requires-Dist: importlib_resources; extra == "dev"
52
56
 
53
57
  *A stateful submission toolkit for the RGES-PIT Microlensing Data Challenge.*
54
58
 
55
- [![PyPI - v0.16.0](https://img.shields.io/pypi/v/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)
56
- [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)
57
- [![PyPI - License](https://img.shields.io/pypi/l/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)
58
- [![CI](https://github.com/AmberLee2427/microlens-submit/actions/workflows/ci.yml/badge.svg)](https://github.com/AmberLee2427/microlens-submit/actions/workflows/ci.yml)
59
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
59
+ [![PyPI - v0.16.0](https://img.shields.io/pypi/v/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)[![Read the Docs](https://readthedocs.org/projects/microlens-submit/badge/?version=latest)](https://microlens-submit.readthedocs.io/en/latest/?badge=latest)[![CI](https://github.com/AmberLee2427/microlens-submit/actions/workflows/ci.yml/badge.svg)](https://github.com/AmberLee2427/microlens-submit/actions/workflows/ci.yml)[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
60
60
 
61
61
  <br>
62
62
 
@@ -93,8 +93,21 @@ The CLI is the recommended way to interact with your submission project.
93
93
 
94
94
  You can pass ``--no-color`` to any command if your terminal does not support ANSI colors.
95
95
 
96
- 1. Initialize your project: `microlens-submit init --team-name "Planet Pounders" --tier "advanced"`
96
+ 1. Initialize your project:
97
+
98
+ ```bash
99
+ microlens-submit init --team-name "Planet Pounders" --tier "advanced"
100
+ # if a project directory was provided to `init`, you should now `cd` into that project
101
+ ```
102
+
103
+ To pass validation, you need to have provided a `repo_url` and `hardware_info` to the project and have a git project initialized in your sumission-project directory.
104
+
105
+ ```bash
106
+ microlens-submit set-repo-url <url> ./
107
+ microlens-submit set-hardware-info --cpu-details "intel i7 xxx" --ram-gb 32 ./
108
+ ```
97
109
  2. Add a new solution to an event:
110
+
98
111
  ```bash
99
112
  microlens-submit add-solution ogle-2025-blg-0042 1S2L \
100
113
  --param t0=555.5 \
@@ -102,18 +115,28 @@ You can pass ``--no-color`` to any command if your terminal does not support ANS
102
115
  --param tE=25.0 \
103
116
  --notes "This is a great fit!"
104
117
  ```
118
+
105
119
  Model types must be one of `1S1L`, `1S2L`, `2S1L`, `2S2L`, `1S3L`, `2S3L`, or `other`.
106
120
  This will create a new solution and print its unique `solution_id`.
121
+
107
122
  You can run the same command with `--dry-run` first to verify the
108
123
  parsed input without saving anything.
124
+
109
125
  3. **Bulk import multiple solutions from a CSV file:**
126
+
110
127
  ```bash
111
128
  microlens-submit import-solutions tests/data/test_import.csv --dry-run
112
129
  ```
113
- See the file `tests/data/test_import.csv` for a comprehensive example covering all features and edge cases. You can use this file as a template for your own imports.
130
+
131
+ See the file `tests/data/test_import.csv` for a comprehensive example covering all features and edge cases.
132
+ You can use this file as a template for your own imports.
133
+
114
134
  4. Deactivate a solution that didn't work out: `microlens-submit deactivate <solution_id>`
135
+
115
136
  5. List all solutions for an event: `microlens-submit list-solutions ogle-2025-blg-0042`
137
+
116
138
  6. Validate solutions and check for issues: `microlens-submit validate-solution <solution_id>`
139
+
117
140
  7. Export your final submission: `microlens-submit export final_submission.zip`
118
141
 
119
142
  **Note:** When you add a solution, it's automatically validated and any warnings are displayed. Use `--dry-run` to check validation without saving.
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "microlens-submit"
9
- version = "0.16.0"
9
+ version = "0.16.1"
10
10
  authors = [
11
11
  { name="Amber Malpas", email="malpas.1@osu.edu" },
12
12
  {name = "Roman Science Platform Team", email = "roman-science-platform@stsci.edu"}
@@ -36,7 +36,7 @@ dependencies = [
36
36
  "rich>=13.0.0",
37
37
  "pyyaml>=6.0",
38
38
  "markdown>=3.4.0",
39
- "importlib_resources>=1.0.0; python_version<\"3.9\"",
39
+ 'importlib_resources>=1.0.0; python_version < "3.9"',
40
40
  ]
41
41
 
42
42
  [project.urls]
@@ -65,7 +65,7 @@ dev = [
65
65
  # Setuptools package configuration
66
66
  [tool.setuptools.packages.find]
67
67
  where = ["."]
68
- include = ["microlens_submit*"]
68
+ include = ["microlens_submit", "microlens_submit.*"]
69
69
  exclude = ["tests*", "docs*"]
70
70
 
71
71
  [tool.setuptools.package-data]
@@ -8,8 +8,8 @@ from setuptools import find_packages, setup
8
8
  if __name__ == "__main__":
9
9
  setup(
10
10
  name="microlens-submit",
11
- version="0.16.0",
12
- packages=find_packages(),
11
+ version="0.16.1",
12
+ packages=find_packages(include=("microlens_submit", "microlens_submit.*")),
13
13
  include_package_data=True,
14
14
  package_data={
15
15
  "microlens_submit": ["assets/*"],
@@ -61,20 +61,22 @@ Note:
61
61
  The test suite ensures CLI functionality matches API behavior.
62
62
  """
63
63
 
64
- # Install package in editable mode to ensure assets are available
64
+ # Install package in editable mode to ensure assets are available when running tests
65
+ import os
65
66
  import subprocess
66
67
  import sys
67
68
 
68
- try:
69
- subprocess.run(
70
- [sys.executable, "-m", "pip", "install", "-e", "."],
71
- capture_output=True,
72
- check=True,
73
- )
74
- except subprocess.CalledProcessError:
75
- # If we're not in the right directory or package isn't set up, continue anyway
76
- # The asset check fixture will catch missing assets
77
- pass
69
+ if os.environ.get("MICROLENS_SKIP_EDITABLE_INSTALL") != "1":
70
+ try:
71
+ subprocess.run(
72
+ [sys.executable, "-m", "pip", "install", "-e", "."],
73
+ capture_output=True,
74
+ check=True,
75
+ )
76
+ except subprocess.CalledProcessError:
77
+ # If we're not in the right directory or package isn't set up, continue anyway
78
+ # The asset check fixture will catch missing assets
79
+ pass
78
80
 
79
81
  import json
80
82
  import zipfile