synapse 2.185.0__py311-none-any.whl → 2.187.0__py311-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.

Potentially problematic release.


This version of synapse might be problematic. Click here for more details.

Files changed (43) hide show
  1. synapse/cortex.py +5 -4
  2. synapse/exc.py +2 -0
  3. synapse/lib/ast.py +1 -1
  4. synapse/lib/cell.py +65 -2
  5. synapse/lib/drive.py +45 -10
  6. synapse/lib/hive.py +1 -1
  7. synapse/lib/modelrev.py +771 -11
  8. synapse/lib/snap.py +0 -6
  9. synapse/lib/spooled.py +26 -3
  10. synapse/lib/storm.py +7 -0
  11. synapse/lib/stormlib/model.py +320 -250
  12. synapse/lib/stormtypes.py +36 -10
  13. synapse/lib/types.py +6 -0
  14. synapse/lib/version.py +2 -2
  15. synapse/models/infotech.py +49 -22
  16. synapse/models/risk.py +3 -0
  17. synapse/tests/test_cortex.py +10 -5
  18. synapse/tests/test_lib_base.py +2 -2
  19. synapse/tests/test_lib_cell.py +16 -4
  20. synapse/tests/test_lib_modelrev.py +918 -379
  21. synapse/tests/test_lib_spooled.py +34 -0
  22. synapse/tests/test_lib_stormlib_model.py +0 -270
  23. synapse/tests/test_lib_stormtypes.py +11 -0
  24. synapse/tests/test_model_infotech.py +14 -11
  25. synapse/tests/test_model_risk.py +2 -0
  26. synapse/tests/test_tools_snapshot.py +47 -0
  27. synapse/tools/aha/clone.py +3 -1
  28. synapse/tools/aha/easycert.py +1 -1
  29. synapse/tools/aha/enroll.py +3 -1
  30. synapse/tools/aha/provision/service.py +3 -1
  31. synapse/tools/aha/provision/user.py +3 -1
  32. synapse/tools/changelog.py +11 -3
  33. synapse/tools/livebackup.py +3 -1
  34. synapse/tools/promote.py +9 -3
  35. synapse/tools/snapshot.py +69 -0
  36. {synapse-2.185.0.dist-info → synapse-2.187.0.dist-info}/METADATA +1 -1
  37. {synapse-2.185.0.dist-info → synapse-2.187.0.dist-info}/RECORD +40 -41
  38. {synapse-2.185.0.dist-info → synapse-2.187.0.dist-info}/WHEEL +1 -1
  39. synapse/assets/__init__.py +0 -35
  40. synapse/assets/storm/migrations/model-0.2.28.storm +0 -355
  41. synapse/tests/test_assets.py +0 -25
  42. {synapse-2.185.0.dist-info → synapse-2.187.0.dist-info}/LICENSE +0 -0
  43. {synapse-2.185.0.dist-info → synapse-2.187.0.dist-info}/top_level.txt +0 -0
@@ -2,16 +2,14 @@ synapse/__init__.py,sha256=R2kOXlF5j-8m6G0JkHuN7rXRPg_tHLmbMxr__94mHQk,1145
2
2
  synapse/axon.py,sha256=DQu_Ps4BDRDnmdHmqCbpd3W_91yzhdo7AzAk-wtQC3s,61520
3
3
  synapse/cells.py,sha256=eNvdglfAoTURVhGOLGcgMXCGpfsIX1a02SQnyiklo3E,308
4
4
  synapse/common.py,sha256=JRGiA6FCkCZP2pBc3s_H7MsQGwc9jU_vkJFQP3XpVLs,36523
5
- synapse/cortex.py,sha256=xbJ31GZfSIBZKlbroe3tOTXSZxuNPbk4iRcZzxZH7Bk,254590
5
+ synapse/cortex.py,sha256=1lanSlEVw07Ie3jMBFbL_306T1wNWT2dOFuTIIflYb8,254739
6
6
  synapse/cryotank.py,sha256=oTbAOKq-q8WqAkYmY46Mc8hy85W3ZcQMxmP2EJDFyZ0,12124
7
7
  synapse/daemon.py,sha256=-xy6EnmD5CodWQs_S-v7apKILECmn5EEYBpEPG-MDns,16986
8
8
  synapse/datamodel.py,sha256=QvIXNLpARXQwKCkz5SmXmQYv9V0pfp51G0cQ9h-omSo,38837
9
- synapse/exc.py,sha256=0D9kI8RCDBdaMEtMW6XDPuknJAikavwFskbYpq7Pr_Y,9056
9
+ synapse/exc.py,sha256=TCSS6ODXNKTxEfo_PT0keumTOAONGJXbTZ4ph_HrWF0,9090
10
10
  synapse/glob.py,sha256=tb6NPtK6Jp6YES9sB1AQi26HP6f-BcEiHrZz2yEyZ90,3210
11
11
  synapse/mindmeld.py,sha256=TiijGH7wX2zdXIFSBUlN40CPOvYaFlw6Wxi66XZuB_M,26
12
12
  synapse/telepath.py,sha256=HlsxX5akFRf7VCJxztnqjAelc2YMOPyCoDsYAAiWQnc,44395
13
- synapse/assets/__init__.py,sha256=2-JUtbhS3pJIzDK5-7DO8CzLDuTSY30bez5sgAsYis0,938
14
- synapse/assets/storm/migrations/model-0.2.28.storm,sha256=8WObPl9knvR9E0jJf47VVvwiKqbZnzDR-9mvMucah9U,11253
15
13
  synapse/cmds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
14
  synapse/cmds/boss.py,sha256=anEKo72bmMV6xTQ1XM-Dz9HFYkNKUX7Ee6Q6jKtkml4,2920
17
15
  synapse/cmds/cortex.py,sha256=l81zQjR0OWF-X_lOm-gPqwhVGJ4KcKe0JLA3T1NbuU4,15402
@@ -87,13 +85,13 @@ synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-sch
87
85
  synapse/lib/__init__.py,sha256=qLS7nt8-Iot8jnD2Xss_6wZi5lJoyv2rqxF9kkektT0,129
88
86
  synapse/lib/agenda.py,sha256=ddr6FrbDY5YslJS3vdBqUUcoh32XwiEj1OkomFg-NAg,33107
89
87
  synapse/lib/aha.py,sha256=vUFzh_s4VYSYXb73C3GYVcQRIaQow_0PSrSYOvz5wis,50308
90
- synapse/lib/ast.py,sha256=tH2OzmHozA4vZtkCl8O9cRSgpuALLNgNBjahnTJ0qBY,157272
88
+ synapse/lib/ast.py,sha256=sUvoukgeJpsefcjas1Fb5NpJkRL7e9NNMW-UvTTO_rY,157259
91
89
  synapse/lib/auth.py,sha256=kPi5Gn5YHCAZHiJhSC9YGNdNW6jk94gSXtSQRe8fNg4,52800
92
90
  synapse/lib/autodoc.py,sha256=eTwyKM0msJFmLmZR1OxKFVAb8wcMgJ2q72Ccphsi-u8,23226
93
91
  synapse/lib/base.py,sha256=FfS6k30ZcS1CVfHPa5LNKog1f48rJ0xE14PI89vW7tM,23634
94
92
  synapse/lib/boss.py,sha256=rYu4jkHJ3Y5GLX23Hlrwe9H17LF27LZ0BkK_A_9Aqh0,2056
95
93
  synapse/lib/cache.py,sha256=N8BoNFQXOaYQU33LLYQcVkdV6IYjSNaUoaKue55y7H0,6275
