prismiq 0.1.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,109 @@
1
+ Metadata-Version: 2.4
2
+ Name: prismiq
3
+ Version: 0.1.0
4
+ Summary: Open-source embedded analytics platform
5
+ Project-URL: Homepage, https://github.com/prismiq/prismiq
6
+ Project-URL: Documentation, https://prismiq.dev/docs
7
+ Project-URL: Repository, https://github.com/prismiq/prismiq
8
+ Author: Prismiq Contributors
9
+ License-Expression: MIT
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Framework :: FastAPI
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Topic :: Database
19
+ Classifier: Typing :: Typed
20
+ Requires-Python: >=3.10
21
+ Requires-Dist: asyncpg>=0.29.0
22
+ Requires-Dist: fastapi>=0.109.0
23
+ Requires-Dist: pydantic>=2.0.0
24
+ Requires-Dist: sqlalchemy>=2.0.0
25
+ Requires-Dist: sqlglot>=26.0.0
26
+ Requires-Dist: uvicorn>=0.27.0
27
+ Provides-Extra: dev
28
+ Requires-Dist: httpx>=0.27.0; extra == 'dev'
29
+ Requires-Dist: pre-commit>=3.7.0; extra == 'dev'
30
+ Requires-Dist: pyright>=1.1.350; extra == 'dev'
31
+ Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
32
+ Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
33
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
34
+ Requires-Dist: ruff>=0.4.0; extra == 'dev'
35
+ Provides-Extra: redis
36
+ Requires-Dist: redis>=5.0.0; extra == 'redis'
37
+ Description-Content-Type: text/markdown
38
+
39
+ # Prismiq
40
+
41
+ Open-source embedded analytics engine for Python.
42
+
43
+ ## Installation
44
+
45
+ ```bash
46
+ pip install prismiq
47
+ ```
48
+
49
+ ## Quick Start
50
+
51
+ ```python
52
+ from prismiq import PrismiqEngine
53
+
54
+ # Connect to your database
55
+ engine = await PrismiqEngine.create(
56
+ database_url="postgresql://user:pass@localhost/mydb",
57
+ exposed_tables=["customers", "orders", "products"]
58
+ )
59
+
60
+ # Get schema
61
+ schema = await engine.get_schema()
62
+
63
+ # Execute a query
64
+ result = await engine.execute({
65
+ "tables": [{"id": "t1", "name": "orders"}],
66
+ "columns": [
67
+ {"table_id": "t1", "name": "status"},
68
+ {"table_id": "t1", "name": "total", "aggregation": "sum"}
69
+ ],
70
+ "group_by": [{"table_id": "t1", "column": "status"}]
71
+ })
72
+ ```
73
+
74
+ ## Features
75
+
76
+ - **Schema introspection** - Discover tables, columns, and relationships
77
+ - **Visual query building** - Build SQL from JSON query definitions
78
+ - **Async execution** - Non-blocking database operations with asyncpg
79
+ - **Type safe** - Full type hints with Pydantic models
80
+ - **Multi-tenant support** - Schema-based isolation with Alembic integration
81
+
82
+ ## Multi-Tenant Integration
83
+
84
+ For applications with schema-based multi-tenancy, Prismiq provides SQLAlchemy declarative models and sync table creation:
85
+
86
+ ```python
87
+ from sqlalchemy import create_engine
88
+ from prismiq import ensure_tables_sync, PrismiqBase
89
+
90
+ engine = create_engine("postgresql://user:pass@localhost/db")
91
+
92
+ # Create tables in a tenant-specific schema
93
+ with engine.connect() as conn:
94
+ ensure_tables_sync(conn, schema_name="tenant_123")
95
+ conn.commit()
96
+
97
+ # For Alembic integration, access the metadata:
98
+ # PrismiqBase.metadata.tables contains all Prismiq table definitions
99
+ ```
100
+
101
+ See [Multi-Tenant Integration Guide](../../docs/multi-tenant-integration.md) for complete documentation.
102
+
103
+ ## Documentation
104
+
105
+ See the [main repository](https://github.com/prismiq/prismiq) for full documentation.
106
+
107
+ ## License
108
+
109
+ MIT
@@ -0,0 +1,39 @@
1
+ prismiq/__init__.py,sha256=Cv6J72XFFbQrFpc01H7_0RvxtJfdQUflTkTKBoUVKPM,16226
2
+ prismiq/api.py,sha256=ambac1hfgNuskdnpUyBYcVXr2AyAVRaJOKdUTjd-XN0,64232
3
+ prismiq/auth.py,sha256=965TeZrK0rd2sYtzGyFCPPFNjGXstyX7JXbDOLNaYKo,3151
4
+ prismiq/cache.py,sha256=SZUlUa-id8xwfftD6UrnDvoIgk_RjGM8S7pyTfmZ8xg,15995
5
+ prismiq/calculated_field_processor.py,sha256=FRt5fRNhgJQlaEIuLAvmRVvDhS6DIQ5CXTGJj0DpzjI,9516
6
+ prismiq/calculated_fields.py,sha256=6JyMRdqM5mqIPIq_YOn59phbkR7_gIs2TRFYv4UGy3Q,31693
7
+ prismiq/dashboard_store.py,sha256=QcXU_TsPLdmyHIJh_Ly4mTcyABeBYESrdSamGJ-nOLk,40530
8
+ prismiq/dashboards.py,sha256=-WAjUjoyi_FPswepAAvITN5vE7Et140J8XIZdKFst2o,9095
9
+ prismiq/dates.py,sha256=VA13E_XpRky2HbjnZfSpKU09EKHAG-3y1sZnHOXq5P8,7994
10
+ prismiq/engine.py,sha256=9i6Q8GBIihVptSuUhOyT7p8fiEWO7Jni_oIGVEIMCwg,47373
11
+ prismiq/executor.py,sha256=1_kZL8TQZtNZ5jwoVWIByztgR7mlm70R8TsLhUrcX1U,12191
12
+ prismiq/filter_merge.py,sha256=WKSI5azujL5sEQiyen5d7cblQIm578wkYT4MLERlcpw,12784
13
+ prismiq/formatting.py,sha256=fJiDKkubQiaQuuut3DSq2VxcG0vvBpF6_Eh7nX2TdVM,8198
14
+ prismiq/logging.py,sha256=PnDPGwrY4mlkXcAJ-MC_dWTzeGAvh1cuxGSTRdi7sCM,13825
15
+ prismiq/metrics.py,sha256=RCOWwGcyN2Zw7zG8_-EhcT5Oz5wAYTFwaQaawYqfu5U,17228
16
+ prismiq/middleware.py,sha256=VZ4gmC9SpWA_piDE6CU42OJjzhDRa-ZGn7ngm-4g6DI,10817
17
+ prismiq/permissions.py,sha256=bYNHMh1iJdRddQ6slDYABf3egOqZBIDhF-avZ9rVt3Q,2264
18
+ prismiq/pins.py,sha256=JCg_skBR5uQu3F_J8cFQraKcM9-vZuWKhNYCY1Yqzbg,2327
19
+ prismiq/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ prismiq/query.py,sha256=lkUX9LwwQsvuLgwTUROuOzLnOHJzhIl6t-E0ELhFlH8,49378
21
+ prismiq/schema.py,sha256=vjdItFsaovMhBGPQ7YaRXz2N9EAIo30WnEolhE8bI8c,12258
22
+ prismiq/schema_config.py,sha256=g9rKaSLzjgs2FF7eMnOHxFDUObpwEdNDFkBgUu5wDPg,11453
23
+ prismiq/sql_utils.py,sha256=I1VRGvHwMYTYlY7hqr6hQQ64nzr9Cd8H4pxQUnT_Q1g,5238
24
+ prismiq/sql_validator.py,sha256=UVfgI0KH7UcuBbWSTtZbFe5TMcSN_os937MNUmCEIKI,6811
25
+ prismiq/sqlalchemy_builder.py,sha256=w2qBn-CZ7b0308xosmmp3yfiZMTQXyJITfSKMDdJHfA,23723
26
+ prismiq/timeseries.py,sha256=pJKWbPCjfmejs-5WpVGcLEUWtOx-VyRDlr6EfPZSmLw,12303
27
+ prismiq/transforms.py,sha256=QSWR5iWTVEufu8aiercPzlESrtV8dDupdLgvcZRKfYk,14030
28
+ prismiq/trends.py,sha256=dnR7AxhzzYKcRwN2xc5TZIlUZa_ms4uEogmohDcqi2Q,18219
29
+ prismiq/types.py,sha256=MyxPXbng-iUcun9jY_pLMsOLoculKR1CPgi8p1PnBNU,19057
30
+ prismiq/persistence/__init__.py,sha256=pZT8d-kd81nf4GJ7F4StFmjtG0XopmMekcVWjDAz1IU,1025
31
+ prismiq/persistence/models.py,sha256=NKyfJVHnMZsxi3ixJbAxKrU-27YsCejGOdfg02gJGqo,8303
32
+ prismiq/persistence/postgres_store.py,sha256=WSeBubKPhhlS5RekdqTQ0rnXswQVhP9V8g92SnWuvkY,40142
33
+ prismiq/persistence/saved_query_store.py,sha256=jof4JdEbl2sOsN0mf6Pl2q8HXEWGb7erN33aQdJ98wg,11333
34
+ prismiq/persistence/schema.sql,sha256=SDOyvSaj5tgl0nR1nklPYoMeC9LKt_Dr4TC_5A5jsa0,3705
35
+ prismiq/persistence/setup.py,sha256=9TYqsbJxwblLqOeSlwu37JbdI1LwhuE4vxAvgPOGozs,7557
36
+ prismiq/persistence/tables.py,sha256=5ctwTa5fpMZrAjYxI3htQO_Ry2Z1hX6Q-7g6DlzYuIs,2718
37
+ prismiq-0.1.0.dist-info/METADATA,sha256=PH6lmAFhGo0de0dBgYjXN8hL-x4GeHX26EbN71zI75E,3301
38
+ prismiq-0.1.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
39
+ prismiq-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.28.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any