ipyannotator
ipyannotator copied to clipboard
Settings API usage
Ipyannotator uses an API that contains a pair of Input/Output and a Settings class. The Settings contains parameters that are used for all annotators, but some of them are redundant.
This task tries to reduce the Settings class to three parameters:
class Settings:
project_path: Path = Path('user_project')
project_file: Optional[Path] = None
result_dir: Optional[str] = None
The remaining parameters should be stored in Input/Output classes. This will avoid the following redundant code (from 01b_tutorial_image_classification.ipynb):
settings_ = get_settings(dataset)
settings_.project_file, settings_.image_dir
input_ = InputImage(image_dir=settings_.image_dir,
image_width=settings_.im_width,
image_height=settings_.im_height)
output_ = OutputImageLabel(label_dir=settings_.label_dir,
label_width=settings_.label_width,
label_height=settings_.label_height)
To do this the get_settings function needs to be refactored. A suggestion is to rename get_settings to get_api and return a tuple with input, output, and settings.