96
- synapse/lib/cell.py,sha256=LLJq9DN4vOhhu9DF8CLOFWUIJV92KcKdW8XGWXIEXmE,176853
94
+ synapse/lib/cell.py,sha256=uamPIh1SsO7fJyoPF3_KDqIyw3c0SZQzPIOr6okJSe4,178746
97
95
  synapse/lib/certdir.py,sha256=laGLxgx0gVxXvoaLKKemBQv71OZr9mDaqlAatdESV1A,56176
98
96
  synapse/lib/chop.py,sha256=F0RRLlJ6NlpLW7sBWPNZV9Xw4w6HVbQbxPZPE6VhwVQ,9404
99
97
  synapse/lib/cli.py,sha256=rwaO4SbJIzOhwxB9B7NHXpyegQeRsUQ1gULVwgnNCfg,14580
@@ -103,7 +101,7 @@ synapse/lib/config.py,sha256=2EBZcxXFVLBA7x1rtPNGmK91jqcJR-iOVU8rDzKokHQ,15830
103
101
  synapse/lib/const.py,sha256=uf-_iCXcNo85IIZss-yKTkbIe6fBAJ4n5v4Ntf0J104,1274
104
102
  synapse/lib/coro.py,sha256=o-ZrlfJALlCB30PrXOKT_ojjJ51QIezCm0vmDERSqic,11402
105
103
  synapse/lib/datfile.py,sha256=vKqSp7GTMUCYTbthbZ1EaGD8l73LYft6y7hKRuH3T74,620
106
- synapse/lib/drive.py,sha256=gfERzX8VwTI5KHSCjOLFF1HgIlXxLPe-V3bKYiP9bPE,16998
104
+ synapse/lib/drive.py,sha256=j9Z-WVAIXmabT-Y38ofKsJwOBkT83qcXkGMTMD7fNxc,18370
107
105
  synapse/lib/dyndeps.py,sha256=JKN_H3ZiJ831TT59Hdt9Zsif34UteYAfNJAJ0pax5zQ,2168
108
106
  synapse/lib/encoding.py,sha256=sxe1VADjsLJtM0vAKEIb4gHhvnOKI4xr_29da0mQMCM,6015
109
107
  synapse/lib/gis.py,sha256=Roq4dZ35yNyE3sixL-B0yB32GS3Y9sQZdWr2lDLstKQ,2684
@@ -111,7 +109,7 @@ synapse/lib/grammar.py,sha256=bl79DVSH0A213loOh5GWOaVt7gZEG6D9tn5ddr6hNuk,2572
111
109
  synapse/lib/hashitem.py,sha256=3115F7E1hIR97hrJ7QY6j1amasm7uXy63SmpRD1nB_I,658
112
110
  synapse/lib/hashset.py,sha256=6R9q6iNfxZ5iGGEmoN7ODDCUnba1XBn7w2PPJh4Yz9o,1468
113
111
  synapse/lib/health.py,sha256=wkVZObjo3quEmxA0VOUnYHapnRinOVZdTFOVobjoTH4,1730
114
- synapse/lib/hive.py,sha256=jgXxeUsSsOuDqkUOQbBXHyI0GQ6zvf1G-zQVy1X19zc,20686
112
+ synapse/lib/hive.py,sha256=jgsIFUueTqRmm_KpcwZRlgJ_f3hJrgtgASxlnx-cyII,20692
115
113
  synapse/lib/hiveauth.py,sha256=YJeBZ8UVz0GdhckesVzlv0_9-O2lz5ppczSST-SpLsA,41523
116
114
  synapse/lib/httpapi.py,sha256=i0E2dFl54ovWjEPSq7VQ5kNs6FThjXDUkD7ml9XNLOI,43186
117
115
  synapse/lib/ingest.py,sha256=HNW1xs215c_UXVjKaxjipKBmVL4ujrjmarHBRvLPLkE,40
@@ -120,7 +118,7 @@ synapse/lib/jsonstor.py,sha256=QQVf7Kl90sI_v97UZZAoa6stizDeMyy0ykR3RsHpmi8,19359
120
118
  synapse/lib/layer.py,sha256=9QriT6ikYTQJrpQUw2AGZS887Ndstv61P4UGKK5y1Zo,154151
121
119
  synapse/lib/link.py,sha256=DdCmaJzCqYWSJSxv2CQQiMKmW5q12nm34MYyrzCsL-Y,10216
122
120
  synapse/lib/lmdbslab.py,sha256=g4_Wh2U1kPlfr0kq7PVDGrBLpPryk2qdJvodr2Fyzxo,60978
123
- synapse/lib/modelrev.py,sha256=dtVtpE9MVTXNRz8JvCeYYm83toqbQNnbqCK7NoFTeOI,43694
121
+ synapse/lib/modelrev.py,sha256=kfFBV-rM_rO1jGBleM8630CVmlCaC9hrrFoxrJmZ3oQ,70813
124
122
  synapse/lib/module.py,sha256=0XLFLzuZVmEqulKmdT0uah0oi1t8_f_ghakhqvoKtKI,4686
125
123
  synapse/lib/modules.py,sha256=xHNrGBWLOSTSqn7GMMnm6iiw3Df-Q11h5gOUw84Ax7E,1282
126
124
  synapse/lib/msgpack.py,sha256=I2dc4Py9m5ohGkcsb2Ariqfon6nkam5hC0leEoqADhs,7835
@@ -140,15 +138,15 @@ synapse/lib/scrape.py,sha256=nsGpH2UIsBebe5aU7iDRUyLKrjHjAgwxhSoka9RYomw,25056
140
138
  synapse/lib/share.py,sha256=HDQR7nb4IOleHB1kIFe6prZQVW7PjPAivSAkPuhNn5A,663
141
139
  synapse/lib/slaboffs.py,sha256=Fd0RrIRBMjh159aQz5y1ONmzw0NvV040kVX_jZjQW6I,815
142
140
  synapse/lib/slabseqn.py,sha256=LJ2SZEsZlROBAD3mdS-3JxNVVPXXkBW8GIJXsW0OGG8,10287
143
- synapse/lib/snap.py,sha256=k0AXqEq5zc2gEsqwCVCK5zfoMQYHmyEtp4aI81TT-N8,60090
144
- synapse/lib/spooled.py,sha256=00x_RS1TiJkfuTXwwdUcYifuECGYgC8B1tX-sX7nb_k,5385
141
+ synapse/lib/snap.py,sha256=QfNtFHV_76ABrm7Zf7WR5kVBB-MvuZmdmDfy0n1Whlo,59880
142
+ synapse/lib/spooled.py,sha256=pKPacX-fvZDUTUWPaKgyct_lk_3eoSsF9Ufh_cn_1fQ,5987
145
143
  synapse/lib/storm.lark,sha256=ItEIPItfrCT5VmaoS1vm8FWD8Wv7b7B6ZWucCJCdO6s,26517
146
- synapse/lib/storm.py,sha256=JEnudiRl4CItc6c-w86j87jAyMSDHiIAhkG3c0eWGyM,214663
144
+ synapse/lib/storm.py,sha256=DDUNmM4c9sB_qPpzgOFpI1r6r3G2xEuARzXeTDvCPI0,215144
147
145
  synapse/lib/storm_format.py,sha256=Q8mf9QWzPljwp70BC4dYv0MGWB_YUJi3Ul4T7ReqjlQ,4818
148
146
  synapse/lib/stormctrl.py,sha256=XvyZ6M0Ew8sXsjGvRTWbXh0MjktZrGi_zQ9kNa7AWTE,285
149
147
  synapse/lib/stormhttp.py,sha256=tw0LuO0UfxZT50sfF_V9hemudv5yZc2M9nFMkGrRHRw,28884
150
148
  synapse/lib/stormsvc.py,sha256=dKREBhzYAncOXBbI-FYLRy9VusGIbRyF0TaDDz7mMXw,7581
151
- synapse/lib/stormtypes.py,sha256=9EbtKaX2H2mic9KBg6c6sUx5VO1j0ana5pVb-OLgenU,388153
149
+ synapse/lib/stormtypes.py,sha256=hPGAU6YOKkHP-eR4QSgJEix72Ohiit1XbiX7msiwthk,389390
152
150
  synapse/lib/stormwhois.py,sha256=w7N2oCyMljNvi_sRt_bZb5BJwWwYkVGcRd7H_0oHY8Q,2554
153
151
  synapse/lib/structlog.py,sha256=qiuD7TTdwCyYEDF2f-88G2iX54SuB-lJ1pqlYokL1r8,1303
154
152
  synapse/lib/task.py,sha256=krDjQvNh0EpAs1PILK8CJJa9DMeM0depI0K8Eimp010,5733
@@ -157,9 +155,9 @@ synapse/lib/thisplat.py,sha256=kQhj9Iy97zKHCnaxFSBoSnKabfza9vjpg9m6V7w-Xt4,417
157
155
  synapse/lib/threads.py,sha256=TSsC7ryXm_CbM0LQMsvk1vYV4iyvarzWzH59TrUzKuo,164
158
156
  synapse/lib/time.py,sha256=FKTYwpdvpuAj8p8sSodRjOxoA7Vu67CIbbXz55gtghk,9231
159
157
  synapse/lib/trigger.py,sha256=mnfkoBHB88JfqPoxb5oflvAaBKZpNvYdxP247YS53fE,20697
160
- synapse/lib/types.py,sha256=er9Jj4Mb3qh8YY4mUukyM7C164eIjO_fJeZvVJmSHFE,69500
158
+ synapse/lib/types.py,sha256=u89ukW38oDziRzeA6IWrPwwPD0Ds75u-gwJSXsQ4loY,69708
161
159
  synapse/lib/urlhelp.py,sha256=j-DvWGi-xH0TcO0NbCuwG7guUuiV8wxIxfMyJOzDygo,2523
162
- synapse/lib/version.py,sha256=w3ZSszkTRRBqjxSDmcAQdXEItgwyAcM7dggBZl3rDVA,7162
160
+ synapse/lib/version.py,sha256=57HvpCRODByujSSPEEre91DclVaeCWPaWJiChgN0PYI,7162
163
161
  synapse/lib/view.py,sha256=bP1lMl8Wm0yaMIlc4cfwobm5ojNzMsWguPFnPUkKhoM,60567
164
162
  synapse/lib/crypto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
163
  synapse/lib/crypto/coin.py,sha256=_dhlkzIrHT8BvHdJOWK7PDThz3sK3dDRnWAUqjRpZJc,4910
@@ -199,7 +197,7 @@ synapse/lib/stormlib/log.py,sha256=wdV-lqzQMM0C3GXNJKJKvkSKjk0CBsUfjd-Cl06LOtE,7
199
197
  synapse/lib/stormlib/macro.py,sha256=7iQ18mCaNZcslmfXGQvOmGQ71HxD7JeDp0HDmu5-EKM,8807
200
198
  synapse/lib/stormlib/math.py,sha256=3RKHj40GkYFiJSINa2AZZOAA-GqqeEP98bWw2JNity8,1149
201
199
  synapse/lib/stormlib/mime.py,sha256=WMDAcUiF8RkABKL8EUOScrO77pwi5EHPTko7hI2FPIE,1095
202
- synapse/lib/stormlib/model.py,sha256=iVebuWcpOqjpGiW6j6Q0IZLyNAhwtYbcMhxP7sVKoXU,52085
200
+ synapse/lib/stormlib/model.py,sha256=6I0JVJUqBnWAo4x-l40SndrynaPjHZ7fxb1VzmXtbDw,53385
203
201
  synapse/lib/stormlib/modelext.py,sha256=h_uGVK-OjsFXOC--W-2WwTKVWIhDnWatSa2CRAHo4ZE,13073
204
202
  synapse/lib/stormlib/notifications.py,sha256=6y1YuMavQs34WwnW5D_KrLPZ0DQlQKg5VFU56sounSA,3305
205
203
  synapse/lib/stormlib/oauth.py,sha256=hgfjI--w8vbvgNbGvZlzINTOEdQv68nk5mB27CkC93M,13011
@@ -239,7 +237,7 @@ synapse/models/files.py,sha256=tGb7sCb06Ehg-LmjFgA3TtJPzNHUUXcMCv-KgPgB4iU,33512
239
237
  synapse/models/geopol.py,sha256=QbSw5hhXVeOhGcB6oP1v4TPsYPbeK_3tQIYs_dLt_eU,11256
240
238
  synapse/models/geospace.py,sha256=MY1vPyZXBCQ4GJPj0RCvx0WGaYy0Rue03WfKzMCteko,19345
241
239
  synapse/models/inet.py,sha256=4iIbIW2yO5wuwR65b4ORjgPUNpviNT_XeAEgJv2Cdjg,168035
242
- synapse/models/infotech.py,sha256=fDiDPep_iw55muPuW4W-Yjlbd4w67UQ9Piuj9qmn_Mg,147684
240
+ synapse/models/infotech.py,sha256=wHY8J7tnRRcgVhur-x9tDtnh7IxLs4Mbf71GaBTi8Uc,148771
243
241
  synapse/models/language.py,sha256=hBVVIf5kc_FSIV7HZhWnberoc9ssxuqeff4fqC9iz4o,3640
244
242
  synapse/models/material.py,sha256=d-nonZKyJpHc32ebghtkm5tSifwVFN_ctx2kb8N4NqI,3214
245
243
  synapse/models/math.py,sha256=5zDLSwGbOcWI6T5-KspPL20sR8Bcs59pnRK2nEELzss,1775
@@ -248,7 +246,7 @@ synapse/models/orgs.py,sha256=1HtWF9WzQfmoeYQ7soEd5KV_kX1nLd_hRxILWA9F-g4,67702
248
246
  synapse/models/person.py,sha256=-YJh_KgEvL4a0ArdBX1xirMQy_8YZGyaA04Mq7Hg_VQ,27193
249
247
  synapse/models/planning.py,sha256=vmrY4d3WRxizrNU1YBe36NGZTuuu4lhGS8KI5lCZ5yQ,7302
250
248
  synapse/models/proj.py,sha256=rf4LdyBJV1c1I_dR9zF-jOmmgj7ZKi9g25HVF9uStFk,10031
251
- synapse/models/risk.py,sha256=xOjRe0Rp-2uKRjpK8zrSaZQOzIrpj9KfS-4yQVCC35g,52570
249
+ synapse/models/risk.py,sha256=B9NwNA1mpT5vlZa09Xz5BsSAIbuocoWtbArEahLGG1E,52682
252
250
  synapse/models/science.py,sha256=oSkKbjmVncYcVkVgx8rhM08XtcsgDgjf3mpunz5kL30,4329
253
251
  synapse/models/syn.py,sha256=oY6NTeDNUw0fv7wku8ieB1PqoZ-3qac0Chmdm8kk5Ds,13565
