blob: cc22be3709da2dfc26fb4220adca8d008eb2d03f [file]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
import logging
import pandas as pd
from hamilton.function_modifiers import tag
logger = logging.getLogger(__name__)
@tag(cache="str")
def lowercased(initial: str) -> str:
logger.info("lowercased")
return initial.lower()
@tag(cache="str")
def uppercased(initial: str) -> str:
logger.info("uppercased")
return initial.upper()
@tag(cache="json")
def both(lowercased: str, uppercased: str) -> dict:
logger.info("both")
return {"lower": lowercased, "upper": uppercased}
def b2(both: dict) -> dict:
logger.info("b2")
return both
@tag(cache="json")
def my_df() -> pd.DataFrame:
logger.info("json df")
return pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})
@tag(cache="json")
def my_series() -> pd.Series:
logger.info("json series")
return pd.Series([7, 8, 9])
@tag(cache="parquet")
def my_df2(my_df: pd.DataFrame) -> pd.DataFrame:
logger.info("parquet df")
return my_df
@tag(cache="parquet")
def my_series2(my_series: pd.Series) -> pd.Series:
logger.info("parquet series")
return my_series
def combined(my_df2: pd.DataFrame, my_series2: pd.Series) -> pd.DataFrame:
logger.info("combined")
_s = pd.Series(my_series2, name="c")
_df = pd.concat([my_df2, _s], axis=1)
return _df