File size: 4,095 Bytes
fcf6d91
 
28e5a4a
d2f40b3
fcf6d91
 
 
 
 
 
 
28e5a4a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c79631b
dfe46e9
c79631b
 
9695a40
 
426a9b2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import streamlit as st
import wizmap
from streamlit import components
st.set_option('deprecation.showPyplotGlobalUse', False)



data_url = 'https://huggingface.co/datasets/xiaohk/embeddings/blob/main/imdb/data.ndjson'
grid_url = 'https://huggingface.co/datasets/xiaohk/embeddings/blob/main/imdb/grid.json'


# import streamlit as st
# import base64
# import random

# import numpy as np
# import random
# import html
# import base64
# import pkgutil
# import ndjson

# from glob import glob
# from os.path import exists, join, basename
# from tqdm import tqdm
# from collections import Counter
# from IPython.display import display_html
# from json import dump, load, dumps
# from sklearn.feature_extraction.text import CountVectorizer, TfidfTransformer
# from quadtreed3 import Quadtree, Node
# from scipy.sparse import csr_matrix
# from sklearn.neighbors import KernelDensity
# from scipy.stats import norm
# from typing import Tuple


# def _make_html(data_url, grid_url):
#     # HTML template for WizMap widget
#     html_top = """<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>WizMap</title><style>html {font-size: 16px;-moz-osx-font-smoothing: grayscale;-webkit-font-smoothing: antialiased;text-rendering: optimizeLegibility;-webkit-text-size-adjust: 100%;-moz-text-size-adjust: 100%;scroll-behavior: smooth;}html, body {position: relative;width: 100%;height: 100%;overscroll-behavior: none;}body {margin: 0px;padding: 0px;box-sizing: border-box;font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;color: hsl(0, 0%, 29%);font-size: 1em;font-weight: 400;line-height: 1.5;}*, ::after, ::before {box-sizing: inherit;}a {color: rgb(0, 100, 200);text-decoration: none;}a:hover {text-decoration: underline;}a:visited {color: rgb(0, 80, 160);}label {display: block;}input, select, textarea {font-family: inherit;font-size: inherit;-webkit-padding: 0 0;padding: 0;margin: 0 0 0 0;box-sizing: border-box;border: 1px solid #ccc;border-radius: 2px;}input:disabled {color: #ccc;}button {all: unset;outline: none;cursor: pointer;}</style>"""
#     html_bottom = """</head><body><div id="app"></div></body></html>"""

#     # Simulating JS and CSS content with base64 encoding for Streamlit
#     js_string = "console.log('Hello from WizMap');"
#     js_b = js_string.encode()
#     js_base64 = base64.b64encode(js_b).decode("utf-8")

#     # Simulating passing data into JS by using another script
#     messenger_js = f"""
#         (function() {{
#             const event = new Event('wizmapData');
#             event.dataURL = '{data_url}';
#             event.gridURL = '{grid_url}';
#             document.dispatchEvent(event);
#         }}())
#     """
#     messenger_js = messenger_js.encode()
#     messenger_js_base64 = base64.b64encode(messenger_js).decode("utf-8")

#     # Injecting JS into the HTML template
#     html_str = (
#         html_top
#         + """<script defer src='data:text/javascript;base64,{}'></script>""".format(
#             js_base64
#         )
#         + """<script defer src='data:text/javascript;base64,{}'></script>""".format(
#             messenger_js_base64
#         )
#         + html_bottom
#     )

#     return html_str

# def visualize(data_url, grid_url, height=700):
#     html_str = _make_html(data_url, grid_url)

#     # Randomly generate an ID for the iframe to avoid collision
#     iframe_id = "wizmap-iframe-" + str(int(random.random() * 1e8))

#     iframe = f"""
#         <iframe
#             srcdoc="{html_str}"
#             frameBorder="0"
#             width="100%"
#             height="{height}px"
#             id="{iframe_id}"
#             style="border: 1px solid hsl(0, 0%, 90%); border-radius: 5px;">
#         </iframe>
#     """

#     st.markdown(display_html(iframe, raw=True), unsafe_allow_html=True)

# visualize(data_url, grid_url)


# st.write("# Display wizmap")
html =wizmap.visualize(data_url, grid_url)
components.v1.html(html, height=700)