-
Notifications
You must be signed in to change notification settings - Fork 88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add desc to not implemented errors #1177
Conversation
Hello @valer1435! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found: There are currently no PEP 8 issues detected in this Pull Request. Cheers! 🍻 Comment last updated at 2023-10-02 07:25:40 UTC |
Hello @valer1435! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found: There are currently no PEP 8 issues detected in this Pull Request. Cheers! 🍻 Comment last updated at 2023-10-02 07:25:43 UTC |
Codecov Report
@@ Coverage Diff @@
## master #1177 +/- ##
==========================================
- Coverage 79.89% 79.65% -0.25%
==========================================
Files 141 141
Lines 9796 9812 +16
==========================================
- Hits 7827 7816 -11
- Misses 1969 1996 +27
|
def from_operations(self, available_operations: List[str]): | ||
raise NotImplementedError('abstract') | ||
raise NotImplementedError(f'Method {stack()[0][3]} not implemented in {self.__class__}') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Лучше писать что это абстрактный метод и его нельзя вызывать. Во всех наследниках этого класса этот метод будет реализован, никаких проблем с его отсутствием не будет. Абстрактный метод можно вызвать только через super()
, так что по идее ошибка может быть только в попытке его вызвать.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Отпишу только здесь, тк по другим неактуально
Добавил классы ошибок
def to_builders(self, initial_node: Optional[PipelineNode] = None, | ||
use_input_preprocessing: bool = True) -> List[PipelineBuilder]: | ||
raise NotImplementedError('abstract') | ||
raise NotImplementedError(f'Method {stack()[0][3]} not implemented in {self.__class__}') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Лучше писать что это абстрактный метод и его нельзя вызывать. Во всех наследниках этого класса этот метод будет реализован, никаких проблем с его отсутствием не будет. Абстрактный метод можно вызвать только через super()
, так что по идее ошибка может быть только в попытке его вызвать.
def sample(self) -> str: | ||
""" Samples some operation that satisfies this filter. """ | ||
raise NotImplementedError() | ||
raise NotImplementedError(f'Method {stack()[0][3]} not implemented in {self.__class__}') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Лучше писать что это абстрактный метод и его нельзя вызывать. Во всех наследниках этого класса этот метод будет реализован, никаких проблем с его отсутствием не будет. Абстрактный метод можно вызвать только через super()
, так что по идее ошибка может быть только в попытке его вызвать.
def ensemble_operation(self) -> str: | ||
""" Suitable ensemble operation used for MultiModalData case. """ | ||
raise NotImplementedError() | ||
raise NotImplementedError(f'Method {stack()[0][3]} not implemented in {self.__class__}') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Лучше писать что это абстрактный метод и его нельзя вызывать. Во всех наследниках этого класса этот метод будет реализован, никаких проблем с его отсутствием не будет. Абстрактный метод можно вызвать только через super()
, так что по идее ошибка может быть только в попытке его вызвать.
def processing_builders(self) -> List[PipelineBuilder]: | ||
""" Returns alternatives of PipelineBuilders for core processing (without preprocessing). """ | ||
raise NotImplementedError() | ||
raise NotImplementedError(f'Method {stack()[0][3]} not implemented in {self.__class__}') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Лучше писать что это абстрактный метод и его нельзя вызывать. Во всех наследниках этого класса этот метод будет реализован, никаких проблем с его отсутствием не будет. Абстрактный метод можно вызвать только через super()
, так что по идее ошибка может быть только в попытке его вызвать.
fedot/core/composer/metrics.py
Outdated
|
||
@staticmethod | ||
@abstractmethod | ||
def metric(reference: InputData, predicted: OutputData) -> float: | ||
raise NotImplementedError() | ||
raise NotImplementedError(f'Method {stack()[0][3]} not implemented in {self.__class__}') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Лучше писать что это абстрактный метод и его нельзя вызывать. Во всех наследниках этого класса этот метод будет реализован, никаких проблем с его отсутствием не будет. Абстрактный метод можно вызвать только через super()
, так что по идее ошибка может быть только в попытке его вызвать.
fedot/core/composer/metrics.py
Outdated
@@ -61,7 +62,7 @@ class QualityMetric: | |||
@staticmethod | |||
@abstractmethod | |||
def metric(reference: InputData, predicted: OutputData) -> float: | |||
raise NotImplementedError() | |||
raise NotImplementedError(f'Method {stack()[0][3]} not implemented') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Лучше писать что это абстрактный метод и его нельзя вызывать. Во всех наследниках этого класса этот метод будет реализован, никаких проблем с его отсутствием не будет. Абстрактный метод можно вызвать только через super()
, так что по идее ошибка может быть только в попытке его вызвать.
fedot/core/data/data_detection.py
Outdated
@@ -14,12 +15,12 @@ class DataDetector: | |||
@staticmethod | |||
@abstractmethod | |||
def prepare_multimodal_data(dataframe: pd.DataFrame, columns: List[str]) -> dict: | |||
raise NotImplementedError() | |||
raise NotImplementedError(f'Method {stack()[0][3]} not implemented') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Лучше писать что это абстрактный метод и его нельзя вызывать. Во всех наследниках этого класса этот метод будет реализован, никаких проблем с его отсутствием не будет. Абстрактный метод можно вызвать только через super()
, так что по идее ошибка может быть только в попытке его вызвать.
fedot/core/data/data_detection.py
Outdated
|
||
@staticmethod | ||
@abstractmethod | ||
def new_key_name(data_part_key: str) -> str: | ||
raise NotImplementedError() | ||
raise NotImplementedError(f'Method {stack()[0][3]} not implemented') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Лучше писать что это абстрактный метод и его нельзя вызывать. Во всех наследниках этого класса этот метод будет реализован, никаких проблем с его отсутствием не будет. Абстрактный метод можно вызвать только через super()
, так что по идее ошибка может быть только в попытке его вызвать.
@@ -38,7 +38,6 @@ def test_prediction_intervals(params): | |||
pred_ints = PredictionIntervals(model=params['model'], method=x, horizon=20, params=pred_ints_params) | |||
pred_ints.fit(params['train_input']) | |||
res = pred_ints.forecast() | |||
pred_ints.plot() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Этот момент я у себя тоже пофиксил))
#1174
def ensemble_operation(self) -> str: | ||
""" Suitable ensemble operation used for MultiModalData case. """ | ||
raise NotImplementedError() | ||
raise NotImplementedError(f'Method {stack()[0][3]} is not implemented in {self.__class__}') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
stack()[0][3] бы в какую-то служебную функцию вынести.
А конкретно для этого кейса - вообще целиком вся строка "raise NotImplementedError(f'Method {stack()[0][3]} is not implemented in {self.class}')" может быть вынесена.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Добавил классы ошибок. Один в итоге сейчас не нужен. Но может понадобится в будущем.
Closes #259