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
17 changes: 17 additions & 0 deletions src/filetypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,20 @@ export function addOrcFileType(
});
return docRegistry.getFileType(name)!;
}

export function addSqliteFileType(
docRegistry: DocumentRegistry,
options: Partial<DocumentRegistry.IFileType> = {},
): DocumentRegistry.IFileType {
const name = "sqlite";
docRegistry.addFileType({
...options,
name,
displayName: "SQLite",
mimeTypes: ["application/vnd.sqlite3"],
extensions: [".sqlite", ".sqlite3", ".db", ".db3", ".s3db", ".sl3"],
contentType: "file",
fileFormat: "base64",
});
return docRegistry.getFileType(name)!;
}
22 changes: 18 additions & 4 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,20 @@ import type * as services from "@jupyterlab/services";
import type { Contents } from "@jupyterlab/services";
import type { DataGrid } from "@lumino/datagrid";

import { addAvroFileType, addIpcFileType, addOrcFileType, addParquetFileType } from "./filetypes";
import { getArrowIPCIcon, getAvroIcon, getORCIcon, getParquetIcon } from "./labicons";
import {
addAvroFileType,
addIpcFileType,
addOrcFileType,
addParquetFileType,
addSqliteFileType,
} from "./filetypes";
import {
getArrowIPCIcon,
getAvroIcon,
getORCIcon,
getParquetIcon,
getSqliteIcon,
} from "./labicons";
import { ArrowGridViewerFactory } from "./widget";
import type { ArrowGridViewer, ITextRenderConfig } from "./widget";

Expand Down Expand Up @@ -114,12 +126,13 @@ function activateArrowGrid(
let avo_ft = addAvroFileType(app.docRegistry, { icon: getAvroIcon(isLight) });
let ipc_ft = addIpcFileType(app.docRegistry, { icon: getArrowIPCIcon(isLight) });
let orc_ft = addOrcFileType(app.docRegistry, { icon: getORCIcon(isLight) });
let sqlite_ft = addSqliteFileType(app.docRegistry, { icon: getSqliteIcon(isLight) });

const factory = new ArrowGridViewerFactory({
name: factory_arrow,
label: trans.__("Arrow Dataframe Viewer"),
fileTypes: [csv_ft.name, avo_ft.name, prq_ft.name, ipc_ft.name, orc_ft.name],
defaultFor: [csv_ft.name, avo_ft.name, prq_ft.name, ipc_ft.name, orc_ft.name],
fileTypes: [csv_ft.name, avo_ft.name, prq_ft.name, ipc_ft.name, orc_ft.name, sqlite_ft.name],
defaultFor: [csv_ft.name, avo_ft.name, prq_ft.name, ipc_ft.name, orc_ft.name, sqlite_ft.name],
readOnly: true,
translator,
contentProviderId: NOOP_CONTENT_PROVIDER_ID,
Expand Down Expand Up @@ -175,6 +188,7 @@ function activateArrowGrid(
avo_ft = addAvroFileType(app.docRegistry, { icon: getAvroIcon(isLightNew) });
ipc_ft = addIpcFileType(app.docRegistry, { icon: getArrowIPCIcon(isLightNew) });
orc_ft = addOrcFileType(app.docRegistry, { icon: getORCIcon(isLightNew) });
sqlite_ft = addSqliteFileType(app.docRegistry, { icon: getSqliteIcon(isLightNew) });
};
if (themeManager) {
themeManager.themeChanged.connect((_, args) => {
Expand Down
5 changes: 5 additions & 0 deletions src/labicons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import orcLightSvg from "../style/icons/orc.svg";
import orcDarkSvg from "../style/icons/orc_dark.svg";
import parquetSvgLight from "../style/icons/parquet.svg";
import parquetSvgDark from "../style/icons/parquet_dark.svg";
import sqliteSvgLight from "../style/icons/sqlite.svg";
import sqliteSvgDark from "../style/icons/sqlite_dark.svg";

export const getLabIcon = (labIconName: string, iconSvg: string) => {
return new LabIcon({
Expand All @@ -28,3 +30,6 @@ export const getORCIcon = (isLight: boolean) => {
export const getAvroIcon = (isLight: boolean) => {
return getLabIcon("avro", isLight ? avroSvg : avroSvg);
};
export const getSqliteIcon = (isLight: boolean) => {
return getLabIcon("sqlite", isLight ? sqliteSvgLight : sqliteSvgDark);
};
72 changes: 72 additions & 0 deletions style/icons/sqlite.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
73 changes: 73 additions & 0 deletions style/icons/sqlite_dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading