Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 0 additions & 10 deletions .flake8

This file was deleted.

17 changes: 5 additions & 12 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
# Copyright (c) 2019-2022, NVIDIA CORPORATION.

repos:
- repo: https://github.com/psf/black
rev: 23.7.0
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.1
hooks:
- id: black
files: python/cuxfilter/.*
# Explicitly specify the pyproject.toml at the repo root, not per-project.
args: ["--config", "pyproject.toml"]
- repo: https://github.com/PyCQA/flake8
rev: 7.1.1
hooks:
- id: flake8
args: ["--config=.flake8"]
files: python/.*$
- id: ruff-check
args: [--fix]
- id: ruff-format
- repo: https://github.com/rapidsai/pre-commit-hooks
rev: v0.6.0
hooks:
Expand Down
31 changes: 18 additions & 13 deletions ci/utils/nbtestlog2junitxml.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# SPDX-FileCopyrightText: Copyright (c) 2020-2025, NVIDIA CORPORATION. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

# Generate a junit-xml file from parsing a nbtest log

import re
Expand All @@ -8,7 +11,9 @@


startingPatt = re.compile("^STARTING: ([\w\.\-]+)$")
skippingPatt = re.compile("^SKIPPING: ([\w\.\-]+)\s*(\(([\w\.\-\ \,]+)\))?\s*$")
skippingPatt = re.compile(
"^SKIPPING: ([\w\.\-]+)\s*(\(([\w\.\-\ \,]+)\))?\s*$"
)
exitCodePatt = re.compile("^EXIT CODE: (\d+)$")
folderPatt = re.compile("^FOLDER: ([\w\.\-]+)$")
timePatt = re.compile("^real\s+([\d\.ms]+)$")
Expand Down Expand Up @@ -36,12 +41,8 @@ def makeFailureElement(outputLines):


def setFileNameAttr(attrDict, fileName):
attrDict.update(file=fileName,
classname="",
line="",
name="",
time=""
)
attrDict.update(file=fileName, classname="", line="", name="", time="")


def setClassNameAttr(attrDict, className):
attrDict["classname"] = className
Expand Down Expand Up @@ -75,11 +76,12 @@ def parseLog(logFile, testSuiteElement):
testSuiteElement.attrib["timestamp"] = ""

attrDict = {}
#setFileNameAttr(attrDict, logFile)
# setFileNameAttr(attrDict, logFile)
setFileNameAttr(attrDict, "nbtest")

parserStateEnum = Enum("parserStateEnum",
"newTest startingLine finishLine exitCode")
parserStateEnum = Enum(
"parserStateEnum", "newTest startingLine finishLine exitCode"
)
parserState = parserStateEnum.newTest

testOutput = ""
Expand All @@ -97,7 +99,9 @@ def parseLog(logFile, testSuiteElement):
setTimeAttr(attrDict, "0m0s")
skippedElement = makeTestCaseElement(attrDict)
message = m.group(3) or ""
skippedElement.append(Element("skipped", message=message, type=""))
skippedElement.append(
Element("skipped", message=message, type="")
)
testSuiteElement.append(skippedElement)
incrNumAttr(testSuiteElement, "skipped")
incrNumAttr(testSuiteElement, "tests")
Expand Down Expand Up @@ -159,5 +163,6 @@ def parseLog(logFile, testSuiteElement):
testSuiteElement = Element("testsuite", name="nbtest", hostname="")
parseLog(sys.argv[1], testSuiteElement)
testSuitesElement.append(testSuiteElement)
ElementTree(testSuitesElement).write(sys.argv[1]+".xml", xml_declaration=True)

ElementTree(testSuitesElement).write(
sys.argv[1] + ".xml", xml_declaration=True
)
5 changes: 4 additions & 1 deletion ci/utils/wheel_smoke_test.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: Copyright (c) 2023-2025, NVIDIA CORPORATION. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

import cuxfilter

