tol-sdk 1.6.37__py3-none-any.whl → 1.7.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 (44) hide show
  1. tol/api_base/blueprint.py +29 -6
  2. tol/api_base/controller.py +14 -5
  3. tol/api_client/api_datasource.py +15 -7
  4. tol/api_client/client.py +12 -6
  5. tol/api_client/converter.py +22 -8
  6. tol/api_client/factory.py +5 -3
  7. tol/api_client/view.py +75 -205
  8. tol/cli/cli.py +1 -1
  9. tol/core/__init__.py +1 -0
  10. tol/core/http_client.py +4 -2
  11. tol/core/operator/cursor.py +5 -3
  12. tol/core/operator/detail_getter.py +7 -15
  13. tol/core/operator/list_getter.py +3 -1
  14. tol/core/operator/page_getter.py +3 -1
  15. tol/core/operator/relational.py +9 -4
  16. tol/core/requested_fields.py +189 -0
  17. tol/elastic/elastic_datasource.py +2 -1
  18. tol/flows/converters/benchling_extraction_to_elastic_extraction_converter.py +25 -6
  19. tol/flows/converters/benchling_extraction_to_elastic_sequencing_request_converter.py +28 -7
  20. tol/flows/converters/benchling_sequencing_request_to_elastic_sequencing_request_converter.py +30 -9
  21. tol/flows/converters/benchling_tissue_prep_to_elastic_tissue_prep_converter.py +14 -3
  22. tol/flows/converters/elastic_sample_to_benchling_tissue_update_converter.py +1 -1
  23. tol/flows/converters/elastic_sample_to_elastic_sequencing_request_update_converter.py +4 -1
  24. tol/flows/converters/elastic_tolid_to_elastic_genome_note_update_converter.py +4 -1
  25. tol/flows/converters/elastic_tolid_to_elastic_sample_update_converter.py +4 -1
  26. tol/sources/sts.py +6 -2
  27. tol/sql/database.py +80 -44
  28. tol/sql/factory.py +2 -2
  29. tol/sql/filter.py +22 -20
  30. tol/sql/model.py +43 -38
  31. tol/sql/relationship.py +1 -1
  32. tol/sql/sql_converter.py +49 -142
  33. tol/sql/sql_datasource.py +85 -180
  34. tol/sql/{board → standard}/__init__.py +1 -1
  35. tol/sql/standard/factory.py +549 -0
  36. {tol_sdk-1.6.37.dist-info → tol_sdk-1.7.0.dist-info}/METADATA +1 -1
  37. {tol_sdk-1.6.37.dist-info → tol_sdk-1.7.0.dist-info}/RECORD +41 -42
  38. tol/sql/board/factory.py +0 -341
  39. tol/sql/loader/__init__.py +0 -6
  40. tol/sql/loader/factory.py +0 -246
  41. {tol_sdk-1.6.37.dist-info → tol_sdk-1.7.0.dist-info}/WHEEL +0 -0
  42. {tol_sdk-1.6.37.dist-info → tol_sdk-1.7.0.dist-info}/entry_points.txt +0 -0
  43. {tol_sdk-1.6.37.dist-info → tol_sdk-1.7.0.dist-info}/licenses/LICENSE +0 -0
  44. {tol_sdk-1.6.37.dist-info → tol_sdk-1.7.0.dist-info}/top_level.txt +0 -0
@@ -6,8 +6,8 @@ tol/actions/action.py,sha256=HlfUsfVGd2vuNAwD_01yo1i32nh6UNrt_ytcY2ladgM,651
6
6
  tol/actions/upsert_action.py,sha256=DnSz1LhHibF0WcK6Qht5eLIGi3PPXc6GSRsd8Y2dZBE,1366
7
7
  tol/api_base/__init__.py,sha256=xv9kkAyb1Q5vhKgq6f-JpY7lIAla51U-gIpA5U1OfkA,312
8
8
  tol/api_base/action.py,sha256=l3MzD3jSDdYiZs-HCT4YEsXkp34X26k6yWugXrRB2XU,6575
9
- tol/api_base/blueprint.py,sha256=k7so2is91-oHO41a3o0dhkXg4_xfmwQX9AaGzMZhzTY,18286
10
- tol/api_base/controller.py,sha256=nAN7RvGFq7_fMibVTR4iGf4QXPuEYGmxfjyxihfMHqE,26556
9
+ tol/api_base/blueprint.py,sha256=lyNXgyyZ7kEL5uuIuSNkardFy8ZcDIfftt8c5xiRjyA,19061
10
+ tol/api_base/controller.py,sha256=5Fp2FobjXXPlongu1j7adGJKlSVufW0_jpk_wZIMRa4,26818
11
11
  tol/api_base/pipeline_steps.py,sha256=lz888M2cF-5z-EkGK_sWfZf1otnYRmgnNuC0WUqI-po,5667
12
12
  tol/api_base/system.py,sha256=c47sbcNaCd3teiJLO-Zwg1cUNvfCvRO4GmKzAMNxZrw,1219
13
13
  tol/api_base/auth/__init__.py,sha256=LNbVtQDlzKWzLoCmxAPSIAcM6mlVMnn0Aj9HFUudseo,460
@@ -30,15 +30,15 @@ tol/api_base/misc/list_get_parameters.py,sha256=6DtUgfKPTok3utKPOxceJdwV_ZnJ5nis
30
30
  tol/api_base/misc/relation_url.py,sha256=qfo-okp8Gv9-PEDghMfGZ2pHdYbHRhohvA9v3Govtlo,1127
31
31
  tol/api_base/misc/stats_parameters.py,sha256=IVpHqUeGQyjuih59jwqT-fIQMCBeESi2T9b4r9i4J28,1721
32
32
  tol/api_client/__init__.py,sha256=58SAywuMrIUCBAY9us_d_RLTMnaUTYWWts0LRQC5wLo,187
