This PR introduces a new structure for project type classes:
All project type classes inherit from BaseProject
Classification, Completeness and Change Detection project types inherit from TileMapServiceBaseProject
From those, only Classification class is fully refactored.
Task and group classes are reduced to dataclasses and are attributes of project type classes. Logic for creating those are defined as functions in project type classes.
TODOs:
[x] need current tutorial draft containing "tutorialTasks" key
[x] Implement new inheritance and composition structure for all project types (project.py) #787
[x] Factor out groups.py and tasks.py into project.py. Attributes of those modules should go int dataclasses Task & Group and logic into functions create_tasks and create_groups`.
[x] Make all project type classes available in project_types.__init__.py and import them in definition.py
[x] Add all project type classes to ProjectType Enum in definition.py:
[x] Implement new inheritance and composition structure for all tutorials (tutorials.py)
[x] Add all tutorial classes to ProjectType Enum in definition.py:
This PR introduces a new structure for project type classes:
BaseProject
TileMapServiceBaseProject
TODOs:
project.py
) #787groups.py
andtasks.py
intoproject.py
. Attributes of those modules should go int dataclassesTask
&Group
and logic into functionscreate_tasks
and create_groups`.project_types.__init__.py
and import them indefinition.py
ProjectType
Enum indefinition.py
:tutorials.py
)ProjectType
Enum indefinition.py
: