domino-web 0.1.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.
@@ -0,0 +1,3 @@
1
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.
2
+
3
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,29 @@
1
+ Metadata-Version: 2.4
2
+ Name: domino-web
3
+ Version: 0.1.0
4
+ Summary: An experimental Python web framework built on Flask
5
+ Home-page: https://github.com/kegsmr/domino
6
+ Author: kegsmr
7
+ License: MIT
8
+ Requires-Python: >=3.9
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE.txt
11
+ Requires-Dist: Flask>=2.2
12
+ Provides-Extra: test
13
+ Requires-Dist: pytest; extra == "test"
14
+ Dynamic: author
15
+ Dynamic: description
16
+ Dynamic: description-content-type
17
+ Dynamic: home-page
18
+ Dynamic: license
19
+ Dynamic: license-file
20
+ Dynamic: provides-extra
21
+ Dynamic: requires-dist
22
+ Dynamic: requires-python
23
+ Dynamic: summary
24
+
25
+ # Domino
26
+
27
+ An experimental Python web framework built on Flask. It currently resembles a glorified HTML/CSS generator, but more features are planned.
28
+
29
+ **This project is a work-in-progess! Not all features are functional yet.**
@@ -0,0 +1,5 @@
1
+ # Domino
2
+
3
+ An experimental Python web framework built on Flask. It currently resembles a glorified HTML/CSS generator, but more features are planned.
4
+
5
+ **This project is a work-in-progess! Not all features are functional yet.**
@@ -0,0 +1 @@
1
+ from .core import *
@@ -0,0 +1,627 @@
1
+ from .tags import link, script
2
+
3
+
4
+ class BootstrapCSS(link):
5
+ def inner(self):
6
+ self.configure(href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css", rel="stylesheet")
7
+
8
+ class JQuery(script):
9
+ def inner(self):
10
+ self.configure(src="https://code.jquery.com/jquery-3.5.1.slim.min.js")
11
+
12
+ class PopperJS(script):
13
+ def inner(self):
14
+ self.configure(src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.2/dist/umd/popper.min.js")
15
+
16
+ class BootstrapJS(script):
17
+ def inner(self):
18
+ self.configure(src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js")
19
+
20
+ class container:
21
+ pass
22
+
23
+ class container_fluid:
24
+ pass
25
+
26
+ class row:
27
+ pass
28
+
29
+ class col:
30
+ pass
31
+
32
+ class col_1:
33
+ pass
34
+
35
+ class col_2:
36
+ pass
37
+
38
+ class col_3:
39
+ pass
40
+
41
+ class col_4:
42
+ pass
43
+
44
+ class col_5:
45
+ pass
46
+
47
+ class col_6:
48
+ pass
49
+
50
+ class col_7:
51
+ pass
52
+
53
+ class col_8:
54
+ pass
55
+
56
+ class col_9:
57
+ pass
58
+
59
+ class col_10:
60
+ pass
61
+
62
+ class col_11:
63
+ pass
64
+
65
+ class col_12:
66
+ pass
67
+
68
+ class offset_1:
69
+ pass
70
+
71
+ class offset_2:
72
+ pass
73
+
74
+ class offset_3:
75
+ pass
76
+
77
+ class offset_4:
78
+ pass
79
+
80
+ class offset_5:
81
+ pass
82
+
83
+ class offset_6:
84
+ pass
85
+
86
+ class offset_7:
87
+ pass
88
+
89
+ class offset_8:
90
+ pass
91
+
92
+ class offset_9:
93
+ pass
94
+
95
+ class offset_10:
96
+ pass
97
+
98
+ class offset_11:
99
+ pass
100
+
101
+ class order_1:
102
+ pass
103
+
104
+ class order_2:
105
+ pass
106
+
107
+ class order_3:
108
+ pass
109
+
110
+ class order_4:
111
+ pass
112
+
113
+ class order_5:
114
+ pass
115
+
116
+ class order_6:
117
+ pass
118
+
119
+ class order_7:
120
+ pass
121
+
122
+ class order_8:
123
+ pass
124
+
125
+ class order_9:
126
+ pass
127
+
128
+ class order_10:
129
+ pass
130
+
131
+ class order_11:
132
+ pass
133
+
134
+ class order_12:
135
+ pass
136
+
137
+ class order_first:
138
+ pass
139
+
140
+ class order_last:
141
+ pass
142
+
143
+ class d_none:
144
+ pass
145
+
146
+ class d_inline:
147
+ pass
148
+
149
+ class d_inline_block:
150
+ pass
151
+
152
+ class d_block:
153
+ pass
154
+
155
+ class d_flex:
156
+ pass
157
+
158
+ class d_inline_flex:
159
+ pass
160
+
161
+ class justify_content_start:
162
+ pass
163
+
164
+ class justify_content_end:
165
+ pass
166
+
167
+ class justify_content_center:
168
+ pass
169
+
170
+ class justify_content_between:
171
+ pass
172
+
173
+ class justify_content_around:
174
+ pass
175
+
176
+ class align_items_start:
177
+ pass
178
+
179
+ class align_items_end:
180
+ pass
181
+
182
+ class align_items_center:
183
+ pass
184
+
185
+ class align_items_baseline:
186
+ pass
187
+
188
+ class align_items_stretch:
189
+ pass
190
+
191
+ class align_self_auto:
192
+ pass
193
+
194
+ class align_self_start:
195
+ pass
196
+
197
+ class align_self_end:
198
+ pass
199
+
200
+ class align_self_center:
201
+ pass
202
+
203
+ class align_self_baseline:
204
+ pass
205
+
206
+ class align_self_stretch:
207
+ pass
208
+
209
+ class flex_1:
210
+ pass
211
+
212
+ class flex_auto:
213
+ pass
214
+
215
+ class flex_initial:
216
+ pass
217
+
218
+ class flex_none:
219
+ pass
220
+
221
+ class flex_row:
222
+ pass
223
+
224
+ class flex_row_reverse:
225
+ pass
226
+
227
+ class flex_column:
228
+ pass
229
+
230
+ class flex_column_reverse:
231
+ pass
232
+
233
+ class flex_wrap:
234
+ pass
235
+
236
+ class flex_wrap_reverse:
237
+ pass
238
+
239
+ class bg_primary:
240
+ pass
241
+
242
+ class bg_secondary:
243
+ pass
244
+
245
+ class bg_success:
246
+ pass
247
+
248
+ class bg_danger:
249
+ pass
250
+
251
+ class bg_warning:
252
+ pass
253
+
254
+ class bg_info:
255
+ pass
256
+
257
+ class bg_light:
258
+ pass
259
+
260
+ class bg_dark:
261
+ pass
262
+
263
+ class bg_white:
264
+ pass
265
+
266
+ class text_primary:
267
+ pass
268
+
269
+ class text_secondary:
270
+ pass
271
+
272
+ class text_success:
273
+ pass
274
+
275
+ class text_danger:
276
+ pass
277
+
278
+ class text_warning:
279
+ pass
280
+
281
+ class text_info:
282
+ pass
283
+
284
+ class text_light:
285
+ pass
286
+
287
+ class text_dark:
288
+ pass
289
+
290
+ class text_muted:
291
+ pass
292
+
293
+ class text_white:
294
+ pass
295
+
296
+ class text_center:
297
+ pass
298
+
299
+ class text_left:
300
+ pass
301
+
302
+ class text_right:
303
+ pass
304
+
305
+ class text_nowrap:
306
+ pass
307
+
308
+ class text_lg:
309
+ pass
310
+
311
+ class text_sm:
312
+ pass
313
+
314
+ class text_xl:
315
+ pass
316
+
317
+ class text_xs:
318
+ pass
319
+
320
+ class text_capitalize:
321
+ pass
322
+
323
+ class text_lowercase:
324
+ pass
325
+
326
+ class text_uppercase:
327
+ pass
328
+
329
+ class font_weight_bold:
330
+ pass
331
+
332
+ class font_weight_normal:
333
+ pass
334
+
335
+ class font_weight_lighter:
336
+ pass
337
+
338
+ class font_weight_bolder:
339
+ pass
340
+
341
+ class text_truncate:
342
+ pass
343
+
344
+ class text_justify:
345
+ pass
346
+
347
+ class text_break:
348
+ pass
349
+
350
+ class visible:
351
+ pass
352
+
353
+ class invisible:
354
+ pass
355
+
356
+ class sr_only:
357
+ pass
358
+
359
+ class sr_only_focusable:
360
+ pass
361
+
362
+ class opacity_0:
363
+ pass
364
+
365
+ class opacity_25:
366
+ pass
367
+
368
+ class opacity_50:
369
+ pass
370
+
371
+ class opacity_75:
372
+ pass
373
+
374
+ class opacity_100:
375
+ pass
376
+
377
+ class m_0:
378
+ pass
379
+
380
+ class m_1:
381
+ pass
382
+
383
+ class m_2:
384
+ pass
385
+
386
+ class m_3:
387
+ pass
388
+
389
+ class m_4:
390
+ pass
391
+
392
+ class m_5:
393
+ pass
394
+
395
+ class mt_0:
396
+ pass
397
+
398
+ class mt_1:
399
+ pass
400
+
401
+ class mt_2:
402
+ pass
403
+
404
+ class mt_3:
405
+ pass
406
+
407
+ class mt_4:
408
+ pass
409
+
410
+ class mt_5:
411
+ pass
412
+
413
+ class mb_0:
414
+ pass
415
+
416
+ class mb_1:
417
+ pass
418
+
419
+ class mb_2:
420
+ pass
421
+
422
+ class mb_3:
423
+ pass
424
+
425
+ class mb_4:
426
+ pass
427
+
428
+ class mb_5:
429
+ pass
430
+
431
+ class ml_0:
432
+ pass
433
+
434
+ class ml_1:
435
+ pass
436
+
437
+ class ml_2:
438
+ pass
439
+
440
+ class ml_3:
441
+ pass
442
+
443
+ class ml_4:
444
+ pass
445
+
446
+ class ml_5:
447
+ pass
448
+
449
+ class mr_0:
450
+ pass
451
+
452
+ class mr_1:
453
+ pass
454
+
455
+ class mr_2:
456
+ pass
457
+
458
+ class mr_3:
459
+ pass
460
+
461
+ class mr_4:
462
+ pass
463
+
464
+ class mr_5:
465
+ pass
466
+
467
+ class mx_0:
468
+ pass
469
+
470
+ class mx_1:
471
+ pass
472
+
473
+ class mx_2:
474
+ pass
475
+
476
+ class mx_3:
477
+ pass
478
+
479
+ class mx_4:
480
+ pass
481
+
482
+ class mx_5:
483
+ pass
484
+
485
+ class my_0:
486
+ pass
487
+
488
+ class my_1:
489
+ pass
490
+
491
+ class my_2:
492
+ pass
493
+
494
+ class my_3:
495
+ pass
496
+
497
+ class my_4:
498
+ pass
499
+
500
+ class my_5:
501
+ pass
502
+
503
+ class p_0:
504
+ pass
505
+
506
+ class p_1:
507
+ pass
508
+
509
+ class p_2:
510
+ pass
511
+
512
+ class p_3:
513
+ pass
514
+
515
+ class p_4:
516
+ pass
517
+
518
+ class p_5:
519
+ pass
520
+
521
+ class pt_0:
522
+ pass
523
+
524
+ class pt_1:
525
+ pass
526
+
527
+ class pt_2:
528
+ pass
529
+
530
+ class pt_3:
531
+ pass
532
+
533
+ class pt_4:
534
+ pass
535
+
536
+ class pt_5:
537
+ pass
538
+
539
+ class pb_0:
540
+ pass
541
+
542
+ class pb_1:
543
+ pass
544
+
545
+ class pb_2:
546
+ pass
547
+
548
+ class pb_3:
549
+ pass
550
+
551
+ class pb_4:
552
+ pass
553
+
554
+ class pb_5:
555
+ pass
556
+
557
+ class pl_0:
558
+ pass
559
+
560
+ class pl_1:
561
+ pass
562
+
563
+ class pl_2:
564
+ pass
565
+
566
+ class pl_3:
567
+ pass
568
+
569
+ class pl_4:
570
+ pass
571
+
572
+ class pl_5:
573
+ pass
574
+
575
+ class pr_0:
576
+ pass
577
+
578
+ class pr_1:
579
+ pass
580
+
581
+ class pr_2:
582
+ pass
583
+
584
+ class pr_3:
585
+ pass
586
+
587
+ class pr_4:
588
+ pass
589
+
590
+ class pr_5:
591
+ pass
592
+
593
+ class px_0:
594
+ pass
595
+
596
+ class px_1:
597
+ pass
598
+
599
+ class px_2:
600
+ pass
601
+
602
+ class px_3:
603
+ pass
604
+
605
+ class px_4:
606
+ pass
607
+
608
+ class px_5:
609
+ pass
610
+
611
+ class py_0:
612
+ pass
613
+
614
+ class py_1:
615
+ pass
616
+
617
+ class py_2:
618
+ pass
619
+
620
+ class py_3:
621
+ pass
622
+
623
+ class py_4:
624
+ pass
625
+
626
+ class py_5:
627
+ pass
@@ -0,0 +1,62 @@
1
+ from . import tags as t
2
+ from .core import Style
3
+
4
+
5
+ class Core(t.script):
6
+
7
+
8
+ def __init__(self):
9
+
10
+ super().__init__(src='/_domino/core')
11
+
12
+
13
+ class Document(t.html):
14
+
15
+
16
+ def __init__(self, title=None, favicon=None):
17
+
18
+ super().__init__()
19
+
20
+ self.stylesheet = Style()
21
+
22
+ self.head = t.head() [
23
+ t.meta(charset='utf-8'),
24
+ t.meta(
25
+ name='viewport',
26
+ content='width=device-width, initial-scale=1'
27
+ ),
28
+ self.stylesheet.compute,
29
+ Core()
30
+ ]
31
+ if title:
32
+ self.head.add_children([
33
+ t.title() [title]
34
+ ])
35
+ if favicon:
36
+ self.head.add_children([
37
+ t.link(rel="icon", type="image/png", href=favicon)
38
+ ])
39
+
40
+ self.body = t.body()
41
+
42
+ self.set_children([
43
+ self.head,
44
+ self.body
45
+ ])
46
+
47
+ self.content_root = self.body
48
+
49
+
50
+ def _render(self, level=0, indent=4):
51
+
52
+ return "<!DOCTYPE html>\n" + super()._render(level, indent)
53
+
54
+
55
+ def style(self, target=None, **kwargs):
56
+
57
+ if target is None:
58
+ target = self.__class__
59
+
60
+ self.stylesheet.style(target, **kwargs)
61
+
62
+ return self