flowtask 5.8.4__cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.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 (470) hide show
  1. flowtask/__init__.py +93 -0
  2. flowtask/__main__.py +38 -0
  3. flowtask/bots/__init__.py +6 -0
  4. flowtask/bots/check.py +93 -0
  5. flowtask/bots/codebot.py +51 -0
  6. flowtask/components/ASPX.py +148 -0
  7. flowtask/components/AddDataset.py +352 -0
  8. flowtask/components/Amazon.py +523 -0
  9. flowtask/components/AutoTask.py +314 -0
  10. flowtask/components/Azure.py +80 -0
  11. flowtask/components/AzureUsers.py +106 -0
  12. flowtask/components/BaseAction.py +91 -0
  13. flowtask/components/BaseLoop.py +198 -0
  14. flowtask/components/BestBuy.py +800 -0
  15. flowtask/components/CSVToGCS.py +120 -0
  16. flowtask/components/CompanyScraper/__init__.py +1 -0
  17. flowtask/components/CompanyScraper/parsers/__init__.py +6 -0
  18. flowtask/components/CompanyScraper/parsers/base.py +102 -0
  19. flowtask/components/CompanyScraper/parsers/explorium.py +192 -0
  20. flowtask/components/CompanyScraper/parsers/leadiq.py +206 -0
  21. flowtask/components/CompanyScraper/parsers/rocket.py +133 -0
  22. flowtask/components/CompanyScraper/parsers/siccode.py +109 -0
  23. flowtask/components/CompanyScraper/parsers/visualvisitor.py +130 -0
  24. flowtask/components/CompanyScraper/parsers/zoominfo.py +118 -0
  25. flowtask/components/CompanyScraper/scrapper.py +1054 -0
  26. flowtask/components/CopyTo.py +177 -0
  27. flowtask/components/CopyToBigQuery.py +243 -0
  28. flowtask/components/CopyToMongoDB.py +291 -0
  29. flowtask/components/CopyToPg.py +609 -0
  30. flowtask/components/CopyToRethink.py +207 -0
  31. flowtask/components/CreateGCSBucket.py +102 -0
  32. flowtask/components/CreateReport/CreateReport.py +228 -0
  33. flowtask/components/CreateReport/__init__.py +9 -0
  34. flowtask/components/CreateReport/charts/__init__.py +15 -0
  35. flowtask/components/CreateReport/charts/bar.py +51 -0
  36. flowtask/components/CreateReport/charts/base.py +66 -0
  37. flowtask/components/CreateReport/charts/pie.py +64 -0
  38. flowtask/components/CreateReport/utils.py +9 -0
  39. flowtask/components/CustomerSatisfaction.py +196 -0
  40. flowtask/components/DataInput.py +200 -0
  41. flowtask/components/DateList.py +255 -0
  42. flowtask/components/DbClient.py +163 -0
  43. flowtask/components/DialPad.py +146 -0
  44. flowtask/components/DocumentDBQuery.py +200 -0
  45. flowtask/components/DownloadFrom.py +371 -0
  46. flowtask/components/DownloadFromD2L.py +113 -0
  47. flowtask/components/DownloadFromFTP.py +181 -0
  48. flowtask/components/DownloadFromIMAP.py +315 -0
  49. flowtask/components/DownloadFromS3.py +198 -0
  50. flowtask/components/DownloadFromSFTP.py +265 -0
  51. flowtask/components/DownloadFromSharepoint.py +110 -0
  52. flowtask/components/DownloadFromSmartSheet.py +114 -0
  53. flowtask/components/DownloadS3File.py +229 -0
  54. flowtask/components/Dummy.py +59 -0
  55. flowtask/components/DuplicatePhoto.py +411 -0
  56. flowtask/components/EmployeeEvaluation.py +237 -0
  57. flowtask/components/ExecuteSQL.py +323 -0
  58. flowtask/components/ExtractHTML.py +178 -0
  59. flowtask/components/FileBase.py +178 -0
  60. flowtask/components/FileCopy.py +181 -0
  61. flowtask/components/FileDelete.py +82 -0
  62. flowtask/components/FileExists.py +146 -0
  63. flowtask/components/FileIteratorDelete.py +112 -0
  64. flowtask/components/FileList.py +194 -0
  65. flowtask/components/FileOpen.py +75 -0
  66. flowtask/components/FileRead.py +120 -0
  67. flowtask/components/FileRename.py +106 -0
  68. flowtask/components/FilterIf.py +284 -0
  69. flowtask/components/FilterRows/FilterRows.py +200 -0
  70. flowtask/components/FilterRows/__init__.py +10 -0
  71. flowtask/components/FilterRows/functions.py +4 -0
  72. flowtask/components/GCSToBigQuery.py +103 -0
  73. flowtask/components/GoogleA4.py +150 -0
  74. flowtask/components/GoogleGeoCoding.py +344 -0
  75. flowtask/components/GooglePlaces.py +315 -0
  76. flowtask/components/GoogleSearch.py +539 -0
  77. flowtask/components/HTTPClient.py +268 -0
  78. flowtask/components/ICIMS.py +146 -0
  79. flowtask/components/IF.py +179 -0
  80. flowtask/components/IcimsFolderCopy.py +173 -0
  81. flowtask/components/ImageFeatures/__init__.py +5 -0
  82. flowtask/components/ImageFeatures/process.py +233 -0
  83. flowtask/components/IteratorBase.py +251 -0
  84. flowtask/components/LangchainLoader/__init__.py +5 -0
  85. flowtask/components/LangchainLoader/loader.py +194 -0
  86. flowtask/components/LangchainLoader/loaders/__init__.py +22 -0
  87. flowtask/components/LangchainLoader/loaders/abstract.py +362 -0
  88. flowtask/components/LangchainLoader/loaders/basepdf.py +50 -0
  89. flowtask/components/LangchainLoader/loaders/docx.py +91 -0
  90. flowtask/components/LangchainLoader/loaders/html.py +119 -0
  91. flowtask/components/LangchainLoader/loaders/pdfblocks.py +146 -0
  92. flowtask/components/LangchainLoader/loaders/pdfmark.py +79 -0
  93. flowtask/components/LangchainLoader/loaders/pdftables.py +135 -0
  94. flowtask/components/LangchainLoader/loaders/qa.py +67 -0
  95. flowtask/components/LangchainLoader/loaders/txt.py +55 -0
  96. flowtask/components/LeadIQ.py +650 -0
  97. flowtask/components/Loop.py +253 -0
  98. flowtask/components/Lowes.py +334 -0
  99. flowtask/components/MS365Usage.py +156 -0
  100. flowtask/components/MSTeamsMessages.py +320 -0
  101. flowtask/components/MarketClustering.py +1051 -0
  102. flowtask/components/MergeFiles.py +362 -0
  103. flowtask/components/MilvusOutput.py +87 -0
  104. flowtask/components/NearByStores.py +175 -0
  105. flowtask/components/NetworkNinja/__init__.py +6 -0
  106. flowtask/components/NetworkNinja/models/__init__.py +52 -0
  107. flowtask/components/NetworkNinja/models/abstract.py +177 -0
  108. flowtask/components/NetworkNinja/models/account.py +39 -0
  109. flowtask/components/NetworkNinja/models/client.py +19 -0
  110. flowtask/components/NetworkNinja/models/district.py +14 -0
  111. flowtask/components/NetworkNinja/models/events.py +101 -0
  112. flowtask/components/NetworkNinja/models/forms.py +499 -0
  113. flowtask/components/NetworkNinja/models/market.py +16 -0
  114. flowtask/components/NetworkNinja/models/organization.py +34 -0
  115. flowtask/components/NetworkNinja/models/photos.py +125 -0
  116. flowtask/components/NetworkNinja/models/project.py +44 -0
  117. flowtask/components/NetworkNinja/models/region.py +28 -0
  118. flowtask/components/NetworkNinja/models/store.py +203 -0
  119. flowtask/components/NetworkNinja/models/user.py +151 -0
  120. flowtask/components/NetworkNinja/router.py +854 -0
  121. flowtask/components/Odoo.py +175 -0
  122. flowtask/components/OdooInjector.py +192 -0
  123. flowtask/components/OpenFromXML.py +126 -0
  124. flowtask/components/OpenWeather.py +41 -0
  125. flowtask/components/OpenWithBase.py +616 -0
  126. flowtask/components/OpenWithPandas.py +715 -0
  127. flowtask/components/PGPDecrypt.py +199 -0
  128. flowtask/components/PandasIterator.py +187 -0
  129. flowtask/components/PandasToFile.py +189 -0
  130. flowtask/components/Paradox.py +339 -0
  131. flowtask/components/ParamIterator.py +117 -0
  132. flowtask/components/ParseHTML.py +84 -0
  133. flowtask/components/PlacerStores.py +249 -0
  134. flowtask/components/Pokemon.py +507 -0
  135. flowtask/components/PositiveBot.py +62 -0
  136. flowtask/components/PowerPointSlide.py +400 -0
  137. flowtask/components/PrintMessage.py +127 -0
  138. flowtask/components/ProductCompetitors/__init__.py +5 -0
  139. flowtask/components/ProductCompetitors/parsers/__init__.py +7 -0
  140. flowtask/components/ProductCompetitors/parsers/base.py +72 -0
  141. flowtask/components/ProductCompetitors/parsers/bestbuy.py +86 -0
  142. flowtask/components/ProductCompetitors/parsers/lowes.py +103 -0
  143. flowtask/components/ProductCompetitors/scrapper.py +155 -0
  144. flowtask/components/ProductCompliant.py +169 -0
  145. flowtask/components/ProductInfo/__init__.py +1 -0
  146. flowtask/components/ProductInfo/parsers/__init__.py +5 -0
  147. flowtask/components/ProductInfo/parsers/base.py +83 -0
  148. flowtask/components/ProductInfo/parsers/brother.py +97 -0
  149. flowtask/components/ProductInfo/parsers/canon.py +167 -0
  150. flowtask/components/ProductInfo/parsers/epson.py +118 -0
  151. flowtask/components/ProductInfo/parsers/hp.py +131 -0
  152. flowtask/components/ProductInfo/parsers/samsung.py +97 -0
  153. flowtask/components/ProductInfo/scraper.py +319 -0
  154. flowtask/components/ProductPricing.py +118 -0
  155. flowtask/components/QS.py +261 -0
  156. flowtask/components/QSBase.py +201 -0
  157. flowtask/components/QueryIterator.py +273 -0
  158. flowtask/components/QueryToInsert.py +327 -0
  159. flowtask/components/QueryToPandas.py +432 -0
  160. flowtask/components/RESTClient.py +195 -0
  161. flowtask/components/RethinkDBQuery.py +189 -0
  162. flowtask/components/Rsync.py +74 -0
  163. flowtask/components/RunSSH.py +59 -0
  164. flowtask/components/RunShell.py +71 -0
  165. flowtask/components/SalesForce.py +20 -0
  166. flowtask/components/SaveImageBank/__init__.py +257 -0
  167. flowtask/components/SchedulingVisits.py +592 -0
  168. flowtask/components/ScrapPage.py +216 -0
  169. flowtask/components/ScrapSearch.py +79 -0
  170. flowtask/components/SendNotify.py +257 -0
  171. flowtask/components/SentimentAnalysis.py +694 -0
  172. flowtask/components/ServiceScrapper/__init__.py +5 -0
  173. flowtask/components/ServiceScrapper/parsers/__init__.py +1 -0
  174. flowtask/components/ServiceScrapper/parsers/base.py +94 -0
  175. flowtask/components/ServiceScrapper/parsers/costco.py +93 -0
  176. flowtask/components/ServiceScrapper/scrapper.py +199 -0
  177. flowtask/components/SetVariables.py +156 -0
  178. flowtask/components/SubTask.py +182 -0
  179. flowtask/components/SuiteCRM.py +48 -0
  180. flowtask/components/Switch.py +175 -0
  181. flowtask/components/TableBase.py +148 -0
  182. flowtask/components/TableDelete.py +312 -0
  183. flowtask/components/TableInput.py +143 -0
  184. flowtask/components/TableOutput/TableOutput.py +384 -0
  185. flowtask/components/TableOutput/__init__.py +3 -0
  186. flowtask/components/TableSchema.py +534 -0
  187. flowtask/components/Target.py +223 -0
  188. flowtask/components/ThumbnailGenerator.py +156 -0
  189. flowtask/components/ToPandas.py +67 -0
  190. flowtask/components/TransformRows/TransformRows.py +507 -0
  191. flowtask/components/TransformRows/__init__.py +9 -0
  192. flowtask/components/TransformRows/functions.py +559 -0
  193. flowtask/components/TransposeRows.py +176 -0
  194. flowtask/components/UPCDatabase.py +86 -0
  195. flowtask/components/UnGzip.py +171 -0
  196. flowtask/components/Uncompress.py +172 -0
  197. flowtask/components/UniqueRows.py +126 -0
  198. flowtask/components/Unzip.py +107 -0
  199. flowtask/components/UpdateOperationalVars.py +147 -0
  200. flowtask/components/UploadTo.py +299 -0
  201. flowtask/components/UploadToS3.py +136 -0
  202. flowtask/components/UploadToSFTP.py +160 -0
  203. flowtask/components/UploadToSharepoint.py +205 -0
  204. flowtask/components/UserFunc.py +122 -0
  205. flowtask/components/VivaTracker.py +140 -0
  206. flowtask/components/WSDLClient.py +123 -0
  207. flowtask/components/Wait.py +18 -0
  208. flowtask/components/Walmart.py +199 -0
  209. flowtask/components/Workplace.py +134 -0
  210. flowtask/components/XMLToPandas.py +267 -0
  211. flowtask/components/Zammad/__init__.py +41 -0
  212. flowtask/components/Zammad/models.py +0 -0
  213. flowtask/components/ZoomInfoScraper.py +409 -0
  214. flowtask/components/__init__.py +104 -0
  215. flowtask/components/abstract.py +18 -0
  216. flowtask/components/flow.py +530 -0
  217. flowtask/components/google.py +335 -0
  218. flowtask/components/group.py +221 -0
  219. flowtask/components/py.typed +0 -0
  220. flowtask/components/reviewscrap.py +132 -0
  221. flowtask/components/tAutoincrement.py +117 -0
  222. flowtask/components/tConcat.py +109 -0
  223. flowtask/components/tExplode.py +119 -0
  224. flowtask/components/tFilter.py +184 -0
  225. flowtask/components/tGroup.py +236 -0
  226. flowtask/components/tJoin.py +270 -0
  227. flowtask/components/tMap/__init__.py +9 -0
  228. flowtask/components/tMap/functions.py +54 -0
  229. flowtask/components/tMap/tMap.py +450 -0
  230. flowtask/components/tMelt.py +112 -0
  231. flowtask/components/tMerge.py +114 -0
  232. flowtask/components/tOrder.py +93 -0
  233. flowtask/components/tPandas.py +94 -0
  234. flowtask/components/tPivot.py +71 -0
  235. flowtask/components/tPluckCols.py +76 -0
  236. flowtask/components/tUnnest.py +82 -0
  237. flowtask/components/user.py +401 -0
  238. flowtask/conf.py +457 -0
  239. flowtask/download.py +102 -0
  240. flowtask/events/__init__.py +11 -0
  241. flowtask/events/events/__init__.py +20 -0
  242. flowtask/events/events/abstract.py +95 -0
  243. flowtask/events/events/alerts/__init__.py +362 -0
  244. flowtask/events/events/alerts/colfunctions.py +131 -0
  245. flowtask/events/events/alerts/functions.py +158 -0
  246. flowtask/events/events/dummy.py +12 -0
  247. flowtask/events/events/exec.py +124 -0
  248. flowtask/events/events/file/__init__.py +7 -0
  249. flowtask/events/events/file/base.py +51 -0
  250. flowtask/events/events/file/copy.py +23 -0
  251. flowtask/events/events/file/delete.py +16 -0
  252. flowtask/events/events/interfaces/__init__.py +9 -0
  253. flowtask/events/events/interfaces/client.py +67 -0
  254. flowtask/events/events/interfaces/credentials.py +28 -0
  255. flowtask/events/events/interfaces/notifications.py +58 -0
  256. flowtask/events/events/jira.py +122 -0
  257. flowtask/events/events/log.py +26 -0
  258. flowtask/events/events/logerr.py +52 -0
  259. flowtask/events/events/notify.py +59 -0
  260. flowtask/events/events/notify_event.py +160 -0
  261. flowtask/events/events/publish.py +54 -0
  262. flowtask/events/events/sendfile.py +104 -0
  263. flowtask/events/events/task.py +97 -0
  264. flowtask/events/events/teams.py +98 -0
  265. flowtask/events/events/webhook.py +58 -0
  266. flowtask/events/manager.py +287 -0
  267. flowtask/exceptions.c +39393 -0
  268. flowtask/exceptions.cpython-39-x86_64-linux-gnu.so +0 -0
  269. flowtask/extensions/__init__.py +3 -0
  270. flowtask/extensions/abstract.py +82 -0
  271. flowtask/extensions/logging/__init__.py +65 -0
  272. flowtask/hooks/__init__.py +9 -0
  273. flowtask/hooks/actions/__init__.py +22 -0
  274. flowtask/hooks/actions/abstract.py +66 -0
  275. flowtask/hooks/actions/dummy.py +23 -0
  276. flowtask/hooks/actions/jira.py +74 -0
  277. flowtask/hooks/actions/rest.py +320 -0
  278. flowtask/hooks/actions/sampledata.py +37 -0
  279. flowtask/hooks/actions/sensor.py +23 -0
  280. flowtask/hooks/actions/task.py +9 -0
  281. flowtask/hooks/actions/ticket.py +37 -0
  282. flowtask/hooks/actions/zammad.py +55 -0
  283. flowtask/hooks/hook.py +62 -0
  284. flowtask/hooks/models.py +17 -0
  285. flowtask/hooks/service.py +187 -0
  286. flowtask/hooks/step.py +91 -0
  287. flowtask/hooks/types/__init__.py +23 -0
  288. flowtask/hooks/types/base.py +129 -0
  289. flowtask/hooks/types/brokers/__init__.py +11 -0
  290. flowtask/hooks/types/brokers/base.py +54 -0
  291. flowtask/hooks/types/brokers/mqtt.py +35 -0
  292. flowtask/hooks/types/brokers/rabbitmq.py +82 -0
  293. flowtask/hooks/types/brokers/redis.py +83 -0
  294. flowtask/hooks/types/brokers/sqs.py +44 -0
  295. flowtask/hooks/types/fs.py +232 -0
  296. flowtask/hooks/types/http.py +49 -0
  297. flowtask/hooks/types/imap.py +200 -0
  298. flowtask/hooks/types/jira.py +279 -0
  299. flowtask/hooks/types/mail.py +205 -0
  300. flowtask/hooks/types/postgres.py +98 -0
  301. flowtask/hooks/types/responses/__init__.py +8 -0
  302. flowtask/hooks/types/responses/base.py +5 -0
  303. flowtask/hooks/types/sharepoint.py +288 -0
  304. flowtask/hooks/types/ssh.py +141 -0
  305. flowtask/hooks/types/tagged.py +59 -0
  306. flowtask/hooks/types/upload.py +85 -0
  307. flowtask/hooks/types/watch.py +71 -0
  308. flowtask/hooks/types/web.py +36 -0
  309. flowtask/interfaces/AzureClient.py +137 -0
  310. flowtask/interfaces/AzureGraph.py +839 -0
  311. flowtask/interfaces/Boto3Client.py +326 -0
  312. flowtask/interfaces/DropboxClient.py +173 -0
  313. flowtask/interfaces/ExcelHandler.py +94 -0
  314. flowtask/interfaces/FTPClient.py +131 -0
  315. flowtask/interfaces/GoogleCalendar.py +201 -0
  316. flowtask/interfaces/GoogleClient.py +133 -0
  317. flowtask/interfaces/GoogleDrive.py +127 -0
  318. flowtask/interfaces/GoogleGCS.py +89 -0
  319. flowtask/interfaces/GoogleGeocoding.py +93 -0
  320. flowtask/interfaces/GoogleLang.py +114 -0
  321. flowtask/interfaces/GooglePub.py +61 -0
  322. flowtask/interfaces/GoogleSheet.py +68 -0
  323. flowtask/interfaces/IMAPClient.py +137 -0
  324. flowtask/interfaces/O365Calendar.py +113 -0
  325. flowtask/interfaces/O365Client.py +220 -0
  326. flowtask/interfaces/OneDrive.py +284 -0
  327. flowtask/interfaces/Outlook.py +155 -0
  328. flowtask/interfaces/ParrotBot.py +130 -0
  329. flowtask/interfaces/SSHClient.py +378 -0
  330. flowtask/interfaces/Sharepoint.py +496 -0
  331. flowtask/interfaces/__init__.py +36 -0
  332. flowtask/interfaces/azureauth.py +119 -0
  333. flowtask/interfaces/cache.py +201 -0
  334. flowtask/interfaces/client.py +82 -0
  335. flowtask/interfaces/compress.py +525 -0
  336. flowtask/interfaces/credentials.py +124 -0
  337. flowtask/interfaces/d2l.py +239 -0
  338. flowtask/interfaces/databases/__init__.py +5 -0
  339. flowtask/interfaces/databases/db.py +223 -0
  340. flowtask/interfaces/databases/documentdb.py +55 -0
  341. flowtask/interfaces/databases/rethink.py +39 -0
  342. flowtask/interfaces/dataframes/__init__.py +11 -0
  343. flowtask/interfaces/dataframes/abstract.py +21 -0
  344. flowtask/interfaces/dataframes/arrow.py +71 -0
  345. flowtask/interfaces/dataframes/dt.py +69 -0
  346. flowtask/interfaces/dataframes/pandas.py +167 -0
  347. flowtask/interfaces/dataframes/polars.py +60 -0
  348. flowtask/interfaces/db.py +263 -0
  349. flowtask/interfaces/env.py +46 -0
  350. flowtask/interfaces/func.py +137 -0
  351. flowtask/interfaces/http.py +1780 -0
  352. flowtask/interfaces/locale.py +40 -0
  353. flowtask/interfaces/log.py +75 -0
  354. flowtask/interfaces/mask.py +143 -0
  355. flowtask/interfaces/notification.py +154 -0
  356. flowtask/interfaces/playwright.py +339 -0
  357. flowtask/interfaces/powerpoint.py +368 -0
  358. flowtask/interfaces/py.typed +0 -0
  359. flowtask/interfaces/qs.py +376 -0
  360. flowtask/interfaces/result.py +87 -0
  361. flowtask/interfaces/selenium_service.py +779 -0
  362. flowtask/interfaces/smartsheet.py +154 -0
  363. flowtask/interfaces/stat.py +39 -0
  364. flowtask/interfaces/task.py +96 -0
  365. flowtask/interfaces/template.py +118 -0
  366. flowtask/interfaces/vectorstores/__init__.py +1 -0
  367. flowtask/interfaces/vectorstores/abstract.py +133 -0
  368. flowtask/interfaces/vectorstores/milvus.py +669 -0
  369. flowtask/interfaces/zammad.py +107 -0
  370. flowtask/models.py +193 -0
  371. flowtask/parsers/__init__.py +15 -0
  372. flowtask/parsers/_yaml.c +11978 -0
  373. flowtask/parsers/_yaml.cpython-39-x86_64-linux-gnu.so +0 -0
  374. flowtask/parsers/argparser.py +235 -0
  375. flowtask/parsers/base.c +15155 -0
  376. flowtask/parsers/base.cpython-39-x86_64-linux-gnu.so +0 -0
  377. flowtask/parsers/json.c +11968 -0
  378. flowtask/parsers/json.cpython-39-x86_64-linux-gnu.so +0 -0
  379. flowtask/parsers/maps.py +49 -0
  380. flowtask/parsers/toml.c +11968 -0
  381. flowtask/parsers/toml.cpython-39-x86_64-linux-gnu.so +0 -0
  382. flowtask/plugins/__init__.py +16 -0
  383. flowtask/plugins/components/__init__.py +0 -0
  384. flowtask/plugins/handler/__init__.py +45 -0
  385. flowtask/plugins/importer.py +31 -0
  386. flowtask/plugins/sources/__init__.py +0 -0
  387. flowtask/runner.py +283 -0
  388. flowtask/scheduler/__init__.py +9 -0
  389. flowtask/scheduler/functions.py +493 -0
  390. flowtask/scheduler/handlers/__init__.py +8 -0
  391. flowtask/scheduler/handlers/manager.py +504 -0
  392. flowtask/scheduler/handlers/models.py +58 -0
  393. flowtask/scheduler/handlers/service.py +72 -0
  394. flowtask/scheduler/notifications.py +65 -0
  395. flowtask/scheduler/scheduler.py +993 -0
  396. flowtask/services/__init__.py +0 -0
  397. flowtask/services/bots/__init__.py +0 -0
  398. flowtask/services/bots/telegram.py +264 -0
  399. flowtask/services/files/__init__.py +11 -0
  400. flowtask/services/files/manager.py +522 -0
  401. flowtask/services/files/model.py +37 -0
  402. flowtask/services/files/service.py +767 -0
  403. flowtask/services/jira/__init__.py +3 -0
  404. flowtask/services/jira/jira_actions.py +191 -0
  405. flowtask/services/tasks/__init__.py +13 -0
  406. flowtask/services/tasks/launcher.py +213 -0
  407. flowtask/services/tasks/manager.py +323 -0
  408. flowtask/services/tasks/service.py +275 -0
  409. flowtask/services/tasks/task_manager.py +376 -0
  410. flowtask/services/tasks/tasks.py +155 -0
  411. flowtask/storages/__init__.py +16 -0
  412. flowtask/storages/exceptions.py +12 -0
  413. flowtask/storages/files/__init__.py +8 -0
  414. flowtask/storages/files/abstract.py +29 -0
  415. flowtask/storages/files/filesystem.py +66 -0
  416. flowtask/storages/tasks/__init__.py +19 -0
  417. flowtask/storages/tasks/abstract.py +26 -0
  418. flowtask/storages/tasks/database.py +33 -0
  419. flowtask/storages/tasks/filesystem.py +108 -0
  420. flowtask/storages/tasks/github.py +119 -0
  421. flowtask/storages/tasks/memory.py +45 -0
  422. flowtask/storages/tasks/row.py +25 -0
  423. flowtask/tasks/__init__.py +0 -0
  424. flowtask/tasks/abstract.py +526 -0
  425. flowtask/tasks/command.py +118 -0
  426. flowtask/tasks/pile.py +486 -0
  427. flowtask/tasks/py.typed +0 -0
  428. flowtask/tasks/task.py +778 -0
  429. flowtask/template/__init__.py +161 -0
  430. flowtask/tests.py +257 -0
  431. flowtask/types/__init__.py +8 -0
  432. flowtask/types/typedefs.c +11347 -0
  433. flowtask/types/typedefs.cpython-39-x86_64-linux-gnu.so +0 -0
  434. flowtask/utils/__init__.py +24 -0
  435. flowtask/utils/constants.py +117 -0
  436. flowtask/utils/encoders.py +21 -0
  437. flowtask/utils/executor.py +112 -0
  438. flowtask/utils/functions.cpp +14280 -0
  439. flowtask/utils/functions.cpython-39-x86_64-linux-gnu.so +0 -0
  440. flowtask/utils/json.cpp +13349 -0
  441. flowtask/utils/json.cpython-39-x86_64-linux-gnu.so +0 -0
  442. flowtask/utils/mail.py +63 -0
  443. flowtask/utils/parseqs.c +13324 -0
  444. flowtask/utils/parserqs.cpython-39-x86_64-linux-gnu.so +0 -0
  445. flowtask/utils/stats.py +308 -0
  446. flowtask/utils/transformations.py +74 -0
  447. flowtask/utils/uv.py +12 -0
  448. flowtask/utils/validators.py +97 -0
  449. flowtask/version.py +11 -0
  450. flowtask-5.8.4.dist-info/LICENSE +201 -0
  451. flowtask-5.8.4.dist-info/METADATA +209 -0
  452. flowtask-5.8.4.dist-info/RECORD +470 -0
  453. flowtask-5.8.4.dist-info/WHEEL +6 -0
  454. flowtask-5.8.4.dist-info/entry_points.txt +3 -0
  455. flowtask-5.8.4.dist-info/top_level.txt +2 -0
  456. plugins/components/CreateQR.py +39 -0
  457. plugins/components/TestComponent.py +28 -0
  458. plugins/components/Use1.py +13 -0
  459. plugins/components/Workplace.py +117 -0
  460. plugins/components/__init__.py +3 -0
  461. plugins/sources/__init__.py +0 -0
  462. plugins/sources/get_populartimes.py +78 -0
  463. plugins/sources/google.py +150 -0
  464. plugins/sources/hubspot.py +679 -0
  465. plugins/sources/icims.py +679 -0
  466. plugins/sources/mobileinsight.py +501 -0
  467. plugins/sources/newrelic.py +262 -0
  468. plugins/sources/uap.py +268 -0
  469. plugins/sources/venu.py +244 -0
  470. plugins/sources/vocinity.py +314 -0
