vector-inspector 0.2.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.
Files changed (32) hide show
  1. vector_inspector/__init__.py +3 -0
  2. vector_inspector/__main__.py +4 -0
  3. vector_inspector/core/__init__.py +1 -0
  4. vector_inspector/core/connections/__init__.py +7 -0
  5. vector_inspector/core/connections/base_connection.py +233 -0
  6. vector_inspector/core/connections/chroma_connection.py +384 -0
  7. vector_inspector/core/connections/qdrant_connection.py +723 -0
  8. vector_inspector/core/connections/template_connection.py +346 -0
  9. vector_inspector/main.py +21 -0
  10. vector_inspector/services/__init__.py +1 -0
  11. vector_inspector/services/backup_restore_service.py +286 -0
  12. vector_inspector/services/filter_service.py +72 -0
  13. vector_inspector/services/import_export_service.py +287 -0
  14. vector_inspector/services/settings_service.py +60 -0
  15. vector_inspector/services/visualization_service.py +116 -0
  16. vector_inspector/ui/__init__.py +1 -0
  17. vector_inspector/ui/components/__init__.py +1 -0
  18. vector_inspector/ui/components/backup_restore_dialog.py +350 -0
  19. vector_inspector/ui/components/filter_builder.py +370 -0
  20. vector_inspector/ui/components/item_dialog.py +118 -0
  21. vector_inspector/ui/components/loading_dialog.py +30 -0
  22. vector_inspector/ui/main_window.py +288 -0
  23. vector_inspector/ui/views/__init__.py +1 -0
  24. vector_inspector/ui/views/collection_browser.py +112 -0
  25. vector_inspector/ui/views/connection_view.py +423 -0
  26. vector_inspector/ui/views/metadata_view.py +555 -0
  27. vector_inspector/ui/views/search_view.py +268 -0
  28. vector_inspector/ui/views/visualization_view.py +245 -0
  29. vector_inspector-0.2.0.dist-info/METADATA +382 -0
  30. vector_inspector-0.2.0.dist-info/RECORD +32 -0
  31. vector_inspector-0.2.0.dist-info/WHEEL +4 -0
  32. vector_inspector-0.2.0.dist-info/entry_points.txt +5 -0