254
252
  synapse/models/telco.py,sha256=1BdnFr6Cyb1ZPtekIXaoUuRjISfJnIerTklQUEk_MzE,15273
@@ -267,13 +265,12 @@ synapse/servers/jsonstor.py,sha256=cnt0PESw5qHunEVHCyT-eKOWgywMqe0WNPDtljVgt3c,2
267
265
  synapse/servers/stemcell.py,sha256=nHACvCWqG2zWTYIo8QvSWi5EBXgYI_3XX7d1-K7xjvg,1192
268
266
  synapse/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
269
267
  synapse/tests/nopmod.py,sha256=sVRGWOVSzYYkDLonKTWbWU4PHYGDRkrUDyS1UEbdqgQ,70
270
- synapse/tests/test_assets.py,sha256=M9SG1b0nXjzDSdVknBTMEKA02Mm2N2n8mMJs7WZxz20,783
271
268
  synapse/tests/test_axon.py,sha256=qsxQHJZI9vexja56bNoXIHn7My58izAEl06sgnnx-Ho,47521
272
269
  synapse/tests/test_cmds_boss.py,sha256=SdBwM2qJHFzzfrjWYiZOLBKeye8uru7KeJ3NU_YSkWw,4718
273
270
  synapse/tests/test_cmds_cortex.py,sha256=LWFz8HyuvsIGjtz2DqXYh-R-5QbiQWzLlQKqew7gabY,17157
274
271
  synapse/tests/test_cmds_hive.py,sha256=aRH_Gh8oF_1BsfpmffyhDDNIqnTqsuF2cavdtGke1-0,5912
275
272
  synapse/tests/test_common.py,sha256=2SAJ4M2iLdZuPPV-j16QVwE073VrikyW75cYTPRMjWI,16940
276
- synapse/tests/test_cortex.py,sha256=fLan-mhiKIoOOGQ24jOEpYbzZbZM_FXt9CkAHns5Di0,353780
273
+ synapse/tests/test_cortex.py,sha256=3U1fIh-eNtlQ3PEWZR6hw-EbibUQChXfVaHogVyIrd0,354051
277
274
  synapse/tests/test_cryotank.py,sha256=ms2VkL0aUskMi-LArTzRt8LUYw0z_y8nQfOOBDiCkvI,12027
278
275
  synapse/tests/test_daemon.py,sha256=QqKELhm1HF0q_8Kbk0Uf9fnUg3K5nLQ7MocGIyuKKIw,7715
279
276
  synapse/tests/test_data.py,sha256=f8L-q6kpMq8XPG3hq1jwlyaFRQEinSBf7ZlsRFeCuoM,196
@@ -286,10 +283,10 @@ synapse/tests/test_lib_aha.py,sha256=nRHs14-LtnsSRi-C7nRu24g3ENN-R3S-0Uk8Oq2LVy4
286
283
  synapse/tests/test_lib_ast.py,sha256=il-g_TeEkfTSNbw70Ep9aWmuu9jMAesHceRz6sKekFw,180194
287
284
  synapse/tests/test_lib_auth.py,sha256=NnRMiGfVm4SQmDEBTSs1aJ1g7TKmFs3Vi8udOKJ3GaM,37815
288
285
  synapse/tests/test_lib_autodoc.py,sha256=H2XO2_d8FmsHUd-cn7M-LjTX-078xLhMiOGiGGk5Oj0,8381
289
- synapse/tests/test_lib_base.py,sha256=yhGOfA-OgZrdhISTXwSl6l6YGqN5nqO3pcDes6oICPg,14550
286
+ synapse/tests/test_lib_base.py,sha256=0XUGNaXmfDW896gpBTYYd7ovADUD8cyDLkGTefqn1FM,14550
290
287
  synapse/tests/test_lib_boss.py,sha256=gZEuJnMO99Fu9gQ7Ct0g67umBW5XFCs8vcwInB5qr14,1598
291
288
  synapse/tests/test_lib_cache.py,sha256=oQgEBhm8pZFCEvMfcD3znTDQgl8Gv91fEOB-3eb2IIg,8594
292
- synapse/tests/test_lib_cell.py,sha256=Kl3oIstweKDNucY0JaD_7MM2znDGhL5D4VkfSIQCjKg,142478
289
+ synapse/tests/test_lib_cell.py,sha256=M_OGjNGDd9F6Q2HryXY3Bl5u150ZLm5Gd0HT05QsPgA,143087
293
290
  synapse/tests/test_lib_certdir.py,sha256=d5X1lvp0DnBRigXYLbofZAXakZp440-bjaMH30PlGsI,42728
294
291
  synapse/tests/test_lib_chop.py,sha256=LkrM_pQU_KS88aVRPD4DI97qSdhxmw6EUA_jb-UJpww,6238
295
292
  synapse/tests/test_lib_cli.py,sha256=B8qGx9KtTWp31RlCMtfFMzhJ0TzaaO9ph7RCK2jHtx4,9283
@@ -315,7 +312,7 @@ synapse/tests/test_lib_jsonstor.py,sha256=1AebkkDAqFhd_mUyjpGviAUq_n0XFUzeuBxPev
315
312
  synapse/tests/test_lib_layer.py,sha256=duZUqyqwgRk8RSvVsnV1GCEBOlRl6y84-usWXZdP-Wk,94557
316
313
  synapse/tests/test_lib_link.py,sha256=sTRctDa6s9cmQ6ODoV4ifC3eQhEyXOhX2AkHMQHFHls,10204
317
314
  synapse/tests/test_lib_lmdbslab.py,sha256=868e9x7HQppILxjQpEcDWto6sjyEyidd5oQEDcVKSX4,65666
318
- synapse/tests/test_lib_modelrev.py,sha256=t1O4vVwfQqZG_7MURlfaX8TXe5rPjJOeJ6Zb84_xI1U,54767
315
+ synapse/tests/test_lib_modelrev.py,sha256=cP0gokBJJ9yBak6YPO7slfCrwy9DksYXc0jxznj89tE,80480
319
316
  synapse/tests/test_lib_module.py,sha256=h2OyCW4HW-ZFiJBNQtZ-sPLjsnrlLdTFHQPaXpA8cds,3923
320
317
  synapse/tests/test_lib_msgpack.py,sha256=_cS-Kzap6InQstBH0nCgFj9HoVO_tB2dj7D2zCa2miU,10056
321
318
  synapse/tests/test_lib_multislabseqn.py,sha256=ujIp3VkFRhPURx3Js9nklXJ4aYup8UTrcLg7X96lrDs,17425
@@ -332,7 +329,7 @@ synapse/tests/test_lib_scrape.py,sha256=ZAbt-obxC9x7WN--pMPq8fU3ZLyKX_aDFSStwJYW
332
329
  synapse/tests/test_lib_slaboffs.py,sha256=FHQ8mGZ27dGqVwGk6q2UJ4gkPRZN22eIVzS8hMPkD9c,756
333
330
  synapse/tests/test_lib_slabseqn.py,sha256=74V6jU7DRTsy_hqUFDuT4C6dPlJ6ObNnjmI9qhbbyVc,5230
334
331
  synapse/tests/test_lib_snap.py,sha256=OviJtj9N5LhBV-56TySkWvRly7f8VH9d-VBcNFLAtmg,27805