33
- tol/api_client/api_datasource.py,sha256=wIEdrUl7RbG4syU83Oko2SQeaBqmSbZ4r5p-4_O0mG0,13977
34
- tol/api_client/client.py,sha256=im_7xuf7wiQej2TgAbMFCCJgl6B825qdsaZ2kKWGf-g,13644
35
- tol/api_client/converter.py,sha256=uYObl9nUJ9ri-9FVEhLTt5H-0d5Tm41Ys14pajXmpP8,4177
33
+ tol/api_client/api_datasource.py,sha256=GOHvAmFzrHdux2wxY-MwUbp6eWbbS01L7FvmVyXJVZM,14330
34
+ tol/api_client/client.py,sha256=hy1MT1iDCDDOOZfhsD5-8vA7ksf56BIoe96UCiqQ06Y,13965
35
+ tol/api_client/converter.py,sha256=X6VPk4nrvmXF8EOXy36sn1nvPvYTBYKZ66ofxyQbaY8,4681
36
36
  tol/api_client/exception.py,sha256=MkvJaIyRVCzQ2rKOYnCOcT747mpOeQwGJJl3Kkb1BsQ,3999
37
- tol/api_client/factory.py,sha256=OInyP_Wt_afGXjkIygbHoBXaOO5Nrvw14USPc96ko1Y,3279
37
+ tol/api_client/factory.py,sha256=DIYFmFsQlwOCrUfexiEMBN3ovnreMqUFYNU8hcNvSao,3405
38
38
  tol/api_client/filter.py,sha256=D49RIai5Yj4CiQvIkgaEIXdw_oSU7CD5cn9SdXWRYXU,1474
39
39
  tol/api_client/parser.py,sha256=67GxGyhb5goVhXQqry7-YKvh9YozC_MkQMFiaAeHPKk,5423
40
40
  tol/api_client/validate.py,sha256=9wFZotTJ4fI21BdO5AuMZok0rDQ4s8zM_WojLdVvA0A,3071
41
- tol/api_client/view.py,sha256=x316rkmfjHuSDdwv10t08QGJsdQKhMN2TqO2oWNReEY,8439
41
+ tol/api_client/view.py,sha256=a0TzPtXhJfVv70exJ86BEZv_oaeXDyitKsj6R5sG3wE,6102
42
42
  tol/barcodes/__init__.py,sha256=k9KoBO0xJyxg1kanLrN0E3HuVSbbpfSInGEsWX-8UsY,214
43
43
  tol/barcodes/main.py,sha256=QxueF2AdrclIaQuu7W4lb4eF5tU_l-p3UMsDFIYgCfo,6213
44
44
  tol/benchling/__init__.py,sha256=9VIL6PBxvZRaBrN1j2Di75MdEY261kEHs_D-lUutIlg,229
@@ -72,7 +72,7 @@ tol/bold/converter.py,sha256=SeC7Cb0QwmGELnNvQy6w3q70tAcVGroHBd-t0mv5LPY,1087
72
72
  tol/bold/factory.py,sha256=783ThWMUlAmRvePIYIAme6377i0y8cKTIpXuue21gkQ,2420
73
73
  tol/bold/parser.py,sha256=l78Ieqx_VJqv_H7885fP-A5xM-_xjSihBf6s6x09aXY,2958
74
74
  tol/cli/__init__.py,sha256=6rQYG2NpxlwxHiEPLd43fL9xvnSTDLQ6PdjhEzN1roc,113
75
- tol/cli/cli.py,sha256=1yZuq3ax5vO4Nj6Pa_5d9KSzH9F2Y-0JeyzA7uaicI4,14747
75
+ tol/cli/cli.py,sha256=6okzO4WlT7N9cAnfpHbrCl7qS9DVRHUTET66hszYCSQ,14745
76
76
  tol/converter/__init__.py,sha256=JuJTW614n94vCH00whZH_Lc5cktgqFDACRY_A36P5g8,126
77
77
  tol/converter/yaml/__init__.py,sha256=S5dzBOFSW0pCofMHR-YbgKYrkDE2wmW20Y-ksvoSfEU,170
78
78
  tol/converter/yaml/model.py,sha256=YaAmsdXhWpm0465jJV_tngTRbz77hWC8qwtgNvwLzZI,1896
@@ -83,7 +83,7 @@ tol/copo/converter.py,sha256=DnJvIysyVLa1b4hIK0o146ruuxKBYhEDN4kxKxl7Uuc,1127
83
83
  tol/copo/copo_datasource.py,sha256=DYOkaUOO2bdW1rmblci_rt4nBo_1Kb7ztxnthbkC-hA,5193
84
84
  tol/copo/factory.py,sha256=fzYpPxro6M9GHER4uyJ5dugxDobPskc-f6RNZpLc4ZY,2219
85
85
  tol/copo/parser.py,sha256=FRPF0DQNbHTN_nrar80V9a_-3AapXqUErB47zEP0VUQ,2863
86
- tol/core/__init__.py,sha256=u-rGx0vcDzTr1PkfiJmwl1eAZbjfDWpIvYtKQawew90,1066
86
+ tol/core/__init__.py,sha256=svFcEWLhqgA0hLfFkrN9xWaSLqkC2MDHrBSnUjCGYGE,1124
87
87
  tol/core/attribute_metadata.py,sha256=wYD3NXDdStrpkUZoyTUiEpp7c14f7MLIcyooT1G4GEQ,4091
88
88
  tol/core/core_converter.py,sha256=Gn4J507BtqDjnOWV2MFRYGz8YElJAKQItmnCrD72s7k,4504
89
89
  tol/core/data_loader.py,sha256=k-ET1nIohIz6PcADbEn9Y7k9TupoiBYxKDkcAl_9pGY,14710
@@ -96,8 +96,9 @@ tol/core/datasource_error.py,sha256=TqfqaPANG0gishadhA7myCmTO1Fg9u7hVZOvsY6BdAo,
96
96
  tol/core/datasource_filter.py,sha256=RY2S9kTx0XwdrFRSE2n2GohB9__fKGzFVsZrkN5hzQk,726
