local-data-studio 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. local_data_studio-1.0.0/.gitignore +225 -0
  2. local_data_studio-1.0.0/LICENSE +21 -0
  3. local_data_studio-1.0.0/PKG-INFO +683 -0
  4. local_data_studio-1.0.0/README.md +636 -0
  5. local_data_studio-1.0.0/docs/IMPLEMENTATION_NOTES.md +375 -0
  6. local_data_studio-1.0.0/docs/IMPLEMENTATION_NOTES_ja.md +373 -0
  7. local_data_studio-1.0.0/docs/README_ja.md +636 -0
  8. local_data_studio-1.0.0/images/local_data_studio_01.png +0 -0
  9. local_data_studio-1.0.0/images/local_data_studio_02.png +0 -0
  10. local_data_studio-1.0.0/images/local_data_studio_03.png +0 -0
  11. local_data_studio-1.0.0/images/local_data_studio_04.png +0 -0
  12. local_data_studio-1.0.0/images/local_data_studio_05.png +0 -0
  13. local_data_studio-1.0.0/images/local_data_studio_06.png +0 -0
  14. local_data_studio-1.0.0/images/local_data_studio_07.png +0 -0
  15. local_data_studio-1.0.0/images/local_data_studio_08.png +0 -0
  16. local_data_studio-1.0.0/images/local_data_studio_09.png +0 -0
  17. local_data_studio-1.0.0/images/local_data_studio_10.png +0 -0
  18. local_data_studio-1.0.0/local_data_studio.example.toml +84 -0
  19. local_data_studio-1.0.0/pyproject.toml +148 -0
  20. local_data_studio-1.0.0/src/local_data_studio/__init__.py +3 -0
  21. local_data_studio-1.0.0/src/local_data_studio/__main__.py +6 -0
  22. local_data_studio-1.0.0/src/local_data_studio/app.py +150 -0
  23. local_data_studio-1.0.0/src/local_data_studio/cli.py +154 -0
  24. local_data_studio-1.0.0/src/local_data_studio/runtime_config.py +77 -0
  25. local_data_studio-1.0.0/src/local_data_studio/server/__init__.py +1 -0
  26. local_data_studio-1.0.0/src/local_data_studio/server/api/__init__.py +1 -0
  27. local_data_studio-1.0.0/src/local_data_studio/server/api/analysis.py +123 -0
  28. local_data_studio-1.0.0/src/local_data_studio/server/api/atlas_proxy.py +156 -0
  29. local_data_studio-1.0.0/src/local_data_studio/server/api/datasets.py +176 -0
  30. local_data_studio-1.0.0/src/local_data_studio/server/api/jobs.py +231 -0
  31. local_data_studio-1.0.0/src/local_data_studio/server/api/mutations.py +63 -0
  32. local_data_studio-1.0.0/src/local_data_studio/server/api/schemas.py +117 -0
  33. local_data_studio-1.0.0/src/local_data_studio/server/api/services.py +99 -0
  34. local_data_studio-1.0.0/src/local_data_studio/server/api/static.py +34 -0
  35. local_data_studio-1.0.0/src/local_data_studio/server/atlas.py +91 -0
  36. local_data_studio-1.0.0/src/local_data_studio/server/atlas_cache.py +20 -0
  37. local_data_studio-1.0.0/src/local_data_studio/server/atlas_cache_patch.py +40 -0
  38. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/__init__.py +1 -0
  39. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/command.py +80 -0
  40. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/contracts.py +101 -0
  41. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/dataset.py +233 -0
  42. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/embedding_backends.py +260 -0
  43. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/embedding_session.py +89 -0
  44. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/image_values.py +193 -0
  45. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/images.py +63 -0
  46. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/output_frames.py +157 -0
  47. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/ports.py +140 -0
  48. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/process.py +175 -0
  49. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/projection.py +223 -0
  50. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/projection_inputs.py +242 -0
  51. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/prompts.py +93 -0
  52. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/readiness.py +60 -0
  53. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/reducers.py +116 -0
  54. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/runtime.py +205 -0
  55. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/sampling.py +73 -0
  56. local_data_studio-1.0.0/src/local_data_studio/server/atlas_components/service.py +221 -0
  57. local_data_studio-1.0.0/src/local_data_studio/server/cache.py +143 -0
  58. local_data_studio-1.0.0/src/local_data_studio/server/column_stats/__init__.py +35 -0
  59. local_data_studio-1.0.0/src/local_data_studio/server/column_stats/accumulator.py +162 -0
  60. local_data_studio-1.0.0/src/local_data_studio/server/column_stats/heuristics.py +187 -0
  61. local_data_studio-1.0.0/src/local_data_studio/server/column_stats/service.py +52 -0
  62. local_data_studio-1.0.0/src/local_data_studio/server/config.py +269 -0
  63. local_data_studio-1.0.0/src/local_data_studio/server/dataset_readers/__init__.py +5 -0
  64. local_data_studio-1.0.0/src/local_data_studio/server/dataset_readers/common.py +216 -0
  65. local_data_studio-1.0.0/src/local_data_studio/server/dataset_readers/contracts.py +38 -0
  66. local_data_studio-1.0.0/src/local_data_studio/server/dataset_readers/delimited.py +174 -0
  67. local_data_studio-1.0.0/src/local_data_studio/server/dataset_readers/json_reader.py +86 -0
  68. local_data_studio-1.0.0/src/local_data_studio/server/dataset_readers/jsonl.py +182 -0
  69. local_data_studio-1.0.0/src/local_data_studio/server/dataset_readers/line.py +39 -0
  70. local_data_studio-1.0.0/src/local_data_studio/server/dataset_readers/line_cursor.py +75 -0
  71. local_data_studio-1.0.0/src/local_data_studio/server/dataset_readers/line_indexing.py +57 -0
  72. local_data_studio-1.0.0/src/local_data_studio/server/dataset_readers/parquet.py +202 -0
  73. local_data_studio-1.0.0/src/local_data_studio/server/dataset_readers/service.py +228 -0
  74. local_data_studio-1.0.0/src/local_data_studio/server/db.py +187 -0
  75. local_data_studio-1.0.0/src/local_data_studio/server/delete_ops.py +261 -0
  76. local_data_studio-1.0.0/src/local_data_studio/server/deleted_rows.py +30 -0
  77. local_data_studio-1.0.0/src/local_data_studio/server/eda.py +106 -0
  78. local_data_studio-1.0.0/src/local_data_studio/server/eda_reports.py +178 -0
  79. local_data_studio-1.0.0/src/local_data_studio/server/embedder_capabilities.py +384 -0
  80. local_data_studio-1.0.0/src/local_data_studio/server/embedder_models.py +70 -0
  81. local_data_studio-1.0.0/src/local_data_studio/server/files.py +190 -0
  82. local_data_studio-1.0.0/src/local_data_studio/server/jobs.py +284 -0
  83. local_data_studio-1.0.0/src/local_data_studio/server/line_index.py +126 -0
  84. local_data_studio-1.0.0/src/local_data_studio/server/llm.py +40 -0
  85. local_data_studio-1.0.0/src/local_data_studio/server/llm_client.py +91 -0
  86. local_data_studio-1.0.0/src/local_data_studio/server/llm_profiles.py +297 -0
  87. local_data_studio-1.0.0/src/local_data_studio/server/llm_prompt.py +81 -0
  88. local_data_studio-1.0.0/src/local_data_studio/server/llm_service.py +39 -0
  89. local_data_studio-1.0.0/src/local_data_studio/server/readers.py +29 -0
  90. local_data_studio-1.0.0/src/local_data_studio/server/serialization.py +118 -0
  91. local_data_studio-1.0.0/src/local_data_studio/server/sql.py +277 -0
  92. local_data_studio-1.0.0/src/local_data_studio/server/stats.py +33 -0
  93. local_data_studio-1.0.0/src/local_data_studio/static/app/application.js +1789 -0
  94. local_data_studio-1.0.0/src/local_data_studio/static/app/atlas.js +354 -0
  95. local_data_studio-1.0.0/src/local_data_studio/static/app/dom.js +77 -0
  96. local_data_studio-1.0.0/src/local_data_studio/static/app/formatting.js +69 -0
  97. local_data_studio-1.0.0/src/local_data_studio/static/app/http.js +74 -0
  98. local_data_studio-1.0.0/src/local_data_studio/static/app/images.js +212 -0
  99. local_data_studio-1.0.0/src/local_data_studio/static/app/llm.js +129 -0
  100. local_data_studio-1.0.0/src/local_data_studio/static/app/state.js +58 -0
  101. local_data_studio-1.0.0/src/local_data_studio/static/app.js +1 -0
  102. local_data_studio-1.0.0/src/local_data_studio/static/index.html +384 -0
  103. local_data_studio-1.0.0/src/local_data_studio/static/styles.css +1568 -0
  104. local_data_studio-1.0.0/tests/test_api_jobs.py +302 -0
  105. local_data_studio-1.0.0/tests/test_app_contracts.py +230 -0
  106. local_data_studio-1.0.0/tests/test_atlas.py +1256 -0
  107. local_data_studio-1.0.0/tests/test_atlas_projection.py +305 -0
  108. local_data_studio-1.0.0/tests/test_atlas_prompts.py +376 -0
  109. local_data_studio-1.0.0/tests/test_atlas_proxy.py +214 -0
  110. local_data_studio-1.0.0/tests/test_cache.py +48 -0
  111. local_data_studio-1.0.0/tests/test_cli.py +248 -0
  112. local_data_studio-1.0.0/tests/test_eda.py +131 -0
  113. local_data_studio-1.0.0/tests/test_embedder_capabilities.py +154 -0
  114. local_data_studio-1.0.0/tests/test_files.py +142 -0
  115. local_data_studio-1.0.0/tests/test_jobs.py +108 -0
  116. local_data_studio-1.0.0/tests/test_llm.py +205 -0
  117. local_data_studio-1.0.0/tests/test_llm_profiles.py +186 -0
  118. local_data_studio-1.0.0/tests/test_readers.py +422 -0
  119. local_data_studio-1.0.0/tests/test_runtime_contracts.py +230 -0
  120. local_data_studio-1.0.0/tests/test_serialization.py +109 -0
  121. local_data_studio-1.0.0/tests/test_stats.py +167 -0
  122. local_data_studio-1.0.0/uv.lock +3824 -0
