def test_incorrect_rotation_time(): with pytest.raises(TypeError): session = get_or_create_session() with session.logger("test2", with_rotation_time='W2') as logger: df = util.testing.makeDataFrame() logger.log_dataframe(df)
def test_get_global_session(): _session = None session = get_or_create_session() global_session = get_session() assert session == global_session
def test_log_csv(tmpdir): csv_path = os.path.join(script_dir, os.pardir, "lending_club_1000.csv") session = get_or_create_session() with session.logger("csvtest") as logger: logger.log_csv(csv_path) summary = logger.profile.flat_summary() flat_summary = summary['summary'] assert len(flat_summary) == 151
def test_profile_df(): session = get_or_create_session() df = util.testing.makeDataFrame() log_profile = session.log_dataframe(df) profile = session.profile_dataframe(df) assert log_profile.name == profile.name assert log_profile.dataset_timestamp == profile.dataset_timestamp assert log_profile.session_timestamp == profile.session_timestamp assert len(profile.columns) == 4 assert len(log_profile.tags) == 1 assert len(profile.tags) == 2
def test_close_session(df): session = get_or_create_session() session.close() assert session.is_active() == False log_profile = session.log_dataframe(df) assert log_profile == None profile = session.profile_dataframe(df) assert profile == None profile = session.new_profile(df) assert profile == None with pytest.raises(RuntimeError): session.logger()
def test_load_config(tmpdir): original_dir = os.curdir p = tmpdir.mkdir("whylogs") try: session = get_or_create_session() os.chdir(p) assert session.project == "test-project-yaml" with session.logger("test_name") as logger: logger.log_dataframe(pd.DataFrame()) session.close() finally: os.chdir(original_dir)
def test_profile_df(df): import datetime session = get_or_create_session() dt = datetime.datetime.now(datetime.timezone.utc) log_profile = session.log_dataframe(df, dataset_timestamp=dt) profile = session.profile_dataframe(df, dataset_timestamp=dt) assert log_profile.name == profile.name assert log_profile.dataset_timestamp == profile.dataset_timestamp assert log_profile.session_timestamp == profile.session_timestamp assert len(profile.columns) == 4 assert len(log_profile.tags) == 1 assert len(profile.tags) == 2
def test_remove_logger(): session = get_or_create_session() session.logger("default-project") with pytest.raises(KeyError): session.remove_logger("test")
def test_reset(): session = get_or_create_session() reset_default_session() global_session = get_session() assert global_session.project is not None
""" Logger options ============== Example showing the use of a few logger options which can control output locations """ import pandas as pd from whylogs.app.session import get_or_create_session # Load some example data, using 'issue_d' as a datetime column df = pd.read_csv("data/lending_club_1000.csv", parse_dates=["issue_d"]) # Create a whylogs logging session session = get_or_create_session() # Log statistics for the dataset with config options with session.logger( dataset_name="lending-club", dataset_timestamp=df["issue_d"].max(), ) as ylog: ylog.log_dataframe(df) # Note that the logger is active within this context print("Logger is active:", ylog.is_active()) # The logger is no longer active print("Logger is active:", ylog.is_active())
def test_logger_cache(): session = get_or_create_session() with session.logger("cache-test", with_rotation_time="s") as logger: logger.log({"name": 1}) session.close()
def test_incorrect_rotation_time(df): with pytest.raises(TypeError): with get_or_create_session() as session: with session.logger("test2", with_rotation_time="W2") as logger: logger.log_dataframe(df)