diff --git a/.github/workflows/tests_with_latest_deps.yaml b/.github/workflows/tests_with_latest_deps.yaml index 67f5782179..b88d298f01 100644 --- a/.github/workflows/tests_with_latest_deps.yaml +++ b/.github/workflows/tests_with_latest_deps.yaml @@ -109,7 +109,7 @@ jobs: $ProgressPreference = "silentlyContinue" Invoke-WebRequest -Uri $Uri -Outfile "$env:USERPROFILE/$File" $hashFromFile = Get-FileHash "$env:USERPROFILE/$File" -Algorithm SHA256 - $hashFromUrl = "e841557c27d438b96e09126a2b0656154a3a34bdb9d87d59ceaea67515713515" + $hashFromUrl = "c9b32faa9262828702334b16bcb5b53556e630d54e5127f5c36c7ba7ed43179a" if ($hashFromFile.Hash -ne "$hashFromUrl") { Throw "$File hashes do not match" } diff --git a/docs/source/release_notes.rst b/docs/source/release_notes.rst index 52dab62597..0bdcb7e4c5 100644 --- a/docs/source/release_notes.rst +++ b/docs/source/release_notes.rst @@ -7,6 +7,7 @@ Future Release ============== * Enhancements * Fixes + * Fix dependency issues (:pr:`2644`) * Changes * Documentation Changes * Testing Changes @@ -14,7 +15,7 @@ Future Release * Update ruff to 0.1.6 and use ruff linter/formatter (:pr:`2639`) Thanks to the following people for contributing to this release: - :user:`gsheni`, :user:`thehomebrewnerd` + :user:`gsheni`, :user:`thehomebrewnerd`, :user:`tamargrey` v1.28.0 Oct 26, 2023 diff --git a/featuretools/primitives/standard/transform/cumulative/cumulative_time_since_last_false.py b/featuretools/primitives/standard/transform/cumulative/cumulative_time_since_last_false.py index be5e0cc15a..b214371dc2 100644 --- a/featuretools/primitives/standard/transform/cumulative/cumulative_time_since_last_false.py +++ b/featuretools/primitives/standard/transform/cumulative/cumulative_time_since_last_false.py @@ -51,7 +51,7 @@ def time_since_previous_false(datetime_col, bool_col): df.loc[not_false_indices, "last_false_datetime"] = np.nan df["last_false_datetime"] = df["last_false_datetime"].fillna(method="ffill") total_seconds = ( - df["datetime"] - df["last_false_datetime"] + pd.to_datetime(df["datetime"]).subtract(df["last_false_datetime"]) ).dt.total_seconds() return pd.Series(total_seconds) diff --git a/featuretools/primitives/standard/transform/cumulative/cumulative_time_since_last_true.py b/featuretools/primitives/standard/transform/cumulative/cumulative_time_since_last_true.py index b237a5357b..cf86d2eeef 100644 --- a/featuretools/primitives/standard/transform/cumulative/cumulative_time_since_last_true.py +++ b/featuretools/primitives/standard/transform/cumulative/cumulative_time_since_last_true.py @@ -46,7 +46,7 @@ def time_since_previous_true(datetime_col, bool_col): df.loc[~not_false_indices, "last_true_datetime"] = np.nan df["last_true_datetime"] = df["last_true_datetime"].fillna(method="ffill") total_seconds = ( - df["datetime"] - df["last_true_datetime"] + pd.to_datetime(df["datetime"]).subtract(df["last_true_datetime"]) ).dt.total_seconds() return pd.Series(total_seconds) diff --git a/featuretools/primitives/standard/transform/datetime/date_to_holiday.py b/featuretools/primitives/standard/transform/datetime/date_to_holiday.py index 008c630c19..9991ab4baa 100644 --- a/featuretools/primitives/standard/transform/datetime/date_to_holiday.py +++ b/featuretools/primitives/standard/transform/datetime/date_to_holiday.py @@ -33,9 +33,9 @@ class DateToHoliday(TransformPrimitive): >>> date_to_holiday_canada = DateToHoliday(country='Canada') >>> dates = pd.Series([datetime(2016, 7, 1), ... datetime(2016, 11, 15), - ... datetime(2018, 9, 3)]) + ... datetime(2018, 12, 25)]) >>> date_to_holiday_canada(dates).tolist() - ['Canada Day', nan, 'Labour Day'] + ['Canada Day', nan, 'Christmas Day'] """ name = "date_to_holiday" diff --git a/featuretools/tests/entityset_tests/test_serialization.py b/featuretools/tests/entityset_tests/test_serialization.py index c4c9081502..bc9ab36673 100644 --- a/featuretools/tests/entityset_tests/test_serialization.py +++ b/featuretools/tests/entityset_tests/test_serialization.py @@ -218,9 +218,9 @@ def test_to_pickle_id_none(tmp_path): @pytest.fixture def s3_client(): _environ = os.environ.copy() - from moto import mock_s3 + from moto import mock_aws - with mock_s3(): + with mock_aws(): s3 = boto3.resource("s3") yield s3 os.environ.clear() diff --git a/featuretools/tests/primitive_tests/test_feature_serialization.py b/featuretools/tests/primitive_tests/test_feature_serialization.py index 8595ab504c..d2ca60af2c 100644 --- a/featuretools/tests/primitive_tests/test_feature_serialization.py +++ b/featuretools/tests/primitive_tests/test_feature_serialization.py @@ -210,9 +210,9 @@ def serialize_name_unchanged(original): @pytest.fixture def s3_client(): _environ = os.environ.copy() - from moto import mock_s3 + from moto import mock_aws - with mock_s3(): + with mock_aws(): s3 = boto3.resource("s3") yield s3 os.environ.clear() diff --git a/featuretools/tests/primitive_tests/transform_primitive_tests/test_datetoholiday_primitive.py b/featuretools/tests/primitive_tests/transform_primitive_tests/test_datetoholiday_primitive.py index ea7a03d457..76bfb7c831 100644 --- a/featuretools/tests/primitive_tests/transform_primitive_tests/test_datetoholiday_primitive.py +++ b/featuretools/tests/primitive_tests/transform_primitive_tests/test_datetoholiday_primitive.py @@ -54,10 +54,10 @@ def test_valid_country(): [ "2016-07-01", "2016-11-11", - "2018-09-03", + "2018-12-25", ], ).astype("datetime64[ns]") - answer = ["Canada Day", np.nan, "Labour Day"] + answer = ["Canada Day", np.nan, "Christmas Day"] given_answer = date_to_holiday(case).astype("str") np.testing.assert_array_equal(given_answer, answer) diff --git a/featuretools/tests/requirement_files/minimum_test_requirements.txt b/featuretools/tests/requirement_files/minimum_test_requirements.txt index 97d60e24f8..1f33a70aea 100644 --- a/featuretools/tests/requirement_files/minimum_test_requirements.txt +++ b/featuretools/tests/requirement_files/minimum_test_requirements.txt @@ -1,9 +1,9 @@ -boto3==1.17.46 +boto3==1.34.32 cloudpickle==1.5.0 composeml==0.8.0 graphviz==0.8.4 holidays==0.13 -moto[all]==3.0.7 +moto[all]==5.0.0 numpy==1.21.0 packaging==20.0 pandas==1.5.0 diff --git a/pyproject.toml b/pyproject.toml index f851b25bab..6aa3413672 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,9 +32,9 @@ requires-python = ">=3.8,<4" dependencies = [ "cloudpickle >= 1.5.0", "holidays >= 0.17", - "numpy >= 1.21.0", + "numpy >= 1.21.0, <2.0.0", "packaging >= 20.0", - "pandas >= 1.5.0", + "pandas >= 1.5.0,<2.2.0", "psutil >= 5.6.6", "scipy >= 1.10.0", "tqdm >= 4.32.0", @@ -51,10 +51,10 @@ dependencies = [ [project.optional-dependencies] test = [ - "boto3 >= 1.17.46", + "boto3 >= 1.34.32", "composeml >= 0.8.0", "graphviz >= 0.8.4", - "moto[all] >= 3.0.7", + "moto[all] >= 5.0.0", "pip >= 21.3.1", "pyarrow >= 3.0.0,<13.0.0", "pympler >= 0.8", @@ -71,7 +71,7 @@ dask = [ "woodwork[dask] >= 0.23.0", ] spark = [ - "woodwork[spark] >= 0.23.0", + "woodwork[spark] >= 0.23.0, <0.28.0", "pyspark >= 3.2.2", "numpy < 1.24.0", "pandas < 2.0.0", @@ -84,7 +84,7 @@ tsfresh = [ "featuretools-tsfresh-primitives >= 1.0.0", ] premium = [ - "premium_primitives >= 0.0.2", + "premium_primitives @ git+https://github.com/alteryx/premium_primitives.git@main", ] autonormalize = [ "autonormalize >= 2.0.1", @@ -107,10 +107,9 @@ docs = [ "sphinx-inline-tabs == 2022.1.2b11", "sphinx-copybutton == 0.5.0", "myst-parser == 0.18.0", - "premium_primitives >= 0.0.2", "autonormalize >= 2.0.1", "click >= 7.0.0", - "featuretools[sklearn,dask,spark,test]", + "featuretools[sklearn,dask,spark,test,premium]", ] dev = [ "ruff >= 0.1.6",