97
97
  tol/core/datasource_utils.py,sha256=18mwvFmtJL73_mxtFb56rKXZCGCtZFoEb8sWFKn3Yf0,6232
98
98
  tol/core/factory.py,sha256=e0jXNS9NJvSrsbKUe9j19CElaSnKIB0j2pPCpcMa8wU,9273
99
- tol/core/http_client.py,sha256=yWp_Qg1cHeBjW7fABriWNrkXpTw5eSoL_p8gw7jUsos,2119
99
+ tol/core/http_client.py,sha256=05Wa_ySmpm_lC8OkxqXkq6jer0t693GexpaKNQBHufI,2244
100
100
  tol/core/relationship.py,sha256=etdyCjLbfi2tgkaqzE6cntpNtTzgT_jOPGeNKmPu5yc,4624
101
+ tol/core/requested_fields.py,sha256=QFNky8QmT1Cmfn42EYPciwbCueJ0DVQNKkP0Vz-_7Jk,6715
101
102
  tol/core/session.py,sha256=6AohamIEfB8oV3Z414ishKqmlTgVfUaGYWzvxLgZgM4,3803
102
103
  tol/core/validate.py,sha256=84etPczrGDkqdrNnj4GSrPAeKxYcz8qUy5szJa2QRGY,4082
103
104
  tol/core/operator/__init__.py,sha256=ircyLdj45IlaL5k0cDzWHjEr-_66BAx7YRbuEvWF30k,1826
@@ -105,24 +106,24 @@ tol/core/operator/_filterable.py,sha256=61qr-58ZPHWdWl4XKatjW1GPAhN-oqfjRpVtHHki
105
106
  tol/core/operator/_writer.py,sha256=eO4qe4myLjScCRnXeILU30MPOLyQiAZbIBQQ_awqB5I,1725
106
107
  tol/core/operator/aggregator.py,sha256=Q1Q_wnSfpxkkedqyzvXSYDiX87JgHc3YmbcAgNk-M5E,851
107
108
  tol/core/operator/counter.py,sha256=aD7CRcSfHUfH-ASivJhUSncbLc8gvwdbQUDONjHp4oo,765
108
- tol/core/operator/cursor.py,sha256=cHqxeCPg3v58bXlrCeYcN2ERsY3mlpcpYW3pDb9UwLY,3914
109
+ tol/core/operator/cursor.py,sha256=G8RkuLpQS6vDAXhE2D1WXLSEuGDkqv3YwSrW_QhGTlc,3960
109
110
  tol/core/operator/declare.py,sha256=W1jngGKNy-5D8T8nt_-6lpfOFTa-ilVr9YalRdJNG3w,333
110
111
  tol/core/operator/deleter.py,sha256=v8C6aBSQGwVCYmZ_PIeGVQExSyilQi5C-6G-wuACCBg,755
111
- tol/core/operator/detail_getter.py,sha256=i1BG-31O-CkDg6mLjFktoiKIF_VwdKlw8lEbONrJmBg,2943
112
+ tol/core/operator/detail_getter.py,sha256=0O4VXWqupSuAtVrrib0dWZ2B78IVGokm1b3hzwE3VQI,2785
112
113
  tol/core/operator/enricher.py,sha256=ijJvE8aYCIVsOpmU2EHiTB8NPGwnGucebcDccm5o7qg,4079
113
114
  tol/core/operator/enum.py,sha256=JsJkj7LIMLoCnx2n1rdSX9LxGK9bbfoloXVie4rR_3M,1651
114
115
  tol/core/operator/group_statter.py,sha256=jZ45J3OGtypOfosWChWAwe05POpBejaoDNAO2qJP1GM,897
115
116
  tol/core/operator/inserter.py,sha256=UxqjR0hg7srWVlNYwgEShQpeGuIK6EnM-bS_MxS-ruE,1441
116
- tol/core/operator/list_getter.py,sha256=-o2MajjaL_YlDk9ljFrrUCC5abr8bkq3sKc4eOSxFzg,921
117
+ tol/core/operator/list_getter.py,sha256=PwSxZ62v3obRh98AImDemtY03vLPz_qBez2ly16Kg6I,1024
117
118
  tol/core/operator/operator_config.py,sha256=c-rWwrP4RwE1ie7RuCzOwwUWpBoh4Iuj-sqkr3pAazg,2938
118
- tol/core/operator/page_getter.py,sha256=PABDzEisc1jlTroBvgI-V-HbJQa588Od2n3afl2Lj4Q,1164
119
- tol/core/operator/relational.py,sha256=E-ZOFYYOoB9D9liF-ysUqga4CnzVbQHlnU9mmn6RAbc,4642
119
+ tol/core/operator/page_getter.py,sha256=jqzIogU7YlQoNxVbKkwuZX-prwjm8iYv1pGGkUUCzGI,1267
120
+ tol/core/operator/relational.py,sha256=B09uIFchwzklq83hui0AVG4FMiwN9Dc4FbQ4N60DGUE,4907
120
121
  tol/core/operator/statter.py,sha256=qCyJ6AOeyvDy5t0tQEJr6-p-5Rw6vVwlQ-PXTmHXn8c,796
121
122
  tol/core/operator/summariser.py,sha256=l7kmcvI_s9TkLGQf9XModrMziqvxKH6jdyo-mROUUxU,5823
122
123
  tol/core/operator/updater.py,sha256=uLx02Mw77c6sHCw76pdJIArlGbk6N7HDv4FUf0C542w,1055
123
124
  tol/core/operator/upserter.py,sha256=0sAx13I-_YiXnzGC7t8N23BZFiil9FxT9S0WJ8Z6EKk,2603
124
125
  tol/elastic/__init__.py,sha256=5zOZ83jkup26AHrTEhLw4Pve548uN3gnzC6fe_mtm-Q,166
