Slackbot
04/08/2023, 3:26 PMElijah Ben Izzy
04/08/2023, 3:33 PMOptional
, it still gets the error — looks like setting the default to None
makes whatever way we parse it think its optional.Elijah Ben Izzy
04/08/2023, 3:34 PMoptional
cause you want some not to have to have certain inputs?Ankush Kundaliya
04/08/2023, 3:35 PMAnkush Kundaliya
04/08/2023, 3:37 PMElijah Ben Izzy
04/08/2023, 3:41 PMNone
and not declare it…
OTOH, if you’re hardcoding the parameterizations, the code might be a lot simpler if you make rename_columns
a helper function.
def _rename_columns(...) -> ...:
...
def pricing_matrix(pricing_data: pd.DataFrame) -> pd.DataFrame:
return _rename_columns(
df=pricing_data,
existing_names=["Pricing_Custom_UnitPrice"],
new_names=["BasisOnDemandUnitPrice"],
prefix="Source")
def other_parameterization(...) -> pd.DataFrame:
return _rename_columns(
...
)
Elijah Ben Izzy
04/08/2023, 3:41 PMElijah Ben Izzy
04/08/2023, 3:43 PMAnkush Kundaliya
04/08/2023, 3:48 PMOptional
Elijah Ben Izzy
04/08/2023, 3:48 PMAnkush Kundaliya
04/08/2023, 3:49 PMElijah Ben Izzy
04/08/2023, 3:49 PMElijah Ben Izzy
04/08/2023, 3:54 PMElijah Ben Izzy
04/08/2023, 3:57 PMpip install git+<https://github.com/dagworks-inc/hamilton.git@allow-optional-grouping>
if you wantElijah Ben Izzy
04/08/2023, 3:57 PMAnkush Kundaliya
04/08/2023, 4:16 PMAnkush Kundaliya
04/08/2023, 8:57 PMDriver.driver()
Error message:
../hamilton/function_modifiers/expanders.py", line 253, in expand_node
sequence_component_type = grouped_dependency_spec.resolve_dependency_type(
../hamilton/function_modifiers/dependencies.py", line 68, in resolve_dependency_type
if origin is None or not issubclass(origin, typing.Sequence):
../typing.py", line 1158, in __subclasscheck__
return issubclass(cls, self.__origin__)
../abc.py", line 123, in __subclasscheck__
return _abc_subclasscheck(cls, subclass)
TypeError: issubclass() arg 1 must be a class
Looks like origin is expected be of typing.Sequence
, but in this case its typing.Union
Stefan Krawczyk
04/08/2023, 8:59 PMAnkush Kundaliya
04/08/2023, 9:03 PMNone
or using typing.Optional
with grouped dependencies
Stefan Krawczyk
04/08/2023, 9:10 PMStefan Krawczyk
04/08/2023, 9:20 PMStefan Krawczyk
04/08/2023, 9:20 PMAnkush Kundaliya
04/08/2023, 9:35 PMStefan Krawczyk
04/08/2023, 9:36 PMOptional
isn’t supported. So if you find more, do let us know 🙂Ankush Kundaliya
04/08/2023, 9:37 PM