@@ -0,0 +1,225 @@
1
+ # =============================================================================
2
+ # Project-specific files
3
+ # =============================================================================
4
+
5
+ # Runtime data and generated artifacts
6
+ archive/
7
+ artifacts/
8
+ cache/
9
+ data/
10
+ wandb/
11
+
12
+ # Distributed-training host files
13
+ hostfile/
14
+ hostfiles/
15
+
16
+ # Local documentation
17
+ _docs/
18
+
19
+ # uv cache
20
+ .uv-cache/
21
+
22
+ # Local model files
23
+ #
24
+ # Ignore everything under models/embedder/, while keeping the directory itself
25
+ # and its placeholder files in Git.
26
+ models/embedder/**
27
+ !models/embedder/
28
+ !models/embedder/.gitignore
29
+ !models/embedder/.gitkeep
30
+
31
+ # macOS metadata
32
+ .DS_Store
33
+
34
+
35
+ # =============================================================================
36
+ # Python bytecode and native extensions
37
+ # =============================================================================
38
+
39
+ __pycache__/
40
+ *.py[cod]
41
+ *$py.class
42
+ *.so
43
+
44
+
45
+ # =============================================================================
46
+ # Build and packaging artifacts
47
+ # =============================================================================
48
+
49
+ .Python
50
+ build/
51
+ develop-eggs/
52
+ dist/
53
+ downloads/
54
+ eggs/
55
+ .eggs/
56
+ lib/
57
+ lib64/
58
+ parts/
59
+ sdist/
60
+ var/
61
+ wheels/
62
+ share/python-wheels/
63
+ *.egg-info/
64
+ .installed.cfg
65
+ *.egg
66
+ MANIFEST
67
+
68
+
69
+ # =============================================================================
70
+ # PyInstaller
71
+ # =============================================================================
72
+
73
+ *.manifest
74
+ *.spec
75
+
76
+
77
+ # =============================================================================
78
+ # Installer logs
79
+ # =============================================================================
80
+
81
+ pip-log.txt
82
+ pip-delete-this-directory.txt
83
+
84
+
85
+ # =============================================================================
86
+ # Test, coverage, and analysis caches
87
+ # =============================================================================
88
+
89
+ htmlcov/
90
+ .tox/
91
+ .nox/
92
+ .pytest_cache/
93
+ .hypothesis/
94
+ .coverage
95
+ .coverage.*
96
+ coverage.xml
97
+ nosetests.xml
98
+ *.cover
99
+ *.py,cover
100
+ cover/
101
+
102
+ # Generic tool cache
103
+ .cache/
104
+
105
+ # Type checkers and linters
106
+ .mypy_cache/
107
+ .dmypy.json
108
+ dmypy.json
109
+ .pyre/
110
+ .pytype/
111
+ .ruff_cache/
112
+
113
+
114
+ # =============================================================================
115
+ # Virtual environments and environment variables
116
+ # =============================================================================
117
+
118
+ .env
119
+ .env.*
120
+ !.env.example
121
+
122
+ # User-specific runtime configuration. Keep the tracked template available.
123
+ local_data_studio.toml
124
+ !local_data_studio.example.toml
125
+
126
+ .venv/
127
+ env/
128
+ venv/
129
+ ENV/
130
+ env.bak/
131
+ venv.bak/
132
+
133
+
134
+ # =============================================================================
135
+ # Dependency and environment managers
136
+ # =============================================================================
137
+
138
+ # PDM local configuration
139
+ .pdm.toml
140
+
141
+ # PEP 582 package directory
142
+ __pypackages__/
143
+
144
+ # Lock files such as uv.lock, poetry.lock, and Pipfile.lock are intentionally
145
+ # not ignored so that dependency versions can be reproduced.
146
+
147
+ # .python-version is intentionally not ignored so that collaborators can use
148
+ # the same Python version.
149
+
150
+
151
+ # =============================================================================
152
+ # Jupyter and IPython
153
+ # =============================================================================
154
+
155
+ .ipynb_checkpoints/
156
+ profile_default/
157
+ ipython_config.py
158
+
159
+
160
+ # =============================================================================
161
+ # Documentation
162
+ # =============================================================================
163
+
164
+ docs/_build/
165
+ site/
166
+
167
+
168
+ # =============================================================================
169
+ # Framework-specific files
170
+ # =============================================================================
171
+
172
+ # Django
173
+ *.log
174
+ local_settings.py
175
+ db.sqlite3
176
+ db.sqlite3-journal
177
+
178
+ # Flask
179
+ instance/
180
+ .webassets-cache/
181
+
182
+ # Scrapy
183
+ .scrapy/
184
+
185
+ # Celery
186
+ celerybeat-schedule
187
+ celerybeat.pid
188
+
189
+ # Sphinx
190
+ # Build output is already covered by docs/_build/.
191
+
192
+ # MkDocs
193
+ # Build output is already covered by site/.
194
+
195
+
196
+ # =============================================================================
197
+ # Other development tools
198
+ # =============================================================================
199
+
200
+ # Translations
201
+ *.mo
202
+ *.pot
203
+
204
+ # PyBuilder
205
+ .pybuilder/
206
+ target/
207
+
208
+ # SageMath
209
+ *.sage.py
210
+
211
+ # Spyder
212
+ .spyderproject
213
+ .spyproject
214
+
215
+ # Rope
216
+ .ropeproject
217
+
218
+ # Cython debug symbols
219
+ cython_debug/
220
+
221
+ # JetBrains IDE settings
222
+ #
223
+ # Keep project-level settings by default. To ignore the entire directory,
224
+ # uncomment the following line:
225
+ # .idea/
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Daiki Shiono
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.