335
- synapse/tests/test_lib_spooled.py,sha256=dC5hba4c0MehALt4qW-cokqJl-tZsIsmABCGMIclXNM,2776
332
+ synapse/tests/test_lib_spooled.py,sha256=fkLuujrDqjeJtyByptmGZvJbM9QiETCAu4r_4PdLfZg,3929
336
333
  synapse/tests/test_lib_storm.py,sha256=2cmkPI_wmmXhURTq-8f_rtq96iajB8mK1EROE2HDP0c,226103
337
334
  synapse/tests/test_lib_storm_format.py,sha256=tEZgQMmKAeG8FQZE5HUjOT7bnKawVTpNaVQh_3Wa630,277
338
335
  synapse/tests/test_lib_stormhttp.py,sha256=ZS8iONsisWjEi2CXx9AttiQ9bOrPs9x4GCwXlJEB_u0,42592
@@ -359,7 +356,7 @@ synapse/tests/test_lib_stormlib_json.py,sha256=Ds8YsNXHDBg_yNxOrBJDKjF9W3tzGzIeO
359
356
  synapse/tests/test_lib_stormlib_log.py,sha256=pZwEgCou368-MzeDL5jMEARRyswVNKKJ-VuuKjoSmlU,2905
360
357
  synapse/tests/test_lib_stormlib_macro.py,sha256=IfGRX6ZAJr_RJGNPq2BKTEPByY90pnYDYdtHp8C1JbQ,18508
361
358
  synapse/tests/test_lib_stormlib_mime.py,sha256=ozBJ70XxdrErOmycStWdh1xkBHVnM0BTPHvaP4faC0g,1510
362
- synapse/tests/test_lib_stormlib_model.py,sha256=ylsrjecdl3IxLojcmVsMmOU7i0bdTKBTsmzX20eCZg4,44570
359
+ synapse/tests/test_lib_stormlib_model.py,sha256=yiB_EflrQ34FDUqxKNkyxFc9xtXnksBqYoLg8IifNQ4,31475
363
360
  synapse/tests/test_lib_stormlib_modelext.py,sha256=Dxw-pz9eYwL1bFofi8ijCbnTbuLizFxMkGfEWN51Lvw,26168
364
361
  synapse/tests/test_lib_stormlib_oauth.py,sha256=rb6ZWyLrWwcDT32VfjdQUg3AurwlhzbQv-kXIfPeRsQ,28858
365
362
  synapse/tests/test_lib_stormlib_pack.py,sha256=YSb4dErPM3CeU0piqvhIQF_F1m3YjApo3nA14ewPWf0,1563
@@ -375,7 +372,7 @@ synapse/tests/test_lib_stormlib_vault.py,sha256=pE_nDisXiyb-4Zm1hOrfsuEz3bjYwR8c
375
372
  synapse/tests/test_lib_stormlib_xml.py,sha256=dWa9NkXXE28VZ3bTmMDbddo7VpUKsSEHTS1ojJr-F90,3704
376
373
  synapse/tests/test_lib_stormlib_yaml.py,sha256=egTVXk8wW31V2msF__9WxP3THcqfysG1mYhc7hQG8rw,1358
377
374
  synapse/tests/test_lib_stormsvc.py,sha256=J5-bmS_M3nkmJtmgUjyh7_vSwEzw_TxcMwe6q5ah1e8,43887
378
- synapse/tests/test_lib_stormtypes.py,sha256=NbWGXY-talxf6j-MRTFU4foj0p87ClCaTmA1GeBdfVs,309453
375
+ synapse/tests/test_lib_stormtypes.py,sha256=FGOhXvz6fbtcj0v-6FrMgJ75AhCq43QWiw-KbhkUEHw,309850
379
376
  synapse/tests/test_lib_stormwhois.py,sha256=AWMUYEgZ5yqvDfPC_rM4evmhgfOA_Fv5aoTjmKmN1_0,4818
380
377
  synapse/tests/test_lib_structlog.py,sha256=DGfzrfc2nybRq5RjwiUXd1v4sC5zl8d46RHgTmFD0iA,3964
381
378
  synapse/tests/test_lib_task.py,sha256=Zby9Evlg_mBwE3_aF7p_5PIMhWp2Er7Y-ye4Y-3L5RQ,1646
@@ -404,7 +401,7 @@ synapse/tests/test_model_gov_cn.py,sha256=FnfKNM_wnvmScLm4cYFSQXZ21kVaTPPDusiCD7
404
401
  synapse/tests/test_model_gov_intl.py,sha256=v5BZhQnoMurzZYhM9hkzALzQzp92KidweYxVlghXDws,770
405
402
  synapse/tests/test_model_gov_us.py,sha256=kvZ9DudBrbKtZmqGm8X-b_IOw4oJ7XZMnvTgiDkzsrY,1525
406
403
  synapse/tests/test_model_inet.py,sha256=vJs4OjwY9Bx3H9YfxuGse-hWQ_Cd7sSv17S_7fK4NUU,150463
407
- synapse/tests/test_model_infotech.py,sha256=81vsV6SCEDLgQfppwnbZuThH0MGmGjaJekum5sXDJis,110804
404
+ synapse/tests/test_model_infotech.py,sha256=_fC1TP21x5vfvHjZtJMM6fQUVtXZs3SP9X09wuFYqyA,110873
408
405
  synapse/tests/test_model_language.py,sha256=49stF1B8_EwWJB67Xa5VXCG563Zfbr6S85iKN9Iom48,3046
409
406
  synapse/tests/test_model_material.py,sha256=M7ACDCuMtavm-xtwAIZa1M-bHVq5PCUedDfR-Ty9_F4,1975
410
407
  synapse/tests/test_model_math.py,sha256=x-rHBfm-59ueZdHXXzSi53eshldvVURoJeLeexWTL2U,826
@@ -413,7 +410,7 @@ synapse/tests/test_model_orgs.py,sha256=x_pnxhOS2IkGTMB-BMM8CeeizlecBEiHyE9cprd2
413
410
  synapse/tests/test_model_person.py,sha256=6Zj_dnOyY4axLvl7VKCEYGtwVlnEYqKSg5kOi3Brp9s,17322
414
411
  synapse/tests/test_model_planning.py,sha256=U2kkE0uBO6CqtTfy7wlnhEIu_NFdSri4I_I5b-mRjBE,5615
415
412
  synapse/tests/test_model_proj.py,sha256=bBPNzvcbd1jZReeJ7X-AQdH7F7ZMugZVgaCTvS-QNFM,22849
416
- synapse/tests/test_model_risk.py,sha256=dym9_hxZYhCoftMjMDJSPuvJIyYbqN207MD4dVct-SU,28161
413
+ synapse/tests/test_model_risk.py,sha256=uDeGAoSFXJArTv3zDf5_qk6giqYAb0Beda8oVr4h75I,28253
417
414
  synapse/tests/test_model_science.py,sha256=2T9VxdzpltDufgjkUB95q97TQP9AxH2-T_sBbHfPDRk,2450
418
415
  synapse/tests/test_model_syn.py,sha256=9yWzWRSBI3rjv7hu3MUE9KuE00n4GxxlQmxDvQJj6gw,23028
419
416
  synapse/tests/test_model_telco.py,sha256=5ToiRhCX7faiDx4lDMV6b7E9WteN3PcBlznYF6GA2co,13166
@@ -450,6 +447,7 @@ synapse/tests/test_tools_pullfile.py,sha256=BloDoe1iBUlUSGQBU3TXFXU8sPFI3wRJHEp_
450
447
  synapse/tests/test_tools_pushfile.py,sha256=evX1aPxWvmhoS4ZmB0q6jMqIPYzQ9nqWB1XAJRipOcw,5611
