MCPcopy Create free account
hub / github.com/dot-agent/nextpy / __init__

Method __init__

nextpy/frontend/components/component.py:1128–1176  ·  view source on GitHub ↗

Initialize the custom component. Args: *args: The args to pass to the component. **kwargs: The kwargs to pass to the component.

(self, *args, **kwargs)

Source from the content-addressed store, hash-verified

1126 props: Dict[str, Any] = {}
1127
1128 def __init__(self, *args, **kwargs):
1129 """Initialize the custom component.
1130
1131 Args:
1132 *args: The args to pass to the component.
1133 **kwargs: The kwargs to pass to the component.
1134 """
1135 super().__init__(*args, **kwargs)
1136
1137 # Unset the style.
1138 self.style = Style()
1139
1140 # Set the tag to the name of the function.
1141 self.tag = format.to_title_case(self.component_fn.__name__)
1142
1143 # Set the props.
1144 props = typing.get_type_hints(self.component_fn)
1145 for key, value in kwargs.items():
1146 # Skip kwargs that are not props.
1147 if key not in props:
1148 continue
1149
1150 # Get the type based on the annotation.
1151 type_ = props[key]
1152
1153 # Handle event chains.
1154 if types._issubclass(type_, EventChain):
1155 value = self._create_event_chain(key, value)
1156 self.props[format.to_camel_case(key)] = value
1157 continue
1158
1159 # Convert the type to a Var, then get the type of the var.
1160 if not types._issubclass(type_, Var):
1161 type_ = Var[type_]
1162 type_ = types.get_args(type_)[0]
1163
1164 # Handle subclasses of Base.
1165 if types._issubclass(type_, Base):
1166 try:
1167 value = BaseVar(
1168 _var_name=value.json(), _var_type=type_, _var_is_local=True
1169 )
1170 except Exception:
1171 value = Var.create(value)
1172 else:
1173 value = Var.create(value, _var_is_string=type(value) is str)
1174
1175 # Set the prop.
1176 self.props[format.to_camel_case(key)] = value
1177
1178 def __eq__(self, other: Any) -> bool:
1179 """Check if the component is equal to another.

Callers

nothing calls this directly

Calls 7

StyleClass · 0.90
BaseVarClass · 0.90
itemsMethod · 0.80
_create_event_chainMethod · 0.80
jsonMethod · 0.80
__init__Method · 0.45
createMethod · 0.45

Tested by

no test coverage detected