E3SM-Project / E3SM-Project/simboard
[Refactor]: Split up `features/catalog` modules for composability
- Dominant language
- Python
- Stars
- 1
- Forks
- 2
- Avg merge
- 25m
- Merged PRs (30d)
- 14
Description
### Is your feature request related to a problem?
The `features/catalog` modules are starting to grow oversized, including `api.py`, `models.py` and `schemas.py`.
These modules should be split up into a folder containing the related sub-module. For example:
Under `features/catalog/api`:
- `/overview.py`
- `/case.py`
- `/execution.py`
`models.py` may be kept as is since it is small. `schemas.py` has many schemas now and should be split up.
Other files to consider refactoring:
`ingestion/schemas.py`
### Describe the solution you'd like
_No response_
### Describe alternatives you've considered
_No response_
### Additional context
_No response_
Contributor guide
Research direction
Start by inspecting features/catalog/api.py, features/catalog/models.py, features/catalog/schemas.py, and ingestion/schemas.py, then trace their imports and usages. Split the oversized API and schema modules while preserving existing behavior and imports; models.py may remain unchanged if it is still small. Done means the related modules are organized into composable files without breaking their consumers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100