Closed Karanjot786 closed 2 months ago
This looks very reasonable.
A few points:
src
.cli.py
. Rather, cli.py
should instantiate that class and run its methods to do what needs to be done. In other words, we need a library entry point on top of the CLI entry point - which will just be a slim wrapper around the library entry point.tests/
, it might be good to have tests/unit/
and tests/integration/
subpackages. The cookiecutter will take care of that.tes_models
if they are already in a package models
. Better to import from src.models import tes
rather than from src.models import tes_models
- it's redunant.I have renamed the src folder to CrateGen. Now, I am working on refactoring the conversion functions according to the feedback. This includes creating abstract classes for the converters and separating the library entry point from the CLI.
I'll update you once I have made significant progress on these changes.
Thanks a lot!
Please rename it to crategen
(good name) and let's call the package the same way. By convention, capital letters should only be used in exceptional cases for package names.
We can still name the project and repo (I have already renamed it) CrateGen
. Also make sure to update the title in the README.md
.
You can do the renaming in a single PR.
Rest sounds good :)
Hi @uniqueg ,
I wanted to let you know that I’m going to open a PR shortly. This PR will include the initial project structure along with the implemented files. This is the initial version of the project and is not yet complete. Please review the structure and let me know if you have any feedback or suggestions for improvement.
Thank you!
Summary
This issue is to discuss the overall design of the project and propose an initial version. The goal is to create a well-organized, maintainable, and scalable codebase.
Objectives
Define Clear Objectives and Scope
Use Object-Oriented Design (OOP)
Modular Architecture
Design Patterns
Define Models for TES and WES
Proposed Project Structure
CrateGen/ ├── src/ │ ├── converters/ │ │ ├── tes_to_wrroc.py │ │ ├── wes_to_wrroc.py │ ├── models/ │ │ ├── tes_models.py │ │ ├── wes_models.py │ ├── utils/ │ │ ├── validation.py │ │ ├── formatting.py │ └── cli.py ├── tests/ │ ├── test_converters.py │ ├── test_models.py │ ├── test_utils.py ├── docs/ │ └── index.rst ├── .github/ │ └── workflows/ │ └── ci.yml ├── pyproject.toml ├── mypy.ini ├── README.md └── LICENSE
Key Components
Tasks
Define Models
Implement Converters
Set Up CLI
Write Tests
Documentation
CI/CD Pipeline
Next Steps
Discuss and Refine Design
Break Down Work into Small Work Packages
Start Implementation
Please provide your feedback and suggestions on this proposed design.
Thank you!