@@ -0,0 +1,679 @@
1
+ import logging
2
+ import rapidjson
3
+ from time import sleep
4
+ from .rest import restSource
5
+ from hubspot import HubSpot
6
+ from urllib.parse import urlencode
7
+ from querysource.exceptions import *
8
+ from asyncdb.exceptions import ProviderError, NoDataFound
9
+ from querysource.exceptions import DriverError
10
+ from urllib.parse import urlencode
11
+
12
+ class hubspot(restSource):
13
+ """
14
+ HubSpot CRM
15
+ API for integration with CRM HubSpot
16
+ """
17
+ base_url: str = 'https://api.hubapi.com'
18
+ method: str = 'GET'
19
+ timeout: int = 30
20
+ type: str = None
21
+ auth_type: str = 'api_key'
22
+ auth: dict = {
23
+ "API-Key": None
24
+ }
25
+
26
+ def __init__(self, definition=None, params: dict = {}, **kwargs):
27
+ super(hubspot, self).__init__(definition, params, **kwargs)
28
+
29
+ try:
30
+ self.type = definition.params['type']
31
+ except (ValueError, AttributeError):
32
+ self.type = None
33
+
34
+ if 'type' in self._params:
35
+ self.type = self._params['type']
36
+ del self._params['type']
37
+
38
+ if 'api_key' in self._params:
39
+ self._params['hapikey'] = self._params['api_key']
40
+ del self._params['api_key']
41
+ else:
42
+ self._params['hapikey'] = self._env.get('HUBSPOT_API_KEY')
43
+ if not self._params['hapikey']:
44
+ try:
45
+ self._params['hapikey'] = definition.params['api_key']
46
+ except (ValueError, AttributeError):
47
+ raise ValueError("HubSpot: Missing API Key")
48
+
49
+ # self._params = params
50
+ self._args = kwargs
51
+
52
+ if self.type == 'campaigns':
53
+ self.url = self.base_url + '/email/public/v1/campaigns/by-id'
54
+ elif self.type == 'campaign':
55
+ try:
56
+ self._args['campaign_id'] = self._params['campaign_id']
57
+ del self._params['campaign_id']
58
+ except (KeyError, AttributeError):
59
+ raise ValueError("HubSpot: Missing Email Campaign ID")
60
+ self.url = self.base_url + '/email/public/v1/campaigns/{campaign_id}'
61
+ elif self.type == 'active_campaigns':
62
+ self.url = self.base_url + '/email/public/v1/campaigns'
63
+ elif self.type == 'marketing_email_stats':
64
+ self._params['limit'] = 100
65
+ self.url = self.base_url + '/marketing-emails/v1/emails/with-statistics'
66
+ elif self.type == 'engagements':
67
+ self._params['limit'] = 250
68
+ self.url = self.base_url + '/engagements/v1/engagements/paged'
69
+ elif self.type == 'active_engagements':
70
+ self._params['limit'] = 250
71
+ self.url = self.base_url + '/engagements/v1/engagements/recent/modified'
72
+ elif self.type == 'engagement':
73
+ try:
74
+ self._args['engagement_id'] = self._params['engagement_id']
75
+ del self._params['engagement_id']
76
+ except (KeyError, AttributeError):
77
+ raise ValueError("HubSpot: Missing Engagement ID")
78
+ self.url = self.base_url + '/engagements/v1/engagements/{engagement_id}'
79
+ elif self.type == 'email_events':
80
+ self.url = self.base_url + '/email/public/v1/events'
81
+ elif self.type == 'companies':
82
+ self.url = self.base_url + '/companies/v2/companies/paged'
83
+ elif self.type == 'company':
84
+ self.url = self.base_url + '/companies/v2/companies/{companyId}'
85
+ try:
86
+ self._args['companyId'] = self._params['companyId']
87
+ del self._params['companyId']
88
+ except (KeyError, AttributeError):
89
+ raise ValueError("HubSpot: Missing Company ID")
90
+ elif self.type == 'contacts':
91
+ self.url = self.base_url + '/contacts/v1/lists/all/contacts/all'
92
+ self._params['count'] = 100
93
+ self._params['showListMemberships'] = True
94
+ elif self.type == 'contact':
95
+ self.url = self.base_url + '/contacts/v1/contact/vid/{vid}/profile'
96
+ self._params['showListMemberships'] = True
97
+ try:
98
+ self._args['vid'] = self._params['vid']
99
+ del self._params['vid']
100
+ except (KeyError, AttributeError):
101
+ raise ValueError("HubSpot: Missing User VID ID")
102
+ elif self.type == 'company_contacts':
103
+ self.url = self.base_url + '/companies/v2/companies/{companyId}/contacts'
104
+ self._params['count'] = 100
105
+ try:
106
+ self._args['companyId'] = self._params['companyId']
107
+ del self._params['companyId']
108
+ except (KeyError, AttributeError):
109
+ raise ValueError("HubSpot: Missing Company ID")
110
+ elif self.type == 'contact_by_email':
111
+ self.url = self.base_url + '/contacts/v1/contact/email/{email}/profile'
112
+ self.type = 'contact'
113
+ elif self.type == 'companies_list':
114
+ self.url = self.base_url + '/crm/v3/objects/companies'
115
+ self._params['limit'] = 100
116
+ elif self.type == 'contacts_list':
117
+ self.url = self.base_url + '/crm/v3/objects/contacts'
118
+ self._params['limit'] = 100
119
+
120
+ async def marketing_email_stats(self):
121
+ """marketing_email_stats.
122
+
123
+ Get the statistics for all marketing emails.
124
+ """
125
+ self.method = 'GET'
126
+ self._params['limit'] = 100
127
+ self.url = self.base_url + '/marketing-emails/v1/emails/with-statistics'
128
+ self.type = 'marketing_email_stats'
129
+ try:
130
+ self._result = await self.query()
131
+ return self._result
132
+ except Exception as err:
133
+ logging.exception(err)
134
+ raise
135
+
136
+ async def social_media_channels(self):
137
+ """Social media Channels.
138
+
139
+ Get Publishing channels.
140
+ """
141
+ self.method = 'GET'
142
+ self.url = self.base_url + '/broadcast/v1/channels/setting/publish/current'
143
+ self.type = 'social_media'
144
+ try:
145
+ self._result = await self.query()
146
+ return self._result
147
+ except Exception as err:
148
+ logging.exception(err)
149
+ raise
150
+
151
+ async def broadcasts(self):
152
+ self.method = 'GET'
153
+ self.url = self.base_url + '/broadcast/v1/broadcasts'
154
+ self.type = 'social_media'
155
+ try:
156
+ self._result = await self.query()
157
+ return self._result
158
+ except Exception as err:
159
+ logging.exception(err)
160
+ raise
161
+
162
+ async def engagements(self):
163
+ """engagements.
164
+
165
+ get all engagements in an account.
166
+ """
167
+ self.method = 'GET'
168
+ self._params['limit'] = 250
169
+ self.url = self.base_url + '/engagements/v1/engagements/paged'
170
+ self.type = 'engagements'
171
+ try:
172
+ self._result = await self.query()
173
+ return self._result
174
+ except Exception as err:
175
+ logging.exception(err)
176
+ raise
177
+
178
+ async def active_engagements(self):
179
+ """engagements.
180
+
181
+ get all engagements in an account.
182
+ """
183
+ self.method = 'GET'
184
+ self._params['limit'] = 250
185
+ self.url = self.base_url + '/engagements/v1/engagements/recent/modified'
186
+ self.type = 'engagements'
187
+ try:
188
+ self._result = await self.query()
189
+ return self._result
190
+ except Exception as err:
191
+ logging.exception(err)
192
+ raise
193
+
194
+ async def engagement(self):
195
+ """engagement.
196
+
197
+ get an engagement (a task or activity) for a CRM record in HubSpot.
198
+ """
199
+ self.method = 'GET'
200
+ try:
201
+ if 'engagement_id' not in self._args:
202
+ self._args['engagement_id'] = self._params['engagement_id']
203
+ del self._params['engagement_id']
204
+ except (KeyError, AttributeError):
205
+ raise ValueError("HubSpot: Missing Engagement ID")
206
+ self.url = self.base_url + '/engagements/v1/engagements/{engagement_id}'
207
+ self.type = 'engagement'
208
+ try:
209
+ self._result = await self.query()
210
+ return self._result
211
+ except Exception as err:
212
+ logging.exception(err)
213
+ raise
214
+
215
+ async def owner(self):
216
+ """campaigns.
217
+
218
+ Get information about a Campaign
219
+ """
220
+ self.method = 'GET'
221
+ self.url = self.base_url + '/owners/v2/owners/{ownerId}'
222
+ self.type = 'owner'
223
+ try:
224
+ if 'ownerId' not in self._args:
225
+ self._args['ownerId'] = self._params['ownerId']
226
+ del self._params['ownerId']
227
+ except (KeyError, AttributeError):
228
+ raise ValueError("HubSpot: Missing Owner ID")
229
+ try:
230
+ self._result = await self.query()
231
+ return self._result
232
+ except Exception as err:
233
+ logging.exception(err)
234
+ raise
235
+
236
+ async def campaign(self):
237
+ """campaigns.
238
+
239
+ Get information about a Campaign
240
+ """
241
+ self.method = 'GET'
242
+ self.url = self.base_url + '/email/public/v1/campaigns/{campaign_id}'
243
+ self.type = 'campaign'
244
+ try:
245
+ if 'campaign_id' not in self._args:
246
+ self._args['campaign_id'] = self._params['campaign_id']
247
+ del self._params['campaign_id']
248
+ except (KeyError, AttributeError):
249
+ raise ValueError("HubSpot: Missing Email Campaign ID")
250
+ try:
251
+ self._result = await self.query()
252
+ return self._result
253
+ except Exception as err:
254
+ logging.exception(err)
255
+ raise
256
+
257
+ async def campaigns(self):
258
+ """campaigns.
259
+
260
+ Get all the campaigns in a given portal.
261
+ """
262
+ self.method = 'GET'
263
+ self.url = self.base_url + '/email/public/v1/campaigns/by-id'
264
+ self.type = 'active_campaigns'
265
+ try:
266
+ self._result = await self.query()
267
+ return self._result
268
+ except Exception as err:
269
+ logging.exception(err)
270
+ raise
271
+
272
+ async def email_events(self):
273
+ """email_events.
274
+
275
+ query the event log for events.
276
+ """
277
+ self.method = 'GET'
278
+ self.url = self.base_url + '/email/public/v1/events'
279
+ self.type = 'email_events'
280
+ try:
281
+ self._params['campaignId'] = self._params['campaign_id']
282
+ del self._params['campaign_id']
283
+ except (KeyError, AttributeError):
284
+ raise ValueError("HubSpot: Missing Email Campaign ID")
285
+ try:
286
+ self._result = await self.query()
287
+ return self._result
288
+ except Exception as err:
289
+ logging.exception(err)
290
+ raise
291
+
292
+ async def active_campaigns(self):
293
+ """active_campaigns.
294
+
295
+ Get all the active campaigns in a given portal.
296
+ """
297
+ self.method = 'GET'
298
+ self.url = self.base_url + '/email/public/v1/campaigns'
299
+ self.type = 'active_campaigns'
300
+ try:
301
+ self._result = await self.query()
302
+ return self._result
303
+ except Exception as err:
304
+ logging.exception(err)
305
+ raise
306
+
307
+ async def companies(self):
308
+ """companies.
309
+
310
+ Get all companies in the HubSpot account.
311
+ """
312
+ self.method = 'GET'
313
+ self.url = self.base_url + '/companies/v2/companies/paged'
314
+ self.type = 'companies'
315
+ self._params['limit'] = 100
316
+ try:
317
+ self._result = await self.query()
318
+ return self._result
319
+ except Exception as err:
320
+ logging.exception(err)
321
+ raise
322
+
323
+ async def companies_list(self):
324
+ """companies_list.
325
+
326
+ Get all companies in the HubSpot account (api v3).
327
+ """
328
+ self.method = 'GET'
329
+ self.url = self.base_url + '/crm/v3/objects/companies'
330
+ self.type = 'companies_list'
331
+ self._params['limit'] = 100
332
+ try:
333
+ self._result = await self.query()
334
+ return self._result
335
+ except Exception as err:
336
+ logging.exception(err)
337
+ raise
338
+
339
+ async def company(self):
340
+ """company.
341
+
342
+ Get all information about a Company
343
+ """
344
+ self.method = 'GET'
345
+ self.url = self.base_url + '/companies/v2/companies/{companyId}'
346
+ self.type = 'company'
347
+ try:
348
+ if 'company' not in self._args:
349
+ self._args['companyId'] = self._params['companyId']
350
+ del self._params['companyId']
351
+ except (KeyError, AttributeError):
352
+ raise ValueError("HubSpot: Missing Company ID")
353
+ try:
354
+ self._result = await self.query()
355
+ return self._result
356
+ except Exception as err:
357
+ logging.exception(err)
358
+ raise
359
+
360
+ async def events(self):
361
+ """events.
362
+
363
+ Get all events on a given portal.
364
+ """
365
+ self.method = 'GET'
366
+ self.url = self.base_url + '/reports/v2/events'
367
+ self.type = 'events'
368
+ try:
369
+ self._result = await self.query()
370
+ return self._result
371
+ except Exception as err:
372
+ logging.exception(err)
373
+ raise
374
+
375
+ async def event(self):
376
+ """event.
377
+
378
+ Given an event, returns a specific event definition in a given portal.
379
+ """
380
+ self.method = 'GET'
381
+ self.url = self.base_url + '/reports/v2/events/{event_id}'
382
+ self.type = 'event'
383
+ try:
384
+ self._args['event_id'] = self._params['event_id']
385
+ del self._params['event_id']
386
+ except (KeyError, AttributeError):
387
+ raise ValueError("HubSpot: Missing Event ID")
388
+ try:
389
+ self._result = await self.query()
390
+ return self._result
391
+ except Exception as err:
392
+ logging.exception(err)
393
+ raise
394
+
395
+ async def contacts(self):
396
+ """user contacts.
397
+
398
+ Get all contacts in the HubSpot account.
399
+ """
400
+ self.method = 'GET'
401
+ self.url = self.base_url + '/contacts/v1/lists/all/contacts/all'
402
+ self.type = 'contacts'
403
+ self._params['count'] = 100
404
+ self._params['showListMemberships'] = True
405
+ try:
406
+ self._result = await self.query()
407
+ return self._result
408
+ except Exception as err:
409
+ logging.exception(err)
410
+ raise
411
+
412
+ async def contacts_list(self):
413
+ """user contacts.
414
+
415
+ Get all contacts in the HubSpot account (v3 api).
416
+ """
417
+ self.method = 'GET'
418
+ self.url = self.base_url + '/crm/v3/objects/contacts'
419
+ self.type = 'contacts_list'
420
+ self._params['limit'] = 100
421
+ try:
422
+ self._result = await self.query()
423
+ return self._result
424
+ except Exception as err:
425
+ logging.exception(err)
426
+ raise
427
+
428
+ async def contact_by_email(self):
429
+ """user contact.
430
+
431
+ Given an User Id (vid), returns the contact.
432
+ """
433
+ self.method = 'GET'
434
+ self.url = self.base_url + '/contacts/v1/contact/email/{email}/profile'
435
+ self.type = 'contact'
436
+ try:
437
+ self._args['email'] = self._params['email']
438
+ del self._params['email']
439
+ except (KeyError, AttributeError):
440
+ raise ValueError("HubSpot: Missing User Email for Search")
441
+ try:
442
+ self._result = await self.query()
443
+ return self._result
444
+ except Exception as err:
445
+ logging.exception(err)
446
+ raise
447
+
448
+ async def contact(self):
449
+ """user contact.
450
+
451
+ Given an User Id (vid), returns the contact.
452
+ """
453
+ self.method = 'GET'
454
+ self.url = self.base_url + '/contacts/v1/contact/vid/{vid}/profile'
455
+ self.type = 'contact'
456
+ self._params['showListMemberships'] = True
457
+ try:
458
+ self._args['vid'] = self._params['vid']
459
+ del self._params['vid']
460
+ except (KeyError, AttributeError):
461
+ raise ValueError("HubSpot: Missing User VID ID")
462
+ try:
463
+ self._result = await self.query()
464
+ return self._result
465
+ except Exception as err:
466
+ logging.exception(err)
467
+ raise
468
+
469
+ async def company_contacts(self):
470
+ """user contacts.
471
+
472
+ Get all contacts in the HubSpot account.
473
+ """
474
+ self.method = 'GET'
475
+ self.url = self.base_url + '/companies/v2/companies/{companyId}/contacts'
476
+ self.type = 'company_contacts'
477
+ self._params['count'] = 100
478
+ try:
479
+ self._args['companyId'] = self._params['companyId']
480
+ del self._params['companyId']
481
+ except (KeyError, AttributeError):
482
+ raise ValueError("HubSpot: Missing Company ID")
483
+ try:
484
+ self._result = await self.query()
485
+ return self._result
486
+ except Exception as err:
487
+ logging.exception(err)
488
+ raise
489
+
490
+ async def get_next_result(
491
+ self,
492
+ result,
493
+ event: str = '',
494
+ more:str = 'hasMore',
495
+ offset_name: str = 'offset',
496
+ offset_url: str = 'offset'
497
+ ):
498
+ r = result[event]
499
+ next = True
500
+ page = 1
501
+ offset = result[offset_name]
502
+ more_results = result[more]
503
+ while next == True:
504
+ if more_results is False:
505
+ break
506
+ url = self.build_url(
507
+ self.url, queryparams=urlencode({offset_url: offset})
508
+ )
509
+ page = page + 1
510
+ print('Fetching page %s' % page)
511
+ try:
512
+ res, error = await self.request(url)
513
+ if error:
514
+ print(error)
515
+ next = False
516
+ break
517
+ data = res[event]
518
+ offset = res[offset_name]
519
+ more_results = res[more]
520
+ if len(data) > 0:
521
+ r = r + data
522
+ else:
523
+ next = False
524
+ break
525
+ except Exception as err:
526
+ print(err)
527
+ next = False
528
+ print(':: Returning Results')
529
+ return r
530
+
531
+ async def get_next_result_v2(
532
+ self,
533
+ result,
534
+ event: str = '',
535
+ more:str = 'has-more',
536
+ offset_name: str = 'offset',
537
+ offset_url: str = 'offset'
538
+ ):
539
+ r = result[event]
540
+ next = True
541
+ offset = result[offset_name] + 1
542
+ while next == True:
543
+ url = self.build_url(
544
+ self.url, queryparams=urlencode({offset_url: offset})
545
+ )
546
+ offset = offset + 1
547
+ print('Fetching page %s' % offset)
548
+ try:
549
+ res, error = await self.request(url)
550
+ if error:
551
+ print(error)
552
+ next = False
553
+ break
554
+ data = res[event]
555
+ if len(data) > 0:
556
+ r = r + data
557
+ else:
558
+ next = False
559
+ break
560
+ except Exception as err:
561
+ print(err)
562
+ next = False
563
+ print(':: Returning Results')
564
+ return r
565
+
566
+ async def get_next_result_v3(
567
+ self,
568
+ result,
569
+ event: str = ''
570
+ ):
571
+ r = result[event]
572
+ next = True
573
+ paging = result['paging']
574
+ page = 1
575
+ try:
576
+ offset = paging['next']['after']
577
+ except (ValueError, KeyError):
578
+ next = False
579
+ while next == True:
580
+ url = self.build_url(
581
+ self.url, queryparams=urlencode({"after": offset})
582
+ )
583
+ print('Fetching page %s' % page)
584
+ try:
585
+ res, error = await self.request(url)
586
+ if error:
587
+ print(error)
588
+ next = False
589
+ break
590
+ data = res[event]
591
+ try:
592
+ paging = res['paging']
593
+ offset = paging['next']['after']
594
+ except (ValueError, KeyError):
595
+ next = False
596
+ break
597
+ page = page + 1
598
+ if len(data) > 0:
599
+ r = r + data
600
+ else:
601
+ next = False
602
+ break
603
+ except Exception as err:
604
+ print(err)
605
+ next = False
606
+ print(':: Returning Results')
607
+ return r
608
+
609
+ async def query(self):
610
+ """Query.
611
+
612
+ Basic Query of HubSpot API.
613
+ """
614
+ self._result = None
615
+ # create URL
616
+ self.url = self.build_url(
617
+ self.url,
618
+ args=self._args,
619
+ queryparams=urlencode(self._params)
620
+ )
621
+ try:
622
+ result, error = await self.request(
623
+ self.url, self.method
624
+ )
625
+ if not result:
626
+ raise NoDataFound('HubSpot: No data was found')
627
+ if error:
628
+ print(err)
629
+ raise ProviderError(str(error))
630
+ if self.type in ['campaigns', 'active_campaigns']:
631
+ self._result = await self.get_next_result(result, 'campaigns')
632
+ elif self.type in ['email_events']:
633
+ self._result = await self.get_next_result(result, 'events')
634
+ elif self.type in ['engagements']:
635
+ self._result = await self.get_next_result(result, 'results')
636
+ elif self.type in ['companies']:
637
+ self._result = await self.get_next_result(result, self.type, more='has-more')
638
+ elif self.type == 'company_contacts':
639
+ self._result = await self.get_next_result(
640
+ result,
641
+ 'contacts',
642
+ more='hasMore',
643
+ offset_name='vidOffset',
644
+ offset_url='vidOffset'
645
+ )
646
+ elif self.type == 'contacts':
647
+ self._result = await self.get_next_result(
648
+ result,
649
+ self.type,
650
+ more='has-more',
651
+ offset_name='vid-offset',
652
+ offset_url='vidOffset'
653
+ )
654
+ elif self.type == 'marketing_email_stats':
655
+ try:
656
+ self._result = await self.get_next_result_v2(result, 'objects')
657
+ except Exception as err:
658
+ logging.error(err)
659
+ elif self.type in ['companies_list', 'contacts_list', 'deals']:
660
+ # version 3 of API
661
+ try:
662
+ self._result = await self.get_next_result_v3(result, 'results')
663
+ except Exception as err:
664
+ logging.error(err)
665
+ else:
666
+ self._result = result
667
+ except NoDataFound as err:
668
+ print("HUBSPOT NO DATA FOUND: === ", err)
669
+ raise
670
+ self._result = None
671
+ except ProviderError as err:
672
+ print("HUBSPOT PROVIDER ERROR: === ", err)
673
+ raise
674
+ except Exception as err:
675
+ print("HUBSPOT ERROR: === ", err)
676
+ self._result = None
677
+ raise
678
+ finally:
679
+ return self._result