createsonline 0.1.26__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 (152) hide show
  1. createsonline/__init__.py +46 -0
  2. createsonline/admin/__init__.py +7 -0
  3. createsonline/admin/content.py +526 -0
  4. createsonline/admin/crud.py +805 -0
  5. createsonline/admin/field_builder.py +559 -0
  6. createsonline/admin/integration.py +482 -0
  7. createsonline/admin/interface.py +2562 -0
  8. createsonline/admin/model_creator.py +513 -0
  9. createsonline/admin/model_manager.py +388 -0
  10. createsonline/admin/modern_dashboard.py +498 -0
  11. createsonline/admin/permissions.py +264 -0
  12. createsonline/admin/user_forms.py +594 -0
  13. createsonline/ai/__init__.py +202 -0
  14. createsonline/ai/fields.py +1226 -0
  15. createsonline/ai/orm.py +325 -0
  16. createsonline/ai/services.py +1244 -0
  17. createsonline/app.py +506 -0
  18. createsonline/auth/__init__.py +8 -0
  19. createsonline/auth/management.py +228 -0
  20. createsonline/auth/models.py +552 -0
  21. createsonline/cli/__init__.py +5 -0
  22. createsonline/cli/commands/__init__.py +122 -0
  23. createsonline/cli/commands/database.py +416 -0
  24. createsonline/cli/commands/info.py +173 -0
  25. createsonline/cli/commands/initdb.py +218 -0
  26. createsonline/cli/commands/project.py +545 -0
  27. createsonline/cli/commands/serve.py +173 -0
  28. createsonline/cli/commands/shell.py +93 -0
  29. createsonline/cli/commands/users.py +148 -0
  30. createsonline/cli/main.py +2041 -0
  31. createsonline/cli/manage.py +274 -0
  32. createsonline/config/__init__.py +9 -0
  33. createsonline/config/app.py +2577 -0
  34. createsonline/config/database.py +179 -0
  35. createsonline/config/docs.py +384 -0
  36. createsonline/config/errors.py +160 -0
  37. createsonline/config/orm.py +43 -0
  38. createsonline/config/request.py +93 -0
  39. createsonline/config/settings.py +176 -0
  40. createsonline/data/__init__.py +23 -0
  41. createsonline/data/dataframe.py +925 -0
  42. createsonline/data/io.py +453 -0
  43. createsonline/data/series.py +557 -0
  44. createsonline/database/__init__.py +60 -0
  45. createsonline/database/abstraction.py +440 -0
  46. createsonline/database/assistant.py +585 -0
  47. createsonline/database/fields.py +442 -0
  48. createsonline/database/migrations.py +132 -0
  49. createsonline/database/models.py +604 -0
  50. createsonline/database.py +438 -0
  51. createsonline/http/__init__.py +28 -0
  52. createsonline/http/client.py +535 -0
  53. createsonline/ml/__init__.py +55 -0
  54. createsonline/ml/classification.py +552 -0
  55. createsonline/ml/clustering.py +680 -0
  56. createsonline/ml/metrics.py +542 -0
  57. createsonline/ml/neural.py +560 -0
  58. createsonline/ml/preprocessing.py +784 -0
  59. createsonline/ml/regression.py +501 -0
  60. createsonline/performance/__init__.py +19 -0
  61. createsonline/performance/cache.py +444 -0
  62. createsonline/performance/compression.py +335 -0
  63. createsonline/performance/core.py +419 -0
  64. createsonline/project_init.py +789 -0
  65. createsonline/routing.py +528 -0
  66. createsonline/security/__init__.py +34 -0
  67. createsonline/security/core.py +811 -0
  68. createsonline/security/encryption.py +349 -0
  69. createsonline/server.py +295 -0
  70. createsonline/static/css/admin.css +263 -0
  71. createsonline/static/css/common.css +358 -0
  72. createsonline/static/css/dashboard.css +89 -0
  73. createsonline/static/favicon.ico +0 -0
  74. createsonline/static/icons/icon-128x128.png +0 -0
  75. createsonline/static/icons/icon-128x128.webp +0 -0
  76. createsonline/static/icons/icon-16x16.png +0 -0
  77. createsonline/static/icons/icon-16x16.webp +0 -0
  78. createsonline/static/icons/icon-180x180.png +0 -0
  79. createsonline/static/icons/icon-180x180.webp +0 -0
  80. createsonline/static/icons/icon-192x192.png +0 -0
  81. createsonline/static/icons/icon-192x192.webp +0 -0
  82. createsonline/static/icons/icon-256x256.png +0 -0
  83. createsonline/static/icons/icon-256x256.webp +0 -0
  84. createsonline/static/icons/icon-32x32.png +0 -0
  85. createsonline/static/icons/icon-32x32.webp +0 -0
  86. createsonline/static/icons/icon-384x384.png +0 -0
  87. createsonline/static/icons/icon-384x384.webp +0 -0
  88. createsonline/static/icons/icon-48x48.png +0 -0
  89. createsonline/static/icons/icon-48x48.webp +0 -0
  90. createsonline/static/icons/icon-512x512.png +0 -0
  91. createsonline/static/icons/icon-512x512.webp +0 -0
  92. createsonline/static/icons/icon-64x64.png +0 -0
  93. createsonline/static/icons/icon-64x64.webp +0 -0
  94. createsonline/static/image/android-chrome-192x192.png +0 -0
  95. createsonline/static/image/android-chrome-512x512.png +0 -0
  96. createsonline/static/image/apple-touch-icon.png +0 -0
  97. createsonline/static/image/favicon-16x16.png +0 -0
  98. createsonline/static/image/favicon-32x32.png +0 -0
  99. createsonline/static/image/favicon.ico +0 -0
  100. createsonline/static/image/favicon.svg +17 -0
  101. createsonline/static/image/icon-128x128.png +0 -0
  102. createsonline/static/image/icon-128x128.webp +0 -0
  103. createsonline/static/image/icon-16x16.png +0 -0
  104. createsonline/static/image/icon-16x16.webp +0 -0
  105. createsonline/static/image/icon-180x180.png +0 -0
  106. createsonline/static/image/icon-180x180.webp +0 -0
  107. createsonline/static/image/icon-192x192.png +0 -0
  108. createsonline/static/image/icon-192x192.webp +0 -0
  109. createsonline/static/image/icon-256x256.png +0 -0
  110. createsonline/static/image/icon-256x256.webp +0 -0
  111. createsonline/static/image/icon-32x32.png +0 -0
  112. createsonline/static/image/icon-32x32.webp +0 -0
  113. createsonline/static/image/icon-384x384.png +0 -0
  114. createsonline/static/image/icon-384x384.webp +0 -0
  115. createsonline/static/image/icon-48x48.png +0 -0
  116. createsonline/static/image/icon-48x48.webp +0 -0
  117. createsonline/static/image/icon-512x512.png +0 -0
  118. createsonline/static/image/icon-512x512.webp +0 -0
  119. createsonline/static/image/icon-64x64.png +0 -0
  120. createsonline/static/image/icon-64x64.webp +0 -0
  121. createsonline/static/image/logo-header-h100.png +0 -0
  122. createsonline/static/image/logo-header-h100.webp +0 -0
  123. createsonline/static/image/logo-header-h200@2x.png +0 -0
  124. createsonline/static/image/logo-header-h200@2x.webp +0 -0
  125. createsonline/static/image/logo.png +0 -0
  126. createsonline/static/js/admin.js +274 -0
  127. createsonline/static/site.webmanifest +35 -0
  128. createsonline/static/templates/admin/base.html +87 -0
  129. createsonline/static/templates/admin/dashboard.html +217 -0
  130. createsonline/static/templates/admin/model_form.html +270 -0
  131. createsonline/static/templates/admin/model_list.html +202 -0
  132. createsonline/static/test_script.js +15 -0
  133. createsonline/static/test_styles.css +59 -0
  134. createsonline/static_files.py +365 -0
  135. createsonline/templates/404.html +100 -0
  136. createsonline/templates/admin_login.html +169 -0
  137. createsonline/templates/base.html +102 -0
  138. createsonline/templates/index.html +151 -0
  139. createsonline/templates.py +205 -0
  140. createsonline/testing.py +322 -0
  141. createsonline/utils.py +448 -0
  142. createsonline/validation/__init__.py +49 -0
  143. createsonline/validation/fields.py +598 -0
  144. createsonline/validation/models.py +504 -0
  145. createsonline/validation/validators.py +561 -0
  146. createsonline/views.py +184 -0
  147. createsonline-0.1.26.dist-info/METADATA +46 -0
  148. createsonline-0.1.26.dist-info/RECORD +152 -0
  149. createsonline-0.1.26.dist-info/WHEEL +5 -0
  150. createsonline-0.1.26.dist-info/entry_points.txt +2 -0
  151. createsonline-0.1.26.dist-info/licenses/LICENSE +21 -0
  152. createsonline-0.1.26.dist-info/top_level.txt +1 -0