125
- tol/elastic/elastic_datasource.py,sha256=300oQgMy_LSoGSPuP7f37zm2YiaqDjgvQETLX0dHUgw,42022
126
+ tol/elastic/elastic_datasource.py,sha256=XPMr5sn64qPMe9H6Rf6xd-6TgMagVJzaZ2J1wZfRvwM,42041
126
127
  tol/elastic/runtime_fields.py,sha256=08N8JnbF1U2znSK9mpuCoyQjxiCShuxsggljptfCVoE,4479
127
128
  tol/eln/__init__.py,sha256=WoHMxbDVG6zP1pqxmieXnUDOUESlD8U9DuSlPNS6ns0,250
128
129
  tol/eln/auth.py,sha256=1f1O7FaunBGzj0nVNd55K7zaw10mQrZQJe0xXP-a024,394
@@ -148,12 +149,12 @@ tol/flows/secrets.py,sha256=1mlbsxaahzYRfVAx3XdztHOmUCtDMSJDzHysdbaCtj0,352
148
149
  tol/flows/sequencing_submissions.py,sha256=ukz_y5be-BCBN2y3JPQ2EK6b3jwOCh-187j-jnw3EUY,11027
149
150
  tol/flows/converters/__init__.py,sha256=t4Y7jldbvi-bVC-oPkQOlFPrcqblYRvX4D6SpnbcqKk,5928
150
151
  tol/flows/converters/benchling_entity_to_benchling_worklist_item_converter_factory.py,sha256=PN27fcvN4JLBnLrtPPAot1cWjAwPQHVcIDoMfPDeKzU,1210
151
- tol/flows/converters/benchling_extraction_to_elastic_extraction_converter.py,sha256=_oZMLzA_QyNOht8mMsPpBGrFIt8pDCkRDFVMj2rPl7Y,1145
152
- tol/flows/converters/benchling_extraction_to_elastic_sequencing_request_converter.py,sha256=gXgBjRig0_HADEdlUlX-0eq-EhFEhqRT7HCoGTNv7sQ,1045
152
+ tol/flows/converters/benchling_extraction_to_elastic_extraction_converter.py,sha256=S8pbmIeKlcXrLPRJHYBUGP0-Q7jTOV2QQk2TeA2naWo,1966
153
+ tol/flows/converters/benchling_extraction_to_elastic_sequencing_request_converter.py,sha256=2RiyRvGRSWzpUwEI4p-s0afshJpFUUxPqv2z-nyDSVg,1992
153
154
  tol/flows/converters/benchling_sample_casm_to_sts_sample_converter.py,sha256=AIfuLpeSLN1OEAxPxr89C6zS8rXrvo4MBSnwzK27Rgo,1252
154
155
  tol/flows/converters/benchling_sample_to_elastic_sample_converter.py,sha256=mGeNBiUI8xWMVjyfVbs2ywpjbJx2-WhbLLnAPfmsWac,1503
155
- tol/flows/converters/benchling_sequencing_request_to_elastic_sequencing_request_converter.py,sha256=j0JUXR0H-9Nsa4Bcyq0h9ftBLPlrZaHrwkEXto4DSd8,1590
156
- tol/flows/converters/benchling_tissue_prep_to_elastic_tissue_prep_converter.py,sha256=aRh5JqK9yc20WCJc9JjrwPCZEvK_f2mBJfgwUTKkOZk,1021
156
+ tol/flows/converters/benchling_sequencing_request_to_elastic_sequencing_request_converter.py,sha256=IOytX0vHW0Ittd5XCLfcNeMtOuMg7LN20VJLzeg51xw,2406
157
+ tol/flows/converters/benchling_tissue_prep_to_elastic_tissue_prep_converter.py,sha256=0hcypPlef4xTBC1wLyGUTrXsNHea2aMSzBun3F45fRo,1448
157
158
  tol/flows/converters/benchling_tissue_to_sts_sample_converter.py,sha256=DM9JFeqrjkH27GagYGStn5HDOw6ynbv3FM9GpNiAMIg,1194
158
159
  tol/flows/converters/bioscan_extra_pantheon_species_to_elastic_sample_update_converter.py,sha256=qaLyHVpOItM7DoOPera8-DHbylY9Ppx-2CjPyqvPUko,611
159
160
  tol/flows/converters/bioscan_image_to_elastic_sample_update_converter.py,sha256=uScRMILm0SKpXyzA-NRWQukcESZoPmVcn_EEiMNSOA8,2854
@@ -163,16 +164,16 @@ tol/flows/converters/bold_bin_to_elastic_sample_update_converter.py,sha256=viQNm
163
164
  tol/flows/converters/bold_sample_to_elastic_sample_update_converter.py,sha256=eehTzW37x4IINKtMdXDrgSk-Iptx1k8_IR1WDNX1JtA,585
164
165
  tol/flows/converters/elastic_object_to_portaldb_object_converter.py,sha256=YVUTYMvsLwDfq33WQbyIDl2d3D5jEcMxhqnGhx3HtQ4,1600
165
166
  tol/flows/converters/elastic_sample_to_benchling_tissue_converter.py,sha256=zsybAg8ZyRI_ibTpkvSy7Zn2lNzUYmhc9SNMQQFj1HE,1103
166
- tol/flows/converters/elastic_sample_to_benchling_tissue_update_converter.py,sha256=fF-hc46hzy0aeJiZYPQa8RVKm7GJ4sf2l25FLfxcafA,3746
167
+ tol/flows/converters/elastic_sample_to_benchling_tissue_update_converter.py,sha256=2Y_Kn8Z5_Sksgah9p4Q3Gy4Em3KOAG-rnzmy4_jtod0,3726
167
168
  tol/flows/converters/elastic_sample_to_bold_sample_converter.py,sha256=eyowTZ-iNzI4aj7VgV6hBmmnAOhQ8AXdshnhNrM7vOE,3148
