spanner-graph-notebook 1.0.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 (40) hide show
  1. assets/authentication.png +0 -0
  2. assets/full_viz.png +0 -0
  3. assets/hero.png +0 -0
  4. assets/hero_with_properties.png +0 -0
  5. assets/jupyter-spin-up.png +0 -0
  6. assets/load_ext.png +0 -0
  7. assets/mock_data_result.png +0 -0
  8. assets/new_notebook.png +0 -0
  9. assets/notebook_package_load.png +0 -0
  10. assets/query_graph.png +0 -0
  11. assets/sample_jupyter.png +0 -0
  12. spanner_graph_notebook-1.0.0.dist-info/LICENSE +202 -0
  13. spanner_graph_notebook-1.0.0.dist-info/METADATA +169 -0
  14. spanner_graph_notebook-1.0.0.dist-info/RECORD +40 -0
  15. spanner_graph_notebook-1.0.0.dist-info/WHEEL +5 -0
  16. spanner_graph_notebook-1.0.0.dist-info/top_level.txt +2 -0
  17. spanner_graphs/__init__.py +19 -0
  18. spanner_graphs/conversion.py +299 -0
  19. spanner_graphs/database.py +199 -0
  20. spanner_graphs/graph_entities.py +405 -0
  21. spanner_graphs/graph_mock_data.csv +51 -0
  22. spanner_graphs/graph_mock_schema.json +681 -0
  23. spanner_graphs/magics.py +211 -0
  24. spanner_graphs/schema_manager.py +60 -0
  25. templates/assets/images/graph-bg.svg +4 -0
  26. templates/spanner-graph/models/edge.js +77 -0
  27. templates/spanner-graph/models/graph-object.js +64 -0
  28. templates/spanner-graph/models/node.js +77 -0
  29. templates/spanner-graph/models/schema.js +327 -0
  30. templates/spanner-graph/spanner-config.js +304 -0
  31. templates/spanner-graph/spanner-store.js +382 -0
  32. templates/spanner-graph/visualization/spanner-forcegraph.js +1380 -0
  33. templates/spanner-graph/visualization/spanner-sidebar.js +904 -0
  34. templates/template-spannergraph.html +210 -0
  35. tests/__init__.py +13 -0
  36. tests/conversion_test.py +163 -0
  37. tests/database_test.py +62 -0
  38. tests/graph_entities_test.py +124 -0
  39. tests/schema_manager_test.py +115 -0
  40. tests/test_notebook.json +23 -0