createsonline/views.py ADDED
@@ -0,0 +1,184 @@
1
+ # createsonline/views.py
2
+ """
3
+ CREATESONLINE Views Module
4
+
5
+ Base view functions and utilities.
6
+ Users can import and extend these, or create their own views.
7
+ """
8
+
9
+ import logging
10
+ from typing import Dict, Any, Optional, Callable
11
+ from pathlib import Path
12
+ import json
13
+ from . import __version__
14
+
15
+ logger = logging.getLogger("createsonline.views")
16
+
17
+
18
+ class BaseView:
19
+ """Base class for class-based views"""
20
+
21
+ async def dispatch(self, request: Dict[str, Any]):
22
+ """Dispatch request to appropriate method handler"""
23
+ method = request.get('method', 'GET').lower()
24
+ handler = getattr(self, method, self.http_method_not_allowed)
25
+
26
+ if callable(handler):
27
+ return await handler(request)
28
+ return await self.http_method_not_allowed(request)
29
+
30
+ async def http_method_not_allowed(self, request: Dict[str, Any]):
31
+ """Return 405 Method Not Allowed"""
32
+ return {
33
+ "error": "Method not allowed",
34
+ "allowed_methods": self.allowed_methods()
35
+ }, 405
36
+
37
+ def allowed_methods(self):
38
+ """Return list of allowed HTTP methods"""
39
+ methods = []
40
+ for method in ['get', 'post', 'put', 'patch', 'delete', 'head', 'options']:
41
+ if hasattr(self, method) and callable(getattr(self, method)):
42
+ methods.append(method.upper())
43
+ return methods
44
+
45
+
46
+ class TemplateView(BaseView):
47
+ """View that renders a template"""
48
+
49
+ template_name: str = None
50
+
51
+ def __init__(self, template_name: str = None):
52
+ if template_name:
53
+ self.template_name = template_name
54
+
55
+ async def get_context_data(self, request: Dict[str, Any]) -> Dict[str, Any]:
56
+ """Override this to provide template context"""
57
+ return {}
58
+
59
+ async def get(self, request: Dict[str, Any]):
60
+ """Handle GET request - render template"""
61
+ if not self.template_name:
62
+ return {"error": "template_name not set"}, 500
63
+
64
+ context = await self.get_context_data(request)
65
+ # This will be handled by the template system
66
+ return {"template": self.template_name, "context": context}
67
+
68
+
69
+ class JSONView(BaseView):
70
+ """View that returns JSON data"""
71
+
72
+ async def get_data(self, request: Dict[str, Any]) -> Dict[str, Any]:
73
+ """Override this to provide JSON data"""
74
+ return {}
75
+
76
+ async def get(self, request: Dict[str, Any]):
77
+ """Handle GET request - return JSON"""
78
+ data = await self.get_data(request)
79
+ return data
80
+
81
+
82
+ class ListView(JSONView):
83
+ """View that returns a list of items"""
84
+
85
+ async def get_queryset(self, request: Dict[str, Any]) -> list:
86
+ """Override this to provide the list of items"""
87
+ return []
88
+
89
+ async def get_data(self, request: Dict[str, Any]) -> Dict[str, Any]:
90
+ """Return paginated list data"""
91
+ items = await self.get_queryset(request)
92
+
93
+ # Simple pagination
94
+ page = int(request.get('query_params', {}).get('page', 1))
95
+ page_size = int(request.get('query_params', {}).get('page_size', 20))
96
+
97
+ start = (page - 1) * page_size
98
+ end = start + page_size
99
+
100
+ return {
101
+ "items": items[start:end],
102
+ "page": page,
103
+ "page_size": page_size,
104
+ "total": len(items),
105
+ "has_next": end < len(items),
106
+ "has_previous": page > 1
107
+ }
108
+
109
+
110
+ class DetailView(JSONView):
111
+ """View that returns a single item"""
112
+
113
+ async def get_object(self, request: Dict[str, Any]) -> Optional[Dict[str, Any]]:
114
+ """Override this to provide the item"""
115
+ return None
116
+
117
+ async def get_data(self, request: Dict[str, Any]) -> Dict[str, Any]:
118
+ """Return single item data"""
119
+ obj = await self.get_object(request)
120
+ if obj is None:
121
+ return {"error": "Not found"}, 404
122
+ return obj
123
+
124
+
125
+ # Function-based view decorators
126
+ def json_response(func: Callable):
127
+ """Decorator to ensure function returns JSON response"""
128
+ async def wrapper(request: Dict[str, Any]):
129
+ result = await func(request) if callable(func) else func(request)
130
+ if not isinstance(result, dict):
131
+ result = {"data": result}
132
+ return result
133
+ return wrapper
134
+
135
+
136
+ def require_method(*methods: str):
137
+ """Decorator to restrict view to specific HTTP methods"""
138
+ def decorator(func: Callable):
139
+ async def wrapper(request: Dict[str, Any]):
140
+ if request.get('method', 'GET').upper() not in [m.upper() for m in methods]:
141
+ return {"error": f"Method not allowed. Allowed: {', '.join(methods)}"}, 405
142
+ return await func(request) if callable(func) else func(request)
143
+ wrapper.allowed_methods = [m.upper() for m in methods]
144
+ return wrapper
145
+ return decorator
146
+
147
+
148
+ # Common view functions
149
+ async def index_view(request: Dict[str, Any]):
150
+ """Default index view - renders index.html"""
151
+ return {"template": "index.html", "context": {}}
152
+
153
+
154
+ async def health_check_view(request: Dict[str, Any]):
155
+ """Health check endpoint"""
156
+ return {
157
+ "status": "healthy",
158
+ "framework": "CREATESONLINE",
159
+ "version": __version__
160
+ }
161
+
162
+
163
+ async def not_found_view(request: Dict[str, Any]):
164
+ """404 Not Found view"""
165
+ return {
166
+ "error": "Not Found",
167
+ "path": request.get('path', ''),
168
+ "message": "The requested resource was not found"
169
+ }, 404
170
+
171
+
172
+ # Export commonly used views
173
+ __all__ = [
174
+ 'BaseView',
175
+ 'TemplateView',
176
+ 'JSONView',
177
+ 'ListView',
178
+ 'DetailView',
179
+ 'json_response',
180
+ 'require_method',
181
+ 'index_view',
182
+ 'health_check_view',
183
+ 'not_found_view'
184
+ ]
@@ -0,0 +1,46 @@
1
+ Metadata-Version: 2.4
2
+ Name: createsonline
3
+ Version: 0.1.26
4
+ Summary: A framework for creating and deploying AI-powered applications
5
+ Home-page: https://github.com/meahmedh/createsonline
6
+ Author: meahmedh
7
+ Author-email: meahmedh <ahmed@createsonline.com>
8
+ Maintainer-email: meahmedh <ahmed@createsonline.com>
9
+ Project-URL: Homepage, https://github.com/meahmedh/createsonline
10
+ Project-URL: Documentation, https://docs.createsonline.com
11
+ Project-URL: Repository, https://github.com/meahmedh/createsonline
12
+ Project-URL: Bug Tracker, https://github.com/meahmedh/createsonline/issues
13
+ Project-URL: Changelog, https://github.com/meahmedh/createsonline/blob/main/CHANGELOG.md
14
+ Keywords: web framework,ai framework,artificial intelligence,machine learning,async,api,web development,llm,vector database,smart fields,ai-native
15
+ Classifier: Development Status :: 3 - Alpha
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Operating System :: OS Independent
25
+ Classifier: Framework :: AsyncIO
26
+ Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
27
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
28
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
29
+ Requires-Python: >=3.9
30
+ Description-Content-Type: text/markdown
31
+ License-File: LICENSE
32
+ Requires-Dist: sqlalchemy<3.0.0,>=2.0.0
33
+ Requires-Dist: alembic<2.0.0,>=1.12.0
34
+ Requires-Dist: numpy<2.0.0,>=1.24.0
35
+ Requires-Dist: python-dotenv<2.0.0,>=1.0.0
36
+ Provides-Extra: dev
37
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
38
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
39
+ Requires-Dist: black>=23.0.0; extra == "dev"
40
+ Requires-Dist: isort>=5.12.0; extra == "dev"
41
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
42
+ Requires-Dist: pre-commit>=3.0.0; extra == "dev"
43
+ Dynamic: author
44
+ Dynamic: home-page
45
+ Dynamic: license-file
46
+ Dynamic: requires-python
@@ -0,0 +1,152 @@
1
+ createsonline/__init__.py,sha256=bON8kOtPCG87GrSDQF8pobk6vKIYI5buR2W7P8u80Cs,1243
2
+ createsonline/app.py,sha256=YHNS4c_9OuWhOOp0cgCHNNDSMMmYjr1E_XhVP1ZdzkI,18498
3
+ createsonline/database.py,sha256=tUcJOuWuA7zPx0R-ZO-H8nf-3GXw4uldKVEi26RgRLM,18447
4
+ createsonline/project_init.py,sha256=FLuokT87-TcnZujBBYIrlzM03jw2rxnO6pGDHHGmSeQ,28383
5
+ createsonline/routing.py,sha256=dUSny3LF6ez0VJb1LYXJLsi6xc_EUoE6YoKRPVHJHNw,19127
6
+ createsonline/server.py,sha256=4jUJhPdchznwSK_kA6D009rMXu7BUlp2e7x-i-qBK6I,11303
7
+ createsonline/static_files.py,sha256=uBMAuRA2GFDxvhMXFPvsVyU6p1qPvg1eh89Ai1mwaRI,12925
8
+ createsonline/templates.py,sha256=wunc9lXyuNNgCThqHE9fZa8lKribapzlA898JMaq2zc,6991
9
+ createsonline/testing.py,sha256=1Vla_TRf2gvB3jdEfDePS25fEwgNbGFOp9iZqYkK9dI,13210
10
+ createsonline/utils.py,sha256=KFfH8GeULsOYBPxpKT0Az5veidKeeQy5lMKXnlxPqoE,15855
11
+ createsonline/views.py,sha256=wzcDXvQP4l-dYcyT8Qdq-8WeEggk1Qi4abHtW04n5fs,5864
12
+ createsonline/admin/__init__.py,sha256=D9SgfmlxBhHvqEfZTgXz1ki5Y-GZ90eHbQO2BJWlmNg,203
13
+ createsonline/admin/content.py,sha256=eSD3qxEUmbyr6BFkkfXDmKiBgjTM_awV14hKgJLq3XM,15877
14
+ createsonline/admin/crud.py,sha256=aCSGOTwNNcooO9QONK_YLdA144Hkjb0GzYHCCCogW3s,26521
15
+ createsonline/admin/field_builder.py,sha256=ujbbMyBbmetvkkSoGHN8X2YkU-HAB9xy4ovtSx8DUaI,18718
16
+ createsonline/admin/integration.py,sha256=IJwI1QyV7E7bPXEJT6cffgQxF2qpqO1Ype45T9tOzSE,16601
17
+ createsonline/admin/interface.py,sha256=y9G_GPd8Y5swFlDpiFHQuIWVagPmEmvct24A7yMI_Bk,95080
18
+ createsonline/admin/model_creator.py,sha256=dZAeBUlUHD55FoJOiAH2D7YZHBG0Qkvf0W60ZNRiEqU,19077
19
+ createsonline/admin/model_manager.py,sha256=emD_T2uIbUwWIClgJYSDH4aLeIthM_yQutzwOkeOxhI,11857
20
+ createsonline/admin/modern_dashboard.py,sha256=ctqIUf3pAS3Jp7sFCBNLSo_m2lAOYHGgAq8oDf-uY3o,15096
21
+ createsonline/admin/permissions.py,sha256=ABZel_gkomFuZvpYz7Qag5g3xr3o-MTspXFo6DmpgEk,8121
22
+ createsonline/admin/user_forms.py,sha256=sgtLbUkqB4psPeBxtMzo3abXnJTrD4WzcSXHdgVy9q4,21255
23
+ createsonline/ai/__init__.py,sha256=t8qUUum9FCvhdGmDmGKBdoHnHwo94BELdivJMsfEqDo,6189
24
+ createsonline/ai/fields.py,sha256=yK6sijwffroPdBEkXMUOq8p9o2QZzd4WGFT94wBrfaQ,47687
25
+ createsonline/ai/orm.py,sha256=Al7Rka_lqGplyYrzPAaMLgiPNELm-pKNsm_QfsIgxOs,11777
26
+ createsonline/ai/services.py,sha256=UV9J_Taj4RWSzfbuxkWXMxTpRwsJx_Kt2XO_GjSt6go,51419
27
+ createsonline/auth/__init__.py,sha256=ecyqvHJM0Ri5F9gIY06Ufflqu0qxRo87qVbtnhCz5TA,239
28
+ createsonline/auth/management.py,sha256=lMOVYxUzhydl-4q3gKXU0T6lE8bOcNFfUEdnEQI7I4I,8199
29
+ createsonline/auth/models.py,sha256=Hz0UcmY5ltTFsjjiW4REnNY7v9nNiTZzuY64j5Tyd0I,17756
30
+ createsonline/cli/__init__.py,sha256=mIJfuwCUBn-g65V2TuuswdP-KvTBuA1kDFe6_Amxoj4,97
31
+ createsonline/cli/main.py,sha256=7UYYRsl7HBoFmH1O7d9LbKrvS49EDuMVhk1F_XReEys,74602
32
+ createsonline/cli/manage.py,sha256=ZJo6J6NpaE_oHLClUkIqW0dVL3YlNGsQAXVdjUJvswc,9294
33
+ createsonline/cli/commands/__init__.py,sha256=L5ZULA5O8brNCee7lGMvTwjTjo55kut3fC47qN3QBK8,4520
34
+ createsonline/cli/commands/database.py,sha256=O_Fqb_orvoURS8ZysVns4blabXuopqPw1zpP_Q0o6V8,17156
35
+ createsonline/cli/commands/info.py,sha256=wC4DxVpLDWXcGWfl6gpOjaeOU9nUK1pK6fr6RPgtbhM,6377
36
+ createsonline/cli/commands/initdb.py,sha256=wvRkrW5X-uquuAgSPDZgmMY9_ELuqOWVxhoPSx65s7M,8181
37
+ createsonline/cli/commands/project.py,sha256=ZCUeWFbGsFwJ4T8mB2hgqG0pF1VlEikMPPOo4KfbF-A,17571
38
+ createsonline/cli/commands/serve.py,sha256=DPTwV-o2REA0boktvrrUm_tU764JOym3ACfgrYLdhRU,6967
39
+ createsonline/cli/commands/shell.py,sha256=ao05konZLCFenBSg9TgwDxl4kdRXrhXuMrAEPAKLwqk,3199
40
+ createsonline/cli/commands/users.py,sha256=76DjTtxIceNr-LOLVjHsbZrVfh6rKuWKOEeKh2tcbe4,5332
41
+ createsonline/config/__init__.py,sha256=DLLs9BXPN94vDvbpru8cxe1nHjnvS_MNoeAsZvZyx3k,197
42
+ createsonline/config/app.py,sha256=JVJpLaY0Qv-mCHX8lQTl1oGDNEDcRYYdvjA0XxbXYSE,99098
43
+ createsonline/config/database.py,sha256=UB9h8FPLqDYn803reD2NaldI_4lH9IQCmFwp-uMPZAQ,6286
44
+ createsonline/config/docs.py,sha256=NJUzEOoxse8SrdlcG7X0tha4h0ySFp9UTPVPgMjoqgA,13633
45
+ createsonline/config/errors.py,sha256=LGTjxnEI6xDxBH4Ewp20jnQjOJ1E2PVWZPEczs1ovsI,4811
46
+ createsonline/config/orm.py,sha256=tNMO1r-4eYmSCE6uBqn0WZA9z2IQILw8m8wYZ5XmH2Q,1826
47
+ createsonline/config/request.py,sha256=s0rpZkifvyeHNBH9gFjGmlu30cob0LZJ_YzhPG9J5Ro,3402
48
+ createsonline/config/settings.py,sha256=DBtiNSSnA5S7_MKdlCNdsKUymSsqAC0A20eDnzfciSw,5875
49
+ createsonline/data/__init__.py,sha256=R3QSvWRI64l-80vNdroa2RTHShuS57KMf06fuMWSWOs,568
50
+ createsonline/data/dataframe.py,sha256=hN0xNtUDo7ju-IOx6WIVjktQaECcDKD2wKHPbF-EYH0,35775
51
+ createsonline/data/io.py,sha256=nt0iWbl9vUy5ZrxYas_EtEUHtZ_5SCn6Bmj1HS3z8Qs,13941
52
+ createsonline/data/series.py,sha256=xu2f6txdI3vRGcH9S7RvEZ0AfeUwBz9TGs-_MfjWD3s,20513
53
+ createsonline/database/__init__.py,sha256=GaYVhRBrcfeEVfK5Vq-6Dd3r4YH2lRBnWXSAJYAlgY0,1612
54
+ createsonline/database/abstraction.py,sha256=3MMfAExgawHYfvUUUWMGC-E98UlsDKkSaKM0OPFEJGk,15152
55
+ createsonline/database/assistant.py,sha256=gTfwL_0ySdWaen_wZiR00ffGy_lhjToekR76Dn6PDxU,22973
56
+ createsonline/database/fields.py,sha256=EP2_WywtgVEKozNG7HH-_mofIYB_bBDFb8XrWMjCl7E,14141
57
+ createsonline/database/migrations.py,sha256=UbntZA3jNq6oSq7UUCZVJfWrOhyDYn07r1gWalo4QJw,5099
58
+ createsonline/database/models.py,sha256=BcY4Kdxgfqnpm6I16xG-msOEUU4Drw-Eb6yfJz7Z_Io,21681
59
+ createsonline/http/__init__.py,sha256=AFGaB0amF41e9zuJ8Ahj4G37PqZDfhIk1Ef9GWWzLQQ,547
60
+ createsonline/http/client.py,sha256=JlGbGuMzlN2aiWCw17_HsrqOQE-MY6xsqrNqLNcKiyo,19510
61
+ createsonline/ml/__init__.py,sha256=3XnISuHwV2QunoYELy3b7Mjg13ncyIsqc1Sl0MV7QjA,1374
62
+ createsonline/ml/classification.py,sha256=WGe5_Cx5TCzJejJ8Y9PR7f1R4Rdb5A2MtcgZ3ApzsnE,19319
63
+ createsonline/ml/clustering.py,sha256=QihPL8Jc6rl5-WB2U4-zrF2Clfl_Of2Pv_I9IOjiSOI,23909
64
+ createsonline/ml/metrics.py,sha256=u44PmfIt7MBWC7rtiGtzU65O24kMKYbXHY9b_Rzt8_8,18488
65
+ createsonline/ml/neural.py,sha256=NlpvLi8kiMs5Pxr_3445NWm3gBA4HlYk3SD3h0InF4s,19442
66
+ createsonline/ml/preprocessing.py,sha256=nqZ057mMWZnLkazfYcmMhF_Ms52vZGPIijNQLadFhLk,24751
67
+ createsonline/ml/regression.py,sha256=XAKsAr1y_QUQX-EyfSlXE0SsfoqLIAWLjvo9pY0le5U,17021
68
+ createsonline/performance/__init__.py,sha256=xRDhJiRvy1kdt70fdXhddXE9h8VN5SuT7bnCxy5sO5Q,458
69
+ createsonline/performance/cache.py,sha256=FIdV34CDEeg0BMbkFSESrvjtlZI-BgWcp0pexAiQt7g,14538
70
+ createsonline/performance/compression.py,sha256=LDmGwnj7XlRpV0tCKVfs8E1dJ_QPOQttAJSJdbC-ZKU,12473
71
+ createsonline/performance/core.py,sha256=1c3-mgBqOwmVksMnjCyVDpgasvcdZscWR3GywqPfAX4,14846
72
+ createsonline/security/__init__.py,sha256=2Wi4wmF3r4rCOwVMoCpnMVKvukS-b3E0cVGY0V8BFKA,907
73
+ createsonline/security/core.py,sha256=PXFaKIoUjYsCXhBuMvpTJpwl2KemcMwOpy8nXxmg4lM,28612
74
+ createsonline/security/encryption.py,sha256=9L3YmUTT3Txz69cbQAOQQAGHhpvVeCTzbcWJ8nAI9rU,12077
75
+ createsonline/static/favicon.ico,sha256=OPDXJZuOqNYH42Vh9zP6dTXbpP_OGtGaWTAWZ2ghvoQ,383
76
+ createsonline/static/site.webmanifest,sha256=25oqhJwdt4qtZ40jTJbwqs5UKntjUGeSTI-WEJk6UrE,860
77
+ createsonline/static/test_script.js,sha256=9d6pJh6re54YsK5wAFIvTcoup6amLphym2Dtd3zlXxw,525
78
+ createsonline/static/test_styles.css,sha256=lCz7aSttK9QVtfgm7_u4mvUCJA3FShtz5LsomcGHHkc,1092
79
+ createsonline/static/css/admin.css,sha256=Ohre_hnISKuT3DgCR6v06C01iWtYFvCHv4VNbLkME5o,4867
80
+ createsonline/static/css/common.css,sha256=OdL9Yzt0FDqbvK4ii6UVd57LcFgGnf5im6u_AeHWKak,6750
81
+ createsonline/static/css/dashboard.css,sha256=dSRLEvjdoSHgHSgwNJJRJ4NMQL1iOkRkvv7Sx7jzB3s,4027
82
+ createsonline/static/icons/icon-128x128.png,sha256=l6nGoLcjdHOfaGtSN1EM2x0STdN5yASdCYUvXixTpxg,5600
83
+ createsonline/static/icons/icon-128x128.webp,sha256=NLbvvyRg4vNMI85EdMF22kWTFmjjKWKX2PkYpYTPfvM,2782
84
+ createsonline/static/icons/icon-16x16.png,sha256=ltKwY4bYVH9yZINvWKT96QSwsJKAGV2-C73HAGWlhMI,358
85
+ createsonline/static/icons/icon-16x16.webp,sha256=rikwZnjmOihaYTuP9_S4I_bBtRuWO57xzZdVEDOq9es,178
86
+ createsonline/static/icons/icon-180x180.png,sha256=fvCI0DHEx288mW-GC1cxyqF_2MMliC_bQhoYAt8acBM,10319
87
+ createsonline/static/icons/icon-180x180.webp,sha256=pBZ84mpmrZoajLiZyY6Zg_6XozVe70NswN2CwUpo6EU,5328
88
+ createsonline/static/icons/icon-192x192.png,sha256=M2_V1gSa6z5kns2C3xSVX9xVrai8V7Ey8fBEvKtLS5M,11603
89
+ createsonline/static/icons/icon-192x192.webp,sha256=Hbos96eLgx9WrvwVAv1pmvr-Xb9wj3ntvAf_kFQIlPs,6018
90
+ createsonline/static/icons/icon-256x256.png,sha256=Luf7jUASGH4i3htGrWqSq-DSXdVxs5L2ndSXj59SJiA,21095
91
+ createsonline/static/icons/icon-256x256.webp,sha256=kCkwibgeptat0kUQCG9MpOo35v4462M7LkD40j3xRTw,11486
92
+ createsonline/static/icons/icon-32x32.png,sha256=nZqnr9TuBJTv8pgGVZoopRFCyQ3la6BUBRBC51hpZuU,717
93
+ createsonline/static/icons/icon-32x32.webp,sha256=neX5X463cSwkovsuHHxPlEBLJD7oXg3h9tI0koVtGyY,340
94
+ createsonline/static/icons/icon-384x384.png,sha256=o5RDUR4ScIuDR3mginhcN-93CC_4LR0SvQUoxcBmfeA,57060
95
+ createsonline/static/icons/icon-384x384.webp,sha256=EhEX5CWPzrBPdQ6mB-qG2XKMcQMjjKD6jquPMp1OBl8,33726
96
+ createsonline/static/icons/icon-48x48.png,sha256=Xu9QmuUW0QJD58melwXwBko8OcSlLIEP_XYyAdPtppw,1341
97
+ createsonline/static/icons/icon-48x48.webp,sha256=XGHPXem9cDPw95zThxiWMH1Y4q_EL3ee3sT9cRYdzVw,612
98
+ createsonline/static/icons/icon-512x512.png,sha256=xeaGnNJPpG39CMfdgLIK2S7r2BLWxmqxQ_61hp2Y2x4,111512
99
+ createsonline/static/icons/icon-512x512.webp,sha256=PsPCvahy8NghPx96UinNSKdKm7TpMNzbZNpoSHXlJb8,69274
100
+ createsonline/static/icons/icon-64x64.png,sha256=fyEGQ4YD61rDp6XZaWQI59vlK1q6tgsyVwOZ9EUohsI,2057
101
+ createsonline/static/icons/icon-64x64.webp,sha256=hR__hrcXhx1YzCyU2RSQTuOVw4s3AzdE9giuRPlQmI0,942
102
+ createsonline/static/image/android-chrome-192x192.png,sha256=RUruIoqQ6ZDpFJPXsJjW_AxK26kr1Ima8rF0AFwtkJc,7899
103
+ createsonline/static/image/android-chrome-512x512.png,sha256=NwFTsBDkaT7ABGK2Ov-juTkNeJBW6icAn3HOfOU3mdI,31623
104
+ createsonline/static/image/apple-touch-icon.png,sha256=-8db5ZzyHqf9A_b7bykutSp9M-7U0pEGqZVVPmcBVRQ,7404
105
+ createsonline/static/image/favicon-16x16.png,sha256=UrdRsMB9x08F8KIgTkHS3qj7gKjiZNAXGzmnMQWUXSs,353
106
+ createsonline/static/image/favicon-32x32.png,sha256=SV4YgRHK5otf3kfWyFLVc-ZlciEemkO7W4YxNGxNZL0,831
107
+ createsonline/static/image/favicon.ico,sha256=OPDXJZuOqNYH42Vh9zP6dTXbpP_OGtGaWTAWZ2ghvoQ,383
108
+ createsonline/static/image/favicon.svg,sha256=sxNwLzJOKa1KZdrjSRIgsf3sBXuIjgfkDeDXZQEztds,508
109
+ createsonline/static/image/icon-128x128.png,sha256=l6nGoLcjdHOfaGtSN1EM2x0STdN5yASdCYUvXixTpxg,5600
110
+ createsonline/static/image/icon-128x128.webp,sha256=NLbvvyRg4vNMI85EdMF22kWTFmjjKWKX2PkYpYTPfvM,2782
111
+ createsonline/static/image/icon-16x16.png,sha256=ltKwY4bYVH9yZINvWKT96QSwsJKAGV2-C73HAGWlhMI,358
112
+ createsonline/static/image/icon-16x16.webp,sha256=rikwZnjmOihaYTuP9_S4I_bBtRuWO57xzZdVEDOq9es,178
113
+ createsonline/static/image/icon-180x180.png,sha256=fvCI0DHEx288mW-GC1cxyqF_2MMliC_bQhoYAt8acBM,10319
114
+ createsonline/static/image/icon-180x180.webp,sha256=pBZ84mpmrZoajLiZyY6Zg_6XozVe70NswN2CwUpo6EU,5328
115
+ createsonline/static/image/icon-192x192.png,sha256=M2_V1gSa6z5kns2C3xSVX9xVrai8V7Ey8fBEvKtLS5M,11603
116
+ createsonline/static/image/icon-192x192.webp,sha256=Hbos96eLgx9WrvwVAv1pmvr-Xb9wj3ntvAf_kFQIlPs,6018
117
+ createsonline/static/image/icon-256x256.png,sha256=Luf7jUASGH4i3htGrWqSq-DSXdVxs5L2ndSXj59SJiA,21095
118
+ createsonline/static/image/icon-256x256.webp,sha256=kCkwibgeptat0kUQCG9MpOo35v4462M7LkD40j3xRTw,11486
119
+ createsonline/static/image/icon-32x32.png,sha256=nZqnr9TuBJTv8pgGVZoopRFCyQ3la6BUBRBC51hpZuU,717
120
+ createsonline/static/image/icon-32x32.webp,sha256=neX5X463cSwkovsuHHxPlEBLJD7oXg3h9tI0koVtGyY,340
121
+ createsonline/static/image/icon-384x384.png,sha256=o5RDUR4ScIuDR3mginhcN-93CC_4LR0SvQUoxcBmfeA,57060
122
+ createsonline/static/image/icon-384x384.webp,sha256=EhEX5CWPzrBPdQ6mB-qG2XKMcQMjjKD6jquPMp1OBl8,33726
123
+ createsonline/static/image/icon-48x48.png,sha256=Xu9QmuUW0QJD58melwXwBko8OcSlLIEP_XYyAdPtppw,1341
124
+ createsonline/static/image/icon-48x48.webp,sha256=XGHPXem9cDPw95zThxiWMH1Y4q_EL3ee3sT9cRYdzVw,612
125
+ createsonline/static/image/icon-512x512.png,sha256=xeaGnNJPpG39CMfdgLIK2S7r2BLWxmqxQ_61hp2Y2x4,111512
126
+ createsonline/static/image/icon-512x512.webp,sha256=PsPCvahy8NghPx96UinNSKdKm7TpMNzbZNpoSHXlJb8,69274
127
+ createsonline/static/image/icon-64x64.png,sha256=fyEGQ4YD61rDp6XZaWQI59vlK1q6tgsyVwOZ9EUohsI,2057
128
+ createsonline/static/image/icon-64x64.webp,sha256=hR__hrcXhx1YzCyU2RSQTuOVw4s3AzdE9giuRPlQmI0,942
129
+ createsonline/static/image/logo-header-h100.png,sha256=uFcVafNTXAuGlyhlZMGv9gatnUzfEodNJQx5WFOUFzM,4670
130
+ createsonline/static/image/logo-header-h100.webp,sha256=_tDXjmNvCnEl9bR_qAx1SvIh8OLPuj2BbvwZ_ZBbKZs,2422
131
+ createsonline/static/image/logo-header-h200@2x.png,sha256=Q3IkuwuNY7AEcYcivk6q5oRF0T3amdkePrd1wb0DQ2E,16378
132
+ createsonline/static/image/logo-header-h200@2x.webp,sha256=-ex8trG81KX_6X9M3M_04m90FYRZom6fBskVqUWzoFQ,9056
133
+ createsonline/static/image/logo.png,sha256=VBSsL0uWYWgK5UGVDqs8klzSfaWuG5fpjZuNYGrReAI,65917
134
+ createsonline/static/js/admin.js,sha256=VmvQyldaoI4TZ4raEhH5mIex5X6QBC6SKXARJR_gNWE,9003
135
+ createsonline/static/templates/admin/base.html,sha256=rrETfPHOIr4RNWTNdS0gLUyYvpo7-LOSAisFyZ47M4w,3376
136
+ createsonline/static/templates/admin/dashboard.html,sha256=awutW0m9l3TBuEV6qx2Qwp_8VpbBNpasOlgYrd_HsDk,6057
137
+ createsonline/static/templates/admin/model_form.html,sha256=7ZyMHJdcGAC2pHrGJslN25Plx1JiZWeQL4e5KccnWas,9966
138
+ createsonline/static/templates/admin/model_list.html,sha256=PVzCppJsVG5wxZ6RScjfJdHcFFeThzSu-GoXb95woM0,6587
139
+ createsonline/templates/404.html,sha256=pscfrPy-EU5JCT6TTbFo0Sk3m0K_CTGfC4lvU2E6j7A,2759
140
+ createsonline/templates/admin_login.html,sha256=IbxmhQir2iwmZFSQv_-O00R16rJl5nRHWN8xa8irU6A,3426
141
+ createsonline/templates/base.html,sha256=crFcXKUERzt8-pGmy_gZdujQivBJYf4006IEdcNCNWM,3262
142
+ createsonline/templates/index.html,sha256=sFbZgFjtPo_NzIC20Oo9cbl4kEhrVTYDXENvkLbKBUc,3033
143
+ createsonline/validation/__init__.py,sha256=u-QYeETFnmQSLBGR2GcKCVNz1ifgDZF__lKitlBKJHU,1089
144
+ createsonline/validation/fields.py,sha256=v-_iCSDQ1ImdYVjZne73siPws_8Ok70E2puMgrWCO6g,19773
145
+ createsonline/validation/models.py,sha256=XdYOmb9nRRzQ1xclmUQ9S3bRRZ9wPDFYQGR8OBQlY7o,16210
146
+ createsonline/validation/validators.py,sha256=vUCcgdwge2xvtU5jKtTnS-LhSIYrUpOWmKOAiHsroPg,16670
147
+ createsonline-0.1.26.dist-info/licenses/LICENSE,sha256=6navgsF2hGPREDRRbotF_1sKbqF3SXYR5swSjx4ACQA,1090
148
+ createsonline-0.1.26.dist-info/METADATA,sha256=7IMnv32kM847bZdtCgj5gb_sar987Rwtbgd0XCnQYso,2206
149
+ createsonline-0.1.26.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
150
+ createsonline-0.1.26.dist-info/entry_points.txt,sha256=G9XfNU2KMyVoe9neTaLcrMCtr4G40WyO6p-ExK6R2bQ,65
151
+ createsonline-0.1.26.dist-info/top_level.txt,sha256=CyWFCBXWE9ef2gcIskSsehQHJtT9z1EOsukltSRqOUY,14
152
+ createsonline-0.1.26.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ createsonline = createsonline.cli.main:run_cli
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Ahmed Hassan
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
+ createsonline