Skip to content

Commit

Permalink
test 25
Browse files Browse the repository at this point in the history
  • Loading branch information
tvdboom committed Apr 10, 2024
1 parent 64bee1f commit 5824b09
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 27 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,9 @@ jobs:
pdm sync -G full -G test
pip install cmdstanpy==0.9.5 # Fixes https://github.com/facebook/prophet/issues/2354
- name: Run tests w/ coverage
shell: bash
run: |
export PYTHONPATH="${PYTHONPATH}:$(pwd)"
pdm run pytest -n=auto --cov=atom --cov-report=xml tests/
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
Expand Down Expand Up @@ -151,6 +153,7 @@ jobs:
run: pdm sync -G full -G test
- name: Run example notebooks
run: |
export PYTHONPATH="${PYTHONPATH}:$(pwd)"
pdm run pytest \
-n=auto \
--nbmake \
Expand Down
42 changes: 26 additions & 16 deletions examples/deep_learning.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -21,26 +21,20 @@
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"WARNING:tensorflow:From C:\\Users\\Mavs\\Documents\\Python\\ATOM\\venv311\\Lib\\site-packages\\keras\\src\\losses.py:2976: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead.\n",
"\n"
]
"metadata": {
"ExecuteTime": {
"end_time": "2024-04-10T11:35:24.349471Z",
"start_time": "2024-04-10T11:35:17.652042Z"
}
],
},
"source": [
"# Disable annoying tf warnings\n",
"import os\n",
"os.environ[\"TF_CPP_MIN_LOG_LEVEL\"] = \"3\"\n",
"# \n",
"# from tensorflow import get_logger\n",
"# get_logger().setLevel('ERROR')\n",
"# \n",
"\n",
"from tensorflow import get_logger\n",
"get_logger().setLevel(\"ERROR\")\n",
"\n",
"# import absl.logging\n",
"# absl.logging.set_verbosity(absl.logging.ERROR)\n",
"\n",
Expand All @@ -53,7 +47,23 @@
"from keras.datasets import mnist\n",
"from keras.models import Sequential\n",
"from keras.layers import Dense, Flatten, Conv2D, Dropout"
]
],
"outputs": [
{
"ename": "TypeError",
"evalue": "'type' object is not subscriptable",
"output_type": "error",
"traceback": [
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
"\u001B[1;31mTypeError\u001B[0m Traceback (most recent call last)",
"Cell \u001B[1;32mIn[1], line 11\u001B[0m\n\u001B[0;32m 6\u001B[0m get_logger()\u001B[38;5;241m.\u001B[39msetLevel(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mERROR\u001B[39m\u001B[38;5;124m'\u001B[39m)\n\u001B[0;32m 8\u001B[0m \u001B[38;5;66;03m# import absl.logging\u001B[39;00m\n\u001B[0;32m 9\u001B[0m \u001B[38;5;66;03m# absl.logging.set_verbosity(absl.logging.ERROR)\u001B[39;00m\n\u001B[1;32m---> 11\u001B[0m \u001B[38;5;28;01mfrom\u001B[39;00m \u001B[38;5;21;01matom\u001B[39;00m \u001B[38;5;28;01mimport\u001B[39;00m ATOMClassifier, ATOMModel\n\u001B[0;32m 12\u001B[0m \u001B[38;5;28;01mfrom\u001B[39;00m \u001B[38;5;21;01msklearn\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mpreprocessing\u001B[39;00m \u001B[38;5;28;01mimport\u001B[39;00m FunctionTransformer\n\u001B[0;32m 13\u001B[0m \u001B[38;5;28;01mfrom\u001B[39;00m \u001B[38;5;21;01moptuna\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mpruners\u001B[39;00m \u001B[38;5;28;01mimport\u001B[39;00m PatientPruner\n",
"File \u001B[1;32m~\\Documents\\Python\\ATOM\\atom\\__init__.py:10\u001B[0m\n\u001B[0;32m 1\u001B[0m \u001B[38;5;124;03m\"\"\"Automated Tool for Optimized Modeling (ATOM).\u001B[39;00m\n\u001B[0;32m 2\u001B[0m \n\u001B[0;32m 3\u001B[0m \u001B[38;5;124;03mAuthor: Mavs\u001B[39;00m\n\u001B[0;32m 4\u001B[0m \u001B[38;5;124;03mDescription: Import API and version, and set configuration.\u001B[39;00m\n\u001B[0;32m 5\u001B[0m \n\u001B[0;32m 6\u001B[0m \u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[0;32m 8\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01msklearn\u001B[39;00m\n\u001B[1;32m---> 10\u001B[0m \u001B[38;5;28;01mfrom\u001B[39;00m \u001B[38;5;21;01matom\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01m_show_versions\u001B[39;00m \u001B[38;5;28;01mimport\u001B[39;00m show_versions\n\u001B[0;32m 11\u001B[0m \u001B[38;5;28;01mfrom\u001B[39;00m \u001B[38;5;21;01matom\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mapi\u001B[39;00m \u001B[38;5;28;01mimport\u001B[39;00m ATOMClassifier, ATOMForecaster, ATOMModel, ATOMRegressor\n\u001B[0;32m 12\u001B[0m \u001B[38;5;28;01mfrom\u001B[39;00m \u001B[38;5;21;01matom\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mutils\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mconstants\u001B[39;00m \u001B[38;5;28;01mimport\u001B[39;00m __version__\n",
"File \u001B[1;32m~\\Documents\\Python\\ATOM\\atom\\_show_versions.py:81\u001B[0m\n\u001B[0;32m 66\u001B[0m \u001B[38;5;124;03m\"\"\"Get the system and Python version.\u001B[39;00m\n\u001B[0;32m 67\u001B[0m \n\u001B[0;32m 68\u001B[0m \u001B[38;5;124;03m Returns\u001B[39;00m\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 72\u001B[0m \n\u001B[0;32m 73\u001B[0m \u001B[38;5;124;03m \"\"\"\u001B[39;00m\n\u001B[0;32m 74\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m {\n\u001B[0;32m 75\u001B[0m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mpython\u001B[39m\u001B[38;5;124m\"\u001B[39m: sys\u001B[38;5;241m.\u001B[39mversion\u001B[38;5;241m.\u001B[39mreplace(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;130;01m\\n\u001B[39;00m\u001B[38;5;124m\"\u001B[39m, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124m \u001B[39m\u001B[38;5;124m\"\u001B[39m),\n\u001B[0;32m 76\u001B[0m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mexecutable\u001B[39m\u001B[38;5;124m\"\u001B[39m: sys\u001B[38;5;241m.\u001B[39mexecutable,\n\u001B[0;32m 77\u001B[0m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mmachine\u001B[39m\u001B[38;5;124m\"\u001B[39m: platform\u001B[38;5;241m.\u001B[39mplatform(),\n\u001B[0;32m 78\u001B[0m }\n\u001B[1;32m---> 81\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21m_get_deps_info\u001B[39m(deps: \u001B[38;5;28;43mlist\u001B[39;49m\u001B[43m[\u001B[49m\u001B[38;5;28;43mstr\u001B[39;49m\u001B[43m]\u001B[49m) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m \u001B[38;5;28mdict\u001B[39m[\u001B[38;5;28mstr\u001B[39m, \u001B[38;5;28mstr\u001B[39m \u001B[38;5;241m|\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m]:\n\u001B[0;32m 82\u001B[0m \u001B[38;5;124;03m\"\"\"Overview of the installed version of main dependencies.\u001B[39;00m\n\u001B[0;32m 83\u001B[0m \n\u001B[0;32m 84\u001B[0m \u001B[38;5;124;03m Parameters\u001B[39;00m\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 95\u001B[0m \n\u001B[0;32m 96\u001B[0m \u001B[38;5;124;03m \"\"\"\u001B[39;00m\n\u001B[0;32m 97\u001B[0m deps_info \u001B[38;5;241m=\u001B[39m {}\n",
"\u001B[1;31mTypeError\u001B[0m: 'type' object is not subscriptable"
]
}
],
"execution_count": 1
},
{
"cell_type": "code",
Expand Down
10 changes: 5 additions & 5 deletions pdm.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ full = [
"pyspark>=3.5.0",
"ray[serve]>=2.9.1; python_version < '3.12'",
"requests>=2.31.0",
"scikit-learn-intelex>=2023.2.1; platform_machine == 'x86_64' or platform_machine == 'AMD64'",
"scikit-learn-intelex>=2023.2.1; platform_system != 'Darwin' and (platform_machine == 'x86_64' or platform_machine == 'AMD64')",
"schemdraw>=0.16",
"statsforecast>=1.6.0",
"sweetviz>=2.3.1",
Expand Down
6 changes: 3 additions & 3 deletions tests/test_basetransformer.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import os
from logging import Logger
from pathlib import Path
from platform import machine
from platform import machine, system
from random import sample
from unittest.mock import patch

Expand Down Expand Up @@ -65,7 +65,7 @@ def test_engine_parameter(engine):
assert base.engine == EngineTuple()


@pytest.mark.skipif(machine() not in ("x86_64", "AMD64"), reason="Only x86 support")
@pytest.mark.skipif(system() == "Darwin" or machine() not in ("x86_64", "AMD64"))
def test_engine_parameter_sklearnex():
"""Assert that sklearnex offloads to the right device."""
BaseTransformer(device="gpu", engine={"estimator": "sklearnex"})
Expand Down Expand Up @@ -374,7 +374,7 @@ def test_inherit_sp():

# Test _get_est_class ============================================== >>

@pytest.mark.skipif(machine() not in ("x86_64", "AMD64"), reason="Only x86 support")
@pytest.mark.skipif(system() == "Darwin" or machine() not in ("x86_64", "AMD64"))
def test_get_est_class_from_engine():
"""Assert that the class can be retrieved from an engine."""
base = BaseTransformer(device="cpu", engine={"estimator": "sklearnex"})
Expand Down
4 changes: 2 additions & 2 deletions tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"""

from platform import machine
from platform import machine, system
from unittest.mock import Mock, patch

import pandas as pd
Expand Down Expand Up @@ -162,7 +162,7 @@ def test_multivariate_forecast_custom_seasonality():
)


@pytest.mark.skipif(machine() not in ("x86_64", "AMD64"), reason="Only x86 support")
@pytest.mark.skipif(system() == "Darwin" or machine() not in ("x86_64", "AMD64"))
@pytest.mark.parametrize("device", ["cpu", "gpu"])
def test_models_sklearnex_classification(device):
"""Assert the sklearnex engine works for classification tasks."""
Expand Down

0 comments on commit 5824b09

Please sign in to comment.