prismnote 0.3.0__py3-none-any.whl

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.
@@ -0,0 +1,544 @@
1
+ Metadata-Version: 2.4
2
+ Name: prismnote
3
+ Version: 0.3.0
4
+ Summary: Modern, open-source Jupyter-compatible data science notebook with Rust performance
5
+ Author-email: Georgi Mammen Mullassery <mullassery@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/Mullassery/prismnote
8
+ Project-URL: Repository, https://github.com/Mullassery/prismnote
9
+ Project-URL: Documentation, https://github.com/Mullassery/prismnote#readme
10
+ Project-URL: Bug Tracker, https://github.com/Mullassery/prismnote/issues
11
+ Keywords: notebook,jupyter,data-science,sql,python,rust
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Rust
23
+ Classifier: Topic :: Scientific/Engineering
24
+ Classifier: Topic :: Software Development :: Libraries
25
+ Classifier: Environment :: Web Environment
26
+ Requires-Python: >=3.8
27
+ Description-Content-Type: text/markdown
28
+ License-File: LICENSE
29
+ Requires-Dist: ipykernel>=6.0
30
+ Requires-Dist: jupyter>=1.0
31
+ Provides-Extra: sql
32
+ Requires-Dist: psycopg2-binary>=2.9; extra == "sql"
33
+ Requires-Dist: pymysql>=1.0; extra == "sql"
34
+ Provides-Extra: postgres
35
+ Requires-Dist: psycopg2-binary>=2.9; extra == "postgres"
36
+ Provides-Extra: mysql
37
+ Requires-Dist: pymysql>=1.0; extra == "mysql"
38
+ Provides-Extra: cloud
39
+ Requires-Dist: snowflake-connector-python>=3.0; extra == "cloud"
40
+ Requires-Dist: google-cloud-bigquery>=3.0; extra == "cloud"
41
+ Requires-Dist: amazon-redshift-python-driver>=1.0; extra == "cloud"
42
+ Requires-Dist: databricks-sql-connector>=1.0; extra == "cloud"
43
+ Provides-Extra: ai
44
+ Requires-Dist: anthropic>=0.7; extra == "ai"
45
+ Provides-Extra: openai
46
+ Requires-Dist: openai>=1.0; extra == "openai"
47
+ Provides-Extra: spark
48
+ Requires-Dist: pyspark>=3.0; extra == "spark"
49
+ Requires-Dist: pyarrow>=10; extra == "spark"
50
+ Provides-Extra: dev
51
+ Requires-Dist: pytest>=7.0; extra == "dev"
52
+ Requires-Dist: black>=22.0; extra == "dev"
53
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
54
+ Dynamic: license-file
55
+
56
+ # PrismNote v0.3
57
+
58
+ **Modern, open-source Jupyter-compatible notebook platform with Python code execution, SQL support, and cloud warehouse integration.**
59
+
60
+ **License:** MIT | **Status:** Beta (v0.3) | **Latest:** 2026-06-20
61
+
62
+ ---
63
+
64
+ ## What is PrismNote?
65
+
66
+ PrismNote is a modern alternative to Jupyter with a focus on **simplicity, speed, and reproducibility**. Write Python code, execute SQL queries, and manage data workflows all in one beautiful, responsive notebook.
67
+
68
+ **Best for:**
69
+ - Data scientists and analysts who want a modern Jupyter replacement
70
+ - Teams building SQL-based data workflows
71
+ - Users who need Python notebooks with better UX
72
+ - Projects requiring dark mode and keyboard-driven workflows
73
+
74
+ ---
75
+
76
+ ## What Works Right Now (v0.3)
77
+
78
+ ### ✓ Core Notebook Features
79
+ - **Python code cells** with Jupyter kernel (ipykernel required)
80
+ - **Markdown cells** with syntax highlighting
81
+ - **Cell execution** with Shift+Enter (run) or Ctrl+Enter (run and stay)
82
+ - **Dark/Light theme** with smooth switching
83
+ - **Modern, responsive UI** (WCAG 2.1 AA accessible)
84
+ - **Auto-save** (5-second interval)
85
+ - **Mobile-friendly** design for tablets
86
+ - **.ipynb format** (100% Jupyter compatible)
87
+
88
+ ### ✓ Code Execution
89
+ - Python 3.8+ with full library support
90
+ - Real-time code output (text, HTML, images, tables)
91
+ - Rich output rendering (pandas DataFrames, matplotlib, plotly)
92
+ - Execution history tracking
93
+ - Cell execution statistics
94
+
95
+ ### ✓ SQL & Data Features
96
+ - **SQL cells** with `--sql` marker support
97
+ - PostgreSQL and MySQL connections
98
+ - Basic query results as tables
99
+ - Simple query optimization suggestions
100
+
101
+ ### ✓ Search & Discovery
102
+ - **Global search (Cmd+K)** across all notebooks and cells (NEW - v0.3)
103
+ - 8 search categories: notebooks, files, tables, variables, history, comments, chat, connections
104
+ - Real-time fuzzy matching with relevance scoring
105
+ - Keyboard navigation (arrow keys, Enter to select)
106
+
107
+ ### ✓ Cloud Data Warehouse Foundation
108
+ - **API framework** for 8 cloud platforms (Snowflake, BigQuery, Redshift, Azure Synapse, Databricks, Athena, Presto, Trino)
109
+ - Connection management interface
110
+ - Test connection endpoints
111
+ - *Note: Full integration requires additional setup; see [CLOUD_WAREHOUSES.md](CLOUD_WAREHOUSES.md)*
112
+
113
+ ### ✓ AI Code Assistance
114
+ - **Code explanation** via Claude API
115
+ - **Error fixing** suggestions
116
+ - **Code completion** with context awareness
117
+ - Optional (requires ANTHROPIC_API_KEY)
118
+
119
+ ### ✓ Theme & Customization
120
+ - Dark mode enabled by default
121
+ - Light mode available
122
+ - Design system with 30+ CSS variables
123
+ - Responsive typography (10-20px font sizes)
124
+ - Cross-platform font support
125
+
126
+ ---
127
+
128
+ ## What Doesn't Work Yet (Planned for v0.4+)
129
+
130
+ **These features have framework code but are not yet integrated:**
131
+
132
+ - ❌ Real-time collaborative editing
133
+ - ❌ File upload/download UI (framework exists, not integrated)
134
+ - ❌ Cloud storage browser (S3, GCS, Azure)
135
+ - ❌ Enterprise authentication (AAD, LDAP, SAML) - framework only
136
+ - ❌ RBAC enforcement - framework exists, not enforced
137
+ - ❌ Audit logging - framework exists, not logging events
138
+ - ❌ Variable inspector - UI component exists, not tracking variables
139
+ - ❌ Notebook versioning - module exists, not integrated
140
+ - ❌ Docker code execution - framework only
141
+ - ❌ Spark session management - module exists, not tested
142
+ - ❌ Scheduling/cron jobs - framework only
143
+
144
+ **These are coming in v0.4-v1.0.**
145
+
146
+ ---
147
+
148
+ ## Quick Start (5 Minutes)
149
+
150
+ ### Requirements
151
+ - Python 3.8+
152
+ - ipykernel: `pip install ipykernel`
153
+ - macOS, Linux, or Windows (WSL2)
154
+
155
+ ### Installation
156
+
157
+ **Build from Source (Only method in v0.3):**
158
+ ```bash
159
+ git clone https://github.com/Mullassery/prismnote.git
160
+ cd prismnote
161
+
162
+ # Build Rust backend
163
+ cargo build --release
164
+
165
+ # Build React frontend
166
+ cd frontend
167
+ npm install
168
+ npm run build
169
+
170
+ # Start
171
+ cargo run --release
172
+ ```
173
+
174
+ **Access:** http://localhost:8000
175
+
176
+ *Note: Pre-built packages (pip, brew, Docker) coming in v0.5*
177
+
178
+ ### Create Your First Notebook
179
+
180
+ 1. Open http://localhost:8000
181
+ 2. Click "Create Notebook"
182
+ 3. Enter code in the first cell:
183
+ ```python
184
+ import pandas as pd
185
+
186
+ data = pd.DataFrame({
187
+ 'name': ['Alice', 'Bob', 'Charlie'],
188
+ 'age': [25, 30, 35]
189
+ })
190
+
191
+ print(data)
192
+ ```
193
+ 4. Press **Shift+Enter** to execute
194
+ 5. See output below the cell
195
+
196
+ ### Global Search (New in v0.3)
197
+
198
+ Press **Cmd+K** (Mac) or **Ctrl+K** (Windows/Linux) to:
199
+ - Search across all notebooks
200
+ - Search cell contents
201
+ - Filter by category
202
+ - Get instant results
203
+
204
+ ---
205
+
206
+ ## Features in Detail
207
+
208
+ ### Global Search (Cmd+K)
209
+ - 8 searchable categories
210
+ - Real-time fuzzy matching
211
+ - Keyboard navigation (↑↓ arrows, Enter to select, Esc to close)
212
+ - Execution time < 100ms
213
+ - Dark mode support
214
+
215
+ ### SQL Cells
216
+ Mark cells with `--sql` to execute SQL queries:
217
+ ```sql
218
+ --sql
219
+ SELECT COUNT(*) as users FROM database_table
220
+ ```
221
+
222
+ ### AI Assistance (Requires ANTHROPIC_API_KEY)
223
+ ```bash
224
+ export ANTHROPIC_API_KEY=sk-your-key-here
225
+ ```
226
+
227
+ Then in the UI:
228
+ - Select code
229
+ - Use AI explain/fix buttons
230
+ - Get suggestions from Claude
231
+
232
+ ### Dark Mode
233
+ Enabled by default. Toggle in theme selector (top right).
234
+
235
+ ### Responsive Design
236
+ Works on:
237
+ - Desktop (1920px+)
238
+ - Laptop (1366px-1920px)
239
+ - Tablet (768px-1024px)
240
+ - Mobile (< 768px)
241
+
242
+ ---
243
+
244
+ ## API Reference
245
+
246
+ **Available in v0.3:**
247
+
248
+ ### Notebooks
249
+ ```
250
+ GET /api/notebooks List all notebooks
251
+ POST /api/notebooks Create notebook
252
+ GET /api/notebooks/:id Get notebook
253
+ PUT /api/notebooks/:id Update notebook
254
+ DELETE /api/notebooks/:id Delete notebook
255
+ POST /api/notebooks/:id/execute Execute cell
256
+ ```
257
+
258
+ ### Search
259
+ ```
260
+ POST /api/search Global search across notebooks
261
+ ```
262
+
263
+ ### SQL
264
+ ```
265
+ POST /api/sql/execute Execute SQL query
266
+ POST /api/sql/optimize Get optimization suggestions
267
+ ```
268
+
269
+ ### AI Features
270
+ ```
271
+ POST /api/ai/explain Explain code
272
+ POST /api/ai/fix Fix error
273
+ POST /api/ai/complete Complete code
274
+ ```
275
+
276
+ ### Display Settings
277
+ ```
278
+ GET /api/settings/display Get display settings
279
+ PUT /api/settings/display Update settings
280
+ ```
281
+
282
+ **Coming in v0.4+:** Collaboration, file upload, cloud storage, GitHub sync, and more.
283
+
284
+ ---
285
+
286
+ ## Configuration
287
+
288
+ ### Environment Variables
289
+
290
+ **Core:**
291
+ ```bash
292
+ PRISMNOTE_DIR=~/.prismnote # Notebook storage location
293
+ PRISMNOTE_PORT=8000 # Server port
294
+ RUST_LOG=info # Log level
295
+ ```
296
+
297
+ **AI Features (Optional):**
298
+ ```bash
299
+ ANTHROPIC_API_KEY=sk-your-key # Enable Claude AI assistance
300
+ ```
301
+
302
+ **Cloud Warehouses (Coming in v0.4):**
303
+ ```bash
304
+ PRISMNOTE_SNOWFLAKE_ACCOUNT=your-account
305
+ PRISMNOTE_BIGQUERY_PROJECT=your-project
306
+ # ... more in CLOUD_WAREHOUSES.md
307
+ ```
308
+
309
+ ### User Settings
310
+ ~/.prismnote/config.json:
311
+ ```json
312
+ {
313
+ "theme": "dark",
314
+ "auto_save_interval_seconds": 5,
315
+ "cell_timeout_seconds": 30,
316
+ "font_family": "Roboto Mono",
317
+ "font_size": 14
318
+ }
319
+ ```
320
+
321
+ ---
322
+
323
+ ## Keyboard Shortcuts
324
+
325
+ ### Navigation
326
+ - **Shift+Enter** - Execute cell
327
+ - **Ctrl+Enter** - Execute cell (in-place, don't move)
328
+ - **Cmd+K / Ctrl+K** - Open global search
329
+ - **Escape** - Close search / dialogs
330
+
331
+ ### Editing
332
+ - **Cmd+/ / Ctrl+/** - Toggle comment
333
+ - **Tab** - Indent
334
+ - **Shift+Tab** - Unindent
335
+
336
+ ### Notebook
337
+ - **A** - Insert cell above (coming v0.4)
338
+ - **B** - Insert cell below (coming v0.4)
339
+ - **D, D** - Delete cell (coming v0.4)
340
+
341
+ ---
342
+
343
+ ## Architecture
344
+
345
+ ```
346
+ Browser (React 18 + TypeScript)
347
+ ↓ REST API + WebSocket
348
+ Rust Backend (Axum + Tokio)
349
+ ├── Cell Executor
350
+ ├── Notebook Manager
351
+ ├── Search Engine
352
+ ├── SQL Executor
353
+ └── AI Integration
354
+
355
+ Jupyter Kernel (ipykernel)
356
+
357
+ Python Runtime
358
+ ```
359
+
360
+ ### Development
361
+
362
+ **Terminal 1 - Rust Backend:**
363
+ ```bash
364
+ cargo watch -x 'run --release'
365
+ ```
366
+
367
+ **Terminal 2 - React Frontend:**
368
+ ```bash
369
+ cd frontend
370
+ npm run dev
371
+ ```
372
+
373
+ **Browser:** http://localhost:5173
374
+
375
+ ---
376
+
377
+ ## Known Limitations (v0.3)
378
+
379
+ 1. **Single-user only** - Real-time collaboration coming in v0.4
380
+ 2. **Local storage only** - Cloud storage mounting coming in v0.4
381
+ 3. **Basic SQL support** - PostgreSQL and MySQL only
382
+ 4. **No enterprise auth** - Framework exists, will be implemented in v0.4
383
+ 5. **No Spark integration yet** - Framework exists, needs testing
384
+ 6. **Output size limit** - 10MB per cell (prevents memory issues)
385
+ 7. **No notebook branching** - Version tracking framework exists, not implemented
386
+ 8. **No scheduled execution** - Framework exists, not integrated
387
+
388
+ **Full roadmap:** See [ROADMAP](#roadmap)
389
+
390
+ ---
391
+
392
+ ## Troubleshooting
393
+
394
+ ### "Module 'ipykernel' not found"
395
+ ```bash
396
+ pip install ipykernel
397
+ # Restart PrismNote
398
+ ```
399
+
400
+ ### "Port 8000 already in use"
401
+ ```bash
402
+ PRISMNOTE_PORT=9000 cargo run --release
403
+ ```
404
+
405
+ ### Notebooks not saving
406
+ ```bash
407
+ mkdir -p ~/.prismnote/notebooks
408
+ chmod 755 ~/.prismnote
409
+ ```
410
+
411
+ ### Slow execution
412
+ - Use smaller notebooks (< 100 cells)
413
+ - Disable auto-save if not needed: `"auto_save_interval_seconds": 0`
414
+ - Check disk space: `df ~/.prismnote`
415
+
416
+ ### Global search returns no results
417
+ - Check search is enabled (it is by default)
418
+ - Try broader search terms
419
+ - Notebook must be saved before appearing in search
420
+
421
+ ---
422
+
423
+ ## Roadmap
424
+
425
+ ### v0.3 ✓ (Current)
426
+ - [x] Python code cells with Jupyter kernel
427
+ - [x] Markdown cells
428
+ - [x] Dark/light theme
429
+ - [x] Modern UI (WCAG 2.1 AA)
430
+ - [x] Global search (Cmd+K)
431
+ - [x] SQL cells (PostgreSQL, MySQL)
432
+ - [x] AI code assistance (Claude API)
433
+ - [x] Responsive design (mobile-friendly)
434
+
435
+ ### v0.4 (August 2026 - Planned)
436
+ - [ ] Real-time collaborative editing
437
+ - [ ] File upload/download UI
438
+ - [ ] Cloud storage browser (S3, GCS, Azure)
439
+ - [ ] Variable inspector
440
+ - [ ] Notebook versioning
441
+ - [ ] Spark session management
442
+ - [ ] Enterprise authentication framework
443
+
444
+ ### v0.5 (November 2026 - Planned)
445
+ - [ ] GitHub notebook sync
446
+ - [ ] Pre-built packages (pip, brew, Docker)
447
+ - [ ] Display settings UI
448
+ - [ ] Extended keyboard shortcuts
449
+ - [ ] Plugin system foundation
450
+
451
+ ### v1.0 (Q1 2027 - Planned)
452
+ - [ ] Kubernetes deployment
453
+ - [ ] dbt integration
454
+ - [ ] Airflow support
455
+ - [ ] Enterprise audit logging (enforced)
456
+ - [ ] Multi-tenant support with RBAC enforcement
457
+
458
+ ---
459
+
460
+ ## System Requirements
461
+
462
+ **Minimum:**
463
+ - Python 3.8+
464
+ - 2GB RAM
465
+ - 500MB disk space
466
+ - Modern web browser
467
+
468
+ **Recommended:**
469
+ - Python 3.10+
470
+ - 4GB+ RAM
471
+ - 2GB disk space for notebooks
472
+ - Chrome, Firefox, Safari, or Edge (latest version)
473
+
474
+ **For SQL features:**
475
+ - PostgreSQL 10+ OR MySQL 5.7+ (optional)
476
+
477
+ **For AI assistance:**
478
+ - Active Anthropic API key with credit balance
479
+
480
+ ---
481
+
482
+ ## Contributing
483
+
484
+ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for:
485
+ - How to report bugs
486
+ - How to submit feature requests
487
+ - How to set up development environment
488
+ - Code style guidelines
489
+
490
+ ---
491
+
492
+ ## Support
493
+
494
+ **Free Community Support:**
495
+ - 🐛 Report bugs on [GitHub Issues](https://github.com/Mullassery/prismnote/issues)
496
+ - 💬 Ask questions on [GitHub Discussions](https://github.com/Mullassery/prismnote/discussions)
497
+ - 📚 Check [documentation files](./docs/)
498
+
499
+ **Commercial Support:**
500
+ - Coming soon (contact: support@prismnote.dev)
501
+
502
+ ---
503
+
504
+ ## License & Attribution
505
+
506
+ **License:** MIT (free for personal, commercial, and educational use)
507
+
508
+ **Built with:**
509
+ - Rust (Axum, Tokio, Serde)
510
+ - React 18 (TypeScript, Vite)
511
+ - Python (Jupyter kernel protocol)
512
+
513
+ **Thanks to:**
514
+ - Jupyter project for the notebook format and kernel protocol
515
+ - Open-source Rust and JavaScript communities
516
+ - All contributors and users!
517
+
518
+ ---
519
+
520
+ ## Project Status
521
+
522
+ - **Latest Release:** v0.3 (2026-06-20)
523
+ - **Phase:** Beta
524
+ - **Actively Maintained:** Yes
525
+ - **Production Ready:** For single-user data science workflows (v1.0 for enterprises)
526
+
527
+ ---
528
+
529
+ **Made with Rust + React | Open Source | MIT Licensed**
530
+
531
+ ⭐ **If you find PrismNote useful, please star us on [GitHub](https://github.com/Mullassery/prismnote)!**
532
+
533
+ ---
534
+
535
+ ## Quick Links
536
+
537
+ - [GitHub Repository](https://github.com/Mullassery/prismnote)
538
+ - [GitHub Issues](https://github.com/Mullassery/prismnote/issues)
539
+ - [GitHub Discussions](https://github.com/Mullassery/prismnote/discussions)
540
+ - [Contributing Guide](CONTRIBUTING.md)
541
+
542
+ ---
543
+
544
+ **Questions?** Open an issue on GitHub or start a discussion. We're here to help!
@@ -0,0 +1,6 @@
1
+ prismnote-0.3.0.dist-info/licenses/LICENSE,sha256=KK2WAuD-Cc9pMeqvZlmGQkWIcNsAT6Ce9-qpfNfBMHA,1081
2
+ prismnote-0.3.0.dist-info/METADATA,sha256=X9959MOB75vCnp2mA-cLv9QfLWc5ZlmWqPdcndBBBOI,14338
3
+ prismnote-0.3.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
4
+ prismnote-0.3.0.dist-info/entry_points.txt,sha256=-DrK5pMnpPvM6voR64FwVxXTDmBfVSUzJWbrlj08rs8,50
5
+ prismnote-0.3.0.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
6
+ prismnote-0.3.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ prismnote = prismnote._cli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Georgi Mammen Mullassery
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.
@@ -0,0 +1 @@
1
+