168
- tol/flows/converters/elastic_sample_to_elastic_sequencing_request_update_converter.py,sha256=ZVneDzYm1zI4A7TRz5gBnqT7In1SivhFH3Fg2Hkcfj8,689
169
+ tol/flows/converters/elastic_sample_to_elastic_sequencing_request_update_converter.py,sha256=nKYcLgZ2LV7A-uCeqfTm2AYFNRwcHpH5X6uxrcsYbgc,776
169
170
  tol/flows/converters/elastic_sample_to_sts_sample_converter.py,sha256=X1_unJoxUYmZH8Yu1WbFoTQEdU9ZPngxF109PHJBWFI,1071
170
171
  tol/flows/converters/elastic_sequencing_request_to_elastic_run_data_update_converter.py,sha256=NRpfnAOIbHB8g3bX-80XzJGGjl1v34UVUDkPAanP6nE,1262
171
172
  tol/flows/converters/elastic_sequencing_request_to_sts_sequencing_request_converter.py,sha256=Ur0_lqH-kepHw16BjQBkvzyEWMJxm4rwea7G7BlVHMU,1038
172
173
  tol/flows/converters/elastic_species_to_sts_species_converter.py,sha256=f2MIKncCmldAp6Dmy8OCf13yKubC6GK2DuFasUBM9KE,1433
173
174
  tol/flows/converters/elastic_tolid_to_elastic_curation_update_converter.py,sha256=9Sn_QBp-1QfAuBmoRhTrib17vgve4oS0T7AdpH9T7xI,668
174
- tol/flows/converters/elastic_tolid_to_elastic_genome_note_update_converter.py,sha256=paEy41jK-0GZXLfHa0QBGaljp5cWJFqZGd1GPQ5VoYA,674
175
- tol/flows/converters/elastic_tolid_to_elastic_sample_update_converter.py,sha256=zYyIQb_0JYSupw9P2Gc3afkrwSZfW-sMefb_f2ksuQE,1085
175
+ tol/flows/converters/elastic_tolid_to_elastic_genome_note_update_converter.py,sha256=5FN9DB3Bu83oLjHkI8PG6CAE5NNFYZ7xEx6Q9PuLRpQ,762
176
+ tol/flows/converters/elastic_tolid_to_elastic_sample_update_converter.py,sha256=ihe4s1cZIGAoEQCyoKTtUkY4-7G5XzBC-5FCZ1PREM0,1183
176
177
  tol/flows/converters/gap_assembly_to_elastic_assembly_analysis_converter.py,sha256=dB49cmVS6nYrlTR_zUOxgyYNtbJYv7Q_B4Wzb7G7KjU,1382
177
178
  tol/flows/converters/gap_assembly_to_elastic_assembly_converter.py,sha256=XK-es-F_prju48OSFEaQatgp8C3dkXFX9xP1dTkILDM,1595
178
179
  tol/flows/converters/genome_notes_genome_note_to_elastic_genome_note_converter.py,sha256=AaUWbVTaWU-NXnUQPaPwI41TE7a-nC4zlg-jrWpPT2s,1166
@@ -274,7 +275,7 @@ tol/sources/portal_attributes.py,sha256=j_ZIZ8RHpgbRzOdHSOnzhAM9xA0HcwiAxuVgybVt
274
275
  tol/sources/portaldb.py,sha256=A-eD_tpJ1cqyDEsnN_fEE67Zkl-WQnRcVlfodZzMcVw,545
275
276
  tol/sources/prefect.py,sha256=16PrC_KfvxrsDzAcq7UvEBo4c6_n38NC23vHQeiljck,1046
276
277
  tol/sources/sciops.py,sha256=qbdoNEo-BfWGw16sjANV7dxFRVMDJQlvaSZgofE8604,1129
277
- tol/sources/sts.py,sha256=86efjzwulTG6ipJsXQduxXqZB71zlndf4mp-M955nNI,641
278
+ tol/sources/sts.py,sha256=vd65QAYIM1lltHajqJPOrGg10ZCI7OUB2dbWNAlrAn8,749
278
279
  tol/sources/sts_legacy.py,sha256=jWDM1_Jicxhay9UEOGh4lzeO0TIxuH8sa34TCn-GDWQ,440
279
280
  tol/sources/tolid.py,sha256=ERSB5L_u7c4NtGYTzdGXWjiGiL58QJNC_0ij1MQMMEQ,663
280
281
  tol/sources/tolqc.py,sha256=rzOs0SupBeyCw9MH56iwjfQczwrGhuRE-ctAWTgTGsw,663
@@ -284,29 +285,27 @@ tol/sources/uksi_qc.py.py,sha256=tH3BYSXI8ly2bHlAVJSOiBQ9AKF19-wLnh-X0CgnuRs,171
284
285
  tol/sources/workflows.py,sha256=Ctp8W7Y0F_vzBGGRg_pOzjeHcWaEamsVlICTfvLkL-4,707
285
286
  tol/sql/__init__.py,sha256=WLmcIiNhgzZlOtKYRyzE8qQTmT8XbGUAAfghoPYtgtQ,363
286
287
  tol/sql/cast.py,sha256=7z8M6kbx7J9jPhsYd5510b0L-c_h6-LlcSHhIB1ygXg,683
287
- tol/sql/database.py,sha256=CB2FcBVUJ4wIIyLA1aP3YvBVhDOWcg2uPzENwTIN0x8,22404
288
+ tol/sql/database.py,sha256=uLLy1om38eDnhHeSjFXcIWj485qSK1r4qM1ythzRNCs,24305
288
289
  tol/sql/ds_session.py,sha256=SfIxHCRvUnmxj8Xk4ttVgR1_DGd6vQAVwPouaNQaa3c,807
289
290
  tol/sql/exception.py,sha256=8c9KOVVNlLhqKU4CfsnxR7sd-JhEMnCk3TQ-s9JyogM,544
290
291
  tol/sql/ext.py,sha256=9oYHxR3IXUaG17BwTLWFJ-CjdgFrlm3AclctZ1FP0MQ,1752
