microlens-submit 0.12.1__py3-none-any.whl → 0.16.0__py3-none-any.whl

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 (34) hide show
  1. microlens_submit/__init__.py +7 -157
  2. microlens_submit/cli/__init__.py +5 -0
  3. microlens_submit/cli/__main__.py +6 -0
  4. microlens_submit/cli/commands/__init__.py +1 -0
  5. microlens_submit/cli/commands/dossier.py +139 -0
  6. microlens_submit/cli/commands/export.py +177 -0
  7. microlens_submit/cli/commands/init.py +172 -0
  8. microlens_submit/cli/commands/solutions.py +722 -0
  9. microlens_submit/cli/commands/validation.py +241 -0
  10. microlens_submit/cli/main.py +120 -0
  11. microlens_submit/dossier/__init__.py +51 -0
  12. microlens_submit/dossier/dashboard.py +499 -0
  13. microlens_submit/dossier/event_page.py +369 -0
  14. microlens_submit/dossier/full_report.py +330 -0
  15. microlens_submit/dossier/solution_page.py +533 -0
  16. microlens_submit/dossier/utils.py +111 -0
  17. microlens_submit/error_messages.py +283 -0
  18. microlens_submit/models/__init__.py +28 -0
  19. microlens_submit/models/event.py +406 -0
  20. microlens_submit/models/solution.py +569 -0
  21. microlens_submit/models/submission.py +569 -0
  22. microlens_submit/tier_validation.py +208 -0
  23. microlens_submit/utils.py +373 -0
  24. microlens_submit/validate_parameters.py +478 -180
  25. {microlens_submit-0.12.1.dist-info → microlens_submit-0.16.0.dist-info}/METADATA +54 -37
  26. microlens_submit-0.16.0.dist-info/RECORD +32 -0
  27. {microlens_submit-0.12.1.dist-info → microlens_submit-0.16.0.dist-info}/WHEEL +1 -1
  28. microlens_submit/api.py +0 -1274
  29. microlens_submit/cli.py +0 -1803
  30. microlens_submit/dossier.py +0 -1443
  31. microlens_submit-0.12.1.dist-info/RECORD +0 -13
  32. {microlens_submit-0.12.1.dist-info/licenses → microlens_submit-0.16.0.dist-info}/LICENSE +0 -0
  33. {microlens_submit-0.12.1.dist-info → microlens_submit-0.16.0.dist-info}/entry_points.txt +0 -0
  34. {microlens_submit-0.12.1.dist-info → microlens_submit-0.16.0.dist-info}/top_level.txt +0 -0
@@ -1,35 +1,46 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.1
2
2
  Name: microlens-submit
3
- Version: 0.12.1
4
- Summary: A stateful submission toolkit for the Microlensing Data Challenge.
5
- Author-email: Amber Malpas <malpas.1@osu.edu>
3
+ Version: 0.16.0
4
+ Summary: A tool for managing and submitting microlensing solutions
5
+ Home-page: https://github.com/AmberLee2427/microlens-submit
6
+ Author: Amber Malpas
7
+ Author-email: Amber Malpas <malpas.1@osu.edu>, Roman Science Platform Team <roman-science-platform@stsci.edu>
6
8
  License: MIT
7
9
  Project-URL: Homepage, https://github.com/AmberLee2427/microlens-submit
8
10
  Project-URL: Repository, https://github.com/AmberLee2427/microlens-submit
9
- Classifier: Programming Language :: Python :: 3
10
- Classifier: Operating System :: OS Independent
11
- Classifier: Development Status :: 3 - Alpha
11
+ Keywords: astronomy,microlensing,data-challenge,submission,roman
12
+ Classifier: Development Status :: 4 - Beta
12
13
  Classifier: Intended Audience :: Science/Research
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
13
22
  Classifier: Topic :: Scientific/Engineering :: Astronomy
23
+ Classifier: Topic :: Scientific/Engineering :: Physics
14
24
  Requires-Python: >=3.8
15
25
  Description-Content-Type: text/markdown
16
26
  License-File: LICENSE