if __name__ == '__main__':
if __name__ == "__main__":
assert cuxfilter.__version__ is not None
75 changes: 57 additions & 18 deletions docs/source/user_guide/10_minutes_to_cuxfilter.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,8 @@
},
"outputs": [],
"source": [
"#update data_dir if you have downloaded datasets elsewhere\n",
"DATA_DIR = './data/'\n",
"# update data_dir if you have downloaded datasets elsewhere\n",
"DATA_DIR = \"./data/\"\n",
"\n",
"! curl https://data.rapids.ai/viz-data/auto_accidents.arrow.gz --create-dirs -o $DATA_DIR/auto_accidents.arrow.gz"
]
Expand All @@ -123,7 +123,8 @@
],
"source": [
"from cuxfilter.sampledata import datasets_check\n",
"datasets_check('auto_accidents', base_dir=DATA_DIR)"
"\n",
"datasets_check(\"auto_accidents\", base_dir=DATA_DIR)"
]
},
{
Expand Down Expand Up @@ -254,14 +255,27 @@
}
],
"source": [
"#create cuxfilter DataFrame\n",
"cux_df = DataFrame.from_arrow(DATA_DIR + './auto_accidents.arrow')\n",
"cux_df.data['ST_CASE'] = cux_df.data['ST_CASE'].astype('float64')\n",
"# create cuxfilter DataFrame\n",
"cux_df = DataFrame.from_arrow(DATA_DIR + \"./auto_accidents.arrow\")\n",
"cux_df.data[\"ST_CASE\"] = cux_df.data[\"ST_CASE\"].astype(\"float64\")\n",
"\n",
"# add a day_week_str column, using cudf.Series.map()\n",
"cux_df.data['DAY_WEEK_STR'] = cux_df.data.DAY_WEEK.map({1: 'Sunday', 2: 'Monday', 3: 'Tuesday', 4: 'Wednesday', 5: 'Thursday', 6: 'Friday', 7: 'Saturday', 9: 'Unknown'})\n",
"cux_df.data[\"DAY_WEEK_STR\"] = cux_df.data.DAY_WEEK.map(\n",
" {\n",
" 1: \"Sunday\",\n",
" 2: \"Monday\",\n",
" 3: \"Tuesday\",\n",
" 4: \"Wednesday\",\n",
" 5: \"Thursday\",\n",
" 6: \"Friday\",\n",
" 7: \"Saturday\",\n",
" 9: \"Unknown\",\n",
" }\n",
")\n",
"\n",
"cux_df.data[['dropoff_x', 'dropoff_y', 'DAY_WEEK', 'DAY_WEEK_STR', 'YEAR', 'MONTH']].head()"
"cux_df.data[\n",
" [\"dropoff_x\", \"dropoff_y\", \"DAY_WEEK\", \"DAY_WEEK_STR\", \"YEAR\", \"MONTH\"]\n",
"].head()"
]
},
{
Expand All @@ -281,19 +295,38 @@
},
"outputs": [],
"source": [
"demo_red_blue_palette = [ \"#3182bd\", \"#6baed6\", \"#7b8ed8\", \"#e26798\", \"#ff0068\" , \"#323232\" ]\n",
"demo_red_blue_palette = [\n",
" \"#3182bd\",\n",
" \"#6baed6\",\n",
" \"#7b8ed8\",\n",
" \"#e26798\",\n",
" \"#ff0068\",\n",
" \"#323232\",\n",
"]\n",
"\n",
"chart1 = cuxfilter.charts.scatter(x='dropoff_x', y='dropoff_y', aggregate_col='DAY_WEEK', aggregate_fn='mean',\n",
" color_palette=demo_red_blue_palette, tile_provider='CartoLight',\n",
" pixel_shade_type='linear')\n",
"chart2 = cuxfilter.charts.bar('YEAR')\n",
"chart1 = cuxfilter.charts.scatter(\n",
" x=\"dropoff_x\",\n",
" y=\"dropoff_y\",\n",
" aggregate_col=\"DAY_WEEK\",\n",
" aggregate_fn=\"mean\",\n",
" color_palette=demo_red_blue_palette,\n",
" tile_provider=\"CartoLight\",\n",
" pixel_shade_type=\"linear\",\n",
")\n",
"chart2 = cuxfilter.charts.bar(\"YEAR\")\n",
"\n",
"\n",
"chart3 = cuxfilter.charts.multi_select('DAY_WEEK_STR')\n",
"chart3 = cuxfilter.charts.multi_select(\"DAY_WEEK_STR\")\n",
"\n",
"chart4 = cuxfilter.charts.number(expression=\"AGE\", aggregate_fn=\"mean\", title=\"Mean age\")\n",
"chart5 = cuxfilter.charts.number(expression=\"SIDE_DRIV_STARS + FRNT_DRIV_STARS\", aggregate_fn=\"mean\", title=\"Vehicle(Mean front+side safety rating)\")\n",
"charts_list = [chart1, chart2 ]\n",
"chart4 = cuxfilter.charts.number(\n",
" expression=\"AGE\", aggregate_fn=\"mean\", title=\"Mean age\"\n",
")\n",
"chart5 = cuxfilter.charts.number(\n",
" expression=\"SIDE_DRIV_STARS + FRNT_DRIV_STARS\",\n",
" aggregate_fn=\"mean\",\n",
" title=\"Vehicle(Mean front+side safety rating)\",\n",
")\n",
"charts_list = [chart1, chart2]\n",
"sidebar = [chart3, chart4, chart5]"
]
},
Expand All @@ -312,7 +345,13 @@
},
"outputs": [],
"source": [
"d = cux_df.dashboard(charts_list, sidebar=sidebar, title='Auto Accidents Dashboard', layout=layouts.feature_and_base, theme=themes.default)"
"d = cux_df.dashboard(\n",
" charts_list,\n",
" sidebar=sidebar,\n",
" title=\"Auto Accidents Dashboard\",\n",
" layout=layouts.feature_and_base,\n",
" theme=themes.default,\n",
")"
]
},
{
Expand Down
57 changes: 37 additions & 20 deletions docs/source/user_guide/examples/Mortgage_example.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
"metadata": {},
"outputs": [],
"source": [
"#update data_dir if you have downloaded datasets elsewhere\n",
"DATA_DIR = './data'"
"# update data_dir if you have downloaded datasets elsewhere\n",
"DATA_DIR = \"./data\""
]
},
{
Expand All @@ -51,7 +51,8 @@
"outputs": [],
"source": [
"from cuxfilter.sampledata import datasets_check\n",
"datasets_check('mortgage', base_dir=DATA_DIR)"
"\n",
"datasets_check(\"mortgage\", base_dir=DATA_DIR)"
]
},
{
Expand All @@ -66,13 +67,13 @@
" legend = pn.GridBox(ncols=2)\n",
" colors = palettes.Purples4\n",
"\n",
" legend.append(f'{range_[\"min\"]} - {range_[\"25%\"]}')\n",
" legend.append(f\"{range_['min']} - {range_['25%']}\")\n",
" legend.append(pn.pane.HTML(background=colors[0], width=30, height=10))\n",
" legend.append(f'{range_[\"25%\"]} - {range_[\"50%\"]}')\n",
" legend.append(f\"{range_['25%']} - {range_['50%']}\")\n",
" legend.append(pn.pane.HTML(background=colors[1], width=30, height=10))\n",
" legend.append(f'{range_[\"50%\"]} - {range_[\"75%\"]}')\n",
" legend.append(f\"{range_['50%']} - {range_['75%']}\")\n",
" legend.append(pn.pane.HTML(background=colors[2], width=30, height=10))\n",
" legend.append(f'{range_[\"75%\"]} <')\n",
" legend.append(f\"{range_['75%']} <\")\n",
" legend.append(pn.pane.HTML(background=colors[3], width=30, height=10))\n",
" return legend"
]
Expand All @@ -90,7 +91,9 @@
"metadata": {},
"outputs": [],
"source": [
"cux_df = cuxfilter.DataFrame.from_arrow(DATA_DIR+'/146M_predictions_v2.arrow')"
"cux_df = cuxfilter.DataFrame.from_arrow(\n",
" DATA_DIR + \"/146M_predictions_v2.arrow\"\n",
")"
]
},
{
Expand All @@ -100,13 +103,21 @@
"outputs": [],
"source": [
"# set map_api_key parameter on choropleth to get bg map tiles\n",
"chart0 = charts.choropleth(x='zip', y='delinquency_12_prediction', color_column='delinquency_12_prediction', color_aggregate_fn='mean', geo_color_palette=palettes.Purples4,\n",
" geoJSONSource = 'https://raw.githubusercontent.com/rapidsai/cuxfilter/GTC-2018-mortgage-visualization/javascript/demos/GTC%20demo/src/data/zip3-ms-rhs-lessprops.json',\n",
" data_points=1000) #, mapbox_api_key=\"\")\n",
"chart0 = charts.choropleth(\n",
" x=\"zip\",\n",
" y=\"delinquency_12_prediction\",\n",
" color_column=\"delinquency_12_prediction\",\n",
" color_aggregate_fn=\"mean\",\n",
" geo_color_palette=palettes.Purples4,\n",
" geoJSONSource=\"https://raw.githubusercontent.com/rapidsai/cuxfilter/GTC-2018-mortgage-visualization/javascript/demos/GTC%20demo/src/data/zip3-ms-rhs-lessprops.json\",\n",
" data_points=1000,\n",
") # , mapbox_api_key=\"\")\n",
"\n",
"chart2 = charts.bar('delinquency_12_prediction',data_points=50)\n",
"chart3 = charts.range_slider('borrower_credit_score',data_points=50)\n",
"chart4 = charts.card(generate_legend_markdown(), widget=True, title=\"zip legend\")"
"chart2 = charts.bar(\"delinquency_12_prediction\", data_points=50)\n",
"chart3 = charts.range_slider(\"borrower_credit_score\", data_points=50)\n",
"chart4 = charts.card(\n",
" generate_legend_markdown(), widget=True, title=\"zip legend\"\n",
")"
]
},
{
Expand All @@ -125,10 +136,10 @@
"mapper1 = {}\n",
"\n",
"for val in cux_df.data.dti.unique().to_pandas().tolist():\n",
" mapper1[int(val)] = 'l_'+str(val)\n",
" mapper1[int(val)] = \"l_\" + str(val)\n",
"\n",
"chart1 = charts.panel_widgets.drop_down('dti', label_map=mapper1)\n",
"#also available: panel_widgets.multi_select"
"chart1 = charts.panel_widgets.drop_down(\"dti\", label_map=mapper1)\n",
"# also available: panel_widgets.multi_select"
]
},
{
Expand All @@ -144,7 +155,13 @@
"metadata": {},
"outputs": [],
"source": [
"d = cux_df.dashboard([chart0], sidebar=[chart1, chart4], layout=feature_and_base, theme=cuxfilter.themes.rapids_dark, title=\"Ajay's Dashboard\")"
"d = cux_df.dashboard(\n",
" [chart0],\n",
" sidebar=[chart1, chart4],\n",
" layout=feature_and_base,\n",
" theme=cuxfilter.themes.rapids_dark,\n",
" title=\"Ajay's Dashboard\",\n",
")"
]
},
{
Expand All @@ -153,7 +170,7 @@
"metadata": {},
"outputs": [],
"source": [
"#add more charts\n",
"# add more charts\n",
"d.add_charts(charts=[chart2], sidebar=[chart3])"
]
},
Expand All @@ -163,7 +180,7 @@
"metadata": {},
"outputs": [],
"source": [
"#run dashboard inline within the notebook cell\n",
"# run dashboard inline within the notebook cell\n",
"d.app()"
]
},
Expand Down
Loading