pyswordfish 3.0.4.0__cp312-cp312-win_amd64.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 (644) hide show
  1. pyswordfish-3.0.4.0.dist-info/METADATA +53 -0
  2. pyswordfish-3.0.4.0.dist-info/RECORD +644 -0
  3. pyswordfish-3.0.4.0.dist-info/WHEEL +5 -0
  4. pyswordfish-3.0.4.0.dist-info/top_level.txt +1 -0
  5. swordfish/__init__.py +102 -0
  6. swordfish/_config.py +901 -0
  7. swordfish/_connection.py +1418 -0
  8. swordfish/_core.py +17 -0
  9. swordfish/_engine.py +1456 -0
  10. swordfish/_enums.py +142 -0
  11. swordfish/_function_bindings.py +23594 -0
  12. swordfish/_function_tools.py +124 -0
  13. swordfish/_helper.py +57 -0
  14. swordfish/_runtime.py +158 -0
  15. swordfish/_sqlbuilder.py +549 -0
  16. swordfish/_streaming.py +333 -0
  17. swordfish/_swordfishcpp.cp312-win_amd64.pyd +0 -0
  18. swordfish/_swordfishcpp.pyi +4784 -0
  19. swordfish/_translator.py +580 -0
  20. swordfish/asset/dolphindb.dos +71 -0
  21. swordfish/asset/tzdb/Africa/Abidjan +0 -0
  22. swordfish/asset/tzdb/Africa/Accra +0 -0
  23. swordfish/asset/tzdb/Africa/Addis_Ababa +0 -0
  24. swordfish/asset/tzdb/Africa/Algiers +0 -0
  25. swordfish/asset/tzdb/Africa/Asmara +0 -0
  26. swordfish/asset/tzdb/Africa/Asmera +0 -0
  27. swordfish/asset/tzdb/Africa/Bamako +0 -0
  28. swordfish/asset/tzdb/Africa/Bangui +0 -0
  29. swordfish/asset/tzdb/Africa/Banjul +0 -0
  30. swordfish/asset/tzdb/Africa/Bissau +0 -0
  31. swordfish/asset/tzdb/Africa/Blantyre +0 -0
  32. swordfish/asset/tzdb/Africa/Brazzaville +0 -0
  33. swordfish/asset/tzdb/Africa/Bujumbura +0 -0
  34. swordfish/asset/tzdb/Africa/Cairo +0 -0
  35. swordfish/asset/tzdb/Africa/Casablanca +0 -0
  36. swordfish/asset/tzdb/Africa/Ceuta +0 -0
  37. swordfish/asset/tzdb/Africa/Conakry +0 -0
  38. swordfish/asset/tzdb/Africa/Dakar +0 -0
  39. swordfish/asset/tzdb/Africa/Dar_es_Salaam +0 -0
  40. swordfish/asset/tzdb/Africa/Djibouti +0 -0
  41. swordfish/asset/tzdb/Africa/Douala +0 -0
  42. swordfish/asset/tzdb/Africa/El_Aaiun +0 -0
  43. swordfish/asset/tzdb/Africa/Freetown +0 -0
  44. swordfish/asset/tzdb/Africa/Gaborone +0 -0
  45. swordfish/asset/tzdb/Africa/Harare +0 -0
  46. swordfish/asset/tzdb/Africa/Johannesburg +0 -0
  47. swordfish/asset/tzdb/Africa/Juba +0 -0
  48. swordfish/asset/tzdb/Africa/Kampala +0 -0
  49. swordfish/asset/tzdb/Africa/Khartoum +0 -0
  50. swordfish/asset/tzdb/Africa/Kigali +0 -0
  51. swordfish/asset/tzdb/Africa/Kinshasa +0 -0
  52. swordfish/asset/tzdb/Africa/Lagos +0 -0
  53. swordfish/asset/tzdb/Africa/Libreville +0 -0
  54. swordfish/asset/tzdb/Africa/Lome +0 -0
  55. swordfish/asset/tzdb/Africa/Luanda +0 -0
  56. swordfish/asset/tzdb/Africa/Lubumbashi +0 -0
  57. swordfish/asset/tzdb/Africa/Lusaka +0 -0
  58. swordfish/asset/tzdb/Africa/Malabo +0 -0
  59. swordfish/asset/tzdb/Africa/Maputo +0 -0
  60. swordfish/asset/tzdb/Africa/Maseru +0 -0
  61. swordfish/asset/tzdb/Africa/Mbabane +0 -0
  62. swordfish/asset/tzdb/Africa/Mogadishu +0 -0
  63. swordfish/asset/tzdb/Africa/Monrovia +0 -0
  64. swordfish/asset/tzdb/Africa/Nairobi +0 -0
  65. swordfish/asset/tzdb/Africa/Ndjamena +0 -0
  66. swordfish/asset/tzdb/Africa/Niamey +0 -0
  67. swordfish/asset/tzdb/Africa/Nouakchott +0 -0
  68. swordfish/asset/tzdb/Africa/Ouagadougou +0 -0
  69. swordfish/asset/tzdb/Africa/Porto-Novo +0 -0
  70. swordfish/asset/tzdb/Africa/Sao_Tome +0 -0
  71. swordfish/asset/tzdb/Africa/Timbuktu +0 -0
  72. swordfish/asset/tzdb/Africa/Tripoli +0 -0
  73. swordfish/asset/tzdb/Africa/Tunis +0 -0
  74. swordfish/asset/tzdb/Africa/Windhoek +0 -0
  75. swordfish/asset/tzdb/America/Adak +0 -0
  76. swordfish/asset/tzdb/America/Anchorage +0 -0
  77. swordfish/asset/tzdb/America/Anguilla +0 -0
  78. swordfish/asset/tzdb/America/Antigua +0 -0
  79. swordfish/asset/tzdb/America/Araguaina +0 -0
  80. swordfish/asset/tzdb/America/Argentina/Buenos_Aires +0 -0
  81. swordfish/asset/tzdb/America/Argentina/Catamarca +0 -0
  82. swordfish/asset/tzdb/America/Argentina/ComodRivadavia +0 -0
  83. swordfish/asset/tzdb/America/Argentina/Cordoba +0 -0
  84. swordfish/asset/tzdb/America/Argentina/Jujuy +0 -0
  85. swordfish/asset/tzdb/America/Argentina/La_Rioja +0 -0
  86. swordfish/asset/tzdb/America/Argentina/Mendoza +0 -0
  87. swordfish/asset/tzdb/America/Argentina/Rio_Gallegos +0 -0
  88. swordfish/asset/tzdb/America/Argentina/Salta +0 -0
  89. swordfish/asset/tzdb/America/Argentina/San_Juan +0 -0
  90. swordfish/asset/tzdb/America/Argentina/San_Luis +0 -0
  91. swordfish/asset/tzdb/America/Argentina/Tucuman +0 -0
  92. swordfish/asset/tzdb/America/Argentina/Ushuaia +0 -0
  93. swordfish/asset/tzdb/America/Aruba +0 -0
  94. swordfish/asset/tzdb/America/Asuncion +0 -0
  95. swordfish/asset/tzdb/America/Atikokan +0 -0
  96. swordfish/asset/tzdb/America/Atka +0 -0
  97. swordfish/asset/tzdb/America/Bahia +0 -0
  98. swordfish/asset/tzdb/America/Bahia_Banderas +0 -0
  99. swordfish/asset/tzdb/America/Barbados +0 -0
  100. swordfish/asset/tzdb/America/Belem +0 -0
  101. swordfish/asset/tzdb/America/Belize +0 -0
  102. swordfish/asset/tzdb/America/Blanc-Sablon +0 -0
  103. swordfish/asset/tzdb/America/Boa_Vista +0 -0
  104. swordfish/asset/tzdb/America/Bogota +0 -0
  105. swordfish/asset/tzdb/America/Boise +0 -0
  106. swordfish/asset/tzdb/America/Buenos_Aires +0 -0
  107. swordfish/asset/tzdb/America/Cambridge_Bay +0 -0
  108. swordfish/asset/tzdb/America/Campo_Grande +0 -0
  109. swordfish/asset/tzdb/America/Cancun +0 -0
  110. swordfish/asset/tzdb/America/Caracas +0 -0
  111. swordfish/asset/tzdb/America/Catamarca +0 -0
  112. swordfish/asset/tzdb/America/Cayenne +0 -0
  113. swordfish/asset/tzdb/America/Cayman +0 -0
  114. swordfish/asset/tzdb/America/Chicago +0 -0
  115. swordfish/asset/tzdb/America/Chihuahua +0 -0
  116. swordfish/asset/tzdb/America/Coral_Harbour +0 -0
  117. swordfish/asset/tzdb/America/Cordoba +0 -0
  118. swordfish/asset/tzdb/America/Costa_Rica +0 -0
  119. swordfish/asset/tzdb/America/Creston +0 -0
  120. swordfish/asset/tzdb/America/Cuiaba +0 -0
  121. swordfish/asset/tzdb/America/Curacao +0 -0
  122. swordfish/asset/tzdb/America/Danmarkshavn +0 -0
  123. swordfish/asset/tzdb/America/Dawson +0 -0
  124. swordfish/asset/tzdb/America/Dawson_Creek +0 -0
  125. swordfish/asset/tzdb/America/Denver +0 -0
  126. swordfish/asset/tzdb/America/Detroit +0 -0
  127. swordfish/asset/tzdb/America/Dominica +0 -0
  128. swordfish/asset/tzdb/America/Edmonton +0 -0
  129. swordfish/asset/tzdb/America/Eirunepe +0 -0
  130. swordfish/asset/tzdb/America/El_Salvador +0 -0
  131. swordfish/asset/tzdb/America/Ensenada +0 -0
  132. swordfish/asset/tzdb/America/Fort_Nelson +0 -0
  133. swordfish/asset/tzdb/America/Fort_Wayne +0 -0
  134. swordfish/asset/tzdb/America/Fortaleza +0 -0
  135. swordfish/asset/tzdb/America/Glace_Bay +0 -0
  136. swordfish/asset/tzdb/America/Godthab +0 -0
  137. swordfish/asset/tzdb/America/Goose_Bay +0 -0
  138. swordfish/asset/tzdb/America/Grand_Turk +0 -0
  139. swordfish/asset/tzdb/America/Grenada +0 -0
  140. swordfish/asset/tzdb/America/Guadeloupe +0 -0
  141. swordfish/asset/tzdb/America/Guatemala +0 -0
  142. swordfish/asset/tzdb/America/Guayaquil +0 -0
  143. swordfish/asset/tzdb/America/Guyana +0 -0
  144. swordfish/asset/tzdb/America/Halifax +0 -0
  145. swordfish/asset/tzdb/America/Havana +0 -0
  146. swordfish/asset/tzdb/America/Hermosillo +0 -0
  147. swordfish/asset/tzdb/America/Indiana/Indianapolis +0 -0
  148. swordfish/asset/tzdb/America/Indiana/Knox +0 -0
  149. swordfish/asset/tzdb/America/Indiana/Marengo +0 -0
  150. swordfish/asset/tzdb/America/Indiana/Petersburg +0 -0
  151. swordfish/asset/tzdb/America/Indiana/Tell_City +0 -0
  152. swordfish/asset/tzdb/America/Indiana/Vevay +0 -0
  153. swordfish/asset/tzdb/America/Indiana/Vincennes +0 -0
  154. swordfish/asset/tzdb/America/Indiana/Winamac +0 -0
  155. swordfish/asset/tzdb/America/Indianapolis +0 -0
  156. swordfish/asset/tzdb/America/Inuvik +0 -0
  157. swordfish/asset/tzdb/America/Iqaluit +0 -0
  158. swordfish/asset/tzdb/America/Jamaica +0 -0
  159. swordfish/asset/tzdb/America/Jujuy +0 -0
  160. swordfish/asset/tzdb/America/Juneau +0 -0
  161. swordfish/asset/tzdb/America/Kentucky/Louisville +0 -0
  162. swordfish/asset/tzdb/America/Kentucky/Monticello +0 -0
  163. swordfish/asset/tzdb/America/Knox_IN +0 -0
  164. swordfish/asset/tzdb/America/Kralendijk +0 -0
  165. swordfish/asset/tzdb/America/La_Paz +0 -0
  166. swordfish/asset/tzdb/America/Lima +0 -0
  167. swordfish/asset/tzdb/America/Los_Angeles +0 -0
  168. swordfish/asset/tzdb/America/Louisville +0 -0
  169. swordfish/asset/tzdb/America/Lower_Princes +0 -0
  170. swordfish/asset/tzdb/America/Maceio +0 -0
  171. swordfish/asset/tzdb/America/Managua +0 -0
  172. swordfish/asset/tzdb/America/Manaus +0 -0
  173. swordfish/asset/tzdb/America/Marigot +0 -0
  174. swordfish/asset/tzdb/America/Martinique +0 -0
  175. swordfish/asset/tzdb/America/Matamoros +0 -0
  176. swordfish/asset/tzdb/America/Mazatlan +0 -0
  177. swordfish/asset/tzdb/America/Mendoza +0 -0
  178. swordfish/asset/tzdb/America/Menominee +0 -0
  179. swordfish/asset/tzdb/America/Merida +0 -0
  180. swordfish/asset/tzdb/America/Metlakatla +0 -0
  181. swordfish/asset/tzdb/America/Mexico_City +0 -0
  182. swordfish/asset/tzdb/America/Miquelon +0 -0
  183. swordfish/asset/tzdb/America/Moncton +0 -0
  184. swordfish/asset/tzdb/America/Monterrey +0 -0
  185. swordfish/asset/tzdb/America/Montevideo +0 -0
  186. swordfish/asset/tzdb/America/Montreal +0 -0
  187. swordfish/asset/tzdb/America/Montserrat +0 -0
  188. swordfish/asset/tzdb/America/Nassau +0 -0
  189. swordfish/asset/tzdb/America/New_York +0 -0
  190. swordfish/asset/tzdb/America/Nipigon +0 -0
  191. swordfish/asset/tzdb/America/Nome +0 -0
  192. swordfish/asset/tzdb/America/Noronha +0 -0
  193. swordfish/asset/tzdb/America/North_Dakota/Beulah +0 -0
  194. swordfish/asset/tzdb/America/North_Dakota/Center +0 -0
  195. swordfish/asset/tzdb/America/North_Dakota/New_Salem +0 -0
  196. swordfish/asset/tzdb/America/Ojinaga +0 -0
  197. swordfish/asset/tzdb/America/Panama +0 -0
  198. swordfish/asset/tzdb/America/Pangnirtung +0 -0
  199. swordfish/asset/tzdb/America/Paramaribo +0 -0
  200. swordfish/asset/tzdb/America/Phoenix +0 -0
  201. swordfish/asset/tzdb/America/Port-au-Prince +0 -0
  202. swordfish/asset/tzdb/America/Port_of_Spain +0 -0
  203. swordfish/asset/tzdb/America/Porto_Acre +0 -0
  204. swordfish/asset/tzdb/America/Porto_Velho +0 -0
  205. swordfish/asset/tzdb/America/Puerto_Rico +0 -0
  206. swordfish/asset/tzdb/America/Punta_Arenas +0 -0
  207. swordfish/asset/tzdb/America/Rainy_River +0 -0
  208. swordfish/asset/tzdb/America/Rankin_Inlet +0 -0
  209. swordfish/asset/tzdb/America/Recife +0 -0
  210. swordfish/asset/tzdb/America/Regina +0 -0
  211. swordfish/asset/tzdb/America/Resolute +0 -0
  212. swordfish/asset/tzdb/America/Rio_Branco +0 -0
  213. swordfish/asset/tzdb/America/Rosario +0 -0
  214. swordfish/asset/tzdb/America/Santa_Isabel +0 -0
  215. swordfish/asset/tzdb/America/Santarem +0 -0
  216. swordfish/asset/tzdb/America/Santiago +0 -0
  217. swordfish/asset/tzdb/America/Santo_Domingo +0 -0
  218. swordfish/asset/tzdb/America/Sao_Paulo +0 -0
  219. swordfish/asset/tzdb/America/Scoresbysund +0 -0
  220. swordfish/asset/tzdb/America/Shiprock +0 -0
  221. swordfish/asset/tzdb/America/Sitka +0 -0
  222. swordfish/asset/tzdb/America/St_Barthelemy +0 -0
  223. swordfish/asset/tzdb/America/St_Johns +0 -0
  224. swordfish/asset/tzdb/America/St_Kitts +0 -0
  225. swordfish/asset/tzdb/America/St_Lucia +0 -0
  226. swordfish/asset/tzdb/America/St_Thomas +0 -0
  227. swordfish/asset/tzdb/America/St_Vincent +0 -0
  228. swordfish/asset/tzdb/America/Swift_Current +0 -0
  229. swordfish/asset/tzdb/America/Tegucigalpa +0 -0
  230. swordfish/asset/tzdb/America/Thule +0 -0
  231. swordfish/asset/tzdb/America/Thunder_Bay +0 -0
  232. swordfish/asset/tzdb/America/Tijuana +0 -0
  233. swordfish/asset/tzdb/America/Toronto +0 -0
  234. swordfish/asset/tzdb/America/Tortola +0 -0
  235. swordfish/asset/tzdb/America/Vancouver +0 -0
  236. swordfish/asset/tzdb/America/Virgin +0 -0
  237. swordfish/asset/tzdb/America/Whitehorse +0 -0
  238. swordfish/asset/tzdb/America/Winnipeg +0 -0
  239. swordfish/asset/tzdb/America/Yakutat +0 -0
  240. swordfish/asset/tzdb/America/Yellowknife +0 -0
  241. swordfish/asset/tzdb/Antarctica/Casey +0 -0
  242. swordfish/asset/tzdb/Antarctica/Davis +0 -0
  243. swordfish/asset/tzdb/Antarctica/DumontDUrville +0 -0
  244. swordfish/asset/tzdb/Antarctica/Macquarie +0 -0
  245. swordfish/asset/tzdb/Antarctica/Mawson +0 -0
  246. swordfish/asset/tzdb/Antarctica/McMurdo +0 -0
  247. swordfish/asset/tzdb/Antarctica/Palmer +0 -0
  248. swordfish/asset/tzdb/Antarctica/Rothera +0 -0
  249. swordfish/asset/tzdb/Antarctica/South_Pole +0 -0
  250. swordfish/asset/tzdb/Antarctica/Syowa +0 -0
  251. swordfish/asset/tzdb/Antarctica/Troll +0 -0
  252. swordfish/asset/tzdb/Antarctica/Vostok +0 -0
  253. swordfish/asset/tzdb/Arctic/Longyearbyen +0 -0
  254. swordfish/asset/tzdb/Asia/Aden +0 -0
  255. swordfish/asset/tzdb/Asia/Almaty +0 -0
  256. swordfish/asset/tzdb/Asia/Amman +0 -0
  257. swordfish/asset/tzdb/Asia/Anadyr +0 -0
  258. swordfish/asset/tzdb/Asia/Aqtau +0 -0
  259. swordfish/asset/tzdb/Asia/Aqtobe +0 -0
  260. swordfish/asset/tzdb/Asia/Ashgabat +0 -0
  261. swordfish/asset/tzdb/Asia/Ashkhabad +0 -0
  262. swordfish/asset/tzdb/Asia/Atyrau +0 -0
  263. swordfish/asset/tzdb/Asia/Baghdad +0 -0
  264. swordfish/asset/tzdb/Asia/Bahrain +0 -0
  265. swordfish/asset/tzdb/Asia/Baku +0 -0
  266. swordfish/asset/tzdb/Asia/Bangkok +0 -0
  267. swordfish/asset/tzdb/Asia/Barnaul +0 -0
  268. swordfish/asset/tzdb/Asia/Beirut +0 -0
  269. swordfish/asset/tzdb/Asia/Bishkek +0 -0
  270. swordfish/asset/tzdb/Asia/Brunei +0 -0
  271. swordfish/asset/tzdb/Asia/Calcutta +0 -0
  272. swordfish/asset/tzdb/Asia/Chita +0 -0
  273. swordfish/asset/tzdb/Asia/Choibalsan +0 -0
  274. swordfish/asset/tzdb/Asia/Chongqing +0 -0
  275. swordfish/asset/tzdb/Asia/Chungking +0 -0
  276. swordfish/asset/tzdb/Asia/Colombo +0 -0
  277. swordfish/asset/tzdb/Asia/Dacca +0 -0
  278. swordfish/asset/tzdb/Asia/Damascus +0 -0
  279. swordfish/asset/tzdb/Asia/Dhaka +0 -0
  280. swordfish/asset/tzdb/Asia/Dili +0 -0
  281. swordfish/asset/tzdb/Asia/Dubai +0 -0
  282. swordfish/asset/tzdb/Asia/Dushanbe +0 -0
  283. swordfish/asset/tzdb/Asia/Famagusta +0 -0
  284. swordfish/asset/tzdb/Asia/Gaza +0 -0
  285. swordfish/asset/tzdb/Asia/Harbin +0 -0
  286. swordfish/asset/tzdb/Asia/Hebron +0 -0
  287. swordfish/asset/tzdb/Asia/Ho_Chi_Minh +0 -0
  288. swordfish/asset/tzdb/Asia/Hong_Kong +0 -0
  289. swordfish/asset/tzdb/Asia/Hovd +0 -0
  290. swordfish/asset/tzdb/Asia/Irkutsk +0 -0
  291. swordfish/asset/tzdb/Asia/Istanbul +0 -0
  292. swordfish/asset/tzdb/Asia/Jakarta +0 -0
  293. swordfish/asset/tzdb/Asia/Jayapura +0 -0
  294. swordfish/asset/tzdb/Asia/Jerusalem +0 -0
  295. swordfish/asset/tzdb/Asia/Kabul +0 -0
  296. swordfish/asset/tzdb/Asia/Kamchatka +0 -0
  297. swordfish/asset/tzdb/Asia/Karachi +0 -0
  298. swordfish/asset/tzdb/Asia/Kashgar +0 -0
  299. swordfish/asset/tzdb/Asia/Kathmandu +0 -0
  300. swordfish/asset/tzdb/Asia/Katmandu +0 -0
  301. swordfish/asset/tzdb/Asia/Khandyga +0 -0
  302. swordfish/asset/tzdb/Asia/Kolkata +0 -0
  303. swordfish/asset/tzdb/Asia/Krasnoyarsk +0 -0
  304. swordfish/asset/tzdb/Asia/Kuala_Lumpur +0 -0
  305. swordfish/asset/tzdb/Asia/Kuching +0 -0
  306. swordfish/asset/tzdb/Asia/Kuwait +0 -0
  307. swordfish/asset/tzdb/Asia/Macao +0 -0
  308. swordfish/asset/tzdb/Asia/Macau +0 -0
  309. swordfish/asset/tzdb/Asia/Magadan +0 -0
  310. swordfish/asset/tzdb/Asia/Makassar +0 -0
  311. swordfish/asset/tzdb/Asia/Manila +0 -0
  312. swordfish/asset/tzdb/Asia/Muscat +0 -0
  313. swordfish/asset/tzdb/Asia/Nicosia +0 -0
  314. swordfish/asset/tzdb/Asia/Novokuznetsk +0 -0
  315. swordfish/asset/tzdb/Asia/Novosibirsk +0 -0
  316. swordfish/asset/tzdb/Asia/Omsk +0 -0
  317. swordfish/asset/tzdb/Asia/Oral +0 -0
  318. swordfish/asset/tzdb/Asia/Phnom_Penh +0 -0
  319. swordfish/asset/tzdb/Asia/Pontianak +0 -0
  320. swordfish/asset/tzdb/Asia/Pyongyang +0 -0
  321. swordfish/asset/tzdb/Asia/Qatar +0 -0
  322. swordfish/asset/tzdb/Asia/Qyzylorda +0 -0
  323. swordfish/asset/tzdb/Asia/Rangoon +0 -0
  324. swordfish/asset/tzdb/Asia/Riyadh +0 -0
  325. swordfish/asset/tzdb/Asia/Saigon +0 -0
  326. swordfish/asset/tzdb/Asia/Sakhalin +0 -0
  327. swordfish/asset/tzdb/Asia/Samarkand +0 -0
  328. swordfish/asset/tzdb/Asia/Seoul +0 -0
  329. swordfish/asset/tzdb/Asia/Shanghai +0 -0
  330. swordfish/asset/tzdb/Asia/Singapore +0 -0
  331. swordfish/asset/tzdb/Asia/Srednekolymsk +0 -0
  332. swordfish/asset/tzdb/Asia/Taipei +0 -0
  333. swordfish/asset/tzdb/Asia/Tashkent +0 -0
  334. swordfish/asset/tzdb/Asia/Tbilisi +0 -0
  335. swordfish/asset/tzdb/Asia/Tehran +0 -0
  336. swordfish/asset/tzdb/Asia/Tel_Aviv +0 -0
  337. swordfish/asset/tzdb/Asia/Thimbu +0 -0
  338. swordfish/asset/tzdb/Asia/Thimphu +0 -0
  339. swordfish/asset/tzdb/Asia/Tokyo +0 -0
  340. swordfish/asset/tzdb/Asia/Tomsk +0 -0
  341. swordfish/asset/tzdb/Asia/Ujung_Pandang +0 -0
  342. swordfish/asset/tzdb/Asia/Ulaanbaatar +0 -0
  343. swordfish/asset/tzdb/Asia/Ulan_Bator +0 -0
  344. swordfish/asset/tzdb/Asia/Urumqi +0 -0
  345. swordfish/asset/tzdb/Asia/Ust-Nera +0 -0
  346. swordfish/asset/tzdb/Asia/Vientiane +0 -0
  347. swordfish/asset/tzdb/Asia/Vladivostok +0 -0
  348. swordfish/asset/tzdb/Asia/Yakutsk +0 -0
  349. swordfish/asset/tzdb/Asia/Yangon +0 -0
  350. swordfish/asset/tzdb/Asia/Yekaterinburg +0 -0
  351. swordfish/asset/tzdb/Asia/Yerevan +0 -0
  352. swordfish/asset/tzdb/Atlantic/Azores +0 -0
  353. swordfish/asset/tzdb/Atlantic/Bermuda +0 -0
  354. swordfish/asset/tzdb/Atlantic/Canary +0 -0
  355. swordfish/asset/tzdb/Atlantic/Cape_Verde +0 -0
  356. swordfish/asset/tzdb/Atlantic/Faeroe +0 -0
  357. swordfish/asset/tzdb/Atlantic/Faroe +0 -0
  358. swordfish/asset/tzdb/Atlantic/Jan_Mayen +0 -0
  359. swordfish/asset/tzdb/Atlantic/Madeira +0 -0
  360. swordfish/asset/tzdb/Atlantic/Reykjavik +0 -0
  361. swordfish/asset/tzdb/Atlantic/South_Georgia +0 -0
  362. swordfish/asset/tzdb/Atlantic/St_Helena +0 -0
  363. swordfish/asset/tzdb/Atlantic/Stanley +0 -0
  364. swordfish/asset/tzdb/Australia/ACT +0 -0
  365. swordfish/asset/tzdb/Australia/Adelaide +0 -0
  366. swordfish/asset/tzdb/Australia/Brisbane +0 -0
  367. swordfish/asset/tzdb/Australia/Broken_Hill +0 -0
  368. swordfish/asset/tzdb/Australia/Canberra +0 -0
  369. swordfish/asset/tzdb/Australia/Currie +0 -0
  370. swordfish/asset/tzdb/Australia/Darwin +0 -0
  371. swordfish/asset/tzdb/Australia/Eucla +0 -0
  372. swordfish/asset/tzdb/Australia/Hobart +0 -0
  373. swordfish/asset/tzdb/Australia/LHI +0 -0
  374. swordfish/asset/tzdb/Australia/Lindeman +0 -0
  375. swordfish/asset/tzdb/Australia/Lord_Howe +0 -0
  376. swordfish/asset/tzdb/Australia/Melbourne +0 -0
  377. swordfish/asset/tzdb/Australia/NSW +0 -0
  378. swordfish/asset/tzdb/Australia/North +0 -0
  379. swordfish/asset/tzdb/Australia/Perth +0 -0
  380. swordfish/asset/tzdb/Australia/Queensland +0 -0
  381. swordfish/asset/tzdb/Australia/South +0 -0
  382. swordfish/asset/tzdb/Australia/Sydney +0 -0
  383. swordfish/asset/tzdb/Australia/Tasmania +0 -0
  384. swordfish/asset/tzdb/Australia/Victoria +0 -0
  385. swordfish/asset/tzdb/Australia/West +0 -0
  386. swordfish/asset/tzdb/Australia/Yancowinna +0 -0
  387. swordfish/asset/tzdb/Brazil/Acre +0 -0
  388. swordfish/asset/tzdb/Brazil/DeNoronha +0 -0
  389. swordfish/asset/tzdb/Brazil/East +0 -0
  390. swordfish/asset/tzdb/Brazil/West +0 -0
  391. swordfish/asset/tzdb/CET +0 -0
  392. swordfish/asset/tzdb/CST6CDT +0 -0
  393. swordfish/asset/tzdb/Canada/Atlantic +0 -0
  394. swordfish/asset/tzdb/Canada/Central +0 -0
  395. swordfish/asset/tzdb/Canada/Eastern +0 -0
  396. swordfish/asset/tzdb/Canada/Mountain +0 -0
  397. swordfish/asset/tzdb/Canada/Newfoundland +0 -0
  398. swordfish/asset/tzdb/Canada/Pacific +0 -0
  399. swordfish/asset/tzdb/Canada/Saskatchewan +0 -0
  400. swordfish/asset/tzdb/Canada/Yukon +0 -0
  401. swordfish/asset/tzdb/Chile/Continental +0 -0
  402. swordfish/asset/tzdb/Chile/EasterIsland +0 -0
  403. swordfish/asset/tzdb/Cuba +0 -0
  404. swordfish/asset/tzdb/EET +0 -0
  405. swordfish/asset/tzdb/EST +0 -0
  406. swordfish/asset/tzdb/EST5EDT +0 -0
  407. swordfish/asset/tzdb/Egypt +0 -0
  408. swordfish/asset/tzdb/Eire +0 -0
  409. swordfish/asset/tzdb/Etc/GMT +0 -0
  410. swordfish/asset/tzdb/Etc/GMT+0 +0 -0
  411. swordfish/asset/tzdb/Etc/GMT+1 +0 -0
  412. swordfish/asset/tzdb/Etc/GMT+10 +0 -0
  413. swordfish/asset/tzdb/Etc/GMT+11 +0 -0
  414. swordfish/asset/tzdb/Etc/GMT+12 +0 -0
  415. swordfish/asset/tzdb/Etc/GMT+2 +0 -0
  416. swordfish/asset/tzdb/Etc/GMT+3 +0 -0
  417. swordfish/asset/tzdb/Etc/GMT+4 +0 -0
  418. swordfish/asset/tzdb/Etc/GMT+5 +0 -0
  419. swordfish/asset/tzdb/Etc/GMT+6 +0 -0
  420. swordfish/asset/tzdb/Etc/GMT+7 +0 -0
  421. swordfish/asset/tzdb/Etc/GMT+8 +0 -0
  422. swordfish/asset/tzdb/Etc/GMT+9 +0 -0
  423. swordfish/asset/tzdb/Etc/GMT-0 +0 -0
  424. swordfish/asset/tzdb/Etc/GMT-1 +0 -0
  425. swordfish/asset/tzdb/Etc/GMT-10 +0 -0
  426. swordfish/asset/tzdb/Etc/GMT-11 +0 -0
  427. swordfish/asset/tzdb/Etc/GMT-12 +0 -0
  428. swordfish/asset/tzdb/Etc/GMT-13 +0 -0
  429. swordfish/asset/tzdb/Etc/GMT-14 +0 -0
  430. swordfish/asset/tzdb/Etc/GMT-2 +0 -0
  431. swordfish/asset/tzdb/Etc/GMT-3 +0 -0
  432. swordfish/asset/tzdb/Etc/GMT-4 +0 -0
  433. swordfish/asset/tzdb/Etc/GMT-5 +0 -0
  434. swordfish/asset/tzdb/Etc/GMT-6 +0 -0
  435. swordfish/asset/tzdb/Etc/GMT-7 +0 -0
  436. swordfish/asset/tzdb/Etc/GMT-8 +0 -0
  437. swordfish/asset/tzdb/Etc/GMT-9 +0 -0
  438. swordfish/asset/tzdb/Etc/GMT0 +0 -0
  439. swordfish/asset/tzdb/Etc/Greenwich +0 -0
  440. swordfish/asset/tzdb/Etc/UCT +0 -0
  441. swordfish/asset/tzdb/Etc/UTC +0 -0
  442. swordfish/asset/tzdb/Etc/Universal +0 -0
  443. swordfish/asset/tzdb/Etc/Zulu +0 -0
  444. swordfish/asset/tzdb/Europe/Amsterdam +0 -0
  445. swordfish/asset/tzdb/Europe/Andorra +0 -0
  446. swordfish/asset/tzdb/Europe/Astrakhan +0 -0
  447. swordfish/asset/tzdb/Europe/Athens +0 -0
  448. swordfish/asset/tzdb/Europe/Belfast +0 -0
  449. swordfish/asset/tzdb/Europe/Belgrade +0 -0
  450. swordfish/asset/tzdb/Europe/Berlin +0 -0
  451. swordfish/asset/tzdb/Europe/Bratislava +0 -0
  452. swordfish/asset/tzdb/Europe/Brussels +0 -0
  453. swordfish/asset/tzdb/Europe/Bucharest +0 -0
  454. swordfish/asset/tzdb/Europe/Budapest +0 -0
  455. swordfish/asset/tzdb/Europe/Busingen +0 -0
  456. swordfish/asset/tzdb/Europe/Chisinau +0 -0
  457. swordfish/asset/tzdb/Europe/Copenhagen +0 -0
  458. swordfish/asset/tzdb/Europe/Dublin +0 -0
  459. swordfish/asset/tzdb/Europe/Gibraltar +0 -0
  460. swordfish/asset/tzdb/Europe/Guernsey +0 -0
  461. swordfish/asset/tzdb/Europe/Helsinki +0 -0
  462. swordfish/asset/tzdb/Europe/Isle_of_Man +0 -0
  463. swordfish/asset/tzdb/Europe/Istanbul +0 -0
  464. swordfish/asset/tzdb/Europe/Jersey +0 -0
  465. swordfish/asset/tzdb/Europe/Kaliningrad +0 -0
  466. swordfish/asset/tzdb/Europe/Kiev +0 -0
  467. swordfish/asset/tzdb/Europe/Kirov +0 -0
  468. swordfish/asset/tzdb/Europe/Lisbon +0 -0
  469. swordfish/asset/tzdb/Europe/Ljubljana +0 -0
  470. swordfish/asset/tzdb/Europe/London +0 -0
  471. swordfish/asset/tzdb/Europe/Luxembourg +0 -0
  472. swordfish/asset/tzdb/Europe/Madrid +0 -0
  473. swordfish/asset/tzdb/Europe/Malta +0 -0
  474. swordfish/asset/tzdb/Europe/Mariehamn +0 -0
  475. swordfish/asset/tzdb/Europe/Minsk +0 -0
  476. swordfish/asset/tzdb/Europe/Monaco +0 -0
  477. swordfish/asset/tzdb/Europe/Moscow +0 -0
  478. swordfish/asset/tzdb/Europe/Nicosia +0 -0
  479. swordfish/asset/tzdb/Europe/Oslo +0 -0
  480. swordfish/asset/tzdb/Europe/Paris +0 -0
  481. swordfish/asset/tzdb/Europe/Podgorica +0 -0
  482. swordfish/asset/tzdb/Europe/Prague +0 -0
  483. swordfish/asset/tzdb/Europe/Riga +0 -0
  484. swordfish/asset/tzdb/Europe/Rome +0 -0
  485. swordfish/asset/tzdb/Europe/Samara +0 -0
  486. swordfish/asset/tzdb/Europe/San_Marino +0 -0
  487. swordfish/asset/tzdb/Europe/Sarajevo +0 -0
  488. swordfish/asset/tzdb/Europe/Saratov +0 -0
  489. swordfish/asset/tzdb/Europe/Simferopol +0 -0
  490. swordfish/asset/tzdb/Europe/Skopje +0 -0
  491. swordfish/asset/tzdb/Europe/Sofia +0 -0
  492. swordfish/asset/tzdb/Europe/Stockholm +0 -0
  493. swordfish/asset/tzdb/Europe/Tallinn +0 -0
  494. swordfish/asset/tzdb/Europe/Tirane +0 -0
  495. swordfish/asset/tzdb/Europe/Tiraspol +0 -0
  496. swordfish/asset/tzdb/Europe/Ulyanovsk +0 -0
  497. swordfish/asset/tzdb/Europe/Uzhgorod +0 -0
  498. swordfish/asset/tzdb/Europe/Vaduz +0 -0
  499. swordfish/asset/tzdb/Europe/Vatican +0 -0
  500. swordfish/asset/tzdb/Europe/Vienna +0 -0
  501. swordfish/asset/tzdb/Europe/Vilnius +0 -0
  502. swordfish/asset/tzdb/Europe/Volgograd +0 -0
  503. swordfish/asset/tzdb/Europe/Warsaw +0 -0
  504. swordfish/asset/tzdb/Europe/Zagreb +0 -0
  505. swordfish/asset/tzdb/Europe/Zaporozhye +0 -0
  506. swordfish/asset/tzdb/Europe/Zurich +0 -0
  507. swordfish/asset/tzdb/Factory +0 -0
  508. swordfish/asset/tzdb/GB +0 -0
  509. swordfish/asset/tzdb/GB-Eire +0 -0
  510. swordfish/asset/tzdb/GMT +0 -0
  511. swordfish/asset/tzdb/GMT+0 +0 -0
  512. swordfish/asset/tzdb/GMT-0 +0 -0
  513. swordfish/asset/tzdb/GMT0 +0 -0
  514. swordfish/asset/tzdb/Greenwich +0 -0
  515. swordfish/asset/tzdb/HST +0 -0
  516. swordfish/asset/tzdb/Hongkong +0 -0
  517. swordfish/asset/tzdb/Iceland +0 -0
  518. swordfish/asset/tzdb/Indian/Antananarivo +0 -0
  519. swordfish/asset/tzdb/Indian/Chagos +0 -0
  520. swordfish/asset/tzdb/Indian/Christmas +0 -0
  521. swordfish/asset/tzdb/Indian/Cocos +0 -0
  522. swordfish/asset/tzdb/Indian/Comoro +0 -0
  523. swordfish/asset/tzdb/Indian/Kerguelen +0 -0
  524. swordfish/asset/tzdb/Indian/Mahe +0 -0
  525. swordfish/asset/tzdb/Indian/Maldives +0 -0
  526. swordfish/asset/tzdb/Indian/Mauritius +0 -0
  527. swordfish/asset/tzdb/Indian/Mayotte +0 -0
  528. swordfish/asset/tzdb/Indian/Reunion +0 -0
  529. swordfish/asset/tzdb/Iran +0 -0
  530. swordfish/asset/tzdb/Israel +0 -0
  531. swordfish/asset/tzdb/Jamaica +0 -0
  532. swordfish/asset/tzdb/Japan +0 -0
  533. swordfish/asset/tzdb/Kwajalein +0 -0
  534. swordfish/asset/tzdb/Libya +0 -0
  535. swordfish/asset/tzdb/MET +0 -0
  536. swordfish/asset/tzdb/MST +0 -0
  537. swordfish/asset/tzdb/MST7MDT +0 -0
  538. swordfish/asset/tzdb/Mexico/BajaNorte +0 -0
  539. swordfish/asset/tzdb/Mexico/BajaSur +0 -0
  540. swordfish/asset/tzdb/Mexico/General +0 -0
  541. swordfish/asset/tzdb/NZ +0 -0
  542. swordfish/asset/tzdb/NZ-CHAT +0 -0
  543. swordfish/asset/tzdb/Navajo +0 -0
  544. swordfish/asset/tzdb/PRC +0 -0
  545. swordfish/asset/tzdb/PST8PDT +0 -0
  546. swordfish/asset/tzdb/Pacific/Apia +0 -0
  547. swordfish/asset/tzdb/Pacific/Auckland +0 -0
  548. swordfish/asset/tzdb/Pacific/Bougainville +0 -0
  549. swordfish/asset/tzdb/Pacific/Chatham +0 -0
  550. swordfish/asset/tzdb/Pacific/Chuuk +0 -0
  551. swordfish/asset/tzdb/Pacific/Easter +0 -0
  552. swordfish/asset/tzdb/Pacific/Efate +0 -0
  553. swordfish/asset/tzdb/Pacific/Enderbury +0 -0
  554. swordfish/asset/tzdb/Pacific/Fakaofo +0 -0
  555. swordfish/asset/tzdb/Pacific/Fiji +0 -0
  556. swordfish/asset/tzdb/Pacific/Funafuti +0 -0
  557. swordfish/asset/tzdb/Pacific/Galapagos +0 -0
  558. swordfish/asset/tzdb/Pacific/Gambier +0 -0
  559. swordfish/asset/tzdb/Pacific/Guadalcanal +0 -0
  560. swordfish/asset/tzdb/Pacific/Guam +0 -0
  561. swordfish/asset/tzdb/Pacific/Honolulu +0 -0
  562. swordfish/asset/tzdb/Pacific/Johnston +0 -0
  563. swordfish/asset/tzdb/Pacific/Kiritimati +0 -0
  564. swordfish/asset/tzdb/Pacific/Kosrae +0 -0
  565. swordfish/asset/tzdb/Pacific/Kwajalein +0 -0
  566. swordfish/asset/tzdb/Pacific/Majuro +0 -0
  567. swordfish/asset/tzdb/Pacific/Marquesas +0 -0
  568. swordfish/asset/tzdb/Pacific/Midway +0 -0
  569. swordfish/asset/tzdb/Pacific/Nauru +0 -0
  570. swordfish/asset/tzdb/Pacific/Niue +0 -0
  571. swordfish/asset/tzdb/Pacific/Norfolk +0 -0
  572. swordfish/asset/tzdb/Pacific/Noumea +0 -0
  573. swordfish/asset/tzdb/Pacific/Pago_Pago +0 -0
  574. swordfish/asset/tzdb/Pacific/Palau +0 -0
  575. swordfish/asset/tzdb/Pacific/Pitcairn +0 -0
  576. swordfish/asset/tzdb/Pacific/Pohnpei +0 -0
  577. swordfish/asset/tzdb/Pacific/Ponape +0 -0
  578. swordfish/asset/tzdb/Pacific/Port_Moresby +0 -0
  579. swordfish/asset/tzdb/Pacific/Rarotonga +0 -0
  580. swordfish/asset/tzdb/Pacific/Saipan +0 -0
  581. swordfish/asset/tzdb/Pacific/Samoa +0 -0
  582. swordfish/asset/tzdb/Pacific/Tahiti +0 -0
  583. swordfish/asset/tzdb/Pacific/Tarawa +0 -0
  584. swordfish/asset/tzdb/Pacific/Tongatapu +0 -0
  585. swordfish/asset/tzdb/Pacific/Truk +0 -0
  586. swordfish/asset/tzdb/Pacific/Wake +0 -0
  587. swordfish/asset/tzdb/Pacific/Wallis +0 -0
  588. swordfish/asset/tzdb/Pacific/Yap +0 -0
  589. swordfish/asset/tzdb/Poland +0 -0
  590. swordfish/asset/tzdb/Portugal +0 -0
  591. swordfish/asset/tzdb/ROC +0 -0
  592. swordfish/asset/tzdb/ROK +0 -0
  593. swordfish/asset/tzdb/Singapore +0 -0
  594. swordfish/asset/tzdb/Turkey +0 -0
  595. swordfish/asset/tzdb/UCT +0 -0
  596. swordfish/asset/tzdb/US/Alaska +0 -0
  597. swordfish/asset/tzdb/US/Aleutian +0 -0
  598. swordfish/asset/tzdb/US/Arizona +0 -0
  599. swordfish/asset/tzdb/US/Central +0 -0
  600. swordfish/asset/tzdb/US/East-Indiana +0 -0
  601. swordfish/asset/tzdb/US/Eastern +0 -0
  602. swordfish/asset/tzdb/US/Hawaii +0 -0
  603. swordfish/asset/tzdb/US/Indiana-Starke +0 -0
  604. swordfish/asset/tzdb/US/Michigan +0 -0
  605. swordfish/asset/tzdb/US/Mountain +0 -0
  606. swordfish/asset/tzdb/US/Pacific +0 -0
  607. swordfish/asset/tzdb/US/Samoa +0 -0
  608. swordfish/asset/tzdb/UTC +0 -0
  609. swordfish/asset/tzdb/Universal +0 -0
  610. swordfish/asset/tzdb/W-SU +0 -0
  611. swordfish/asset/tzdb/WET +0 -0
  612. swordfish/asset/tzdb/Zulu +0 -0
  613. swordfish/asset/tzdb/iso3166.tab +274 -0
  614. swordfish/asset/tzdb/leapseconds +61 -0
  615. swordfish/asset/tzdb/posixrules +0 -0
  616. swordfish/asset/tzdb/tzdata.zi +4150 -0
  617. swordfish/asset/tzdb/tzmap_gen.py +27 -0
  618. swordfish/asset/tzdb/tzmapping +501 -0
  619. swordfish/asset/tzdb/windowsZones.xml +781 -0
  620. swordfish/asset/tzdb/zone.tab +448 -0
  621. swordfish/asset/tzdb/zone1970.tab +382 -0
  622. swordfish/connection.py +33 -0
  623. swordfish/data.py +806 -0
  624. swordfish/engine.py +28 -0
  625. swordfish/enums.py +32 -0
  626. swordfish/function.py +3 -0
  627. swordfish/infos.py +53 -0
  628. swordfish/io.py +11 -0
  629. swordfish/libSwordfish.dll +0 -0
  630. swordfish/libclucene-contribs-lib.dll +0 -0
  631. swordfish/libclucene-core.dll +0 -0
  632. swordfish/libclucene-shared.dll +0 -0
  633. swordfish/libgcc_s_seh-1.dll +0 -0
  634. swordfish/libstdc++-6.dll +0 -0
  635. swordfish/libwinpthread-1.dll +0 -0
  636. swordfish/module.py +57 -0
  637. swordfish/plugins/__init__.py +17 -0
  638. swordfish/plugins/backtest/__init__.py +38 -0
  639. swordfish/plugins/backtest/backtest.py +4228 -0
  640. swordfish/plugins/backtest/translator.py +820 -0
  641. swordfish/plugins/matching_engine_simulator.py +247 -0
  642. swordfish/streaming.py +19 -0
  643. swordfish/tools.py +71 -0
  644. swordfish/types.py +30 -0