17
- Requires-Dist: typer[all]>=0.9.0
18
- Requires-Dist: pydantic>=2.0
19
- Requires-Dist: rich>=13.0
20
- Requires-Dist: PyYAML>=6.0
21
- Requires-Dist: markdown>=3.0
27
+ Requires-Dist: pydantic >=2.0.0
28
+ Requires-Dist: typer[all] >=0.9.0
29
+ Requires-Dist: rich >=13.0.0
30
+ Requires-Dist: pyyaml >=6.0
31
+ Requires-Dist: markdown >=3.4.0
32
+ Requires-Dist: importlib-resources >=1.0.0 ; python_version < "3.9"
22
33
  Provides-Extra: dev
23
- Requires-Dist: pytest; extra == "dev"
24
- Requires-Dist: pytest-cov; extra == "dev"
25
- Requires-Dist: build; extra == "dev"
26
- Requires-Dist: twine; extra == "dev"
27
- Requires-Dist: pre-commit; extra == "dev"
28
- Requires-Dist: black; extra == "dev"
29
- Requires-Dist: isort; extra == "dev"
30
- Requires-Dist: sphinx; extra == "dev"
31
- Requires-Dist: sphinx_rtd_theme; extra == "dev"
32
- Dynamic: license-file
34
+ Requires-Dist: pytest ; extra == 'dev'
35
+ Requires-Dist: pytest-cov ; extra == 'dev'
36
+ Requires-Dist: build ; extra == 'dev'
37
+ Requires-Dist: twine ; extra == 'dev'
38
+ Requires-Dist: pre-commit ; extra == 'dev'
39
+ Requires-Dist: black ; extra == 'dev'
40
+ Requires-Dist: isort ; extra == 'dev'
41
+ Requires-Dist: sphinx ; extra == 'dev'
42
+ Requires-Dist: sphinx-rtd-theme ; extra == 'dev'
43
+ Requires-Dist: importlib-resources ; extra == 'dev'
33
44
 
34
45
  <p align="center">
35
46
  <a href="https://github.com/AmberLee2427/microlens-submit">
@@ -41,7 +52,9 @@ Dynamic: license-file
41
52
 
42
53
  *A stateful submission toolkit for the RGES-PIT Microlensing Data Challenge.*
43
54
 
