E3SM-Project / E3SM-Project/simboard

[Refactor]: Split up `features/catalog` modules for composability

Open
#306 0 comments 0 reactions 0 assignees View on GitHub
type: refactor
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.