@@ -0,0 +1,549 @@
1
+ from ._swordfishcpp import ( # type: ignore
2
+ MetaCode, Table, Constant, Duration, Pair,
3
+ ProgrammingError,
4
+ )
5
+
6
+ from . import (
7
+ function as sf_F,
8
+ connection as sf_conn,
9
+ data as sf_data,
10
+ )
11
+
12
+ from typing import Literal, List, Dict, Union, Any, Tuple, overload, Iterable
13
+
14
+
15
+ from enum import Enum
16
+
17
+ import abc
18
+
19
+
20
+ def _process_expr(expr: Union[MetaCode, str]):
21
+ if hasattr(expr, "__sf_constant__"):
22
+ expr = expr.__sf_constant__
23
+ if isinstance(expr, MetaCode):
24
+ return expr
25
+ if isinstance(expr, str):
26
+ return sf_conn.meta_code().parse(str(expr))
27
+ return sf_conn.meta_code().const(expr)
28
+
29
+
30
+ def _process_on_cols(on: Union[Iterable[str], str, None]):
31
+ if on is None:
32
+ return sf_data.DFLT
33
+ if isinstance(on, Iterable) and not isinstance(on, str):
34
+ return sf_data.vector([str(v) for v in on], type="STRING")
35
+ return sf_data.scalar(on, type="STRING")
36
+
37
+
38
+ class JOINKIND(Enum):
39
+ INNER_JOIN = 0
40
+ OUTER_JOIN = 1
41
+ LEFT_JOIN = 2
42
+ LEFT_SEMI_JOIN = 3
43
+ RIGHT_JOIN = 4
44
+ PREFIX_JOIN = 5
45
+ ASOF_JOIN = 6
46
+ FULL_JOIN = 7
47
+ WINDOW_JOIN = 8
48
+ SORT_EQUI_JOIN = 9
49
+ PREVAILING_WINDOW_JOIN = 10
50
+
51
+
52
+ class SQLBuilder:
53
+ def __init__(self, t):
54
+ self._t = t
55
+
56
+ def update(self, **kwargs: MetaCode) -> "StatementUPDATE":
57
+ return StatementUPDATE(self._t, **kwargs)
58
+
59
+ def select(self, *args: Union[MetaCode, str], **kwargs: Union[MetaCode, str]) -> "StatementSELECT":
60
+ return StatementSELECT(self._t, *args, **kwargs)
61
+
62
+ def delete(self) -> "StatementDELETE":
63
+ return StatementDELETE(self._t)
64
+
65
+ def inner_join(
66
+ self, right,
67
+ on: Union[Iterable[str], str] = None,
68
+ left_on: Union[Iterable[str], str] = None,
69
+ right_on: Union[Iterable[str], str] = None
70
+ ) -> MetaCode:
71
+ return self._join(
72
+ right, how="inner",
73
+ on=on, left_on=left_on, right_on=right_on,
74
+ )
75
+
76
+ equi_join = inner_join
77
+
78
+ def sort_equi_join(
79
+ self, right,
80
+ on: Union[Iterable[str], str] = None,
81
+ left_on: Union[Iterable[str], str] = None,
82
+ right_on: Union[Iterable[str], str] = None,
83
+ ) -> MetaCode:
84
+ return self._join(
85
+ right, how="sort_equi",
86
+ on=on, left_on=left_on, right_on=right_on,
87
+ )
88
+
89
+ def outer_join(self, right) -> MetaCode:
90
+ return self._join(right, how="outer")
91
+
92
+ cross_join = outer_join
93
+
94
+ def left_join(
95
+ self, right,
96
+ on: Union[Iterable[str], str] = None,
97
+ left_on: Union[Iterable[str], str] = None,
98
+ right_on: Union[Iterable[str], str] = None,
99
+ ) -> MetaCode:
100
+ return self._join(
101
+ right, how="left",
102
+ on=on, left_on=left_on, right_on=right_on,
103
+ )
104
+
105
+ def left_semi_join(
106
+ self, right,
107
+ on: Union[Iterable[str], str] = None,
108
+ left_on: Union[Iterable[str], str] = None,
109
+ right_on: Union[Iterable[str], str] = None,
110
+ ) -> MetaCode:
111
+ return self._join(
112
+ right, how="left_semi",
113
+ on=on, left_on=left_on, right_on=right_on,
114
+ )
115
+
116
+ def right_join(
117
+ self, left,
118
+ on: Union[Iterable[str], str] = None,
119
+ left_on: Union[Iterable[str], str] = None,
120
+ right_on: Union[Iterable[str], str] = None,
121
+ ) -> MetaCode:
122
+ return self._join(
123
+ left, how="right",
124
+ on=on, left_on=left_on, right_on=right_on,
125
+ )
126
+
127
+ def prefix_join(
128
+ self, right,
129
+ on: Union[Iterable[str], str] = None,
130
+ left_on: Union[Iterable[str], str] = None,
131
+ right_on: Union[Iterable[str], str] = None,
132
+ ) -> MetaCode:
133
+ return self._join(
134
+ right, how="prefix",
135
+ on=on, left_on=left_on, right_on=right_on
136
+ )
137
+
138
+ def asof_join(
139
+ self, right,
140
+ on: Union[Iterable[str], str] = None,
141
+ left_on: Union[Iterable[str], str] = None,
142
+ right_on: Union[Iterable[str], str] = None,
143
+ ) -> MetaCode:
144
+ return self._join(
145
+ right, how="asof",
146
+ on=on, left_on=left_on, right_on=right_on
147
+ )
148
+
149
+ def full_join(
150
+ self, right,
151
+ on: Union[Iterable[str], str] = None,
152
+ left_on: Union[Iterable[str], str] = None,
153
+ right_on: Union[Iterable[str], str] = None,
154
+ ) -> MetaCode:
155
+ return self._join(
156
+ right, how="full",
157
+ on=on, left_on=left_on, right_on=right_on
158
+ )
159
+
160
+ def window_join(
161
+ self, right,
162
+ window: Union[Tuple[int, int], Tuple[Duration, Duration], Pair] = None,
163
+ aggs: Union[List[MetaCode], MetaCode] = None,
164
+ on: Union[Iterable[str], str] = None,
165
+ left_on: Union[Iterable[str], str] = None,
166
+ right_on: Union[Iterable[str], str] = None,
167
+ ) -> MetaCode:
168
+ return self._join(
169
+ right, how="window",
170
+ on=on, left_on=left_on, right_on=right_on,
171
+ window=window, aggs=aggs,
172
+ )
173
+
174
+ def prevailing_window_join(
175
+ self, right,
176
+ window: Union[Tuple[int, int], Tuple[Duration, Duration], Pair] = None,
177
+ aggs: Union[List[MetaCode], MetaCode] = None,
178
+ on: Union[Iterable[str], str] = None,
179
+ left_on: Union[Iterable[str], str] = None,
180
+ right_on: Union[Iterable[str], str] = None,
181
+ ) -> MetaCode:
182
+ return self._join(
183
+ right, how="prevailing_window",
184
+ on=on, left_on=left_on, right_on=right_on,
185
+ window=window, aggs=aggs,
186
+ )
187
+
188
+ def _join(
189
+ self, right,
190
+ how: Literal["inner", "outer", "left", "left_semi"] = "inner",
191
+ *,
192
+ on: Union[Iterable[str], str] = None,
193
+ left_on: Union[Iterable[str], str] = None,
194
+ right_on: Union[Iterable[str], str] = None,
195
+ filter: Constant = None,
196
+ left_filter: Constant = None,
197
+ right_filter: Constant = None,
198
+ window: Union[Tuple[int, int], Tuple[Duration, Duration], Pair] = None,
199
+ aggs: Union[List[MetaCode], MetaCode] = None,
200
+ ) -> MetaCode:
201
+ kind_map = {
202
+ 'inner': JOINKIND.INNER_JOIN,
203
+ 'equi': JOINKIND.INNER_JOIN,
204
+ 'outer': JOINKIND.OUTER_JOIN,
205
+ 'cross': JOINKIND.OUTER_JOIN,
206
+ 'left': JOINKIND.LEFT_JOIN,
207
+ 'left_semi': JOINKIND.LEFT_SEMI_JOIN,
208
+ 'right': JOINKIND.RIGHT_JOIN,
209
+ 'prefix': JOINKIND.PREFIX_JOIN,
210
+ 'asof': JOINKIND.ASOF_JOIN,
211
+ 'full': JOINKIND.FULL_JOIN,
212
+ 'window': JOINKIND.WINDOW_JOIN,
213
+ 'sort_equi': JOINKIND.SORT_EQUI_JOIN,
214
+ 'prevailing_window': JOINKIND.PREVAILING_WINDOW_JOIN,
215
+ }
216
+
217
+ kind = kind_map[how]
218
+
219
+ func_map = {
220
+ JOINKIND.INNER_JOIN: "ej",
221
+ JOINKIND.OUTER_JOIN: "cj",
222
+ JOINKIND.LEFT_JOIN: "lj",
223
+ JOINKIND.LEFT_SEMI_JOIN: "lsj",
224
+ JOINKIND.RIGHT_JOIN: "rj",
225
+ JOINKIND.PREFIX_JOIN: "pj",
226
+ JOINKIND.ASOF_JOIN: "aj",
227
+ JOINKIND.FULL_JOIN: "fj",
228
+ JOINKIND.WINDOW_JOIN: "wj",
229
+ JOINKIND.SORT_EQUI_JOIN: "sej",
230
+ JOINKIND.PREVAILING_WINDOW_JOIN: "pwj",
231
+ }
232
+
233
+ func = func_map[kind]
234
+
235
+ if on is not None:
236
+ left_on = _process_on_cols(on)
237
+ right_on = _process_on_cols(on)
238
+ else:
239
+ left_on = _process_on_cols(left_on)
240
+ right_on = _process_on_cols(right_on)
241
+
242
+ if filter is not None:
243
+ left_filter = filter if filter is not None else sf_data.DFLT
244
+ right_filter = sf_data.DFLT
245
+ else:
246
+ left_filter = left_filter if left_filter is not None else sf_data.DFLT
247
+ right_filter = right_filter if right_filter is not None else sf_data.DFLT
248
+
249
+ if window is not None:
250
+ if (isinstance(window, list) or isinstance(window, tuple)) and len(window) == 2:
251
+ window = sf_data.pair(window[0], window[1])
252
+ if not isinstance(window, Pair):
253
+ raise ProgrammingError("Invalid param: window.")
254
+ else:
255
+ window = sf_data.DFLT
256
+
257
+ aggs = aggs if aggs is not None else sf_data.DFLT
258
+
259
+ if kind in [JOINKIND.OUTER_JOIN]:
260
+ with sf_conn.meta_code() as m:
261
+ return m.make_table_joiner(func, self._t, right)
262
+ if kind in [
263
+ JOINKIND.INNER_JOIN, JOINKIND.LEFT_JOIN, JOINKIND.LEFT_SEMI_JOIN, JOINKIND.RIGHT_JOIN,
264
+ JOINKIND.SORT_EQUI_JOIN,
265
+ ]:
266
+ with sf_conn.meta_code() as m:
267
+ return m.make_table_joiner(func, self._t, right, left_on, right_on, left_filter, right_filter)
268
+ if kind in [
269
+ JOINKIND.ASOF_JOIN, JOINKIND.FULL_JOIN, JOINKIND.PREFIX_JOIN,
270
+ ]:
271
+ with sf_conn.meta_code() as m:
272
+ return m.make_table_joiner(func, self._t, right, left_on, right_on)
273
+ if kind in [JOINKIND.WINDOW_JOIN, JOINKIND.PREVAILING_WINDOW_JOIN]:
274
+ with sf_conn.meta_code() as m:
275
+ return m.make_table_joiner(func, self._t, right, window, aggs, left_on, right_on)
276
+
277
+
278
+ class WhereClause:
279
+ _conditions: List[MetaCode] = None
280
+
281
+ def where(self, *conditions):
282
+ self._conditions = [_process_expr(cond) for cond in conditions]
283
+ return self
284
+
285
+
286
+ class FromClause:
287
+ _from_t: MetaCode = None
288
+
289
+ def from_(self, t):
290
+ self._from_t = t
291
+ return self
292
+
293
+
294
+ class HavingClause:
295
+ _having: MetaCode = None
296
+
297
+ def having(self, *conditions):
298
+ self._having = [_process_expr(cond) for cond in conditions]
299
+ return self
300
+
301
+
302
+ class OrderbyClause:
303
+ _orderby: MetaCode = None
304
+ _asc_orderby: bool = True
305
+
306
+ def orderby(self, *cols, asc: Union[bool, List[bool]] = True):
307
+ self._orderby = [_process_expr(col) for col in cols]
308
+ if isinstance(asc, bool):
309
+ self._asc_orderby = asc
310
+ elif isinstance(asc, Iterable) and not isinstance(asc, str):
311
+ self._asc_orderby = [bool(x) for x in asc]
312
+ else:
313
+ raise ProgrammingError("asc must be bool or list of bool.")
314
+ return self
315
+
316
+
317
+ class TopClause:
318
+ _top: Any = None
319
+
320
+ @overload
321
+ def top(self, count: int) -> "TopClause":
322
+ ...
323
+
324
+ @overload
325
+ def top(self, start: int, end: int) -> "TopClause":
326
+ ...
327
+
328
+ def top(self, start: int, end: int = None) -> "TopClause":
329
+ if end is None:
330
+ self._top = sf_data.scalar(start)
331
+ else:
332
+ self._top = sf_data.pair(start, end)
333
+ return self
334
+
335
+
336
+ class MapClause:
337
+ _map: bool = False
338
+
339
+ def map(self, enable: bool = True):
340
+ self._map = enable
341
+ return self
342
+
343
+
344
+ class CsortClause:
345
+ _csort: MetaCode = None
346
+ _asc_csort: bool = True
347
+
348
+ def csort(self, *cols, asc: Union[bool, List[bool]] = True):
349
+ self._csort = [_process_expr(col) for col in cols]
350
+ if isinstance(asc, bool):
351
+ self._asc_csort = asc
352
+ elif isinstance(asc, Iterable) and not isinstance(asc, str):
353
+ self._asc_csort = [bool(x) for x in asc]
354
+ else:
355
+ raise ProgrammingError("asc must be bool or list of bool.")
356
+ return self
357
+
358
+
359
+ class GROUPKIND(Enum):
360
+ NONE = -1
361
+ CONTEXTBY = 0
362
+ GROUPBY = 1
363
+ PIVOTBY = 2
364
+
365
+
366
+ class GroupByLike:
367
+ _group_flag: GROUPKIND = GROUPKIND.NONE
368
+
369
+
370
+ class GroupByClause(GroupByLike, HavingClause):
371
+ _groupby: MetaCode = None
372
+
373
+ def groupby(self, *cols: Union[MetaCode, str], **key_cols: Union[MetaCode, str]):
374
+ if self._group_flag not in [GROUPKIND.NONE, GROUPKIND.GROUPBY]:
375
+ raise RuntimeError("Cannot specify group by clause after context by or pivot by.")
376
+ fields = []
377
+ with sf_conn.meta_code() as m:
378
+ for field in cols:
379
+ fields.append(_process_expr(field))
380
+ for k, v in key_cols.items():
381
+ fields.append(m.col_alias(_process_expr(v), k))
382
+ self._groupby = fields
383
+ self._group_flag = GROUPKIND.GROUPBY
384
+ return self
385
+
386
+
387
+ class ContextByClause(GroupByLike, HavingClause, CsortClause):
388
+ _contextby: Any = None
389
+
390
+ def contextby(self, *cols: Union[MetaCode, str]):
391
+ if self._group_flag not in [GROUPKIND.NONE, GROUPKIND.CONTEXTBY]:
392
+ raise RuntimeError("Cannot specify context by clause after group by or pivot by.")
393
+ self._contextby = [_process_expr(col) for col in cols]
394
+ self._group_flag = GROUPKIND.CONTEXTBY
395
+ return self
396
+
397
+
398
+ class PivotByClause(GroupByLike):
399
+ _pivotby: MetaCode = None
400
+
401
+ def pivotby(self, *cols: Union[MetaCode, str]):
402
+ if self._group_flag not in [GROUPKIND.NONE, GROUPKIND.PIVOTBY]:
403
+ raise RuntimeError("Cannot specify context by clause after group by or pivot by.")
404
+ self._pivotby = [_process_expr(col) for col in cols]
405
+ self._group_flag = GROUPKIND.PIVOTBY
406
+ return self
407
+
408
+
409
+ class Statement(abc.ABC):
410
+ def __init__(self, tb: Table):
411
+ self._tb = tb
412
+
413
+ @property
414
+ def __sf_constant__(self) -> MetaCode:
415
+ return self.__sf_meta_code__
416
+
417
+ @property
418
+ @abc.abstractmethod
419
+ def __sf_meta_code__(self) -> MetaCode:
420
+ pass
421
+
422
+ def __str__(self):
423
+ return str(self.__sf_meta_code__)
424
+
425
+ def eval(self, conn=None):
426
+ return self.__sf_meta_code__.eval(conn)
427
+
428
+
429
+ class StatementSELECT(
430
+ Statement,
431
+ WhereClause,
432
+ GroupByClause,
433
+ ContextByClause,
434
+ PivotByClause,
435
+ HavingClause,
436
+ OrderbyClause,
437
+ TopClause,
438
+ MapClause,
439
+ ):
440
+ _exec: bool = False
441
+
442
+ def __init__(self, tb: Table, *fields: MetaCode, **key_fields: MetaCode):
443
+ super().__init__(tb)
444
+ fields_ = []
445
+ with sf_conn.meta_code() as m:
446
+ for field in fields:
447
+ fields_.append(_process_expr(field))
448
+ for k, v in key_fields.items():
449
+ fields_.append(m.col_alias(_process_expr(v), k))
450
+ if not fields_:
451
+ fields_ = m.col("*")
452
+ self._fields = fields_
453
+
454
+ @property
455
+ def __sf_meta_code__(self) -> MetaCode:
456
+ p_fields = self._fields
457
+ p_table = self._tb
458
+ p_where = self._conditions if self._conditions is not None else sf_data.DFLT
459
+ if self._group_flag == GROUPKIND.GROUPBY:
460
+ p_groupby = self._groupby
461
+ elif self._group_flag == GROUPKIND.CONTEXTBY:
462
+ p_groupby = self._contextby
463
+ elif self._group_flag == GROUPKIND.PIVOTBY:
464
+ p_groupby = self._pivotby
465
+ else:
466
+ p_groupby = sf_data.DFLT
467
+ p_groupflag = self._group_flag.value if self._group_flag != GROUPKIND.NONE else sf_data.DFLT
468
+ p_csort = self._csort if self._csort is not None else sf_data.DFLT
469
+ p_ascsort = self._asc_csort if self._csort is not None else sf_data.DFLT
470
+ p_having = self._having if self._having is not None else sf_data.DFLT
471
+ p_orderby = self._orderby if self._orderby is not None else sf_data.DFLT
472
+ p_ascorder = self._asc_orderby if self._orderby is not None else sf_data.DFLT
473
+ p_top = self._top if self._top is not None else sf_data.DFLT
474
+ p_exec = self._exec
475
+ p_map = self._map
476
+ with sf_conn.empty_context():
477
+ return sf_F.sql(
478
+ p_fields,
479
+ p_table,
480
+ p_where,
481
+ p_groupby,
482
+ p_groupflag,
483
+ p_csort,
484
+ p_ascsort,
485
+ p_having,
486
+ p_orderby,
487
+ p_ascorder,
488
+ p_top,
489
+ sf_data.DFLT,
490
+ p_exec,
491
+ p_map
492
+ )
493
+
494
+
495
+ class StatementEXECUTE(Statement):
496
+ _exec: bool = True
497
+
498
+
499
+ class StatementUPDATE(Statement, FromClause, WhereClause, ContextByClause):
500
+ def __init__(self, tb: Table, **kwargs: MetaCode):
501
+ super().__init__(tb)
502
+ set_ = []
503
+ with sf_conn.meta_code() as m:
504
+ for k, v in kwargs.items():
505
+ set_.append(m.col_alias(_process_expr(v), k))
506
+ self._set = set_
507
+
508
+ @property
509
+ def __sf_meta_code__(self) -> MetaCode:
510
+ p_table = self._tb
511
+ p_updates = self._set
512
+ p_from = self._from_t if self._from_t is not None else sf_data.DFLT
513
+ p_where = self._conditions if self._conditions is not None else sf_data.DFLT
514
+ p_contextby = self._contextby if self._contextby is not None else sf_data.DFLT
515
+ p_csort = self._csort if self._csort is not None else sf_data.DFLT
516
+ p_asccsort = self._asc_csort if self._csort is not None else sf_data.DFLT
517
+ p_having = self._having if self._having is not None else sf_data.DFLT
518
+ with sf_conn.empty_context():
519
+ return sf_F.sqlUpdate(
520
+ p_table,
521
+ p_updates,
522
+ p_from,
523
+ p_where,
524
+ p_contextby,
525
+ p_csort,
526
+ p_asccsort,
527
+ p_having,
528
+ )
529
+
530
+
531
+ class StatementDELETE(Statement, WhereClause, FromClause):
532
+ def __init__(self, tb):
533
+ super().__init__(tb)
534
+
535
+ @property
536
+ def __sf_meta_code__(self) -> MetaCode:
537
+ p_table = self._tb
538
+ p_where = self._conditions if self._conditions is not None else sf_data.DFLT
539
+ p_from = self._from_t if self._from_t is not None else sf_data.DFLT
540
+ with sf_conn.empty_context():
541
+ return sf_F.sqlDelete(
542
+ p_table,
543
+ p_where,
544
+ p_from,
545
+ )
546
+
547
+
548
+ def msql(table: Union[Table, MetaCode]):
549
+ return SQLBuilder(table)