Skip to content
Draft
Show file tree
Hide file tree
Changes from 16 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 23 additions & 5 deletions pycaret/containers/base_container.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@
import inspect
from typing import Any, Dict, Optional

from skbase.base import BaseObject

import pycaret.utils.generic


class BaseContainer:
class BaseContainer(BaseObject):
"""
Base container class, for easier definition of containers. Ensures consistent format
before being turned into a dataframe row.
Expand Down Expand Up @@ -37,14 +39,13 @@ class BaseContainer:
Should the model be used with 'turbo = True' in compare_models().
args : dict, default = {} (empty dict)
The arguments to always pass to constructor when initializing object of class_def class.

"""

def __init__(
self,
id: str,
name: str,
class_def: type,
class_def: Optional[type] = None,
args: Optional[Dict[str, Any]] = None,
) -> None:
if not args:
Expand All @@ -54,10 +55,27 @@ def __init__(

self.id = id
self.name = name
self.class_def = class_def
self._legacy_class_def = class_def
self.reference = self.get_class_name()
self.args = args
self._legacy_args = args
self.active = True
super().__init__()

@property
def class_def(self):
return self._class_def()

def _class_def(self):
# temporary solution for downwards compatibility with most model classes
return self._legacy_class_def

@property
def args(self):
return self._args()

def _args(self):
# temporary solution for downwards compatibility with most model classes
return self._legacy_args

def get_class_name(self):
return pycaret.utils.generic.get_class_name(self.class_def)
Expand Down
2 changes: 1 addition & 1 deletion pycaret/containers/models/base_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def __init__(
self,
id: str,
name: str,
class_def: type,
class_def: Optional[type] = None,
eq_function: Optional[type] = None,
args: Dict[str, Any] = None,
is_special: bool = False,
Expand Down
Loading
Loading