291
- tol/sql/factory.py,sha256=xCwGfbIxP376aJOsYUMM9sLW18xN-u9-nR6cPtAKwY4,3412
292
- tol/sql/filter.py,sha256=8h08PbAyo5k6Aed9-YUEk2OJU8kkyZI_CnrDM_axmMk,15302
293
- tol/sql/model.py,sha256=_N-6Crk8pcjapn-xuZXBmFP4mN57zGaDwNsb0QBOM3w,11955
294
- tol/sql/relationship.py,sha256=8biXecUuJ6KKGjgB9fIIEKyDvcHjdG76iotb-x8LG8Q,2890
292
+ tol/sql/factory.py,sha256=cfHq1iH6wqqn5fI0yfOm59Tw6KiZqA7yXScCKBXBc1c,3408
293
+ tol/sql/filter.py,sha256=O711DnBG7RssQKwZ76fqA8Vm2IN7pzVrigxc1I2G4-Y,15417
294
+ tol/sql/model.py,sha256=Bi68mEsaWDSFxtouqMJqiG4wL6Ziv4uGo6UB9D8Odd4,12098
295
+ tol/sql/relationship.py,sha256=EClMgVx_If5nZV9MV99TQk7Wr7uACWetwQdWAliM5XI,2891
295
296
  tol/sql/session.py,sha256=VmqTegr4L2X2zvaOJCpwSrkVRx8fc1RVL0drkL2MXu8,806
296
297
  tol/sql/sort.py,sha256=ENrjHGgj4fZtXKmkdlkv1HRi1X14SVlcl-tp8Pu7G0k,2553
297
- tol/sql/sql_converter.py,sha256=WtqdAT9PPuwBn8q3ZO-e_uAqBUP0cYU2seowBGUVT0Q,5282
298
- tol/sql/sql_datasource.py,sha256=xP6-ZTEfF6BXLvGs_18tea7vRJGoT_Eg1lh7XTEutWQ,17447
298
+ tol/sql/sql_converter.py,sha256=h3vQz65MGeJutumSecUDxLuG403lWpJIKPwMO5ahQPI,4300
299
+ tol/sql/sql_datasource.py,sha256=jLPQSolGtKRKezjVnMrlj8YO6bLepyiFARMbDYEXuN8,16219
299
300
  tol/sql/action/__init__.py,sha256=T1zAsCza_lvsNtXF1ecSLt9OFGup8tGnIs68YylBmXI,142
300
301
  tol/sql/action/factory.py,sha256=HkareJp_57ud0_Bdd9Kwz3_Rnq2l211sGJgftohFAHg,3589
301
302
  tol/sql/auth/__init__.py,sha256=e3JuwugXmXobklqZ1Mt1w03qPgb1WdUaJVM7oblzHyk,202
302
303
  tol/sql/auth/blueprint.py,sha256=u0vT_TC9IMKrg08QFa9W29_83mT0y0jzLj3DvXy1BBw,25906
303
304
  tol/sql/auth/models.py,sha256=4xNWBvyGiI3mwRyDY5ty48Bv9178ApQXPR-YjIdCsvk,11879
304
- tol/sql/board/__init__.py,sha256=fWGMruqebnvYU4eVjytqA_lGJert01UyNbnf0ZyBTmM,139
305
- tol/sql/board/factory.py,sha256=zBy7JD9bMJIwd6n1UdQ6XwfjkkcVMk0pml9W1gBmlGs,9107
306
- tol/sql/loader/__init__.py,sha256=E5CiAidZalkUky8AG7FMRsR-NPu11K30ODNbNWPpqoY,142
307
- tol/sql/loader/factory.py,sha256=PNu7Pm51HszPBjykSVZV5TNT2Ki8u__kDXgfh0doXUc,9607
308
305
  tol/sql/pipeline_step/__init__.py,sha256=O7u4RrLfuoB0mwLcPxFoUrdTBZGB_4bE1vWCn5ho-qw,147
309
306
  tol/sql/pipeline_step/factory.py,sha256=SFJ-BE1I_qmEsqrJ10evdGCdoUHjdiJq6iqrzIlX2jU,5132
307
+ tol/sql/standard/__init__.py,sha256=2NbLXFk0rneGZosZ2ESIRcT0WMK0KncmPWaLPqvX-i4,142
308
+ tol/sql/standard/factory.py,sha256=4bg6omWsa223y5nEqz_DDp1om6Ip-NlYm3JoT1EQGMM,18361
310
309
  tol/sql/summary/__init__.py,sha256=5fNYAeOJ-XOdG9cgu7cUgDBwzG89cuc6RGGw_ZOjURk,143
311
310
  tol/sql/summary/factory.py,sha256=F01du9HYl4kmUBHGxgpibSi651GAI5wsRUdk7LBZzzI,2009
312
311
  tol/status/__init__.py,sha256=sBo-j1wCmberl89uryVCBEJk8ohbfsYhaNpIp_brR9Y,146
@@ -324,9 +323,9 @@ tol/validators/__init__.py,sha256=XXwCt8JPQ5-w2kN1bVjJPLXbS9F4s1nJUnY9jaKdmVk,27
324
323
  tol/validators/allowed_keys.py,sha256=BJMomJtaQdxsdGsueDtLewv75TlwdIXiQipLGFcJ7_c,1331
325
324
  tol/validators/allowed_values.py,sha256=yJ5SdiUlV7PSKORtsBJ9hYSqwvlx_esbFmFL_Gxh-p4,2262
326
325
  tol/validators/unique_values.py,sha256=stI-1i006WEbERcjSMapRggJkEF-RFDzw2uUtXBAE_M,1885