@@ -0,0 +1,681 @@
1
+ {
2
+ "catalog": "",
3
+ "edgeTables": [
4
+ {
5
+ "baseCatalogName": "",
6
+ "baseSchemaName": "",
7
+ "baseTableName": "AccountRepayLoan",
8
+ "destinationNodeTable": {
9
+ "edgeTableColumns": [
10
+ "loan_id"
11
+ ],
12
+ "nodeTableColumns": [
13
+ "id"
14
+ ],
15
+ "nodeTableName": "Loan"
16
+ },
17
+ "keyColumns": [
18
+ "id",
19
+ "loan_id",
20
+ "create_time"
21
+ ],
22
+ "kind": "EDGE",
23
+ "labelNames": [
24
+ "REPAYS"
25
+ ],
26
+ "name": "AccountRepayLoan",
27
+ "propertyDefinitions": [
28
+ {
29
+ "propertyDeclarationName": "amount",
30
+ "valueExpressionSql": "amount"
31
+ },
32
+ {
33
+ "propertyDeclarationName": "create_time",
34
+ "valueExpressionSql": "create_time"
35
+ },
36
+ {
37
+ "propertyDeclarationName": "id",
38
+ "valueExpressionSql": "id"
39
+ },
40
+ {
41
+ "propertyDeclarationName": "loan_id",
42
+ "valueExpressionSql": "loan_id"
43
+ }
44
+ ],
45
+ "sourceNodeTable": {
46
+ "edgeTableColumns": [
47
+ "id"
48
+ ],
49
+ "nodeTableColumns": [
50
+ "id"
51
+ ],
52
+ "nodeTableName": "Account"
53
+ }
54
+ },
55
+ {
56
+ "baseCatalogName": "",
57
+ "baseSchemaName": "",
58
+ "baseTableName": "AccountTransferAccount",
59
+ "destinationNodeTable": {
60
+ "edgeTableColumns": [
61
+ "to_id"
62
+ ],
63
+ "nodeTableColumns": [
64
+ "id"
65
+ ],
66
+ "nodeTableName": "Account"
67
+ },
68
+ "keyColumns": [
69
+ "id",
70
+ "to_id",
71
+ "create_time"
72
+ ],
73
+ "kind": "EDGE",
74
+ "labelNames": [
75
+ "TRANSFERS"
76
+ ],
77
+ "name": "AccountTransferAccount",
78
+ "propertyDefinitions": [
79
+ {
80
+ "propertyDeclarationName": "amount",
81
+ "valueExpressionSql": "amount"
82
+ },
83
+ {
84
+ "propertyDeclarationName": "comment",
85
+ "valueExpressionSql": "comment"
86
+ },
87
+ {
88
+ "propertyDeclarationName": "create_time",
89
+ "valueExpressionSql": "create_time"
90
+ },
91
+ {
92
+ "propertyDeclarationName": "goods_type",
93
+ "valueExpressionSql": "goods_type"
94
+ },
95
+ {
96
+ "propertyDeclarationName": "id",
97
+ "valueExpressionSql": "id"
98
+ },
99
+ {
100
+ "propertyDeclarationName": "order_number",
101
+ "valueExpressionSql": "order_number"
102
+ },
103
+ {
104
+ "propertyDeclarationName": "pay_type",
105
+ "valueExpressionSql": "pay_type"
106
+ },
107
+ {
108
+ "propertyDeclarationName": "to_id",
109
+ "valueExpressionSql": "to_id"
110
+ }
111
+ ],
112
+ "sourceNodeTable": {
113
+ "edgeTableColumns": [
114
+ "id"
115
+ ],
116
+ "nodeTableColumns": [
117
+ "id"
118
+ ],
119
+ "nodeTableName": "Account"
120
+ }
121
+ },
122
+ {
123
+ "baseCatalogName": "",
124
+ "baseSchemaName": "",
125
+ "baseTableName": "LoanDepositAccount",
126
+ "destinationNodeTable": {
127
+ "edgeTableColumns": [
128
+ "account_id"
129
+ ],
130
+ "nodeTableColumns": [
131
+ "id"
132
+ ],
133
+ "nodeTableName": "Account"
134
+ },
135
+ "keyColumns": [
136
+ "id",
137
+ "account_id",
138
+ "create_time"
139
+ ],
140
+ "kind": "EDGE",
141
+ "labelNames": [
142
+ "DEPOSITS"
143
+ ],
144
+ "name": "LoanDepositAccount",
145
+ "propertyDefinitions": [
146
+ {
147
+ "propertyDeclarationName": "account_id",
148
+ "valueExpressionSql": "account_id"
149
+ },
150
+ {
151
+ "propertyDeclarationName": "amount",
152
+ "valueExpressionSql": "amount"
153
+ },
154
+ {
155
+ "propertyDeclarationName": "create_time",
156
+ "valueExpressionSql": "create_time"
157
+ },
158
+ {
159
+ "propertyDeclarationName": "id",
160
+ "valueExpressionSql": "id"
161
+ }
162
+ ],
163
+ "sourceNodeTable": {
164
+ "edgeTableColumns": [
165
+ "id"
166
+ ],
167
+ "nodeTableColumns": [
168
+ "id"
169
+ ],
170
+ "nodeTableName": "Loan"
171
+ }
172
+ },
173
+ {
174
+ "baseCatalogName": "",
175
+ "baseSchemaName": "",
176
+ "baseTableName": "PersonApplyLoan",
177
+ "destinationNodeTable": {
178
+ "edgeTableColumns": [
179
+ "loan_id"
180
+ ],
181
+ "nodeTableColumns": [
182
+ "id"
183
+ ],
184
+ "nodeTableName": "Loan"
185
+ },
186
+ "keyColumns": [
187
+ "id",
188
+ "loan_id"
189
+ ],
190
+ "kind": "EDGE",
191
+ "labelNames": [
192
+ "APPLIES"
193
+ ],
194
+ "name": "PersonApplyLoan",
195
+ "propertyDefinitions": [
196
+ {
197
+ "propertyDeclarationName": "create_time",
198
+ "valueExpressionSql": "create_time"
199
+ },
200
+ {
201
+ "propertyDeclarationName": "id",
202
+ "valueExpressionSql": "id"
203
+ },
204
+ {
205
+ "propertyDeclarationName": "loan_id",
206
+ "valueExpressionSql": "loan_id"
207
+ },
208
+ {
209
+ "propertyDeclarationName": "organization",
210
+ "valueExpressionSql": "organization"
211
+ }
212
+ ],
213
+ "sourceNodeTable": {
214
+ "edgeTableColumns": [
215
+ "id"
216
+ ],
217
+ "nodeTableColumns": [
218
+ "id"
219
+ ],
220
+ "nodeTableName": "Person"
221
+ }
222
+ },
223
+ {
224
+ "baseCatalogName": "",
225
+ "baseSchemaName": "",
226
+ "baseTableName": "PersonGuaranteePerson",
227
+ "destinationNodeTable": {
228
+ "edgeTableColumns": [
229
+ "to_id"
230
+ ],
231
+ "nodeTableColumns": [
232
+ "id"
233
+ ],
234
+ "nodeTableName": "Person"
235
+ },
236
+ "keyColumns": [
237
+ "id",
238
+ "to_id"
239
+ ],
240
+ "kind": "EDGE",
241
+ "labelNames": [
242
+ "GUARANTEES"
243
+ ],
244
+ "name": "PersonGuaranteePerson",
245
+ "propertyDefinitions": [
246
+ {
247
+ "propertyDeclarationName": "create_time",
248
+ "valueExpressionSql": "create_time"
249
+ },
250
+ {
251
+ "propertyDeclarationName": "id",
252
+ "valueExpressionSql": "id"
253
+ },
254
+ {
255
+ "propertyDeclarationName": "relationship",
256
+ "valueExpressionSql": "relationship"
257
+ },
258
+ {
259
+ "propertyDeclarationName": "to_id",
260
+ "valueExpressionSql": "to_id"
261
+ }
262
+ ],
263
+ "sourceNodeTable": {
264
+ "edgeTableColumns": [
265
+ "id"
266
+ ],
267
+ "nodeTableColumns": [
268
+ "id"
269
+ ],
270
+ "nodeTableName": "Person"
271
+ }
272
+ },
273
+ {
274
+ "baseCatalogName": "",
275
+ "baseSchemaName": "",
276
+ "baseTableName": "PersonOwnAccount",
277
+ "destinationNodeTable": {
278
+ "edgeTableColumns": [
279
+ "account_id"
280
+ ],
281
+ "nodeTableColumns": [
282
+ "id"
283
+ ],
284
+ "nodeTableName": "Account"
285
+ },
286
+ "keyColumns": [
287
+ "id",
288
+ "account_id"
289
+ ],
290
+ "kind": "EDGE",
291
+ "labelNames": [
292
+ "OWNS"
293
+ ],
294
+ "name": "PersonOwnAccount",
295
+ "propertyDefinitions": [
296
+ {
297
+ "propertyDeclarationName": "account_id",
298
+ "valueExpressionSql": "account_id"
299
+ },
300
+ {
301
+ "propertyDeclarationName": "create_time",
302
+ "valueExpressionSql": "create_time"
303
+ },
304
+ {
305
+ "propertyDeclarationName": "id",
306
+ "valueExpressionSql": "id"
307
+ }
308
+ ],
309
+ "sourceNodeTable": {
310
+ "edgeTableColumns": [
311
+ "id"
312
+ ],
313
+ "nodeTableColumns": [
314
+ "id"
315
+ ],
316
+ "nodeTableName": "Person"
317
+ }
318
+ }
319
+ ],
320
+ "labels": [
321
+ {
322
+ "name": "Account",
323
+ "propertyDeclarationNames": [
324
+ "account_level",
325
+ "create_time",
326
+ "email",
327
+ "freq_login_type",
328
+ "id",
329
+ "is_blocked",
330
+ "last_login_time_ms",
331
+ "nick_name",
332
+ "phone_number",
333
+ "type"
334
+ ]
335
+ },
336
+ {
337
+ "name": "APPLIES",
338
+ "propertyDeclarationNames": [
339
+ "create_time",
340
+ "id",
341
+ "loan_id",
342
+ "organization"
343
+ ]
344
+ },
345
+ {
346
+ "name": "DEPOSITS",
347
+ "propertyDeclarationNames": [
348
+ "account_id",
349
+ "amount",
350
+ "create_time",
351
+ "id"
352
+ ]
353
+ },
354
+ {
355
+ "name": "GUARANTEES",
356
+ "propertyDeclarationNames": [
357
+ "create_time",
358
+ "id",
359
+ "relationship",
360
+ "to_id"
361
+ ]
362
+ },
363
+ {
364
+ "name": "Loan",
365
+ "propertyDeclarationNames": [
366
+ "balance",
367
+ "create_time",
368
+ "id",
369
+ "interest_rate",
370
+ "loan_amount",
371
+ "usage"
372
+ ]
373
+ },
374
+ {
375
+ "name": "OWNS",
376
+ "propertyDeclarationNames": [
377
+ "account_id",
378
+ "create_time",
379
+ "id"
380
+ ]
381
+ },
382
+ {
383
+ "name": "Person",
384
+ "propertyDeclarationNames": [
385
+ "birthday",
386
+ "city",
387
+ "country",
388
+ "create_time",
389
+ "gender",
390
+ "id",
391
+ "is_blocked",
392
+ "name"
393
+ ]
394
+ },
395
+ {
396
+ "name": "REPAYS",
397
+ "propertyDeclarationNames": [
398
+ "amount",
399
+ "create_time",
400
+ "id",
401
+ "loan_id"
402
+ ]
403
+ },
404
+ {
405
+ "name": "TRANSFERS",
406
+ "propertyDeclarationNames": [
407
+ "amount",
408
+ "comment",
409
+ "create_time",
410
+ "goods_type",
411
+ "id",
412
+ "order_number",
413
+ "pay_type",
414
+ "to_id"
415
+ ]
416
+ }
417
+ ],
418
+ "name": "FinGraph",
419
+ "nodeTables": [
420
+ {
421
+ "baseCatalogName": "",
422
+ "baseSchemaName": "",
423
+ "baseTableName": "Account",
424
+ "keyColumns": [
425
+ "id"
426
+ ],
427
+ "kind": "NODE",
428
+ "labelNames": [
429
+ "Account"
430
+ ],
431
+ "name": "Account",
432
+ "propertyDefinitions": [
433
+ {
434
+ "propertyDeclarationName": "account_level",
435
+ "valueExpressionSql": "account_level"
436
+ },
437
+ {
438
+ "propertyDeclarationName": "create_time",
439
+ "valueExpressionSql": "create_time"
440
+ },
441
+ {
442
+ "propertyDeclarationName": "email",
443
+ "valueExpressionSql": "email"
444
+ },
445
+ {
446
+ "propertyDeclarationName": "freq_login_type",
447
+ "valueExpressionSql": "freq_login_type"
448
+ },
449
+ {
450
+ "propertyDeclarationName": "id",
451
+ "valueExpressionSql": "id"
452
+ },
453
+ {
454
+ "propertyDeclarationName": "is_blocked",
455
+ "valueExpressionSql": "is_blocked"
456
+ },
457
+ {
458
+ "propertyDeclarationName": "last_login_time_ms",
459
+ "valueExpressionSql": "last_login_time_ms"
460
+ },
461
+ {
462
+ "propertyDeclarationName": "nick_name",
463
+ "valueExpressionSql": "nick_name"
464
+ },
465
+ {
466
+ "propertyDeclarationName": "phone_number",
467
+ "valueExpressionSql": "phone_number"
468
+ },
469
+ {
470
+ "propertyDeclarationName": "type",
471
+ "valueExpressionSql": "type"
472
+ }
473
+ ]
474
+ },
475
+ {
476
+ "baseCatalogName": "",
477
+ "baseSchemaName": "",
478
+ "baseTableName": "Loan",
479
+ "keyColumns": [
480
+ "id"
481
+ ],
482
+ "kind": "NODE",
483
+ "labelNames": [
484
+ "Loan"
485
+ ],
486
+ "name": "Loan",
487
+ "propertyDefinitions": [
488
+ {
489
+ "propertyDeclarationName": "balance",
490
+ "valueExpressionSql": "balance"
491
+ },
492
+ {
493
+ "propertyDeclarationName": "create_time",
494
+ "valueExpressionSql": "create_time"
495
+ },
496
+ {
497
+ "propertyDeclarationName": "id",
498
+ "valueExpressionSql": "id"
499
+ },
500
+ {
501
+ "propertyDeclarationName": "interest_rate",
502
+ "valueExpressionSql": "interest_rate"
503
+ },
504
+ {
505
+ "propertyDeclarationName": "loan_amount",
506
+ "valueExpressionSql": "loan_amount"
507
+ },
508
+ {
509
+ "propertyDeclarationName": "usage",
510
+ "valueExpressionSql": "usage"
511
+ }
512
+ ]
513
+ },
514
+ {
515
+ "baseCatalogName": "",
516
+ "baseSchemaName": "",
517
+ "baseTableName": "Person",
518
+ "keyColumns": [
519
+ "id"
520
+ ],
521
+ "kind": "NODE",
522
+ "labelNames": [
523
+ "Person"
524
+ ],
525
+ "name": "Person",
526
+ "propertyDefinitions": [
527
+ {
528
+ "propertyDeclarationName": "birthday",
529
+ "valueExpressionSql": "birthday"
530
+ },
531
+ {
532
+ "propertyDeclarationName": "city",
533
+ "valueExpressionSql": "city"
534
+ },
535
+ {
536
+ "propertyDeclarationName": "country",
537
+ "valueExpressionSql": "country"
538
+ },
539
+ {
540
+ "propertyDeclarationName": "create_time",
541
+ "valueExpressionSql": "create_time"
542
+ },
543
+ {
544
+ "propertyDeclarationName": "gender",
545
+ "valueExpressionSql": "gender"
546
+ },
547
+ {
548
+ "propertyDeclarationName": "id",
549
+ "valueExpressionSql": "id"
550
+ },
551
+ {
552
+ "propertyDeclarationName": "is_blocked",
553
+ "valueExpressionSql": "is_blocked"
554
+ },
555
+ {
556
+ "propertyDeclarationName": "name",
557
+ "valueExpressionSql": "name"
558
+ }
559
+ ]
560
+ }
561
+ ],
562
+ "propertyDeclarations": [
563
+ {
564
+ "name": "account_id",
565
+ "type": "INT64"
566
+ },
567
+ {
568
+ "name": "account_level",
569
+ "type": "STRING"
570
+ },
571
+ {
572
+ "name": "amount",
573
+ "type": "FLOAT64"
574
+ },
575
+ {
576
+ "name": "balance",
577
+ "type": "FLOAT64"
578
+ },
579
+ {
580
+ "name": "birthday",
581
+ "type": "TIMESTAMP"
582
+ },
583
+ {
584
+ "name": "city",
585
+ "type": "STRING"
586
+ },
587
+ {
588
+ "name": "comment",
589
+ "type": "STRING"
590
+ },
591
+ {
592
+ "name": "country",
593
+ "type": "STRING"
594
+ },
595
+ {
596
+ "name": "create_time",
597
+ "type": "TIMESTAMP"
598
+ },
599
+ {
600
+ "name": "email",
601
+ "type": "STRING"
602
+ },
603
+ {
604
+ "name": "freq_login_type",
605
+ "type": "STRING"
606
+ },
607
+ {
608
+ "name": "gender",
609
+ "type": "STRING"
610
+ },
611
+ {
612
+ "name": "goods_type",
613
+ "type": "STRING"
614
+ },
615
+ {
616
+ "name": "id",
617
+ "type": "INT64"
618
+ },
619
+ {
620
+ "name": "interest_rate",
621
+ "type": "FLOAT64"
622
+ },
623
+ {
624
+ "name": "is_blocked",
625
+ "type": "BOOL"
626
+ },
627
+ {
628
+ "name": "last_login_time_ms",
629
+ "type": "INT64"
630
+ },
631
+ {
632
+ "name": "loan_amount",
633
+ "type": "FLOAT64"
634
+ },
635
+ {
636
+ "name": "loan_id",
637
+ "type": "INT64"
638
+ },
639
+ {
640
+ "name": "name",
641
+ "type": "STRING"
642
+ },
643
+ {
644
+ "name": "nick_name",
645
+ "type": "STRING"
646
+ },
647
+ {
648
+ "name": "order_number",
649
+ "type": "STRING"
650
+ },
651
+ {
652
+ "name": "organization",
653
+ "type": "STRING"
654
+ },
655
+ {
656
+ "name": "pay_type",
657
+ "type": "STRING"
658
+ },
659
+ {
660
+ "name": "phone_number",
661
+ "type": "STRING"
662
+ },
663
+ {
664
+ "name": "relationship",
665
+ "type": "STRING"
666
+ },
667
+ {
668
+ "name": "to_id",
669
+ "type": "INT64"
670
+ },
671
+ {
672
+ "name": "type",
673
+ "type": "STRING"
674
+ },
675
+ {
676
+ "name": "usage",
677
+ "type": "STRING"
678
+ }
679
+ ],
680
+ "schema": ""
681
+ }