44
- [![PyPI - v0.12.1](https://img.shields.io/pypi/v/microlens-submit.svg)](https://pypi.org/project/microlens-submit/)
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/)
45
58
  [![CI](https://github.com/AmberLee2427/microlens-submit/actions/workflows/ci.yml/badge.svg)](https://github.com/AmberLee2427/microlens-submit/actions/workflows/ci.yml)
46
59
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
47
60
 
@@ -49,7 +62,7 @@ Dynamic: license-file
49
62
 
50
63
  `microlens-submit` provides a robust, version-controlled workflow for managing, validating, and packaging your challenge submission over a long period. It supports both a programmatic Python API and a full-featured Command Line Interface (CLI) for language-agnostic use.
51
64
 
52
- Full documentation is hosted on [Read the Docs](https://microlens-submit.readthedocs.io/en/latest/). A comprehensive tutorial notebook is available at `docs/Submission_Tool_Tutorial.ipynb`. Challenge participants who prefer not to use this tool can consult [SUBMISSION_MANUAL.md](SUBMISSION_MANUAL.md) for the manual submission format.
65
+ Full documentation is hosted on [Read the Docs](https://microlens-submit.readthedocs.io/en/latest/). A comprehensive tutorial notebook is available at `docs/Submission_Tool_Tutorial.ipynb`. Challenge participants who prefer not to use this tool can consult the [Submission Manual](https://microlens-submit.readthedocs.io/en/latest/submission_manual.html) for the manual submission format.
53
66
 
54
67
  ## Key Features
55
68
 
@@ -64,16 +77,11 @@ Full documentation is hosted on [Read the Docs](https://microlens-submit.readthe
64
77
  * **Environment Capture:** Automatically records your Python dependencies for each specific model fit, ensuring reproducibility.
65
78
  * **Optional Posterior Storage:** Record the path to posterior samples for any solution.
66
79
  * **Simple Export:** Packages all your active solutions into a clean, standardized `.zip` archive for final submission.
80
+ * **Bulk Import:** Import multiple solutions at once from a CSV file using the `import-solutions` CLI command. Supports column mapping, alias handling, duplicate handling, notes, dry-run, and validation options.
67
81
 
68
82
  ## Installation
69
83
 
70
- This package is pre-release. It is currently available on TestPyPI:
71
-
72
- ```bash
73
- pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple microlens-submit==0.12.0-dev
74
- ```
75
-
76
- The package will be available on PyPI:
84
+ The package is available on PyPI:
77
85
 
78
86
  ```bash
79
87
  pip install microlens-submit
@@ -98,10 +106,15 @@ You can pass ``--no-color`` to any command if your terminal does not support ANS
98
106
  This will create a new solution and print its unique `solution_id`.
99
107
  You can run the same command with `--dry-run` first to verify the
100
108
  parsed input without saving anything.
101
- 3. Deactivate a solution that didn't work out: `microlens-submit deactivate <solution_id>`
102
- 4. List all solutions for an event: `microlens-submit list-solutions ogle-2025-blg-0042`
103
- 5. Validate solutions and check for issues: `microlens-submit validate-solution <solution_id>`
104
- 6. Export your final submission: `microlens-submit export final_submission.zip`
109
+ 3. **Bulk import multiple solutions from a CSV file:**
110
+ ```bash
111
+ microlens-submit import-solutions tests/data/test_import.csv --dry-run
112
+ ```
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.
114
+ 4. Deactivate a solution that didn't work out: `microlens-submit deactivate <solution_id>`
115
+ 5. List all solutions for an event: `microlens-submit list-solutions ogle-2025-blg-0042`
116
+ 6. Validate solutions and check for issues: `microlens-submit validate-solution <solution_id>`
117
+ 7. Export your final submission: `microlens-submit export final_submission.zip`
105
118
 
106
119
  **Note:** When you add a solution, it's automatically validated and any warnings are displayed. Use `--dry-run` to check validation without saving.
107
120
 
@@ -137,7 +150,8 @@ sub.export("final_submission.zip")
137
150
 
138
151
  The full development plan can be found in agents.md. Contributions are welcome!
139
152
 
140
- To build and test this project, the development environment needs the following Python libraries. You can provide these to Codex or set up a `requirements-dev.txt` file.
153
+ To build and test this project, install the development dependencies using either `pip install -e .[dev]` or `pip install -r requirements-dev.txt`. These packages are required to run the test suite and are listed in `requirements-dev.txt`.
154
+ After installing the dependencies, run `pre-commit install` to set up the Git hooks for automatic formatting and linting. The development environment needs the following Python libraries.
141
155
 
142
156
  ### Core Dependencies:
143
157
  * **`typer[all]`**: For building the powerful command-line interface. The `[all]` extra ensures shell completion support is included.
@@ -151,9 +165,12 @@ To build and test this project, the development environment needs the following
151
165
  * **`build`**: For building the package from the `pyproject.toml` file.
152
166
  * **`twine`**: For uploading the final package to PyPI.
153
167
 
168
+ ### Test Data
169
+
170
+ A comprehensive test CSV file is provided at `tests/data/test_import.csv`. This file is used in the test suite and can be copied or adapted for your own bulk imports or for development/testing purposes.
171
+
154
172
  ## Citation
155
173
 
156
174
  If you use **microlens-submit** in your research, please cite the project using
157
175
  the metadata provided in the `CITATION.cff` file. Most reference managers can
158
176
  import this file directly.
159
-
@@ -0,0 +1,32 @@
1
+ microlens_submit/__init__.py,sha256=E4AZWfHXFQQyKY3uush-Kq2RZn4jRCCu4G0eozzcUYw,399
2
+ microlens_submit/error_messages.py,sha256=BuTkzc1B2lve-G4-4wAUX5p3y6CthPFOcMJM6_eMN2I,10262
3
+ microlens_submit/tier_validation.py,sha256=mbE9MjXRHbsPBB12aD2lyYUdvXiBacweRG2OTWgP7Fs,6168
4
+ microlens_submit/utils.py,sha256=3kEinJXr5OWHjrQUGHhUFA6L2rNdqaLy2ogmQNx_TfY,14358
5
+ microlens_submit/validate_parameters.py,sha256=_RBzdbY2sFwtNNd5f69bwxTpHjlNq_np3iDYvio4Oow,37645
6
+ microlens_submit/assets/github-desktop_logo.png,sha256=pb4rallKrYQPHt6eC0TmJe_UyyMtf1IrP8_OWK19nH8,479821
7
+ microlens_submit/assets/rges-pit_logo.png,sha256=45AJypXCymvt3lMeK7MHt1SBhwPpnKCMj6S000Cejtc,537645
8
+ microlens_submit/cli/__init__.py,sha256=u4ZgVOzUe_gf89FBhY61XWjcfK4oxXCStabYTjBuRRo,82
9
+ microlens_submit/cli/__main__.py,sha256=_7x5Hd_9ehQwYHphd3iPB3LMVvKAVmxz-e0E4pWi0lk,112
10
+ microlens_submit/cli/main.py,sha256=iJ2bkQZ-OiuCUCVqs_EGbhpa240zB7agrYNZj6p5_3g,3938
11
+ microlens_submit/cli/commands/__init__.py,sha256=rzIgY7T2Bz4Lhzts_RiWeoBbMoCuxODxeoktnUhH4rw,49
12
+ microlens_submit/cli/commands/dossier.py,sha256=6gRJNzUgr29YmYJRcUj9aoiRhjb1r9Uy4dip6z2LaHI,5100
13
+ microlens_submit/cli/commands/export.py,sha256=Hr9frquBdla69s7Bi-Vx3XBQ0AJte562coIParmLQL8,6600
14
+ microlens_submit/cli/commands/init.py,sha256=LOnG63YJupk3ELFCRl9itDymtAe0eu9xf2BQ6D5xu50,7074
15
+ microlens_submit/cli/commands/solutions.py,sha256=E0aU4rtjRWToh8l1yrSJnPo6CRnLsx-2QAF5Rv1yMVs,30051
16
+ microlens_submit/cli/commands/validation.py,sha256=XNbuIy837IPV45ze4dvJaKx9-UCx24VXiGW_y4dl4YE,8841
17
+ microlens_submit/dossier/__init__.py,sha256=INAacbrY0Wi5ueH8c7b156bGzelyUFcynbE7_YRiku0,1948
18
+ microlens_submit/dossier/dashboard.py,sha256=5obGIFThpUT-qWsJJG9481YdZ3mjN94QXDrCLoccGQE,19674
19
+ microlens_submit/dossier/event_page.py,sha256=XUcMOu4Jbz9Wno5o-4k0i2Y7yn7Qv1hYN2t7DlQlQ4U,14391
20
+ microlens_submit/dossier/full_report.py,sha256=zQXoo6ZQfwv_NNFFel3ZYW1DgnqD--VU0L7J7p9yEng,12864
21
+ microlens_submit/dossier/solution_page.py,sha256=WZcC218G-kJujNIYHloSy-sEfNFYh92g7g9mwveEepo,23559
22
+ microlens_submit/dossier/utils.py,sha256=LopBbVg6nzQasL1lnaI63y3bpmqYqBeDEwfB_NqEeCA,3845
23
+ microlens_submit/models/__init__.py,sha256=1sHFjAWyFtGgQBRSo8lBYiPzToo4tIoHP3uBjtgJSPY,861
24
+ microlens_submit/models/event.py,sha256=j5ulKGF2lVWXpIVcilCPftoXxMHwuYgD9ZjUz5vhlek,16941
25
+ microlens_submit/models/solution.py,sha256=0prKFYM3oxKXZjtzhaAaS7E5cYP2maxfbYNQhkL-IY0,23339
26
+ microlens_submit/models/submission.py,sha256=WgSgw6-60ZwLgsFjl2u1FX76ydATJ5t_DpGUQOekpg4,26116
27
+ microlens_submit-0.16.0.dist-info/LICENSE,sha256=cy1qkVR-kGxD6FXVsparmU2vHJXYeoyAAHv6SgT67sw,1069
28
+ microlens_submit-0.16.0.dist-info/METADATA,sha256=Npg_If55ev_mgu8MlHiv2nlPvgbVvTqdmZrgjlSg8IE,8956
29
+ microlens_submit-0.16.0.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
30
+ microlens_submit-0.16.0.dist-info/entry_points.txt,sha256=kA85yhxYrpQnUvVZCRS2giz52gaf1ZOfZFjY4RHIZ2s,62
31
+ microlens_submit-0.16.0.dist-info/top_level.txt,sha256=uJ9_bADYRySlhEpP-8vTm90ZLV2SrKEzutAaRx8WF0k,17
32
+ microlens_submit-0.16.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (75.3.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5