@@ -0,0 +1,382 @@
1
+ Metadata-Version: 2.1
2
+ Name: vector-inspector
3
+ Version: 0.2.0
4
+ Summary: A comprehensive desktop application for visualizing, querying, and managing vector database data
5
+ Author-Email: Anthony Dawson <anthonypdawson+github@gmail.com>
6
+ License: MIT
7
+ Requires-Python: ==3.12.*
8
+ Requires-Dist: chromadb>=0.4.22
9
+ Requires-Dist: qdrant-client>=1.7.0
10
+ Requires-Dist: pyside6>=6.6.0
11
+ Requires-Dist: PySide6-Addons>=6.6.3.1
12
+ Requires-Dist: pandas>=2.1.0
13
+ Requires-Dist: numpy>=1.26.0
14
+ Requires-Dist: scikit-learn>=1.3.0
15
+ Requires-Dist: umap-learn>=0.5.5
16
+ Requires-Dist: plotly>=5.18.0
17
+ Requires-Dist: sentence-transformers>=2.2.0
18
+ Requires-Dist: fastembed>=0.7.4
19
+ Requires-Dist: pyarrow>=14.0.0
20
+ Description-Content-Type: text/markdown
21
+
22
+ # Vector Inspector
23
+
24
+
25
+ A comprehensive desktop application for visualizing, querying, and managing vector database data. Similar to SQL database viewers, Vector Inspector provides an intuitive GUI for exploring vector embeddings, metadata, and performing similarity searches across multiple vector database providers.
26
+
27
+ ## Overview
28
+
29
+ ## Table of Contents
30
+
31
+ - [Overview](#overview)
32
+ - [Key Features](#key-features)
33
+ - [Architecture](#architecture)
34
+ - [Application Structure](#application-structure)
35
+ - [Use Cases](#use-cases)
36
+ - [Feature Access (Free vs Pro)](#feature-access-free-vs-pro)
37
+ - [Planned Roadmap](#planned-roadmap)
38
+ - [Installation (Planned)](#installation-planned)
39
+ - [Configuration](#configuration)
40
+ - [Development Setup](#development-setup)
41
+ - [Contributing](#contributing)
42
+ - [License](#license)
43
+ - [Acknowledgments](#acknowledgments)
44
+
45
+ Vector Inspector bridges the gap between vector databases and user-friendly data exploration tools. While vector databases are powerful for semantic search and AI applications, they often lack the intuitive inspection and management tools that traditional SQL databases have. This project aims to provide that missing layer.
46
+
47
+ ## Key Features
48
+
49
+ ### 1. **Multi-Provider Support**
50
+ - Connect to vector databases:
51
+ - ChromaDB (persistent local storage)
52
+ - Qdrant (remote server or embedded local)
53
+ - Unified interface regardless of backend provider
54
+ - Automatically saves last connection configuration
55
+
56
+ ### 2. **Data Visualization**
57
+ - **Metadata Explorer**: Browse and filter vector entries by metadata fields
58
+ - **Vector Dimensionality Reduction**: Visualize high-dimensional vectors in 2D/3D using:
59
+ - t-SNE
60
+ - UMAP
61
+ - PCA
62
+ - **Cluster Visualization**: Color-code vectors by metadata categories or clustering results
63
+ - **Interactive Plots**: Zoom, pan, and select vectors for detailed inspection
64
+ - **Data Distribution Charts**: Histograms and statistics for metadata fields
65
+
66
+ ### 3. **Search & Query Interface**
67
+ - **Similarity Search**:
68
+ - Text-to-vector search (with embedding model integration)
69
+ - Vector-to-vector search
70
+ - Find similar items to selected entries
71
+ - Adjustable top-k results and similarity thresholds
72
+ - **Metadata Filtering**:
73
+ - SQL-like query builder for metadata
74
+ - Combine vector similarity with metadata filters
75
+ - Advanced filtering: ranges, IN clauses, pattern matching
76
+ - **Hybrid Search**: Combine semantic search with keyword search
77
+ - **Query History**: Save and reuse frequent queries
78
+
79
+ ### 4. **Data Management**
80
+ - **Browse Collections/Indexes**: View all available collections with statistics
81
+ - **CRUD Operations**:
82
+ - View individual vectors and their metadata
83
+ - Add new vectors (with auto-embedding options)
84
+ - Update metadata fields
85
+ - Delete vectors (single or batch)
86
+ - **Bulk Import/Export**:
87
+ - Import from CSV, JSON, Parquet
88
+ - Export query results to various formats
89
+ - Backup and restore collections
90
+ - **Schema Inspector**: View collection configuration, vector dimensions, metadata schema
91
+
92
+ ### 5. **SQL-Like Experience**
93
+ - **Query Console**: Write queries in a familiar SQL-like syntax (where supported)
94
+ - **Results Grid**:
95
+ - Sortable, filterable table view
96
+ - Pagination for large result sets
97
+ - Column customization
98
+ - **Data Inspector**: Click any row to see full details including raw vector
99
+ - **Query Execution Plans**: Understand how queries are executed
100
+ - **Auto-completion**: Intelligent suggestions for collection names, fields, and operations
101
+
102
+ ### 6. **Advanced Features**
103
+ - **Embedding Model Integration**:
104
+ - Use OpenAI, Cohere, HuggingFace models for text-to-vector conversion
105
+ - Local model support (sentence-transformers)
106
+ - Custom model integration
107
+ - **Vector Analysis**:
108
+ - Compute similarity matrices
109
+ - Identify outliers and anomalies
110
+ - Cluster analysis with k-means, DBSCAN
111
+ - **Embedding Inspector**:
112
+ - For similar collections or items, automatically identify which vector dimensions (activations) most contribute to the similarity
113
+ - Map key activations to interpretable concepts (e.g., 'humor', 'sadness', 'anger') using metadata or labels
114
+ - Generate human-readable explanations for why items are similar
115
+ - **Performance Monitoring**:
116
+ - Query latency tracking
117
+ - Index performance metrics
118
+ - Connection health monitoring
119
+
120
+ ## Architecture
121
+
122
+ ### Technology Stack
123
+
124
+ #### Frontend (GUI)
125
+ - **Framework**: PySide6 (Qt for Python) - native desktop application
126
+ - **UI Components**: Qt Widgets for forms, dialogs, and application structure
127
+ - **Visualization**:
128
+ - Plotly for interactive charts (embedded via QWebEngineView)
129
+ - matplotlib for static visualizations
130
+ - **Data Grid**: QTableView with custom models for high-performance data display
131
+
132
+ #### Backend
133
+ - **Language**: Python 3.12
134
+ - **Core Libraries**:
135
+ - Vector DB clients: `chromadb`, `qdrant-client` (implemented), `pinecone-client`, `weaviate-client`, `pymilvus` (planned)
136
+ - Embeddings: `sentence-transformers`, `fastembed` (implemented), `openai`, `cohere` (planned)
137
+ - Data processing: `pandas`, `numpy`
138
+ - Dimensionality reduction: `scikit-learn`, `umap-learn`
139
+ - **API Layer**: FastAPI (planned for programmatic access) or direct Python integration
140
+
141
+ #### Data Layer
142
+ - **Connection Management**: Provider-specific connection classes with unified interface
143
+ - **Query Abstraction**: Base connection interface that each provider implements
144
+ - **Storage Modes**:
145
+ - ChromaDB: Persistent local storage
146
+ - Qdrant Remote: Connect via host/port (e.g., localhost:6333)
147
+ - Qdrant Embedded: Local path storage without separate server
148
+ - **Caching**: Redis or in-memory cache for frequently accessed data (planned)
149
+ - **Settings Persistence**: User settings saved to ~/.vector-viewer/settings.json
150
+
151
+ ### Application Structure
152
+
153
+ ```
154
+ vector-viewer/
155
+ ├── src/
156
+ │ └── vector_viewer/
157
+ │ ├── core/
158
+ │ │ └── connections/ # Connection managers for each provider
159
+ │ ├── ui/
160
+ │ │ ├── components/ # Reusable UI components
161
+ │ │ └── views/ # Main application views
162
+ │ ├── services/ # Business logic services
163
+ │ └── main.py # Application entry point
164
+ ├── tests/
165
+ ├── docs/
166
+ ├── data/ # Local database storage
167
+ │ ├── chroma_db/
168
+ │ └── qdrant/
169
+ ├── run.sh / run.bat # Launch scripts
170
+ └── pyproject.toml
171
+ ```
172
+
173
+ User settings are saved to `~/.vector-viewer/settings.json`
174
+
175
+ ## Use Cases
176
+
177
+ 1. **AI/ML Development**: Inspect embeddings generated during model development
178
+ 2. **RAG System Debugging**: Verify what documents are being retrieved
179
+ 3. **Data Quality Assurance**: Identify poorly embedded or outlier vectors
180
+ 4. **Production Monitoring**: Check vector database health and data consistency
181
+ 5. **Data Migration**: Transfer data between vector database providers
182
+ 6. **Education**: Learn and experiment with vector databases interactively
183
+
184
+ ## Feature Access (Free vs Pro)
185
+
186
+ | Feature | Access |
187
+ |----------------------------------------------|----------|
188
+ | Connection to ChromaDB | Free |
189
+ | Basic metadata browsing and filtering | Free |
190
+ | Simple similarity search interface | Free |
191
+ | 2D vector visualization (PCA/t-SNE) | Free |
192
+ | Basic CRUD operations | Free |
193
+ | Metadata filtering (advanced) | Free |
194
+ | Item editing | Free |
195
+ | Import/export (CSV, JSON, Parquet) | Free |
196
+ | Provider abstraction layer | Free |
197
+ | Pinecone support | Free |
198
+ | Weaviate support | Free |
199
+ | Qdrant support (basic/experimental) | Free |
200
+ | Milvus support | Pro |
201
+ | ChromaDB advanced support | Pro |
202
+ | FAISS (local files) support | Pro |
203
+ | pgvector (PostgreSQL extension) support | Pro |
204
+ | Elasticsearch with vector search support | Pro |
205
+ | Advanced query builder | Free |
206
+ | 3D visualization | Free |
207
+ | Embedding model integration (basic) | Free |
208
+ | Query history and saved queries | Free |
209
+ | Model Comparison Mode | Pro |
210
+ | Cluster Explorer | Pro |
211
+ | Embedding Inspector | Pro |
212
+ | Embedding Provenance Graph | Pro |
213
+ | Semantic Drift Timeline | Pro |
214
+ | Cross-Collection Similarity | Pro |
215
+ | Vector Surgery | Pro |
216
+ | Custom plugin system | Pro |
217
+ | Team collaboration features | Pro |
218
+
219
+ > **Note:** Qdrant support is available for free users in the open source version (basic/experimental). Advanced Qdrant features (e.g., payload filtering, geo, cloud auth) may be reserved for Pro in the future.
220
+
221
+ ## Planned Roadmap
222
+
223
+ ### Phase 1: Foundation (MVP)
224
+ - [x] Connection to ChromaDB
225
+ - [x] Basic metadata browsing and filtering
226
+ - [x] Simple similarity search interface
227
+ - [x] 2D vector visualization (PCA/t-SNE)
228
+ - [x] Basic CRUD operations
229
+
230
+ ### Phase 2: Core Features
231
+ - [x] Metadata filtering (advanced filtering, combine with search)
232
+ - [x] Item editing (update metadata and documents)
233
+ - [x] Import/export (CSV, JSON, Parquet, backup/restore)
234
+ - [x] Provider abstraction layer (unified interface for all supported vector DBs)
235
+ - [x] Qdrant support (basic/experimental, free)
236
+
237
+ ### Phase 3: UX & Professional Polish
238
+ - [ ] **Unified Information Panel** (new "Info" tab as default view)
239
+ - [ ] Database and collection metadata display
240
+ - [ ] Connection health and version information
241
+ - [ ] Schema visualization and index configuration display
242
+
243
+ ### Phase 4: Modular/Plugin System & Hybrid Model
244
+ - [ ] Implement modular/plugin system for feature extensions
245
+ - [ ] Migrate paid/advanced features to commercial modules
246
+ - [ ] Add licensing/access control for commercial features
247
+
248
+ ### Phase 5: Provider Expansion (Incremental)
249
+ - [ ] Pinecone support (free)
250
+ - [ ] Weaviate support (free)
251
+ - [ ] Qdrant support (paid)
252
+
253
+ #### Future/Backlog Providers
254
+ - [ ] Milvus support (paid)
255
+ - [ ] ChromaDB advanced support (paid)
256
+ - [ ] FAISS (local files) support (paid)
257
+ - [ ] pgvector (PostgreSQL extension) support (paid)
258
+ - [ ] Elasticsearch with vector search support (paid)
259
+
260
+
261
+ ### Phase 6A: Advanced Usability & Visualization
262
+ - [ ] Advanced query builder (free)
263
+ - [ ] 3D visualization (free)
264
+ - [ ] Embedding model integration (free)
265
+ - [ ] Query history and saved queries (free)
266
+ - [ ] Metadata Type Detection & Rich Media Preview (free)
267
+
268
+ ### Phase 6B: Analytical & Comparison Tools
269
+ - [ ] Model Comparison Mode (paid)
270
+ - [ ] Cluster Explorer (paid)
271
+ - [ ] Embedding Inspector (paid)
272
+ - [ ] Embedding Provenance Graph (paid)
273
+
274
+ ### Phase 6C: Temporal & Cross-Collection Analytics
275
+ - [ ] Semantic Drift Timeline (paid)
276
+ - [ ] Cross-Collection Similarity (paid)
277
+
278
+ ### Phase 6D: Experimental & Power Features
279
+ - [ ] Vector Surgery (paid)
280
+ - [ ] Custom plugin system (paid)
281
+ - [ ] Team collaboration features (paid)
282
+
283
+ ### Phase 7: Enterprise Features
284
+ - [ ] Multi-user support with auth
285
+ - [ ] Audit logging
286
+ - [ ] Advanced security features
287
+ - [ ] Custom reporting
288
+ - [ ] API for programmatic access (FastAPI backend)
289
+ - [ ] Caching layer (Redis/in-memory) for performance
290
+ - [ ] Connection pooling and optimization
291
+
292
+ ## Installation
293
+
294
+ ```bash
295
+ # Clone the repository
296
+ git clone https://github.com/anthonypdawson/vector-viewer.git
297
+ cd vector-viewer
298
+
299
+ # Install dependencies using PDM
300
+ pdm install
301
+
302
+ # Launch application
303
+ ./run.sh # Linux/macOS
304
+ ./run.bat # Windows
305
+ ```
306
+
307
+ ## Configuration
308
+
309
+ Paths are resolved relative to the project root (where `pyproject.toml` is). For example, entering `./data/chroma_db` will use the absolute path resolved from the project root.
310
+
311
+ The application automatically saves your last connection configuration to `~/.vector-viewer/settings.json`. The next time you launch the application, it will attempt to reconnect using the last saved settings.
312
+
313
+ Example settings structure:
314
+ ```json
315
+ {
316
+ "last_connection": {
317
+ "provider": "chromadb",
318
+ "connection_type": "persistent",
319
+ "path": "./data/chroma_db"
320
+ }
321
+ }
322
+ ```
323
+
324
+ ## Development Setup
325
+
326
+ ```bash
327
+ # Install PDM if you haven't already
328
+ pip install pdm
329
+
330
+ # Install dependencies with development tools (PDM will create venv automatically)
331
+ pdm install -d
332
+
333
+ # Run tests
334
+ pdm run pytest
335
+
336
+ # Run application in development mode
337
+ ./run.sh # Linux/macOS
338
+ ./run.bat # Windows
339
+
340
+ # Or use Python module directly from src directory:
341
+ cd src
342
+ pdm run python -m vector_viewer
343
+ ```
344
+
345
+ ## Contributing
346
+
347
+ Contributions are welcome! Areas where help is needed:
348
+ - Additional vector database provider integrations
349
+ - UI/UX improvements
350
+ - Performance optimizations
351
+ - Documentation
352
+ - Test coverage
353
+
354
+ Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
355
+
356
+ ## License
357
+
358
+ MIT License - See [LICENSE](LICENSE) file for details.
359
+
360
+ ## Acknowledgments
361
+
362
+ This project draws inspiration from:
363
+ - DBeaver (SQL database viewer)
364
+ - MongoDB Compass (NoSQL database GUI)
365
+ - Pinecone Console
366
+ - Various vector database management tools
367
+
368
+ ---
369
+
370
+ **Status**: ✅ Phase 2 Complete - Advanced Features Implemented!
371
+
372
+ **What's New in Phase 2:**
373
+ - 🔍 Advanced metadata filtering with customizable filter rules (AND/OR logic)
374
+ - ✏️ Double-click to edit items directly in the data browser
375
+ - 📥 Import data from CSV, JSON, and Parquet files
376
+ - 📤 Export filtered data to CSV, JSON, and Parquet formats
377
+ - 💾 Comprehensive backup and restore system for collections
378
+ - 🔄 Metadata filters integrated with search for powerful queries
379
+
380
+ See [GETTING_STARTED.md](GETTING_STARTED.md) for usage instructions and [IMPLEMENTATION_SUMMARY.md](IMPLEMENTATION_SUMMARY.md) for technical details.
381
+
382
+ **Contact**: Anthony Dawson
@@ -0,0 +1,32 @@
1
+ vector_inspector-0.2.0.dist-info/METADATA,sha256=HQuVCvuWJ6B4AR6QX8EQDc8nV6F0PjLTeSRjzJN8t00,14669
2
+ vector_inspector-0.2.0.dist-info/WHEEL,sha256=tsUv_t7BDeJeRHaSrczbGeuK-TtDpGsWi_JfpzD255I,90
3
+ vector_inspector-0.2.0.dist-info/entry_points.txt,sha256=u96envMI2NFImZUJDFutiiWl7ZoHrrev9joAgtyvTxo,80
4
+ vector_inspector/__init__.py,sha256=Q8XbXn98o0eliQWPePhy-aGUz2KNnVg7bQq-sBPl7zQ,119
5
+ vector_inspector/__main__.py,sha256=Vdhw8YA1K3wPMlbJQYL5WqvRzAKVeZ16mZQFO9VRmCo,62
6
+ vector_inspector/core/__init__.py,sha256=hjOqiJwF1P0rXjiOKhK4qDTvBY7G3m4kq8taH-gKrFM,57
7
+ vector_inspector/core/connections/__init__.py,sha256=cCwDy69Jy8ajiFQICcWfPnGoMtfrq69brzXJ4sVYCQ0,271
8
+ vector_inspector/core/connections/base_connection.py,sha256=PiwVlrk-eUKSka6gmE2GSyml0xe48PrIWAcKhBJMBv8,7131
9
+ vector_inspector/core/connections/chroma_connection.py,sha256=dfJpAJeWsRViNhuZiaFGiH9nCF8k4EYczKTFLUqGC1A,12617
10
+ vector_inspector/core/connections/qdrant_connection.py,sha256=2HJYL7slaZeOUbetOD-p_sBN_ocxs2awBQNiUu-_3rI,25636
11
+ vector_inspector/core/connections/template_connection.py,sha256=wsJiE4ma3cLUXk2eW5rnLMS5wG8JTekgEn46lHHQNoc,10642
12
+ vector_inspector/main.py,sha256=puu1Fur298j6H8fG3_wF85RMhi4tjLZ0Are16kloMqM,479
13
+ vector_inspector/services/__init__.py,sha256=QLgH7oybjHuEYDFNiBgmJxvSpgAzHEuBEPXa3SKJb_I,67
14
+ vector_inspector/services/backup_restore_service.py,sha256=2bbmLamGg7gaYUl3zy_-8wL8xbYvO00kZ2tbImZkzi0,11782
15
+ vector_inspector/services/filter_service.py,sha256=r1y_lPi4Mo4ZqVq_hfbTzRxcCbdH7RlsXg7ytkBTKi8,2334
16
+ vector_inspector/services/import_export_service.py,sha256=76n7Vm02shfa-Fn7AWHWsrmaJVICMMs0JnWI-wXeZ_o,9751
17
+ vector_inspector/services/settings_service.py,sha256=Y-2eJGyxUPPZid-3S0rCZ13xTRSLWYIOQ3ckSGX7gvE,2078
18
+ vector_inspector/services/visualization_service.py,sha256=Bo9jSihT4axVKOAmefqXHemgm8uw59su2pz-UkXdONc,3901
19
+ vector_inspector/ui/__init__.py,sha256=262ZiXO6Luk8vZnhCIoYxOtGiny0bXK-BTKjxUNBx-w,43
20
+ vector_inspector/ui/components/__init__.py,sha256=S-GWU1P820dJ6mHmeeBEy-CGF9fjpBeNf8vrbhRlFMk,30
21
+ vector_inspector/ui/components/backup_restore_dialog.py,sha256=CrZ2u8vXzggv3aBkYR4FulpY74oZWMLW5BHU4dMiWug,13073
22
+ vector_inspector/ui/components/filter_builder.py,sha256=NSR_hp-rzUZVAca6dIJhTxZA3igOKFM1g-YXiYPhFos,13360
23
+ vector_inspector/ui/components/item_dialog.py,sha256=VMwehEjQ6xrdxWygR9J-hHsLfzOVb_E3ePUGYO_c7XA,3951
24
+ vector_inspector/ui/components/loading_dialog.py,sha256=YEKYGU-R-Zz4CjXSArJtkNxgTy4O9hI5Bbt6qlIzD8U,1018
25
+ vector_inspector/ui/main_window.py,sha256=7_SOn7DaO9ZzzNXNQ5G3C8TcOVFYWZwK2zPahiv1COc,11351
26
+ vector_inspector/ui/views/__init__.py,sha256=FeMtVzSbVFBMjdwLQSQqD0FRW4ieJ4ZKXtTBci2e_bw,30
27
+ vector_inspector/ui/views/collection_browser.py,sha256=oG9_YGPoVuMs-f_zSd4EcITmEU9caxvwuubsFUrNf-c,3991
28
+ vector_inspector/ui/views/connection_view.py,sha256=5TL28JMfb0W42eUDDNbj6bIaj6m7WpalpdUEcd37qmM,16903
29
+ vector_inspector/ui/views/metadata_view.py,sha256=1prg0ZFkPbA2PxUzr5Z-WlW8nTXa-_WSNlLIU-RTLME,21286
30
+ vector_inspector/ui/views/search_view.py,sha256=p6vt2heSpEbiRge46VSedTZjg7i3-AWdS0f96JXzlEU,10527
31
+ vector_inspector/ui/views/visualization_view.py,sha256=389lKOOqz4_7I-pUIIu86ZbA2ttq8Tuwflbb5W-W4g0,9038
32
+ vector_inspector-0.2.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: pdm-backend (2.4.6)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,5 @@
1
+ [console_scripts]
2
+ vector-inspector = vector_inspector.main:main
3
+
4
+ [gui_scripts]
5
+