diff --git a/cpp/perspective/CMakeLists.txt b/cpp/perspective/CMakeLists.txt index ca963d560c..1e10043a65 100644 --- a/cpp/perspective/CMakeLists.txt +++ b/cpp/perspective/CMakeLists.txt @@ -539,10 +539,11 @@ set(PSP_WASM_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} \ --source-map-base \"\" \ --memory-init-file 0 \ --no-entry \ - -s NO_EXIT_RUNTIME=1 \ -s NO_FILESYSTEM=1 \ -s ALLOW_MEMORY_GROWTH=1 \ -s MODULARIZE=1 \ + -s STANDALONE_WASM=1 \ + -s WASM_BIGINT=1 \ -s EXPORT_NAME=\"load_perspective\" \ -s MAXIMUM_MEMORY=4gb \ -s ERROR_ON_UNDEFINED_SYMBOLS=1 \ diff --git a/cpp/perspective/src/include/perspective/binding.h b/cpp/perspective/src/include/perspective/binding.h index 831a6a1468..f235ce310f 100644 --- a/cpp/perspective/src/include/perspective/binding.h +++ b/cpp/perspective/src/include/perspective/binding.h @@ -11,7 +11,7 @@ // ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ #pragma once - +#pragma clang diagnostic ignored "-Wdeprecated-declarations" #if defined(PSP_ENABLE_WASM) || defined(PSP_ENABLE_PYTHON) #include diff --git a/package.json b/package.json index c2e30f3b85..e51b1cb3b8 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "internal": "Internal" } }, - "emscripten": "3.1.45", + "emscripten": "3.1.48", "engines": { "node": ">=14.18.2" }, diff --git a/python/perspective/requirements-310.txt b/python/perspective/requirements/requirements-310.txt similarity index 100% rename from python/perspective/requirements-310.txt rename to python/perspective/requirements/requirements-310.txt diff --git a/python/perspective/requirements-311.txt b/python/perspective/requirements/requirements-311.txt similarity index 100% rename from python/perspective/requirements-311.txt rename to python/perspective/requirements/requirements-311.txt diff --git a/python/perspective/requirements-37.txt b/python/perspective/requirements/requirements-37.txt similarity index 100% rename from python/perspective/requirements-37.txt rename to python/perspective/requirements/requirements-37.txt diff --git a/python/perspective/requirements-38.txt b/python/perspective/requirements/requirements-38.txt similarity index 100% rename from python/perspective/requirements-38.txt rename to python/perspective/requirements/requirements-38.txt diff --git a/python/perspective/requirements-39.txt b/python/perspective/requirements/requirements-39.txt similarity index 100% rename from python/perspective/requirements-39.txt rename to python/perspective/requirements/requirements-39.txt diff --git a/python/perspective/setup.py b/python/perspective/setup.py index 77cc6dca03..6c306ebd38 100644 --- a/python/perspective/setup.py +++ b/python/perspective/setup.py @@ -57,7 +57,6 @@ # Get requirement info # requires = [ "ipywidgets>=7.5.1,<9", - "future>=0.16.0,<1", "numpy>=1.21.6,<2", "pandas>=0.22.0,<3", "python-dateutil>=2.8.0,<3", diff --git a/rust/perspective-viewer/src/less/dom/select.less b/rust/perspective-viewer/src/less/dom/select.less index 5efbc99459..bb5d581340 100644 --- a/rust/perspective-viewer/src/less/dom/select.less +++ b/rust/perspective-viewer/src/less/dom/select.less @@ -45,13 +45,14 @@ padding: 0px 12px 0px 0px; font-size: 10px; font-family: inherit; - background-color: var(--select--background-color, transparent); + background-color: transparent; background-image: url("../../svg/dropdown-selector.svg"); background-position: right 2px center; background-repeat: no-repeat; option { - background: var(--select--background-color, transparent); + color: var(--icon--color, inherit); + background: var(--plugin--background, transparent); } } } \ No newline at end of file diff --git a/tools/perspective-bench/package.json b/tools/perspective-bench/package.json index 173897bcfa..64c9d5c5e6 100644 --- a/tools/perspective-bench/package.json +++ b/tools/perspective-bench/package.json @@ -22,6 +22,8 @@ "microtime": "^3.0.0" }, "dependencies": { + "perspective-2-6-0": "npm:@finos/perspective@2.6.0", + "perspective-2-5-0": "npm:@finos/perspective@2.5.0", "perspective-2-4-0": "npm:@finos/perspective@2.4.0", "perspective-2-3-0": "npm:@finos/perspective@2.3.0", "perspective-2-2-0": "npm:@finos/perspective@2.2.0", diff --git a/tools/perspective-bench/yarn.lock b/tools/perspective-bench/yarn.lock index 7d9f660f11..4f99f1c586 100644 --- a/tools/perspective-bench/yarn.lock +++ b/tools/perspective-bench/yarn.lock @@ -334,6 +334,23 @@ papaparse@^5.2.0: fflate "^0.7.4" ws "^6.1.2" +"perspective-2-5-0@npm:@finos/perspective@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@finos/perspective/-/perspective-2.5.0.tgz#590cbedac0768b0ce82e3276f3b602de8a908058" + integrity sha512-4YUs0oLvvGG4HQzqLJQCkRic+FW4h623etmcjBSuqcC3tLT+OMFxNZ8Z3NjS6uvdFu6vPTO7fAA0RnTdZKhXKg== + dependencies: + fflate "^0.7.4" + ws "^6.1.2" + +"perspective-2-6-0@npm:@finos/perspective@2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@finos/perspective/-/perspective-2.6.0.tgz#dc4e6f0ddebbad475dc0c33b14e5aaff7875cdda" + integrity sha512-3YIBv4h1wQl8FBuabWLIV6H5aS1ufDC4/xjsrp3bIL5y5dgYwV5Uqr3gFj6cpmbWn0jNaFb6pEVm3Scn2QyDNw== + dependencies: + fflate "^0.7.4" + stoppable "1.1.0" + ws "^6.1.2" + rc4@~0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/rc4/-/rc4-0.1.5.tgz#08c6e04a0168f6eb621c22ab6cb1151bd9f4a64d" @@ -344,6 +361,11 @@ regenerator-runtime@^0.14.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== +stoppable@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" + integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== + text-encoding-utf-8@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" diff --git a/tools/perspective-scripts/install_emsdk.mjs b/tools/perspective-scripts/install_emsdk.mjs index b9176a673b..2ec679090b 100644 --- a/tools/perspective-scripts/install_emsdk.mjs +++ b/tools/perspective-scripts/install_emsdk.mjs @@ -48,6 +48,7 @@ function emsdk(...args) { function toolchain_install() { console.log(`-- Installing Emscripten ${emscripten}`); + sh`git pull`.cwd(".emsdk").runSync(); emsdk("install", emscripten); emsdk("activate", emscripten); console.log(`-- Emscripten ${emscripten} installed`); diff --git a/tools/perspective-scripts/sh_perspective.mjs b/tools/perspective-scripts/sh_perspective.mjs index 77c127a985..738e8c0e31 100644 --- a/tools/perspective-scripts/sh_perspective.mjs +++ b/tools/perspective-scripts/sh_perspective.mjs @@ -259,7 +259,7 @@ export function py_requirements() { .replace("Python ", "") .replace(".", "") .replace(/\..*?$/m, ""); - return `python/perspective/requirements-${version}.txt`; + return `python/perspective/requirements/requirements-${version}.txt`; } /** diff --git a/tools/perspective-scripts/update_python.mjs b/tools/perspective-scripts/update_python.mjs new file mode 100644 index 0000000000..4161b12092 --- /dev/null +++ b/tools/perspective-scripts/update_python.mjs @@ -0,0 +1,59 @@ +// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +// ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃ +// ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃ +// ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃ +// ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃ +// ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ +// ┃ Copyright (c) 2017, the Perspective Authors. ┃ +// ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃ +// ┃ This file is part of the Perspective library, distributed under the terms ┃ +// ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃ +// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +/// Use this script to update the `requirements-*.txt` files in the +/// `python/perspective` directory. This only needs to be done when the actual +/// dependencies _or_ supported Python versions change - to update these deps +/// otherwise is to invite the wrath of the CI gods. + +import sh from "./sh.mjs"; +import * as fs from "fs"; + +const VERSIONS = [ + // "3.7", + "3.8", + "3.9", + "3.10", + "3.11", +]; + +for (const version of VERSIONS) { + sh` + pip3 install "python/perspective[dev]" + --dry-run + --report=report.json + --python-version=${version} + --only-binary=:all: + --platform=manylinux_2_12_x86_64 + --platform=manylinux_2_17_x86_64 + --ignore-installed + --target=. + `.runSync(); + + const data = JSON.parse(fs.readFileSync("report.json")); + let output = ""; + for (const { + metadata: { version, name }, + } of data.install) { + output += `${name}==${version}\n`; + } + + fs.writeFileSync( + `python/perspective/requirements/requirements-${version.replace( + ".", + "" + )}.txt`, + output + ); +} + +fs.rmSync("report.json");