Skip to content

Commit 716de46

Browse files
committed
move to perspective react, resolve remaining issues
Signed-off-by: Tim Paine <3105306+timkpaine@users.noreply.github.com>
1 parent 43ce013 commit 716de46

16 files changed

Lines changed: 452 additions & 292 deletions

File tree

csp_gateway/server/demo/omnibus.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import numpy as np
1717
from csp import Enum, ts
1818
from csp.typing import Numpy1DArray
19-
from perspective import Server as PerspectiveServer, Table as PerspectiveTable
2019
from pydantic import AfterValidator, Field, field_validator
2120

2221
from csp_gateway import (
@@ -37,6 +36,7 @@
3736
State,
3837
)
3938
from csp_gateway.server.config import load_gateway
39+
from perspective import Server as PerspectiveServer, Table as PerspectiveTable
4040

4141
SPEED = timedelta(seconds=1)
4242
SCALE = 10

csp_gateway/server/modules/web/perspective.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import uvloop
2121
from csp import ts
2222
from fastapi import APIRouter, WebSocket
23-
from perspective import Client, Server, Table
2423
from perspective.handlers.starlette import PerspectiveStarletteHandler
2524
from pydantic import Field, PrivateAttr, field_validator
2625
from starlette.websockets import WebSocketDisconnect
@@ -29,6 +28,7 @@
2928
from csp_gateway.server import ChannelSelection, GatewayChannels, GatewayModule
3029
from csp_gateway.server.web import GatewayWebApp, get_default_responses
3130
from csp_gateway.utils import PickleableQueue, get_args, get_origin, get_thread
31+
from perspective import Client, Server, Table
3232

3333
__all__ = (
3434
"psp_schema_to_arrow_schema",

csp_gateway/tests/server/modules/web/test_perspective.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import pytest
99
from csp import Enum, ts
1010
from csp.typing import Numpy1DArray
11-
from perspective import Server
1211
from pydantic import Field
1312

1413
from csp_gateway import (
@@ -22,6 +21,7 @@
2221
)
2322
from csp_gateway.testing.harness import GatewayTestHarness
2423
from csp_gateway.utils.struct import GatewayStructMixins
24+
from perspective import Server
2525

2626

2727
class MyTestEnum(Enum):

js/build.mjs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,18 @@ import { BuildCss } from "@prospective.co/procss/target/cjs/procss.js";
44
import cpy from "cpy";
55
import fs from "fs";
66
import { createRequire } from "node:module";
7+
import path from "node:path";
8+
9+
const require = createRequire(import.meta.url);
10+
11+
// Force all react imports to resolve to the same copy to avoid
12+
// duplicate-React errors when dependencies (e.g. @perspective-dev/react)
13+
// list a different React version.
14+
const REACT_ALIAS = {
15+
react: path.dirname(require.resolve("react/package.json")),
16+
"react-dom": path.dirname(require.resolve("react-dom/package.json")),
17+
"react/jsx-runtime": require.resolve("react/jsx-runtime"),
18+
};
719

820
const BUILD = [
921
{
@@ -31,6 +43,7 @@ const BUILD = [
3143
bundle: true,
3244
plugins: [],
3345
format: "esm",
46+
alias: REACT_ALIAS,
3447
loader: {
3548
".css": "text",
3649
".html": "text",
@@ -44,7 +57,6 @@ const BUILD = [
4457
},
4558
];
4659

47-
const require = createRequire(import.meta.url);
4860
function add(builder, path, path2) {
4961
builder.add(path, fs.readFileSync(require.resolve(path2 || path)).toString());
5062
}

js/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
},
1919
"dependencies": {
2020
"@perspective-dev/client": "~4.2.0",
21+
"@perspective-dev/react": "~4.2.0",
2122
"@perspective-dev/server": "~4.2.0",
2223
"@perspective-dev/viewer": "~4.2.0",
2324
"@perspective-dev/viewer-d3fc": "~4.2.0",

js/pnpm-lock.yaml

Lines changed: 77 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)