451
448
  synapse/tests/test_tools_reload.py,sha256=IlVj84EM-T35pdE5s9XvMhD6rWPIlc2BSDUgHhw28D4,1830
452
449
  synapse/tests/test_tools_rstorm.py,sha256=-bIvNCY9Vx702LsNb2vwunZBT6fyXHse28Av6Hfgx1s,2078
450
+ synapse/tests/test_tools_snapshot.py,sha256=MfMq8ij4Ztxrn0D_iVYXRGSHI1_rQzEybexjlraeSaQ,1750
453
451
  synapse/tests/test_tools_storm.py,sha256=QkyPX4HS67n1q4LbmsCGF9yUSyMLHK4BjNRX3JCgy1w,18437
454
452
  synapse/tests/test_utils.py,sha256=sI-uDhUpkVQHSKHa2-czmWNvyXL2QTsCojtPAV2jueI,8688
455
453
  synapse/tests/test_utils_getrefs.py,sha256=bBV7yZ9tnOXmjqpsU1YKV5pw0behoKpzpwHJDxLjmLs,2304
@@ -524,7 +522,7 @@ synapse/tools/autodoc.py,sha256=-esajH0-4ftIJHzW93t7FwQEJ4WsvH8iV5em_sf1Wlw,3508
524
522
  synapse/tools/axon2axon.py,sha256=FOaBLUrHH-r5Vw8FABwfTNGn_fJCg7jJxtP0ALpJUGM,1654
525
523
  synapse/tools/backup.py,sha256=Cz3OSaYMRND7gE55FdyjrBr3C1_qd68yJ23O4-mukCM,5969
526
524
  synapse/tools/cellauth.py,sha256=2ACKpOsOK_9F1B-HV5qhzGORSN7MhlElkL01Q710M1k,12122
527
- synapse/tools/changelog.py,sha256=MMp8rjl1p-CNIQ8_-qZC-1ld9Bz3Gya-7aaU1bf_LaU,45122
525
+ synapse/tools/changelog.py,sha256=uuXsN_tk6Lm_zlijTXBRrBoXNe0vgOGKBPL8KupdxqA,45529
528
526
  synapse/tools/cmdr.py,sha256=VdXzGU6ekhgvO0LmXFQlIWwH-T0v_q0VBZsKqONmhlg,1692
529
527
  synapse/tools/csvtool.py,sha256=n3TB1qLgb7-0Du6Z6CZtu2vxaHUtzncwr2aQmQjgzi0,7477
530
528
  synapse/tools/easycert.py,sha256=naoYnWfg0m6NrBraKUVk3FK5OW53yVBZH8rv6RrXRH8,4531
@@ -533,23 +531,24 @@ synapse/tools/genpkg.py,sha256=THmrgT9inhECQEbK_08suOdFSwOp6auKo2XQe4mIVmg,9924
533
531
  synapse/tools/guid.py,sha256=UCBFqUSBdXt5WJYcoP0Vme_oOUXU040DZJEpay4uZHk,300
534
532
  synapse/tools/healthcheck.py,sha256=sps01sVTVb3kb--vRNotn7HkkZVZ5wSu6VeiOuK_l-g,3314
535
533
  synapse/tools/json2mpk.py,sha256=KEfNOY7m9lTBj2g2fYfe6OpqC1D0a7kvI0orl_ZGp_0,1360
536
- synapse/tools/livebackup.py,sha256=rscss-hYp8A0DRqHoPtl6WSpD9vOo2HyjeNIs9bDUW4,1129
534
+ synapse/tools/livebackup.py,sha256=BNgXTYtU6EewonG5vgewF0RDEISiD9XLYn3SLgybnWM,1222
537
535
  synapse/tools/modrole.py,sha256=q8BDlOaqKVj2c0AJVSd7hL3RoJlUFJLuEkL1bfrk6Fg,4748
538
536
  synapse/tools/moduser.py,sha256=ydk9Lf7zm0MysP1tgM1rh53fkpulIiNeyuOLFrDW0bU,7834
539
- synapse/tools/promote.py,sha256=9zBOEyWgxm8LBDVJjY_RfKftwYfzMxFYO2yD_mqxurY,1632
537
+ synapse/tools/promote.py,sha256=J1wRkYHFUaXha92hrQ9RqG-cHdH1u-QrMvax50YSRjE,1769
540
538
  synapse/tools/pullfile.py,sha256=QAwejVke8d2zvkyNT6-HyAkRy4wF5FE3FYZAryaFHXI,2042
541
539
  synapse/tools/pushfile.py,sha256=0y9IKfkiRXkFpvHk9hX4CEey-HEpdXWE_b056w1ijKI,4202
542
540
  synapse/tools/reload.py,sha256=Jr5j-kSxWX6S-cUv1AnQMfukohLPCH9EjN4Pv-uMO-E,2724
543
541
  synapse/tools/rstorm.py,sha256=E6ggQYlsD7j4VqwunrVBVRfsLJpVcTBCigZfu3PWJqA,1057
542
+ synapse/tools/snapshot.py,sha256=L3nMTYM0iGY-37Js7NHDy2IctRd0uwQDA2CRuylfVRk,2154
544
543
  synapse/tools/storm.py,sha256=TUmxM0YH0WsD4Haab5TEUZtq-zfywMDjoRPpGo-HUBo,20758
545
544
  synapse/tools/aha/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
546
- synapse/tools/aha/clone.py,sha256=lOnKtUvb2HsvKUKWRBWyCyxFXRQxDH_QVPvfulylQaI,1610
547
- synapse/tools/aha/easycert.py,sha256=vlhc1SEgavBWkobuL7GC5LmTwj33dzpxphWCbai2hRw,3064
548
- synapse/tools/aha/enroll.py,sha256=xCeJcSXb39yN6QhOa7-yQjV5WZ8uHC5zA1qaLSUOLmk,3182
545
+ synapse/tools/aha/clone.py,sha256=-K-p1J5Ay5SAm80VZy9ysYvqwq6jnFGHeCewGxyKbHM,1689
546
+ synapse/tools/aha/easycert.py,sha256=GlVVLc1TS_vMhNTrgiBylOfzfc8Y96isFRQg-8r8xn4,3078
547
+ synapse/tools/aha/enroll.py,sha256=oGdbWj1yQVfeXYopI-VtJW5CBsZhKv9B41hje4cK7fw,3276
549
548
  synapse/tools/aha/list.py,sha256=feeYRnsfEEHlkqI4xZXKSLmUrpXq_nb0AHE22RJ8eZc,2709
550
549
  synapse/tools/aha/provision/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
551
- synapse/tools/aha/provision/service.py,sha256=zEvJ8Yx-d0YDKgYL9XfLjAxufcdT4IdDgdkC7K0WtfQ,3183
552
- synapse/tools/aha/provision/user.py,sha256=jkeSqvOtmt3TaaTlzwiQ4164s5lK8ilwsiBQQ8Sn95I,1816
550
+ synapse/tools/aha/provision/service.py,sha256=fhyQELilvABzzwEoZvRU6hGdLon6f10_kWM5MSMkG6I,3262
551
+ synapse/tools/aha/provision/user.py,sha256=nDGA7TiZCvik9GCnMhioGpuCi8eV0fW67Yr_axhblQA,1895
553
552
  synapse/tools/cryo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
554
553
  synapse/tools/cryo/cat.py,sha256=ELok5rGIQE8mUCN8NXbwlQJFLQcMSqdSZiV_8f4JUuw,2702