327
- tol_sdk-1.6.37.dist-info/licenses/LICENSE,sha256=RF9Jacy-9BpUAQQ20INhTgtaNBkmdTolYCHtrrkM2-8,1077
328
- tol_sdk-1.6.37.dist-info/METADATA,sha256=2C34dKqCV06qMbCP73eObpby_rO-56dD9QMgSTrQHzU,3073
329
- tol_sdk-1.6.37.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
330
- tol_sdk-1.6.37.dist-info/entry_points.txt,sha256=jH3HfTwxjzog7E3lq8CKpUWGIRY9FSXbyL6CpUmv6D0,36
331
- tol_sdk-1.6.37.dist-info/top_level.txt,sha256=PwKMQLphyZNvagBoriVbl8uwHXQl8IC1niawVG0iXMM,10
332
- tol_sdk-1.6.37.dist-info/RECORD,,
326
+ tol_sdk-1.7.0.dist-info/licenses/LICENSE,sha256=RF9Jacy-9BpUAQQ20INhTgtaNBkmdTolYCHtrrkM2-8,1077
327
+ tol_sdk-1.7.0.dist-info/METADATA,sha256=I8e_3R5_nYW6u3e3CFZgUT-H1Cyo3BwlmIUa6cLlUEI,3072
328
+ tol_sdk-1.7.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
329
+ tol_sdk-1.7.0.dist-info/entry_points.txt,sha256=jH3HfTwxjzog7E3lq8CKpUWGIRY9FSXbyL6CpUmv6D0,36
330
+ tol_sdk-1.7.0.dist-info/top_level.txt,sha256=PwKMQLphyZNvagBoriVbl8uwHXQl8IC1niawVG0iXMM,10
331
+ tol_sdk-1.7.0.dist-info/RECORD,,
tol/sql/board/factory.py DELETED
@@ -1,341 +0,0 @@
1
- # SPDX-FileCopyrightText: 2024 Genome Research Ltd.
2
- #
3
- # SPDX-License-Identifier: MIT
4
-
5
- from __future__ import annotations
6
-
7
- from collections.abc import Iterable as IterableABC
8
- from dataclasses import dataclass
9
- from typing import Any, Iterator
10
-
11
- from sqlalchemy import ForeignKey
12
- from sqlalchemy.dialects.postgresql import JSONB
13
- from sqlalchemy.orm import (
14
- Mapped,
15
- declared_attr,
16
- mapped_column,
17
- relationship
18
- )
19
-
20
- from ..model import Model
21
-
22
-
23
- @dataclass(frozen=True, kw_only=True)
24
- class BoardModels(IterableABC[type[Model]]):
25
- """
26
- Contains the needed models for dynamic, user-configurable
27
- dashboards.
28
-
29
- Additionally contains `_user_mixin`, from which developers
30
- should inherit their `User` class from `tol.sql.auth`.
31
- """
32
-
33
- component: type[Model]
34
- component_zone: type[Model]
35
- zone: type[Model]
36
- zone_view: type[Model]
37
- view: type[Model]
38
- view_board: type[Model]
39
- board: type[Model]
40
-
41
- _user_mixin: type[Any]
42
-
43
- def __iter__(self) -> Iterator[type[Model]]:
44
- """
45
- Returns in order they should be deleted
46
- """
47
-
48
- return iter(
49
- [
50
- self.component_zone,
51
- self.component,
52
- self.zone_view,
53
- self.zone,
54
- self.view_board,
55
- self.view,
56
- self.board
57
- ]
58
- )
59
-
60
-
61
- def create_board_models(
62
- base_model_class: type[Model],
63
- user_model_class_name: str = 'User',
64
- user_table_name: str = 'user'
65
- ) -> BoardModels:
66
- """
67
- Creates all needed models (and joining tables) for
68
- user-configurable dashboards.
69
-
70
- Returns a `BoardModels` instance that functions like an
71
- `Iterable`.
72
- """
73
-
74
- class Component(base_model_class):
75
- __tablename__ = 'component'
76
-
77
- id: Mapped[str] = mapped_column( # noqa A003
78
- primary_key=True
79
- )
80
-
81
- title: Mapped[str] = mapped_column(nullable=False)
82
- object_type: Mapped[str] = mapped_column(nullable=False)
83
- datasource = mapped_column( # noqa A003
84
- type_=JSONB(),
85
- nullable=False,
86
- default={},
87
- server_default='{}' # noqa P103
88
- )
89
- component_type: Mapped[str] = mapped_column(nullable=False)
90
- widget_type: Mapped[str] = mapped_column(nullable=False)
91
- config = mapped_column(type_=JSONB(), nullable=False)
92
- filter = mapped_column( # noqa A003
93
- type_=JSONB(),
94
- nullable=False,
95
- default={},
96
- server_default='{}' # noqa P103
97
- )
98
- filter_pass_through: Mapped[bool] = mapped_column(nullable=False)
99
-
100
- user_id: Mapped[int] = mapped_column(
101
- ForeignKey(f'{user_table_name}.id'),
102
- nullable=False
103
- )
104
- user = relationship(
105
- user_model_class_name,
106
- back_populates='components',
107
- foreign_keys=[user_id]
108
- )
109
-
110
- component_zones: Mapped[list[ComponentZone]] = relationship(
111
- back_populates='component'
112
- )
113
-
114
- class ComponentZone(base_model_class):
115
- __tablename__ = 'component_zone'
116
-
117
- id: Mapped[int] = mapped_column( # noqa A003
118
- primary_key=True,
119
- autoincrement=True
120
- )
121
-
122
- order: Mapped[int] = mapped_column(nullable=False)
123
-
124
- component_id: Mapped[str] = mapped_column(
125
- ForeignKey('component.id'),
126
- nullable=False
127
- )
128
- component = relationship(
129
- 'Component',
130
- back_populates='component_zones',
131
- foreign_keys=[component_id]
132
- )
133
-
134
- zone_id: Mapped[str] = mapped_column(
135
- ForeignKey('zone.id'),
136
- nullable=False
137
- )
138
- zone = relationship(
139
- 'Zone',
140
- back_populates='component_zones',
141
- foreign_keys=[zone_id]
142
- )
143
-
144
- class Zone(base_model_class):
145
- __tablename__ = 'zone'
146
-
147
- id: Mapped[str] = mapped_column( # noqa A003
148
- primary_key=True
149
- )
150
-
151
- title: Mapped[str] = mapped_column(nullable=False)
152
- object_type: Mapped[str] = mapped_column(nullable=False)
153
- datasource = mapped_column( # noqa A003
154
- type_=JSONB(),
155
- nullable=False,
156
- default={},
157
- server_default='{}' # noqa P103
158
- )
159
- filter = mapped_column( # noqa A003
160
- type_=JSONB(),
161
- nullable=False,
162
- default={},
163
- server_default='{}' # noqa P103
164
- )
165
-
166
- component_zones: Mapped[list[ComponentZone]] = relationship(
167
- back_populates='zone'
168
- )
169
-
170
- zone_views: Mapped[list[ZoneView]] = relationship(
171
- back_populates='zone'
172
- )
173
-
174
- user_id: Mapped[int] = mapped_column(
175
- ForeignKey(f'{user_table_name}.id'),
176
- nullable=False
177
- )
178
- user = relationship(
179
- user_model_class_name,
180
- back_populates='zones',
181
- foreign_keys=[user_id]
182
- )
183
-
184
- class ZoneView(base_model_class):
185
- __tablename__ = 'zone_view'
186
-
187
- id: Mapped[int] = mapped_column( # noqa A003
188
- primary_key=True,
189
- autoincrement=True
190
- )
191
-
192
- order: Mapped[int] = mapped_column(nullable=False)
193
-
194
- zone_id: Mapped[str] = mapped_column(
195
- ForeignKey('zone.id'),
196
- nullable=False
197
- )
198
- zone = relationship(
199
- 'Zone',
200
- back_populates='zone_views',
201
- foreign_keys=[zone_id]
202
- )
203
-
204
- view_id: Mapped[str] = mapped_column(
205
- ForeignKey('view.id'),
206
- nullable=False
207
- )
208
- view = relationship(
209
- 'View',
210
- back_populates='zone_views',
211
- foreign_keys=[view_id]
212
- )
213
-
214
- class View(base_model_class):
215
- __tablename__ = 'view'
216
-
217
- id: Mapped[str] = mapped_column( # noqa A003
218
- primary_key=True
219
- )
220
-
221
- title: Mapped[str] = mapped_column(nullable=False)
222
- filter = mapped_column( # noqa A003
223
- type_=JSONB(),
224
- nullable=False,
225
- default={},
226
- server_default='{}' # noqa P103
227
- )
228
-
229
- zone_views: Mapped[list[ZoneView]] = relationship(
230
- back_populates='view'
231
- )
232
-
233
- view_boards: Mapped[list[ViewBoard]] = relationship(
234
- back_populates='view'
235
- )
236
-
237
- user_id: Mapped[int] = mapped_column(
238
- ForeignKey(f'{user_table_name}.id'),
239
- nullable=False
240
- )
241
- user = relationship(
242
- user_model_class_name,
243
- back_populates='views',
244
- foreign_keys=[user_id]
245
- )
246
-
247
- class ViewBoard(base_model_class):
248
- __tablename__ = 'view_board'
249
-
250
- id: Mapped[int] = mapped_column( # noqa A003
251
- primary_key=True,
252
- autoincrement=True
253
- )
254
-
255
- order: Mapped[int] = mapped_column(nullable=False)
256
-
257
- view_id: Mapped[str] = mapped_column(
258
- ForeignKey('view.id'),
259
- nullable=False
260
- )
261
- view = relationship(
262
- 'View',
263
- back_populates='view_boards',
264
- foreign_keys=[view_id]
265
- )
266
-
267
- board_id: Mapped[str] = mapped_column(
268
- ForeignKey('board.id'),
269
- nullable=False
270
- )
271
- board = relationship(
272
- 'Board',
273
- back_populates='view_boards',
274
- foreign_keys=[board_id]
275
- )
276
-
277
- class Board(base_model_class):
278
- __tablename__ = 'board'
279
-
280
- id: Mapped[str] = mapped_column( # noqa A003
281
- primary_key=True
282
- )
283
-
284
- title: Mapped[str] = mapped_column(nullable=False)
285
- filter = mapped_column( # noqa A003
286
- type_=JSONB(),
287
- nullable=False,
288
- default={},
289
- server_default='{}' # noqa P103
290
- )
291
-
292
- view_boards: Mapped[list[ViewBoard]] = relationship(
293
- back_populates='board'
294
- )
295
-
296
- user_id: Mapped[int] = mapped_column(
297
- ForeignKey(f'{user_table_name}.id'),
298
- nullable=False
299
- )
300
- user = relationship(
301
- user_model_class_name,
302
- back_populates='boards',
303
- foreign_keys=[user_id]
304
- )
305
-
306
- class _UserMixin:
307
-
308
- @declared_attr
309
- def components(self) -> Mapped[list[Component]]:
310
- return relationship(
311
- back_populates='user'
312
- )
313
-
314
- @declared_attr
315
- def zones(self) -> Mapped[list[Zone]]:
316
- return relationship(
317
- back_populates='user'
318
- )
319
-
320
- @declared_attr
321
- def views(self) -> Mapped[list[View]]:
322
- return relationship(
323
- back_populates='user'
324
- )
325
-
326
- @declared_attr
327
- def boards(self) -> Mapped[list[Board]]:
328
- return relationship(
329
- back_populates='user'
330
- )
331
-
332
- return BoardModels(
333
- component=Component,
334
- component_zone=ComponentZone,
335
- zone=Zone,
336
- zone_view=ZoneView,
337
- view=View,
338
- view_board=ViewBoard,
339
- board=Board,
340
- _user_mixin=_UserMixin
341
- )
@@ -1,6 +0,0 @@
1
- # SPDX-FileCopyrightText: 2025 Genome Research Ltd.
2
- #
3
- # SPDX-License-Identifier: MIT
4
-
5
-
6
- from .factory import create_loader_models # noqa F401