555
554
  synapse/tools/cryo/list.py,sha256=Xhxm50WFFCkDFCtNnks3xt5-VzrdYvzaGqN8PPHqf3g,843
@@ -603,8 +602,8 @@ synapse/vendor/xrpl/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
603
602
  synapse/vendor/xrpl/tests/test_codec.py,sha256=Zwq6A5uZUK_FWDL3BA932c5b-rL3hnC6efobWHSLC4o,6651
604
603
  synapse/vendor/xrpl/tests/test_main.py,sha256=kZQwWk7I6HrP-PMvLdsUUN4POvWD9I-iXDHOwdeF090,4299
605
604
  synapse/vendor/xrpl/tests/test_main_test_cases.py,sha256=vTlUM4hJD2Hd2wCIdd9rfsvcMZZZQmNHWdCTTFeGz2Y,4221
606
- synapse-2.185.0.dist-info/LICENSE,sha256=xllut76FgcGL5zbIRvuRc7aezPbvlMUTWJPsVr2Sugg,11358
607
- synapse-2.185.0.dist-info/METADATA,sha256=UWiHlwbiXyzJatEinADYhCMW89aO8iluXCYEKt9ldlU,4598
608
- synapse-2.185.0.dist-info/WHEEL,sha256=SrTdYlP5_vE84QjjtlalV7U4zA9dssr1tS8MY2C6kns,93
609
- synapse-2.185.0.dist-info/top_level.txt,sha256=v_1YsqjmoSCzCKs7oIhzTNmWtSYoORiBMv1TJkOhx8A,8
610
- synapse-2.185.0.dist-info/RECORD,,
605
+ synapse-2.187.0.dist-info/LICENSE,sha256=xllut76FgcGL5zbIRvuRc7aezPbvlMUTWJPsVr2Sugg,11358
606
+ synapse-2.187.0.dist-info/METADATA,sha256=4gFQ4HZha5_h28ATU7M2IFv9GNmqgDUD3mupZFhd2ak,4598
607
+ synapse-2.187.0.dist-info/WHEEL,sha256=V9njg5PXytSyv_DtLjFqv-lPwlYJ-pVdrLhmVh7fan0,93
608
+ synapse-2.187.0.dist-info/top_level.txt,sha256=v_1YsqjmoSCzCKs7oIhzTNmWtSYoORiBMv1TJkOhx8A,8
609
+ synapse-2.187.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.2.0)
2
+ Generator: setuptools (75.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py311-none-any
5
5
 
@@ -1,35 +0,0 @@
1
- import os
2
- import logging
3
-
4
- import synapse.common as s_common
5
-
6
- logger = logging.getLogger(__name__)
7
- dirname = os.path.dirname(__file__)
8
-
9
- def getStorm(*names):
10
- '''
11
- Return a storm file from the synapse storm folder.
12
-
13
- Example:
14
-
15
- text = storm.get('migrate.storm')
16
- await core.callStorm(text)
17
-
18
- Example #2:
19
- text = storm.get('migrations', 'model-0.2.28.storm')
20
- await core.callStorm(text)
21
- '''
22
- fp = getAssetPath('storm', *names)
23
- with open(fp, 'rb') as fd:
24
- text = fd.read()
25
- return text.decode('utf8')
26
-
27
- def getAssetPath(*names):
28
- fp = s_common.genpath(dirname, *names)
29
- if not fp.startswith(dirname):
30
- logger.error(f'{fp} is not in {dirname}')
31
- raise ValueError(f'Path escaping detected for {names}')
32
- if not os.path.isfile(fp):
33
- logger.error('{} does not exist'.format(fp))
34
- raise ValueError(f'Asset does not exist for {names}')
35
- return fp
@@ -1,355 +0,0 @@
1
- $layers = $lib.spooled.set()
2
- $layers.adds($layridens)
3
-
4
- $refinfoCache = ({})
5
-
6
- function getRefInfo(formname) {
7
- $cached = $refinfoCache.$formname
8
- if $cached { return($cached) }
9
-
10
- $refinfo = ([])
11
-
12
- syn:prop:type*in=($formname, array, ndef)
13
- // Don't include the form we're querying
14
- -:form = $formname
15
-
16
- $prop = $lib.model.prop($node.repr())
17
- $proptype = $prop.type.name
18
-
19
- // Don't include array types that don't have a base type of $formname or ndef
20
- -$($proptype = 'array' and not ([$formname, 'ndef']).has($prop.type.opts.type))
21
-
22
- $isarray = $lib.false
23
-
24
- if ($proptype = 'array') {
25
- $isarray = $lib.true
26
- $proptype = $prop.type.opts.type
27
- }
28
-
29
- $refinfo.append((:form, $prop.name, $proptype, $isarray))
30
-
31
- fini {
32
- $refinfoCache.$formname = $refinfo
33
- return($refinfo)
34
- }
35
- }
36
-
37
- function removeNode(n, viewiden, layriden) {
38
-
39
- $nodeq = $lib.queue.gen("model_0_2_28:nodes")
40
- $refsq = $lib.queue.gen("model_0_2_28:nodes:refs")
41
- $edgeq = $lib.queue.gen("model_0_2_28:nodes:edges")
42
-
43
- $sources = ([])
44
-
45
- $iden = $n.iden()
46
- $repr = $n.repr()
47
- $form = $n.form()
48
- $ndef = $n.ndef()
49
-
50
- $lib.log.debug(`Saving invalid {$form} node info: {$repr}`)
51
-
52
- $refinfos = $getRefInfo($form)
53
-
54
- for $view in $lib.view.list(deporder=$lib.true) {
55
- if (not $layers.has($view.layers.0.iden)) { continue }
56
-
57
- view.exec $view.iden {
58
- $edges = ([])
59
- $references = ([])
60
-
61
- // Get references and store them in queue
62
- for $refinfo in $refinfos {
63
-
64
- ($formname, $propname, $proptype, $isarray) = $refinfo
65
- if ($proptype = "ndef") {
66
- $oldvalu = $ndef
67
- } else {
68
- $oldvalu = $repr
69
- }
70
-
71
- for $ref in $lib.model.migration.liftByPropValuNoNorm($formname, $propname, $oldvalu) {
72
- yield $ref
73
-
74
- if $isarray {
75
-
76
- // We can't just [ :$propname-=$oldvalu ] because the norm() function gets called on the array type
77
- // deep down in the AST. So, instead, we have to operate on the whole array.
78
-
79
- $list = $lib.copy(:$propname)
80
- $list.rem($oldvalu, all=$lib.true)
81
-
82
- if $list {
83
- $lib.model.migration.setNodePropValuNoNorm($node, $propname, $list)
84
- } else {
85
- [ -:$propname ]
86
- }
87
-
88
- } else {
89
- try {
90
- [ -:$propname ]
91
- } catch ReadOnlyProp as exc {
92
- // The property is readonly so we can only delete it
93
- $lib.log.warning(`{$formname}:{$propname} is readonly, cannot modify. Storing node: {$node.repr()}`)
94
- $removeNode($node, $view.iden, $view.layers.0.iden)
95
- | delnode |
96
- continue
97
- }
98
- }
99
-
100
- $ref = ({
101
- "iden": $node.iden(),
102
- "refinfo": $refinfo,
103
- })
104
-
105
- $references.append($ref)
106
-
107
- // Flush to the queue if the list grows too large
108
- if ($references.size() > 1000) { // pragma: no cover start
109
- $item = ({
110
- "iden": $iden,
111
- "view": $view.iden,
112
- "refs": $references,
113
- })
114
-
115
- $refsq.put($item)
116
- $references = ([])
117
- } // pragma: no cover stop
118
- }
119
- }
120
-
121
- if $references {
122
- $item = ({
123
- "iden": $iden,
124
- "view": $view.iden,
125
- "refs": $references,
126
- })
127
-
128
- $refsq.put($item)
129
- $references = ([])
130
- }
131
-
132
- spin |
133
-
134
- yield $iden |
135
-
136
- // Get sources and store them in the queue
137
- // Do this before we store/delete edges.
138
- { <(seen)- meta:source
139
- $sources.append($node.repr())
140
- }
141
-
142
- // Get N1 edges and store them in the queue
143
- { for $edge in $node.edges() {
144
- ($verb, $dst) = $edge
145
- $edges.append($edge)
146
-
147
- [ -($verb)> { yield $dst } ]
148
-
149
- // Flush to the queue if the list grows too large
150
- if ($edges.size() > 1000) { // pragma: no cover start
151
- $item = ({
152
- "iden": $iden,
153
- "view": $view.iden,
154
- "direction": "n1",
155
- "edges": $edges,
156
- })
157
-
158
- $edgeq.put($item)
159
- $edges = ([])
160
- } // pragma: no cover stop
161
- }}
162
-
163
- if $edges {
164
- $item = ({
165
- "iden": $iden,
166
- "view": $view.iden,
167
- "direction": "n1",
168
- "edges": $edges,
169
- })
170
-
171
- $edgeq.put($item)
172
- $edges = ([])
173
- }
174
-
175
- // Get N2 edges and store them in the queue
176
- { for $edge in $node.edges(reverse=$lib.true) {
177
- ($verb, $src) = $edge
178
- $edges.append($edge)
179
-
180
- [ <($verb)- { yield $src } ]
181
-
182
- // Flush to the queue if the list grows too large
183
- if ($edges.size() > 1000) { // pragma: no cover start
184
- $item = ({
185
- "iden": $iden,
186
- "view": $view.iden,
187
- "direction": "n2",
188
- "edges": $edges,
189
- })
190
-
191
- $edgeq.put($item)
192
- $edges = ([])
193
- } // pragma: no cover stop
194
- }}
195
-
196
- if $edges {
197
- $item = ({
198
- "iden": $iden,
199
- "view": $view.iden,
200
- "direction": "n2",
201
- "edges": $edges,
202
- })
203
-
204
- $edgeq.put($item)
205
- $edges = ([])
206
- }
207
- }
208
- }
209
-
210
- $item = ({
211
- "iden": $iden,
212
- "form": $form,
213
- "repr": $repr,
214
- "props": $n.props,
215
- "view": $viewiden,
216
- "layer": $layriden,
217
- "tags": $n.tags(),
218
- "data": $n.data.list(),
219
- "sources": $sources,
220
- })
221
-
222
- $nodeq.put($item)
223
-
224
- return()
225
- }
226
-
227
- function migrateCpeNode(oldcpe, newcpe) {
228
-
229
- // migrate the edges, tags, node data, and extended props
230
- $lib.model.migration.copyEdges($oldcpe, $newcpe)
231
- $lib.model.migration.copyTags($oldcpe, $newcpe)
232
- $lib.model.migration.copyData($oldcpe, $newcpe)
233
- $lib.model.migration.copyExtProps($oldcpe, $newcpe)
234
-
235
- $refinfos = $getRefInfo($oldcpe.form())
236
-
237
- // Iterate through the views and fix up all the references
238
- for $view in $lib.view.list(deporder=$lib.true) {
239
- if (not $layers.has($view.layers.0.iden)) { continue }
240
-
241
- view.exec $view.iden {
242
-
243
- // Fix references that point to old node to now point to new node
244
- for $refinfo in $refinfos {
245
- ($form, $prop, $proptype, $isarray) = $refinfo
246
- if ($proptype = "ndef") {
247
- $oldvalu = $oldcpe.ndef()
248
- $newvalu = $newcpe.ndef()
249
- } else {
250
- $oldvalu = $oldcpe.repr()
251
- $newvalu = $newcpe.repr()
252
- }
253
-
254
- for $n in $lib.model.migration.liftByPropValuNoNorm($form, $prop, $oldvalu) {
255
- yield $n
256
-
257
- if $isarray {
258
-
259
- // We can't just [ :$prop-=$oldvalu :$prop+=$newvalu ] because the norm() function gets called
260
- // on the array type deep down in the AST. So, instead, we have to operate on the whole array.
261
-
262
- $list = $lib.copy(:$prop)
263
- $list.rem($oldvalu, all=$lib.true)
264
-
265
- if (not $list.has($newvalu)) {
266
- $list.append($newvalu)
267
- }
268
-
269
- $lib.model.migration.setNodePropValuNoNorm($node, $prop, $list)
270
-
271
- } else {
272
- try {
273
- [ -:$prop :$prop=$newvalu ]
274
- } catch ReadOnlyProp as exc {
275
- // The property is readonly so we can only delete it
276
- $lib.log.warning(`{$form}:{$prop} is readonly, cannot modify. Storing node: {$node.repr()}`)
277
- $removeNode($node, $view.iden, $view.layers.0.iden)
278
- | delnode
279
-
280
- }
281
- }
282
- }
283
- }
284
- }
285
- }
286
-
287
- return()
288
- }
289
-
290
- // This is a separate function because I was getting weird bugs from scoping
291
- // issues. Mainly, the $view variable being overwritten because this code was
292
- // scoped to the whole script.
293
- function main() {
294
-
295
- for $view in $lib.view.list(deporder=$lib.true) {
296
-
297
- if (not $layers.has($view.layers.0.iden)) { continue }
298
-
299
- view.exec $view.iden {
300
-
301
- $layer = $lib.layer.get()
302
-
303
- for $oldcpe in $layer.liftByProp(it:sec:cpe) {
304
- $info = $lib.model.migration.s.itSecCpe_2_170_0_internal($oldcpe)
305
-
306
- if ($info.status = "success") {
307
- // No primary property changes, nothing to do. Node has been fully migrated.
308
- if (not $info.valu) {
309
- continue
310
- }
311
-
312
- /*
313
- * At this point, we have a node that can be fixed but
314
- * needs to be migrated to a new node because the primary
315
- * property needs to be changed. We'll create a new
316
- * (correct) node, and copy everything from the old node.
317
- * Then we complete the migration by iterating through
318
- * all the views to fix the references.
319
- */
320
-
321
- $lib.log.debug(`Migrating invalid it:sec:cpe node: {$oldcpe.repr()} -> {$info.valu}`)
322
-
323
- [ it:sec:cpe=$info.valu
324
- .seen ?= $oldcpe.props.".seen"
325
- ]
326
-
327
- $migrateCpeNode($oldcpe, $node)
328
-
329
- spin |
330
-
331
- yield $oldcpe |
332
- delnode --deledges --force
333
-
334
- } else {
335
-
336
- // Node could not be automatically migrated. Collect
337
- // critical information to eventually reconstruct this node
338
- // and store it in a queue.
339
-
340
- $removeNode($oldcpe, $view.iden, $view.layers.0.iden)
341
-
342
- yield $oldcpe |
343
- delnode --deledges --force
344
- }
345
- }
346
- }
347
- }
348
-
349
- return()
350
- }
351
-
352
- // Pre-cache the it:sec:cpe references
353
- $getRefInfo(it:sec:cpe)
354
-
355
- $main()