flowtask 5.13.3__tar.gz → 5.13.5__tar.gz

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 (883) hide show
  1. {flowtask-5.13.3 → flowtask-5.13.5}/PKG-INFO +6 -6
  2. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/BestBuy.py +41 -14
  3. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/FileRead.py +8 -3
  4. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/models/forms.py +4 -1
  5. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/router.py +30 -6
  6. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/OpenWithBase.py +7 -2
  7. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/PlanogramCompliance.py +118 -19
  8. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductReportBot.py +3 -2
  9. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SchedulingVisits.py +3 -3
  10. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tMap/tMap.py +7 -1
  11. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/conf.py +71 -0
  12. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/PlanogramCompliance.doc.json +1 -1
  13. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/index.json +1 -1
  14. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/actions/zoom_event.py +8 -2
  15. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/service.py +2 -2
  16. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/compress.py +2 -2
  17. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/databases/db.py +2 -1
  18. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/db.py +2 -2
  19. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/file_base.py +8 -1
  20. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/qs.py +3 -2
  21. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/custom_report.py +10 -2
  22. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/models.py +3 -2
  23. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/scheduler/functions.py +2 -1
  24. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/scheduler/scheduler.py +2 -1
  25. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/files/service.py +2 -2
  26. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/tasks/abstract.py +2 -2
  27. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/version.py +1 -1
  28. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask.egg-info/PKG-INFO +6 -6
  29. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask.egg-info/requires.txt +4 -4
  30. {flowtask-5.13.3 → flowtask-5.13.5}/pyproject.toml +5 -5
  31. {flowtask-5.13.3 → flowtask-5.13.5}/CONTRIBUTING.md +0 -0
  32. {flowtask-5.13.3 → flowtask-5.13.5}/INSTALL +0 -0
  33. {flowtask-5.13.3 → flowtask-5.13.5}/LICENSE +0 -0
  34. {flowtask-5.13.3 → flowtask-5.13.5}/MANIFEST.in +0 -0
  35. {flowtask-5.13.3 → flowtask-5.13.5}/README.md +0 -0
  36. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/__init__.py +0 -0
  37. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/__main__.py +0 -0
  38. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/_version.py +0 -0
  39. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/bots/__init__.py +0 -0
  40. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/bots/check.py +0 -0
  41. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/bots/codebot.py +0 -0
  42. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ASPX.py +0 -0
  43. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ATT.py +0 -0
  44. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/AddDataset.py +0 -0
  45. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Amazon.py +0 -0
  46. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/AutoTask.py +0 -0
  47. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Azure.py +0 -0
  48. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/AzureUsers.py +0 -0
  49. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/BaseAction.py +0 -0
  50. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/BaseLoop.py +0 -0
  51. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CSVToGCS.py +0 -0
  52. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CallAnalysis.py +0 -0
  53. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CallSummary.py +0 -0
  54. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CensusData.py +0 -0
  55. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CensusVariables.py +0 -0
  56. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CompanyScraper/__init__.py +0 -0
  57. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CompanyScraper/parsers/__init__.py +0 -0
  58. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CompanyScraper/parsers/base.py +0 -0
  59. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CompanyScraper/parsers/explorium.py +0 -0
  60. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CompanyScraper/parsers/leadiq.py +0 -0
  61. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CompanyScraper/parsers/rocket.py +0 -0
  62. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CompanyScraper/parsers/siccode.py +0 -0
  63. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CompanyScraper/parsers/visualvisitor.py +0 -0
  64. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CompanyScraper/parsers/zoominfo.py +0 -0
  65. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CompanyScraper/scrapper.py +0 -0
  66. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CopyFromBase.py +0 -0
  67. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CopyFromS3.py +0 -0
  68. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CopyFromSharepoint.py +0 -0
  69. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CopyTo.py +0 -0
  70. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CopyToBigQuery.py +0 -0
  71. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CopyToFileBase.py +0 -0
  72. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CopyToMongoDB.py +0 -0
  73. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CopyToPg.py +0 -0
  74. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CopyToRethink.py +0 -0
  75. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CopyToS3.py +0 -0
  76. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CopyToSharepoint.py +0 -0
  77. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Costco.py +0 -0
  78. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CreateGCSBucket.py +0 -0
  79. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CreateReport/CreateReport.py +0 -0
  80. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CreateReport/__init__.py +0 -0
  81. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CreateReport/charts/__init__.py +0 -0
  82. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CreateReport/charts/bar.py +0 -0
  83. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CreateReport/charts/base.py +0 -0
  84. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CreateReport/charts/pie.py +0 -0
  85. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CreateReport/utils.py +0 -0
  86. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/CustomerSatisfaction.py +0 -0
  87. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DataInput.py +0 -0
  88. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DateList.py +0 -0
  89. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DbClient.py +0 -0
  90. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DialPad.py +0 -0
  91. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DispatchMe.py +0 -0
  92. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DocumentDBQuery.py +0 -0
  93. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DownloadFrom.py +0 -0
  94. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DownloadFromD2L.py +0 -0
  95. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DownloadFromFTP.py +0 -0
  96. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DownloadFromGamma.py +0 -0
  97. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DownloadFromGoogleDrive.py +0 -0
  98. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DownloadFromIMAP.py +0 -0
  99. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DownloadFromS3.py +0 -0
  100. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DownloadFromSFTP.py +0 -0
  101. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DownloadFromSharepoint.py +0 -0
  102. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DownloadFromSmartSheet.py +0 -0
  103. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DownloadFromSmartsheet.py +0 -0
  104. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DownloadS3File.py +0 -0
  105. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Dummy.py +0 -0
  106. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/DuplicatePhoto.py +0 -0
  107. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/EmployeeEvaluation.py +0 -0
  108. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ExecuteSQL.py +0 -0
  109. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ExtractHTML.py +0 -0
  110. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ExtractTranscript.py +0 -0
  111. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/FileBase.py +0 -0
  112. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/FileCopy.py +0 -0
  113. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/FileDelete.py +0 -0
  114. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/FileExists.py +0 -0
  115. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/FileIteratorDelete.py +0 -0
  116. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/FileList.py +0 -0
  117. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/FileOpen.py +0 -0
  118. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/FileRename.py +0 -0
  119. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/FilterIf.py +0 -0
  120. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/FilterRows/FilterRows.py +0 -0
  121. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/FilterRows/__init__.py +0 -0
  122. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/FilterRows/functions.py +0 -0
  123. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/GCSToBigQuery.py +0 -0
  124. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/GenData.py +0 -0
  125. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/GoogleA4.py +0 -0
  126. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/GoogleGeoCoding.py +0 -0
  127. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/GooglePlaces.py +0 -0
  128. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/GoogleSearch.py +0 -0
  129. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/HTTPClient.py +0 -0
  130. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ICIMS.py +0 -0
  131. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/IF.py +0 -0
  132. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/IcimsFolderCopy.py +0 -0
  133. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ImageFeatures/__init__.py +0 -0
  134. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ImageFeatures/process.py +0 -0
  135. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/IteratorBase.py +0 -0
  136. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/LeadIQ.py +0 -0
  137. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Loop.py +0 -0
  138. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Lowes.py +0 -0
  139. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/MS365Usage.py +0 -0
  140. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/MSTeamsMessages.py +0 -0
  141. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/MarkdownMaker.py +0 -0
  142. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/MarketClustering.py +0 -0
  143. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/MergeFileList.py +0 -0
  144. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/MergeFiles.py +0 -0
  145. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/MilvusOutput.py +0 -0
  146. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NearByStores.py +0 -0
  147. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/__init__.py +0 -0
  148. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/models/__init__.py +0 -0
  149. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/models/abstract.py +0 -0
  150. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/models/account.py +0 -0
  151. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/models/client.py +0 -0
  152. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/models/district.py +0 -0
  153. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/models/events.py +0 -0
  154. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/models/market.py +0 -0
  155. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/models/organization.py +0 -0
  156. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/models/photos.py +0 -0
  157. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/models/project.py +0 -0
  158. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/models/region.py +0 -0
  159. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/models/store.py +0 -0
  160. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinja/models/user.py +0 -0
  161. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NetworkNinjaClaims.py +0 -0
  162. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NextStopAgent.py +0 -0
  163. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/NextTask.py +0 -0
  164. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Odoo.py +0 -0
  165. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/OdooInjector.py +0 -0
  166. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/OpenFromXML.py +0 -0
  167. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/OpenStreetMap.py +0 -0
  168. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/OpenWeather.py +0 -0
  169. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/OpenWithPandas.py +0 -0
  170. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/PDFGenerator.py +0 -0
  171. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/PGPDecrypt.py +0 -0
  172. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/PandasIterator.py +0 -0
  173. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/PandasToFile.py +0 -0
  174. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/PandasToPowerPoint.py +0 -0
  175. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Paradox.py +0 -0
  176. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ParamIterator.py +0 -0
  177. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ParrotAgent.py +0 -0
  178. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ParrotKnowledgeBuilder/__init__.py +0 -0
  179. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ParrotKnowledgeBuilder/loader.py +0 -0
  180. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ParrotKnowledgeBuilder/payload.py +0 -0
  181. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ParrotLoader/__init__.py +0 -0
  182. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ParrotLoader/loader.py +0 -0
  183. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ParseHTML.py +0 -0
  184. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/PgVectorOutput.py +0 -0
  185. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/PlacerStores.py +0 -0
  186. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/PodcastMaker.py +0 -0
  187. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Pokemon.py +0 -0
  188. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/PositiveBot.py +0 -0
  189. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/PowerPointSlide.py +0 -0
  190. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/PrintMessage.py +0 -0
  191. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductCompetitors/__init__.py +0 -0
  192. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductCompetitors/parsers/__init__.py +0 -0
  193. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductCompetitors/parsers/base.py +0 -0
  194. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductCompetitors/parsers/bestbuy.py +0 -0
  195. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductCompetitors/parsers/lowes.py +0 -0
  196. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductCompetitors/scrapper.py +0 -0
  197. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductCompliant.py +0 -0
  198. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductInfo/__init__.py +0 -0
  199. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductInfo/parsers/__init__.py +0 -0
  200. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductInfo/parsers/base.py +0 -0
  201. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductInfo/parsers/brother.py +0 -0
  202. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductInfo/parsers/canon.py +0 -0
  203. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductInfo/parsers/epson.py +0 -0
  204. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductInfo/parsers/hp.py +0 -0
  205. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductInfo/parsers/samsung.py +0 -0
  206. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductInfo/scraper.py +0 -0
  207. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ProductPricing.py +0 -0
  208. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/QS.py +0 -0
  209. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/QSBase.py +0 -0
  210. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/QueryIterator.py +0 -0
  211. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/QueryToInsert.py +0 -0
  212. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/QueryToPandas.py +0 -0
  213. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/RESTClient.py +0 -0
  214. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/RethinkDBQuery.py +0 -0
  215. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Rsync.py +0 -0
  216. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/RunSSH.py +0 -0
  217. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/RunShell.py +0 -0
  218. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SAPExtraction.py +0 -0
  219. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SMSAnalysis.py +0 -0
  220. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SMSSummary.py +0 -0
  221. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SalesForce.py +0 -0
  222. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Sassie.py +0 -0
  223. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SaveImageBank/__init__.py +0 -0
  224. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ScrapPage.py +0 -0
  225. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ScrapSearch.py +0 -0
  226. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ScrapTool.py +0 -0
  227. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SearchQuery.py +0 -0
  228. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SendEmail.py +0 -0
  229. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SendNotify/__init__.py +0 -0
  230. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SendNotify/component.py +0 -0
  231. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SendNotify/models/__init__.py +0 -0
  232. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SendNotify/models/abstract.py +0 -0
  233. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SendNotify/models/zoom.py +0 -0
  234. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SentimentAnalysis.py +0 -0
  235. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ServiceScraperStores/__init__.py +0 -0
  236. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ServiceScraperStores/retailers/__init__.py +0 -0
  237. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ServiceScraperStores/retailers/base.py +0 -0
  238. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ServiceScraperStores/retailers/costco.py +0 -0
  239. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ServiceScraperStores/retailers/tractor_supply.py +0 -0
  240. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ServiceScraperStores/retailers/verizon.py +0 -0
  241. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ServiceScraperStores/scraper.py +0 -0
  242. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ServiceScrapper/__init__.py +0 -0
  243. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ServiceScrapper/parsers/__init__.py +0 -0
  244. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ServiceScrapper/parsers/base.py +0 -0
  245. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ServiceScrapper/parsers/costco.py +0 -0
  246. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ServiceScrapper/scrapper.py +0 -0
  247. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SetVariables.py +0 -0
  248. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SplitPDF.py +0 -0
  249. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Staples.py +0 -0
  250. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SubTask.py +0 -0
  251. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SuiteCRM.py +0 -0
  252. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SweetSpotScore/__init__.py +0 -0
  253. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SweetSpotScore/component.py +0 -0
  254. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/SweetSpotScore/layers.py +0 -0
  255. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Switch.py +0 -0
  256. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/TableBase.py +0 -0
  257. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/TableDelete.py +0 -0
  258. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/TableInput.py +0 -0
  259. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/TableOutput/TableOutput.py +0 -0
  260. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/TableOutput/__init__.py +0 -0
  261. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/TableSchema.py +0 -0
  262. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Target.py +0 -0
  263. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ThumbnailGenerator.py +0 -0
  264. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ToPandas.py +0 -0
  265. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/TransformRows/TransformRows.py +0 -0
  266. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/TransformRows/__init__.py +0 -0
  267. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/TransformRows/functions.py +0 -0
  268. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/TransposeRows.py +0 -0
  269. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/UPCDatabase.py +0 -0
  270. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/UnGzip.py +0 -0
  271. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Uncompress.py +0 -0
  272. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/UniqueRows.py +0 -0
  273. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Unzip.py +0 -0
  274. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/UpdateOperationalVars.py +0 -0
  275. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/UploadTo.py +0 -0
  276. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/UploadToS3.py +0 -0
  277. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/UploadToSFTP.py +0 -0
  278. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/UploadToSharepoint.py +0 -0
  279. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/UserFunc.py +0 -0
  280. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/VideoUnderstanding.py +0 -0
  281. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/VivaTracker.py +0 -0
  282. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/WSDLClient.py +0 -0
  283. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Wait.py +0 -0
  284. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Walmart.py +0 -0
  285. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/__init__.py +0 -0
  286. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/__init__.py +0 -0
  287. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/applicant.py +0 -0
  288. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/candidate.py +0 -0
  289. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/cost_center.py +0 -0
  290. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/custom_punch_field_report.py +0 -0
  291. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/job_posting.py +0 -0
  292. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/job_posting_site.py +0 -0
  293. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/job_requisition.py +0 -0
  294. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/location.py +0 -0
  295. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/location_hierarchy_assignments.py +0 -0
  296. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/organizations.py +0 -0
  297. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/reference.py +0 -0
  298. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/time_block.py +0 -0
  299. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/time_off_balance.py +0 -0
  300. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/time_request.py +0 -0
  301. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/models/worker.py +0 -0
  302. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/__init__.py +0 -0
  303. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/applicant_parsers.py +0 -0
  304. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/candidate_parsers.py +0 -0
  305. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/cost_center_parsers.py +0 -0
  306. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/custom_punch_field_report_parsers.py +0 -0
  307. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/job_posting_parsers.py +0 -0
  308. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/job_posting_site_parsers.py +0 -0
  309. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/job_requisition_parsers.py +0 -0
  310. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/location_hierarchy_assignments_parsers.py +0 -0
  311. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/location_parsers.py +0 -0
  312. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/organization_parsers.py +0 -0
  313. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/reference_parsers.py +0 -0
  314. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/time_block_parsers.py +0 -0
  315. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/time_off_balance_parsers.py +0 -0
  316. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/time_request_parsers.py +0 -0
  317. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/parsers/worker_parsers.py +0 -0
  318. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/__init__.py +0 -0
  319. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/applicants.py +0 -0
  320. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/base.py +0 -0
  321. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/candidates.py +0 -0
  322. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/cost_centers.py +0 -0
  323. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/custom_punch_field_report.py +0 -0
  324. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/custom_punch_field_report_rest.py +0 -0
  325. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/custom_report.py +0 -0
  326. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/job_posting_sites.py +0 -0
  327. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/job_postings.py +0 -0
  328. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/job_requisitions.py +0 -0
  329. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/location_hierarchy_assignments.py +0 -0
  330. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/locations.py +0 -0
  331. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/organization_single.py +0 -0
  332. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/organizations.py +0 -0
  333. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/recruiting_agency_users.py +0 -0
  334. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/references.py +0 -0
  335. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/time_block_report.py +0 -0
  336. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/time_blocks.py +0 -0
  337. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/time_off_balances.py +0 -0
  338. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/time_requests.py +0 -0
  339. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/types/workers.py +0 -0
  340. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/utils/__init__.py +0 -0
  341. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/utils/utils.py +0 -0
  342. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workday/workday.py +0 -0
  343. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/WorkdayReport.py +0 -0
  344. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Workplace.py +0 -0
  345. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/XMLToPandas.py +0 -0
  346. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Zammad/__init__.py +0 -0
  347. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Zammad/models.py +0 -0
  348. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/Zoom.py +0 -0
  349. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ZoomInfoScraper.py +0 -0
  350. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/ZoomUs.py +0 -0
  351. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/__init__.py +0 -0
  352. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/_census/__init__.py +0 -0
  353. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/_census/cache.py +0 -0
  354. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/_census/fetch.py +0 -0
  355. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/_census/resolver.py +0 -0
  356. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/_census/transform.py +0 -0
  357. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/abstract.py +0 -0
  358. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/flow.py +0 -0
  359. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/gendata/__init__.py +0 -0
  360. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/gendata/date_sequence.py +0 -0
  361. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/gendata/static_list.py +0 -0
  362. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/google.py +0 -0
  363. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/group.py +0 -0
  364. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/pandas_io.py +0 -0
  365. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/py.typed +0 -0
  366. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/reviewscrap.py +0 -0
  367. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tAddTotalRow.py +0 -0
  368. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tAutoincrement.py +0 -0
  369. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tConcat.py +0 -0
  370. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tConditionalMultiply.py +0 -0
  371. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tCrosstab.py +0 -0
  372. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tDictKey.py +0 -0
  373. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tDiff.py +0 -0
  374. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tExplode.py +0 -0
  375. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tFilter.py +0 -0
  376. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tFilterCommonValues.py +0 -0
  377. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tFlatten.py +0 -0
  378. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tFrequencyWeights.py +0 -0
  379. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tGroup.py +0 -0
  380. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tJoin.py +0 -0
  381. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tMap/__init__.py +0 -0
  382. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tMap/functions.py +0 -0
  383. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tMelt.py +0 -0
  384. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tMerge.py +0 -0
  385. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tOrder.py +0 -0
  386. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tPandas.py +0 -0
  387. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tPivot.py +0 -0
  388. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tPluckCols.py +0 -0
  389. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/tUnnest.py +0 -0
  390. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/components/user.py +0 -0
  391. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/__init__.py +0 -0
  392. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/categories.json +0 -0
  393. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/cli.py +0 -0
  394. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/ASPX.doc.json +0 -0
  395. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/AddDataset.doc.json +0 -0
  396. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/AutoTask.doc.json +0 -0
  397. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/AzureUsers.doc.json +0 -0
  398. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/BestBuy.doc.json +0 -0
  399. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/CallAnalysis.doc.json +0 -0
  400. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/CallSummary.doc.json +0 -0
  401. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/CompanyScraper.doc.json +0 -0
  402. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/CopyFromS3.doc.json +0 -0
  403. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/CopyFromSharepoint.doc.json +0 -0
  404. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/CopyToBigQuery.doc.json +0 -0
  405. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/CopyToMongoDB.doc.json +0 -0
  406. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/CopyToPg.doc.json +0 -0
  407. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/CopyToRethink.doc.json +0 -0
  408. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/CopyToS3.doc.json +0 -0
  409. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/CopyToSharepoint.doc.json +0 -0
  410. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/CreateReport.doc.json +0 -0
  411. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/CustomerSatisfaction.doc.json +0 -0
  412. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/DataInput.doc.json +0 -0
  413. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/DateList.doc.json +0 -0
  414. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/DialPad.doc.json +0 -0
  415. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/DownloadFromD2L.doc.json +0 -0
  416. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/DownloadFromFTP.doc.json +0 -0
  417. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/DownloadFromIMAP.doc.json +0 -0
  418. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/DownloadFromS3.doc.json +0 -0
  419. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/DownloadFromSFTP.doc.json +0 -0
  420. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/DownloadFromSharepoint.doc.json +0 -0
  421. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/DownloadFromSmartSheet.doc.json +0 -0
  422. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/DownloadFromSmartsheet.doc.json +0 -0
  423. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/EmployeeEvaluation.doc.json +0 -0
  424. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/ExecuteSQL.doc.json +0 -0
  425. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/ExtractTranscript.doc.json +0 -0
  426. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/FileCopy.doc.json +0 -0
  427. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/FileDelete.doc.json +0 -0
  428. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/FileExists.doc.json +0 -0
  429. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/FileIteratorDelete.doc.json +0 -0
  430. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/FileList.doc.json +0 -0
  431. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/FileOpen.doc.json +0 -0
  432. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/FileRead.doc.json +0 -0
  433. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/FileRename.doc.json +0 -0
  434. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/FilterIf.doc.json +0 -0
  435. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/FilterRows.doc.json +0 -0
  436. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/GoogleA4.doc.json +0 -0
  437. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/GoogleGeoCoding.doc.json +0 -0
  438. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/GoogleSearch.doc.json +0 -0
  439. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/HTTPClient.doc.json +0 -0
  440. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/ICIMS.doc.json +0 -0
  441. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/IteratorBase.doc.json +0 -0
  442. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/LeadIQ.doc.json +0 -0
  443. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/MS365Usage.doc.json +0 -0
  444. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/MSTeamsMessages.doc.json +0 -0
  445. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/MergeFileList.doc.json +0 -0
  446. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/MergeFiles.doc.json +0 -0
  447. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/NetworkNinjaClaims.doc.json +0 -0
  448. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/NextTask.doc.json +0 -0
  449. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/Odoo.doc.json +0 -0
  450. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/OdooInjector.doc.json +0 -0
  451. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/OpenFromXML.doc.json +0 -0
  452. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/OpenWithBase.doc.json +0 -0
  453. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/OpenWithPandas.doc.json +0 -0
  454. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/PGPDecrypt.doc.json +0 -0
  455. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/PandasIterator.doc.json +0 -0
  456. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/PandasToFile.doc.json +0 -0
  457. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/Paradox.doc.json +0 -0
  458. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/ParamIterator.doc.json +0 -0
  459. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/ParrotAgent.doc.json +0 -0
  460. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/PlacerStores.doc.json +0 -0
  461. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/Pokemon.doc.json +0 -0
  462. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/PositiveBot.doc.json +0 -0
  463. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/PowerPointSlide.doc.json +0 -0
  464. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/PrintMessage.doc.json +0 -0
  465. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/ProductCompliant.doc.json +0 -0
  466. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/ProductPricing.doc.json +0 -0
  467. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/ProductReportBot.doc.json +0 -0
  468. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/QS.doc.json +0 -0
  469. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/QueryIterator.doc.json +0 -0
  470. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/QueryToInsert.doc.json +0 -0
  471. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/QueryToPandas.doc.json +0 -0
  472. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/RESTClient.doc.json +0 -0
  473. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/RunShell.doc.json +0 -0
  474. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/SAPExtraction.doc.json +0 -0
  475. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/Sassie.doc.json +0 -0
  476. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/ScrapTool.doc.json +0 -0
  477. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/SearchQuery.doc.json +0 -0
  478. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/SendNotify.doc.json +0 -0
  479. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/SentimentAnalysis.doc.json +0 -0
  480. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/ServiceScraperStores.doc.json +0 -0
  481. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/ServiceScrapper.doc.json +0 -0
  482. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/SetVariables.doc.json +0 -0
  483. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/SplitPDF.doc.json +0 -0
  484. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/SubTask.doc.json +0 -0
  485. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/SuiteCRM.doc.json +0 -0
  486. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/TableDelete.doc.json +0 -0
  487. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/TableInput.doc.json +0 -0
  488. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/TableOutput.doc.json +0 -0
  489. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/TableSchema.doc.json +0 -0
  490. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/ThumbnailGenerator.doc.json +0 -0
  491. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/TransformRows.doc.json +0 -0
  492. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/TransposeRows.doc.json +0 -0
  493. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/UnGzip.doc.json +0 -0
  494. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/Uncompress.doc.json +0 -0
  495. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/UniqueRows.doc.json +0 -0
  496. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/Unzip.doc.json +0 -0
  497. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/UploadToS3.doc.json +0 -0
  498. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/UploadToSFTP.doc.json +0 -0
  499. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/UploadToSharepoint.doc.json +0 -0
  500. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/UserFunc.doc.json +0 -0
  501. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/Zoom.doc.json +0 -0
  502. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/ZoomInfoScraper.doc.json +0 -0
  503. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tAutoincrement.doc.json +0 -0
  504. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tConcat.doc.json +0 -0
  505. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tConditionalMultiply.doc.json +0 -0
  506. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tCrosstab.doc.json +0 -0
  507. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tDictKey.doc.json +0 -0
  508. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tDiff.doc.json +0 -0
  509. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tExplode.doc.json +0 -0
  510. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tFilter.doc.json +0 -0
  511. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tFilterCommonValues.doc.json +0 -0
  512. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tFlatten.doc.json +0 -0
  513. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tFrequencyWeights.doc.json +0 -0
  514. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tGroup.doc.json +0 -0
  515. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tJoin.doc.json +0 -0
  516. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tMap.doc.json +0 -0
  517. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tMelt.doc.json +0 -0
  518. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tOrder.doc.json +0 -0
  519. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tPivot.doc.json +0 -0
  520. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tPluckCols.doc.json +0 -0
  521. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generated/components/tUnnest.doc.json +0 -0
  522. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/generator.py +0 -0
  523. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/models.py +0 -0
  524. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/parser.py +0 -0
  525. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/schema.py +0 -0
  526. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/documentation/toolkit.py +0 -0
  527. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/download.py +0 -0
  528. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/__init__.py +0 -0
  529. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/__init__.py +0 -0
  530. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/abstract.py +0 -0
  531. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/alerts/__init__.py +0 -0
  532. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/alerts/colfunctions.py +0 -0
  533. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/alerts/functions.py +0 -0
  534. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/dummy.py +0 -0
  535. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/exec.py +0 -0
  536. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/file/__init__.py +0 -0
  537. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/file/base.py +0 -0
  538. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/file/copy.py +0 -0
  539. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/file/delete.py +0 -0
  540. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/interfaces/__init__.py +0 -0
  541. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/interfaces/client.py +0 -0
  542. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/interfaces/credentials.py +0 -0
  543. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/interfaces/notifications.py +0 -0
  544. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/jira.py +0 -0
  545. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/log.py +0 -0
  546. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/logerr.py +0 -0
  547. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/notify.py +0 -0
  548. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/notify_event.py +0 -0
  549. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/publish.py +0 -0
  550. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/sendfile.py +0 -0
  551. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/task.py +0 -0
  552. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/teams.py +0 -0
  553. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/events/webhook.py +0 -0
  554. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/events/manager.py +0 -0
  555. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/exceptions.py +0 -0
  556. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/executors/__init__.py +0 -0
  557. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/executors/base.py +0 -0
  558. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/executors/docker.py +0 -0
  559. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/executors/events.py +0 -0
  560. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/executors/exceptions.py +0 -0
  561. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/executors/k8s.py +0 -0
  562. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/executors/local.py +0 -0
  563. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/executors/models.py +0 -0
  564. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/executors/publish.py +0 -0
  565. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/executors/qworker.py +0 -0
  566. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/executors/registry.py +0 -0
  567. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/executors/resolver.py +0 -0
  568. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/extensions/__init__.py +0 -0
  569. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/extensions/abstract.py +0 -0
  570. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/extensions/component_docs.py +0 -0
  571. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/extensions/logging/__init__.py +0 -0
  572. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/factory/__init__.py +0 -0
  573. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/factory/agent.py +0 -0
  574. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/factory/composer.py +0 -0
  575. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/factory/parser.py +0 -0
  576. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/factory/validator.py +0 -0
  577. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/handlers/__init__.py +0 -0
  578. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/handlers/component.py +0 -0
  579. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/__init__.py +0 -0
  580. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/actions/__init__.py +0 -0
  581. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/actions/abstract.py +0 -0
  582. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/actions/dummy.py +0 -0
  583. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/actions/jira.py +0 -0
  584. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/actions/rest.py +0 -0
  585. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/actions/sampledata.py +0 -0
  586. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/actions/sensor.py +0 -0
  587. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/actions/task.py +0 -0
  588. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/actions/ticket.py +0 -0
  589. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/actions/zammad.py +0 -0
  590. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/hook.py +0 -0
  591. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/models.py +0 -0
  592. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/step.py +0 -0
  593. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/__init__.py +0 -0
  594. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/base.py +0 -0
  595. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/brokers/__init__.py +0 -0
  596. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/brokers/base.py +0 -0
  597. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/brokers/mqtt.py +0 -0
  598. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/brokers/rabbitmq.py +0 -0
  599. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/brokers/redis.py +0 -0
  600. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/brokers/sqs.py +0 -0
  601. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/fs.py +0 -0
  602. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/http.py +0 -0
  603. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/imap.py +0 -0
  604. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/jira.py +0 -0
  605. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/mail.py +0 -0
  606. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/postgres.py +0 -0
  607. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/responses/__init__.py +0 -0
  608. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/responses/base.py +0 -0
  609. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/sharepoint.py +0 -0
  610. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/ssh.py +0 -0
  611. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/tagged.py +0 -0
  612. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/upload.py +0 -0
  613. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/watch.py +0 -0
  614. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/web.py +0 -0
  615. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/hooks/types/zoom.py +0 -0
  616. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/AzureClient.py +0 -0
  617. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/AzureGraph.py +0 -0
  618. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/Boto3Client.py +0 -0
  619. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/DropboxClient.py +0 -0
  620. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/ExcelHandler.py +0 -0
  621. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/FTPClient.py +0 -0
  622. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/GoogleCalendar.py +0 -0
  623. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/GoogleClient.py +0 -0
  624. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/GoogleDrive.py +0 -0
  625. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/GoogleGCS.py +0 -0
  626. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/GoogleGeocoding.py +0 -0
  627. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/GoogleLang.py +0 -0
  628. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/GooglePub.py +0 -0
  629. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/GoogleReverseGeocoding.py +0 -0
  630. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/GoogleSheet.py +0 -0
  631. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/IMAPClient.py +0 -0
  632. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/LLMClient.py +0 -0
  633. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/NominatimGeocoding.py +0 -0
  634. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/O365Calendar.py +0 -0
  635. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/O365Client.py +0 -0
  636. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/OneDrive.py +0 -0
  637. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/Outlook.py +0 -0
  638. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/OverpassGeocoding.py +0 -0
  639. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/ParrotBot.py +0 -0
  640. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/ParrotTool.py +0 -0
  641. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/ReverseGeocoding.py +0 -0
  642. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/SOAPClient.py +0 -0
  643. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/SSHClient.py +0 -0
  644. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/Sharepoint.py +0 -0
  645. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/__init__.py +0 -0
  646. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/abstract.py +0 -0
  647. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/azure_component.py +0 -0
  648. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/azureauth.py +0 -0
  649. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/base_action.py +0 -0
  650. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/base_loop.py +0 -0
  651. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/cache.py +0 -0
  652. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/client.py +0 -0
  653. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/copy_from_base.py +0 -0
  654. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/copy_to.py +0 -0
  655. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/copy_to_file_base.py +0 -0
  656. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/credentials.py +0 -0
  657. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/d2l.py +0 -0
  658. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/databases/__init__.py +0 -0
  659. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/databases/documentdb.py +0 -0
  660. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/databases/rethink.py +0 -0
  661. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/dataframes/__init__.py +0 -0
  662. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/dataframes/abstract.py +0 -0
  663. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/dataframes/arrow.py +0 -0
  664. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/dataframes/dt.py +0 -0
  665. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/dataframes/pandas.py +0 -0
  666. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/dataframes/polars.py +0 -0
  667. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/db_client.py +0 -0
  668. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/download_from.py +0 -0
  669. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/env.py +0 -0
  670. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/flow.py +0 -0
  671. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/func.py +0 -0
  672. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/gamma.py +0 -0
  673. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/google_base.py +0 -0
  674. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/group.py +0 -0
  675. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/http.py +0 -0
  676. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/locale.py +0 -0
  677. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/log.py +0 -0
  678. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/mask.py +0 -0
  679. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/notification.py +0 -0
  680. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/parrot/__init__.py +0 -0
  681. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/parrot/agent.py +0 -0
  682. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/parrot/client.py +0 -0
  683. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/parrot/config.py +0 -0
  684. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/pipelines/__init__.py +0 -0
  685. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/pipelines/parrot.py +0 -0
  686. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/playwright.py +0 -0
  687. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/powerpoint.py +0 -0
  688. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/ppt.py +0 -0
  689. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/py.typed +0 -0
  690. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/qs_base.py +0 -0
  691. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/result.py +0 -0
  692. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/routing.py +0 -0
  693. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/sassie.py +0 -0
  694. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/scoring/__init__.py +0 -0
  695. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/scoring/abstract.py +0 -0
  696. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/scoring/engine.py +0 -0
  697. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/scoring/extractors/__init__.py +0 -0
  698. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/scoring/extractors/count.py +0 -0
  699. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/scoring/extractors/gravity.py +0 -0
  700. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/scoring/extractors/nearest.py +0 -0
  701. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/scoring/models.py +0 -0
  702. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/scoring/service.py +0 -0
  703. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/scoring/spatial.py +0 -0
  704. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/search.py +0 -0
  705. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/selenium/__init__.py +0 -0
  706. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/selenium/options.py +0 -0
  707. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/selenium/service.py +0 -0
  708. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/selenium_service.py +0 -0
  709. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/skip_policy.py +0 -0
  710. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/smartsheet.py +0 -0
  711. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/stat.py +0 -0
  712. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/t_pandas.py +0 -0
  713. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/table_base.py +0 -0
  714. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/task.py +0 -0
  715. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/teams.py +0 -0
  716. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/template.py +0 -0
  717. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/tickets.py +0 -0
  718. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/upload_to.py +0 -0
  719. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/user.py +0 -0
  720. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/vectorstores/__init__.py +0 -0
  721. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/vectorstores/abstract.py +0 -0
  722. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/vectorstores/milvus.py +0 -0
  723. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/__init__.py +0 -0
  724. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/config.py +0 -0
  725. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/__init__.py +0 -0
  726. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/applicants.py +0 -0
  727. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/base.py +0 -0
  728. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/candidates.py +0 -0
  729. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/cost_centers.py +0 -0
  730. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/custom_punch_field_report.py +0 -0
  731. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/custom_punch_field_report_rest.py +0 -0
  732. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/import_reported_time_blocks.py +0 -0
  733. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/import_time_clock_events.py +0 -0
  734. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/job_posting_sites.py +0 -0
  735. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/job_postings.py +0 -0
  736. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/job_requisitions.py +0 -0
  737. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/location_hierarchy_assignments.py +0 -0
  738. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/locations.py +0 -0
  739. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/organization_single.py +0 -0
  740. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/organizations.py +0 -0
  741. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/put_time_clock_events.py +0 -0
  742. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/recruiting_agency_users.py +0 -0
  743. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/references.py +0 -0
  744. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/time_block_report.py +0 -0
  745. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/time_blocks.py +0 -0
  746. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/time_off_balances.py +0 -0
  747. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/time_requests.py +0 -0
  748. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/handlers/workers.py +0 -0
  749. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/__init__.py +0 -0
  750. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/applicant.py +0 -0
  751. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/candidate.py +0 -0
  752. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/clock_event.py +0 -0
  753. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/cost_center.py +0 -0
  754. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/custom_punch_field_report.py +0 -0
  755. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/job_posting.py +0 -0
  756. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/job_posting_site.py +0 -0
  757. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/job_requisition.py +0 -0
  758. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/location.py +0 -0
  759. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/location_hierarchy_assignments.py +0 -0
  760. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/organizations.py +0 -0
  761. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/reference.py +0 -0
  762. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/time_block.py +0 -0
  763. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/time_off_balance.py +0 -0
  764. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/time_request.py +0 -0
  765. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/models/worker.py +0 -0
  766. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/__init__.py +0 -0
  767. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/applicant_parsers.py +0 -0
  768. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/candidate_parsers.py +0 -0
  769. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/cost_center_parsers.py +0 -0
  770. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/custom_punch_field_report_parsers.py +0 -0
  771. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/job_posting_parsers.py +0 -0
  772. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/job_posting_site_parsers.py +0 -0
  773. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/job_requisition_parsers.py +0 -0
  774. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/location_hierarchy_assignments_parsers.py +0 -0
  775. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/location_parsers.py +0 -0
  776. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/organization_parsers.py +0 -0
  777. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/reference_parsers.py +0 -0
  778. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/time_block_parsers.py +0 -0
  779. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/time_off_balance_parsers.py +0 -0
  780. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/time_request_parsers.py +0 -0
  781. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/parsers/worker_parsers.py +0 -0
  782. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/rest.py +0 -0
  783. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/service.py +0 -0
  784. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/utils/__init__.py +0 -0
  785. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/workday/utils/utils.py +0 -0
  786. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/zammad.py +0 -0
  787. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/interfaces/zoom.py +0 -0
  788. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/parsers/__init__.py +0 -0
  789. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/parsers/_yaml.pyx +0 -0
  790. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/parsers/argparser.py +0 -0
  791. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/parsers/base.pxd +0 -0
  792. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/parsers/base.pyx +0 -0
  793. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/parsers/json.pyx +0 -0
  794. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/parsers/maps.py +0 -0
  795. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/parsers/syntax/__init__.py +0 -0
  796. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/parsers/syntax/checker.py +0 -0
  797. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/parsers/syntax/detector.py +0 -0
  798. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/parsers/syntax/registry.py +0 -0
  799. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/parsers/syntax/report.py +0 -0
  800. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/parsers/syntax/schema.py +0 -0
  801. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/parsers/toml.pyx +0 -0
  802. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/plugins/__init__.py +0 -0
  803. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/plugins/components_/__init__.py +0 -0
  804. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/plugins/handler/__init__.py +0 -0
  805. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/plugins/importer.py +0 -0
  806. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/plugins/sources/__init__.py +0 -0
  807. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/runner.py +0 -0
  808. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/scheduler/__init__.py +0 -0
  809. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/scheduler/handlers/__init__.py +0 -0
  810. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/scheduler/handlers/manager.py +0 -0
  811. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/scheduler/handlers/models.py +0 -0
  812. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/scheduler/handlers/service.py +0 -0
  813. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/scheduler/notifications.py +0 -0
  814. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/__init__.py +0 -0
  815. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/bots/__init__.py +0 -0
  816. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/bots/telegram.py +0 -0
  817. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/files/__init__.py +0 -0
  818. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/files/manager.py +0 -0
  819. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/files/model.py +0 -0
  820. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/jira/__init__.py +0 -0
  821. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/jira/jira_actions.py +0 -0
  822. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/maintenance/README.md +0 -0
  823. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/maintenance/__init__.py +0 -0
  824. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/maintenance/changelog.py +0 -0
  825. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/maintenance/handlers.py +0 -0
  826. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/maintenance/health.py +0 -0
  827. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/maintenance/models.py +0 -0
  828. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/maintenance/service.py +0 -0
  829. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/maintenance/store.py +0 -0
  830. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/maintenance/templates.py +0 -0
  831. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/maintenance/windows.py +0 -0
  832. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/tasks/__init__.py +0 -0
  833. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/tasks/launcher.py +0 -0
  834. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/tasks/manager.py +0 -0
  835. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/tasks/service.py +0 -0
  836. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/tasks/task_manager.py +0 -0
  837. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/services/tasks/tasks.py +0 -0
  838. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/storages/__init__.py +0 -0
  839. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/storages/exceptions.py +0 -0
  840. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/storages/files/__init__.py +0 -0
  841. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/storages/files/abstract.py +0 -0
  842. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/storages/files/filesystem.py +0 -0
  843. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/storages/tasks/__init__.py +0 -0
  844. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/storages/tasks/abstract.py +0 -0
  845. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/storages/tasks/database.py +0 -0
  846. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/storages/tasks/filesystem.py +0 -0
  847. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/storages/tasks/github.py +0 -0
  848. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/storages/tasks/memory.py +0 -0
  849. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/storages/tasks/row.py +0 -0
  850. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/tasks/__init__.py +0 -0
  851. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/tasks/chain.py +0 -0
  852. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/tasks/chainer.py +0 -0
  853. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/tasks/command.py +0 -0
  854. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/tasks/exchange.py +0 -0
  855. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/tasks/pile.py +0 -0
  856. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/tasks/py.typed +0 -0
  857. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/tasks/task.py +0 -0
  858. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/tasks/workers.py +0 -0
  859. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/template/__init__.py +0 -0
  860. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/tests.py +0 -0
  861. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/types/__init__.py +0 -0
  862. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/types/typedefs.pyx +0 -0
  863. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/__init__.py +0 -0
  864. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/bestbuy_greedy.py +0 -0
  865. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/constants.py +0 -0
  866. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/encoders.py +0 -0
  867. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/executor.py +0 -0
  868. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/functions.pyx +0 -0
  869. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/json.pxi +0 -0
  870. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/json.pyx +0 -0
  871. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/mail.py +0 -0
  872. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/msgraph_patch.py +0 -0
  873. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/parseqs.pyx +0 -0
  874. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/stats.py +0 -0
  875. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/transformations.py +0 -0
  876. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/uv.py +0 -0
  877. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask/utils/validators.py +0 -0
  878. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask.egg-info/SOURCES.txt +0 -0
  879. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask.egg-info/dependency_links.txt +0 -0
  880. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask.egg-info/entry_points.txt +0 -0
  881. {flowtask-5.13.3 → flowtask-5.13.5}/flowtask.egg-info/top_level.txt +0 -0
  882. {flowtask-5.13.3 → flowtask-5.13.5}/setup.cfg +0 -0
  883. {flowtask-5.13.3 → flowtask-5.13.5}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flowtask
3
- Version: 5.13.3
3
+ Version: 5.13.5
4
4
  Summary: Framework for Task orchestration
5
5
  Author-email: Jesus Lara <jesuslarag@gmail.com>
6
6
  License: Apache-2.0
@@ -22,14 +22,14 @@ Classifier: Programming Language :: Python :: 3.12
22
22
  Classifier: Programming Language :: Python :: 3.13
23
23
  Classifier: License :: OSI Approved :: Apache Software License
24
24
  Classifier: Framework :: AsyncIO
25
- Requires-Python: <3.14,>=3.11
25
+ Requires-Python: <3.14,>=3.11.4
26
26
  Description-Content-Type: text/markdown
27
27
  License-File: LICENSE
28
28
  Requires-Dist: borax==3.5.0
29
29
  Requires-Dist: PyDrive==1.3.1
30
30
  Requires-Dist: chardet==5.2.0
31
31
  Requires-Dist: aiohttp-jinja2==1.6
32
- Requires-Dist: asyncssh[bcrypt,fido2,pkcs11,pyopenssl]==2.23.0
32
+ Requires-Dist: asyncssh[bcrypt,fido2,pkcs11,pyopenssl]<3,>=2.24.0
33
33
  Requires-Dist: pyxlsb==1.0.10
34
34
  Requires-Dist: python-calamine==0.2.3
35
35
  Requires-Dist: pyecharts==2.0.8
@@ -46,7 +46,7 @@ Requires-Dist: adal==1.2.7
46
46
  Requires-Dist: xlrd>=2.0.2
47
47
  Requires-Dist: xmltodict<1.0.0,>=0.14.2
48
48
  Requires-Dist: zeep[async]>=4.3.3
49
- Requires-Dist: nltk>=3.9.3
49
+ Requires-Dist: nltk>=3.10.3
50
50
  Requires-Dist: jdcal==1.4.1
51
51
  Requires-Dist: html5lib==1.1
52
52
  Requires-Dist: shapely>=2.1.2
@@ -70,7 +70,7 @@ Requires-Dist: aiofiles>=24.1.0
70
70
  Requires-Dist: filetype==1.2.0
71
71
  Requires-Dist: proxylists>=0.14.0
72
72
  Requires-Dist: aioftp==0.23.1
73
- Requires-Dist: py7zr==0.22.0
73
+ Requires-Dist: py7zr<2,>=1.1.3
74
74
  Requires-Dist: rarfile==4.2
75
75
  Requires-Dist: python-pptx==1.0.2
76
76
  Requires-Dist: google-auth>=2.35.0
@@ -101,7 +101,7 @@ Requires-Dist: pyheif==0.8.0
101
101
  Requires-Dist: filetype==1.2.0
102
102
  Requires-Dist: exif==1.6.1
103
103
  Requires-Dist: pillow-avif-plugin==1.5.2
104
- Requires-Dist: pillow-heif==0.22.0
104
+ Requires-Dist: pillow-heif<2,>=1.3.0
105
105
  Requires-Dist: pgvector==0.4.1
106
106
  Requires-Dist: proxylists>=0.14.0
107
107
  Requires-Dist: async-notify[all]>=1.4.0
@@ -104,11 +104,12 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
104
104
  | storage_path | No | Directory for stored results and the default coverage file. Required when use_storage is true. |
105
105
  | chunk_size | No | Rows per processing chunk (default 100). |
106
106
  | task_parts | No | Number of task partitions (default 10). |
107
- | concurrency | No | Max concurrent requests and sticky proxy-session pool size (default 12). |
107
+ | concurrency | No | Max concurrent requests and sticky proxy-session pool size (default 6). |
108
108
  | bulk_mode | No | availability only: greedy set-cover over GraphQL nearby stores (default false = one call per row). The `enabled` column comes from the SKU button state returned with the seed call. |
109
109
  | coverage_file | No | Coverage map JSON (default <storage_path>/bestbuy_coverage.json; in-memory when unset). |
110
110
  | proxy_session_max_requests | No | Requests before a sticky proxy session is rotated (default 50). |
111
111
  | proxy_session_max_age | No | Seconds before a sticky proxy session is rotated (default 540). |
112
+ | request_timeout | No | Hard deadline in seconds for one availability request through the proxy (default 45). |
112
113
  | debug_payload | No | availability only: log the full GraphQL JSON of every call; with storage_path also dump it to <storage_path>/payloads/ (default false). |
113
114
 
114
115
  ``type: availability`` output columns (one row per store × sku). Legacy contract:
@@ -140,7 +141,7 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
140
141
  brand: Epson
141
142
  bulk_mode: true
142
143
  storage_path: /home/ubuntu/symbits/bestbuy/
143
- concurrency: 12
144
+ concurrency: 6
144
145
  ```
145
146
  """
146
147
  _version = "1.0.0"
@@ -205,19 +206,20 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
205
206
  "User-Agent": random.choice(ua),
206
207
  **self.headers
207
208
  }
208
- # Cap concurrent storeAvailability requests so the Oxylabs gateway
209
- # doesn't return 522 from a single residential exit IP under load.
210
- # Each request rotates to a fresh sticky session, so the bottleneck
211
- # is gateway capacity rather than per-IP load — 12 is safe and gives
212
- # roughly 3x throughput over the original semaphore=10 (which was
213
- # bottlenecked by 403s, not network capacity).
214
- self.semaphore = asyncio.Semaphore(kwargs.get('concurrency', 12))
209
+ # Cap concurrent storeAvailability requests: under load the Oxylabs
210
+ # gateway fails the CONNECT tunnel with 522 (httpx.ProxyError) when
211
+ # sticky residential exit nodes can't reach bestbuy.com. 12 produced
212
+ # those 522s in production; 6 keeps the pool smaller and steadier.
213
+ self.semaphore = asyncio.Semaphore(kwargs.get('concurrency', 6))
215
214
  # Selenium driver is not thread-safe: serialize all execute_async_script calls
216
215
  self._selenium_semaphore = asyncio.Semaphore(1)
217
216
  # FEAT-561: sticky Oxylabs session pool (K = concurrency)
218
- self._pool_size: int = kwargs.get('concurrency', 12)
217
+ self._pool_size: int = kwargs.get('concurrency', 6)
219
218
  self.proxy_session_max_requests: int = kwargs.get('proxy_session_max_requests', 50)
220
219
  self.proxy_session_max_age: float = kwargs.get('proxy_session_max_age', 540)
220
+ # Hard per-request deadline: a stalled Oxylabs CONNECT can outlive httpx's
221
+ # per-operation timeouts and freeze the sequential bulk seed loop.
222
+ self.request_timeout: float = kwargs.get('request_timeout', 45)
221
223
  # Debug: dump the raw GraphQL availability payload (log + optional file)
222
224
  self.debug_payload: bool = kwargs.get('debug_payload', False)
223
225
  self._session_pool: list[ProxySession] = []
@@ -993,11 +995,19 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
993
995
  if attempt < 3:
994
996
  continue
995
997
  return None
996
- r = await client.get(url, headers=api_headers)
998
+ r = await asyncio.wait_for(
999
+ client.get(url, headers=api_headers), timeout=self.request_timeout
1000
+ )
997
1001
  except (httpx.ConnectError, httpx.ConnectTimeout, httpx.ReadTimeout,
998
- httpx.RemoteProtocolError) as ex:
1002
+ httpx.RemoteProtocolError, httpx.ProxyError, asyncio.TimeoutError) as ex:
1003
+ # ProxyError: the Oxylabs CONNECT tunnel failed (e.g. "522 status code 522"
1004
+ # when the sticky exit node can't reach bestbuy.com) — retry on a fresh session.
999
1005
  await self._release_session(session, status=None, error=ex)
1000
1006
  if attempt < 3:
1007
+ self._logger.warning(
1008
+ f"GraphQL fulfillment attempt {attempt}/3 failed for sku={sku} "
1009
+ f"store={store_id}: {ex!r}; retrying."
1010
+ )
1001
1011
  await asyncio.sleep(0.5 * attempt)
1002
1012
  continue
1003
1013
  self._logger.warning(
@@ -1018,6 +1028,10 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
1018
1028
  await self._dump_availability_payload(payload, sku, store_id, nearby)
1019
1029
  return payload
1020
1030
  if r.status_code in (522, 502, 503, 504) and attempt < 3:
1031
+ self._logger.warning(
1032
+ f"GraphQL fulfillment attempt {attempt}/3 for sku={sku} store={store_id}: "
1033
+ f"HTTP {r.status_code}; retrying."
1034
+ )
1021
1035
  await asyncio.sleep(0.5 * attempt)
1022
1036
  continue
1023
1037
  if r.status_code == 403 and attempt < 3:
@@ -1244,7 +1258,8 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
1244
1258
  status in (403, 429)
1245
1259
  or (status is not None and status >= 500)
1246
1260
  or isinstance(error, (
1247
- httpx.ConnectError, httpx.ConnectTimeout, httpx.RemoteProtocolError
1261
+ httpx.ConnectError, httpx.ConnectTimeout, httpx.RemoteProtocolError,
1262
+ httpx.ProxyError, asyncio.TimeoutError,
1248
1263
  ))
1249
1264
  )
1250
1265
  if burn and not session.burned:
@@ -1719,16 +1734,25 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
1719
1734
  self._row_index.setdefault((sid, sku), []).append(idx)
1720
1735
 
1721
1736
  if targets and skus:
1737
+ self._logger.info(
1738
+ f"BestBuy bulk: {len(skus)} SKUs x {len(targets)} stores; "
1739
+ f"resolving sku {skus[0]} (1/{len(skus)}) dynamically."
1740
+ )
1722
1741
  order = await self._resolve_sku_dynamic(
1723
1742
  skus[0], {t for t in targets if (t, skus[0]) in self._row_index}, targets
1724
1743
  )
1725
- for sku in skus[1:]:
1744
+ for n, sku in enumerate(skus[1:], start=2):
1745
+ self._logger.info(
1746
+ f"BestBuy bulk: sku {sku} ({n}/{len(skus)}); seeds={self._num_seeds}, "
1747
+ f"http_calls={self._num_iterations}."
1748
+ )
1726
1749
  uncovered = await self._resolve_sku_replay(sku, order, targets)
1727
1750
  if uncovered:
1728
1751
  await self._resolve_sku_dynamic(sku, uncovered, targets)
1729
1752
 
1730
1753
  # Fallback: every (store, sku) not covered by a seed response.
1731
1754
  leftovers = [pair for pair in self._row_index if pair not in self._seed_resolved]
1755
+ self._logger.info(f"BestBuy bulk: {len(leftovers)} (store, sku) pairs to fallback.")
1732
1756
  await self._processing_tasks([self._fallback_pair(*pair) for pair in leftovers])
1733
1757
 
1734
1758
  total_pairs = len(self._row_index)
@@ -1803,6 +1827,9 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
1803
1827
  pending -= got
1804
1828
  covered |= got | {seed}
1805
1829
  # on failure the neighbours stay pending; the seed goes to fallback
1830
+ self._logger.debug(
1831
+ f"BestBuy bulk: sku={sku} seed={seed} ok={bool(data)}; {len(pending)} stores pending."
1832
+ )
1806
1833
  return order
1807
1834
 
1808
1835
  async def _resolve_sku_replay(self, sku: str, seeds: list[str],
@@ -4,6 +4,7 @@ from pathlib import Path, PurePath
4
4
  import io
5
5
  import aiofiles
6
6
  from ..exceptions import FileNotFound, FileError
7
+ from ..conf import TASK_PATH
7
8
  from ..utils.json import json_decoder
8
9
  from ..interfaces.file_base import FileBase
9
10
  from ..interfaces.dataframes.pandas import PandasDataframe
@@ -69,8 +70,12 @@ class FileRead(FileBase, PandasDataframe):
69
70
  async def start(self, **kwargs):
70
71
  """Check for File and Directory information."""
71
72
  if not hasattr(self, "directory"):
72
- if self._use_taskstorage:
73
- self.directory = self._taskstore.get_path().joinpath(self._program, 'files')
73
+ # resolve <program>/files from the task storage the task was loaded
74
+ # from (e.g. --storage=private); storages without a path use TASK_PATH.
75
+ base = self._taskstore.get_path() if self._taskstore else None
76
+ task_files = Path(base or TASK_PATH, self._program, "files")
77
+ if self._use_taskstorage or task_files.is_dir():
78
+ self.directory = task_files
74
79
  else:
75
80
  self.directory = self._filestore.get_directory('')
76
81
  await super().start(**kwargs)
@@ -96,7 +101,7 @@ class FileRead(FileBase, PandasDataframe):
96
101
  )
97
102
  elif hasattr(self, "filename"):
98
103
  if isinstance(self.filename, str):
99
- file = Path(file)
104
+ file = Path(self.directory).joinpath(self.filename)
100
105
  elif isinstance(self.filename, PurePath):
101
106
  file = self.filename.resolve()
102
107
  else:
@@ -7,6 +7,7 @@ from datamodel import BaseModel, Field
7
7
  from datamodel.parsers.json import json_encoder
8
8
  from querysource.conf import default_dsn, async_default_dsn
9
9
  from querysource.outputs.tables import PgOutput
10
+ from ....conf import pg_server_settings
10
11
  from .abstract import AbstractPayload
11
12
  from .organization import Organization
12
13
  from .client import Client
@@ -465,7 +466,9 @@ class FormData(AbstractPayload):
465
466
 
466
467
  logger.debug(f"Processing form update: {previous_form} -> {new_form}")
467
468
 
468
- async with await AsyncDB('pg', dsn=default_dsn).connection() as conn:
469
+ async with await AsyncDB(
470
+ 'pg', dsn=default_dsn, server_settings=pg_server_settings('NetworkNinja')
471
+ ).connection() as conn:
469
472
  try:
470
473
  # Use PL/pgSQL to handle the UPDATE exception properly
471
474
  transaction = f"""
@@ -34,7 +34,8 @@ from ...interfaces.http import HTTPService
34
34
  from ...conf import (
35
35
  NETWORKNINJA_API_KEY,
36
36
  NETWORKNINJA_BASE_URL,
37
- NETWORKNINJA_ENV
37
+ NETWORKNINJA_ENV,
38
+ pg_pool_options,
38
39
  )
39
40
  from .models import NetworkNinja_Map, NN_Order
40
41
  from .models.abstract import AbstractPayload
@@ -491,8 +492,13 @@ class NetworkNinja(HTTPService, FlowComponent):
491
492
  return final_form_ids
492
493
 
493
494
  async def close(self):
494
- if self._pool:
495
- await self._pool.close()
495
+ """Release the PostgreSQL pool (safe to call more than once)."""
496
+ pool, self._pool = self._pool, None
497
+ if pool:
498
+ try:
499
+ await pool.close()
500
+ except Exception as exc: # pylint: disable=W0718
501
+ self._logger.warning(f"Error closing NetworkNinja pool: {exc!s}")
496
502
 
497
503
  def _evaluate_input(self):
498
504
  if self.previous or self.input is not None:
@@ -526,13 +532,31 @@ class NetworkNinja(HTTPService, FlowComponent):
526
532
  return True
527
533
 
528
534
  async def run(self):
529
- """Run NetworkNinja Router."""
535
+ """Run NetworkNinja Router.
536
+
537
+ Opens a short-lived PostgreSQL pool for the duration of the action.
538
+ The task runner only calls ``close()`` when ``run()`` returns, so the
539
+ pool is released here as well whenever the action raises (for example
540
+ ``DataNotFound`` from ``get_batches`` on an empty NetworkNinja queue).
541
+ """
542
+ self._pool = AsyncPool(
543
+ 'pg',
544
+ dsn=default_dsn,
545
+ **pg_pool_options(suffix='NetworkNinja'),
546
+ )
547
+ await self._pool.connect()
548
+ try:
549
+ return await self._run_action()
550
+ except BaseException:
551
+ await self.close()
552
+ raise
553
+
554
+ async def _run_action(self):
555
+ """Execute the configured NetworkNinja action and return its result."""
530
556
  tasks = []
531
557
  fn = getattr(self, self._action)
532
558
  self.add_metric("ACTION", self._action)
533
559
  self._result = {}
534
- self._pool = AsyncPool('pg', dsn=default_dsn, max_clients=1000)
535
- await self._pool.connect()
536
560
  if self._action == 'get_batch':
537
561
  try:
538
562
  result = await fn()
@@ -19,7 +19,7 @@ from ..exceptions import FileNotFound, ComponentError
19
19
  from ..utils.mail import MailMessage
20
20
  from ..utils import check_empty
21
21
  from ..parsers.maps import open_map, open_model
22
- from ..conf import TASK_PATH, DEFAULT_ENCODING
22
+ from ..conf import TASK_PATH, DEFAULT_ENCODING, pg_server_settings
23
23
  from ..interfaces.flow import FlowComponent
24
24
  from ..utils.constants import excel_based
25
25
 
@@ -224,7 +224,12 @@ class OpenWithBase(FlowComponent):
224
224
  event_loop = asyncio.get_running_loop()
225
225
  except RuntimeError:
226
226
  event_loop = asyncio.get_event_loop()
227
- db = AsyncDB("pg", dsn=asyncpg_url, loop=event_loop)
227
+ db = AsyncDB(
228
+ "pg",
229
+ dsn=asyncpg_url,
230
+ loop=event_loop,
231
+ server_settings=pg_server_settings(self.__class__.__name__),
232
+ )
228
233
  async with await db.connection() as conn:
229
234
  result, error = await conn.query(discover)
230
235
  if error:
@@ -8,10 +8,12 @@ from pathlib import Path
8
8
  from PIL import Image
9
9
  from asyncdb import AsyncDB
10
10
  from querysource.conf import default_dsn
11
+ from ..conf import pg_server_settings
11
12
  import re
12
13
  from parrot.conf import PLANOGRAM_FOLDER
13
14
  from parrot.clients.google import GoogleGenAIClient, GoogleModel
14
15
  from parrot_pipelines.models import PlanogramConfig, EndcapGeometry
16
+ from parrot_pipelines.planogram.plan import PlanogramCompliance as PlanogramPipeline
15
17
  from ..interfaces.flow import FlowComponent
16
18
  from ..interfaces.pipelines.parrot import AIPipeline
17
19
  from ..exceptions import ComponentError, ConfigError
@@ -54,6 +56,7 @@ class PlanogramCompliance(AIPipeline, FlowComponent):
54
56
  | id_column | No | DataFrame column used as per-row image id (default ``photo_id``)|
55
57
  | reference_images | No | Mapping key -> image file or directory under ``images/``; |
56
58
  | | | overrides the ``reference_images`` column of the row |
59
+ | | | (ignored for types without references, e.g. ``ink_wall``) |
57
60
  | llm_backend | No | LLM backend as ``provider:model``; overrides the ``llm_backend``|
58
61
  | | | column of the row (default: the ai-parrot package default) |
59
62
  | llm_config | No | Arguments of an explicit Google GenAI client; when given it wins|
@@ -69,8 +72,10 @@ class PlanogramCompliance(AIPipeline, FlowComponent):
69
72
  Returns the input DataFrame plus: ``planogram_id``, ``overall_compliance_score``,
70
73
  ``overall_compliant``, ``compliance_analysis``, ``compliance_analysis_markdown``,
71
74
  ``compliance_analysis_json`` (includes assessment status, coverage, strict score and
72
- pipeline errors), ``compliance_by_shelf``, ``detections``, ``overlay_image`` and
73
- ``overlay_path``.
75
+ pipeline errors and ``products_found``), ``compliance_by_shelf``, ``detections``,
76
+ ``products_found`` (one entry per expected slot: model, sku, brand, found, misplaced,
77
+ status, confidence, facings, facings_found, observed; empty without ai-parrot FEAT-645),
78
+ ``overlay_image`` and ``overlay_path``.
74
79
 
75
80
  Example:
76
81
 
@@ -198,7 +203,7 @@ class PlanogramCompliance(AIPipeline, FlowComponent):
198
203
  "planogram_config_table is not specified"
199
204
  )
200
205
  planogram_query = f"SELECT * FROM {self._planogram_config_table} WHERE config_name = $1"
201
- db = AsyncDB('pg', dsn=default_dsn)
206
+ db = AsyncDB('pg', dsn=default_dsn, server_settings=pg_server_settings('PlanogramCompliance'))
202
207
  async with await db.connection() as conn:
203
208
  result = await conn.fetch_one(planogram_query, self._planogram_name)
204
209
  if not result:
@@ -253,19 +258,27 @@ class PlanogramCompliance(AIPipeline, FlowComponent):
253
258
  self.confidence_threshold = row['confidence_threshold']
254
259
  if row.get('detection_model'):
255
260
  self.detection_model = row['detection_model']
256
- # Task reference images win; otherwise use the ones stored in the row.
257
- references = reference_images or self._reference_images
258
- if not references:
259
- references = self._db_reference_images(
260
- self._decode_json_column(row, 'reference_images')
261
+ # DB value takes precedence, the task value is the fallback.
262
+ planogram_type = row.get('planogram_type') or self._planogram_type
263
+ layout_config = self._decode_json_column(row, 'planogram_config') or {}
264
+ references: Dict[str, Union[Path, List[Path]]] = {}
265
+ if self._uses_reference_images(planogram_type, layout_config):
266
+ # Task reference images win; otherwise use the ones stored in the row.
267
+ references = reference_images or self._prepare_task_references()
268
+ if not references:
269
+ references = self._db_reference_images(
270
+ self._decode_json_column(row, 'reference_images')
271
+ )
272
+ else:
273
+ self._logger.debug(
274
+ f"Planogram type '{planogram_type}' does not use reference images; skipping them"
261
275
  )
262
276
  try:
263
277
  planogram_config = PlanogramConfig(
264
278
  planogram_id=row.get('planogram_id'),
265
279
  config_name=self._planogram_name,
266
- # DB value takes precedence, the task value is the fallback.
267
- planogram_type=row.get('planogram_type') or self._planogram_type,
268
- planogram_config=self._decode_json_column(row, 'planogram_config') or {},
280
+ planogram_type=planogram_type,
281
+ planogram_config=layout_config,
269
282
  endcap_geometry=geometry,
270
283
  roi_detection_prompt=row.get('roi_detection_prompt') or None,
271
284
  object_identification_prompt=row.get('object_identification_prompt') or None,
@@ -282,6 +295,40 @@ class PlanogramCompliance(AIPipeline, FlowComponent):
282
295
  self._logger.debug('Planogram config loaded: %s', planogram_config)
283
296
  return planogram_config
284
297
 
298
+ def _uses_reference_images(self, planogram_type: str, layout_config: Dict[str, Any]) -> bool:
299
+ """Ask the pipeline whether this planogram type consumes reference images.
300
+
301
+ Args:
302
+ planogram_type: Resolved planogram type of the configuration.
303
+ layout_config: The ``planogram_config`` column (may override ``layout_profile.references``).
304
+
305
+ Returns:
306
+ False for types that identify products without references (e.g. ``ink_wall``); True
307
+ when the installed ai-parrot predates ``uses_reference_images``.
308
+
309
+ Raises:
310
+ ConfigError: Unknown planogram type or an invalid ``layout_profile`` override.
311
+ """
312
+ uses_references = getattr(PlanogramPipeline, 'uses_reference_images', None)
313
+ if uses_references is None:
314
+ return True
315
+ try:
316
+ return bool(uses_references(planogram_type, layout_config))
317
+ except ValueError as e:
318
+ raise ConfigError(
319
+ f"Invalid planogram configuration: {e}"
320
+ ) from e
321
+
322
+ def _prepare_task_references(self) -> Dict[str, Union[Path, List[Path]]]:
323
+ """Resolve the task ``reference_images`` once, only for types that use them.
324
+
325
+ Returns:
326
+ The cached mapping of catalogue key to a Path or a list of Paths.
327
+ """
328
+ if not self._reference_images and self.reference_images:
329
+ self._reference_images = self._prepare_reference_images()
330
+ return self._reference_images
331
+
285
332
  @staticmethod
286
333
  def _decode_json_column(row: Dict[str, Any], column: str) -> Any:
287
334
  """Return a JSONB column of the row as a Python object.
@@ -379,16 +426,12 @@ class PlanogramCompliance(AIPipeline, FlowComponent):
379
426
  f"Image column '{self.image_column}' not found in DataFrame"
380
427
  )
381
428
 
382
- # Prepare reference images list - convert to string paths as expected by pipeline
383
- self._reference_images = self._prepare_reference_images()
384
-
385
429
  # Initialize LLM for pipeline
386
430
  self._llm = self._initialize_llm()
387
431
 
388
- # Generate Planogram Configuration:
389
- self.planogram_config = await self.get_planogram_config(
390
- reference_images=self._reference_images
391
- )
432
+ # Generate Planogram Configuration; reference images are resolved there,
433
+ # only when the planogram type uses them.
434
+ self.planogram_config = await self.get_planogram_config()
392
435
 
393
436
  self._logger.info(
394
437
  f"PlanogramPipeline started with {len(self.data)} rows to process"
@@ -472,6 +515,26 @@ class PlanogramCompliance(AIPipeline, FlowComponent):
472
515
  """
473
516
  return result.get('compliance_results') or result.get('step3_compliance_results') or []
474
517
 
518
+ @staticmethod
519
+ def _products_found(result: Dict[str, Any]) -> List[Dict[str, Any]]:
520
+ """Return the slot presence list of a pipeline result as JSON-safe dicts.
521
+
522
+ Args:
523
+ result: Pipeline result dictionary.
524
+
525
+ Returns:
526
+ ``model_dump(mode="json")`` of each ``products_found`` item (dict items kept as-is);
527
+ an empty list when the key is missing (ai-parrot without FEAT-645).
528
+ """
529
+ items = result.get('products_found') or []
530
+ products: List[Dict[str, Any]] = []
531
+ for item in items:
532
+ if hasattr(item, 'model_dump'):
533
+ products.append(item.model_dump(mode='json'))
534
+ elif isinstance(item, dict):
535
+ products.append(item)
536
+ return products
537
+
475
538
  def _create_markdown_report(self, result: Dict[str, Any], overlay_path: str = "") -> str:
476
539
  """Generate a markdown report from pipeline results."""
477
540
  md = []
@@ -519,6 +582,29 @@ class PlanogramCompliance(AIPipeline, FlowComponent):
519
582
  md.append(f" - Matched: {text_result.matched_features}")
520
583
  md.append("")
521
584
 
585
+ products_found = self._products_found(result)
586
+ if products_found:
587
+ found = [p for p in products_found if p.get('found') is True]
588
+ not_found = [p for p in products_found if p.get('found') is False]
589
+ unknown = [p for p in products_found if p.get('found') is None]
590
+ misplaced = [p for p in products_found if p.get('misplaced')]
591
+ md.append("## Slot Presence")
592
+ md.append(
593
+ f"- **Found:** {len(found)} | **Not found:** {len(not_found)} "
594
+ f"| **Unknown:** {len(unknown)} | **Misplaced:** {len(misplaced)}"
595
+ )
596
+ if not_found:
597
+ md.append("- Not found:")
598
+ for p in not_found:
599
+ line = f" - {p.get('model') or p.get('display_name')}"
600
+ if p.get('observed'):
601
+ line += f" (observed: {p.get('observed')})"
602
+ md.append(line)
603
+ if unknown:
604
+ md.append("- Unknown:")
605
+ for p in unknown:
606
+ md.append(f" - {p.get('model') or p.get('display_name')}")
607
+ md.append("")
522
608
  errors = result.get('errors') or []
523
609
  if errors:
524
610
  md.append("## Pipeline Errors")
@@ -602,6 +688,14 @@ class PlanogramCompliance(AIPipeline, FlowComponent):
602
688
  # list of ComplianceResult objects
603
689
  compliance_results = self._compliance_results(result)
604
690
  pipeline_errors = list(result.get('errors') or [])
691
+ products_found = self._products_found(result)
692
+ if 'products_found' not in result:
693
+ self._logger.debug(
694
+ f"Row {row_index}: pipeline result has no 'products_found' (ai-parrot without FEAT-645)"
695
+ )
696
+ skipped = len(result.get('products_found') or []) - len(products_found)
697
+ if skipped > 0:
698
+ self._logger.debug(f"Row {row_index}: skipped {skipped} unsupported 'products_found' item(s)")
605
699
  if pipeline_errors:
606
700
  self._logger.warning(
607
701
  f"Row {row_index}: pipeline reported errors: {pipeline_errors}"
@@ -618,6 +712,7 @@ class PlanogramCompliance(AIPipeline, FlowComponent):
618
712
  'detection_source': result.get('detection_source'),
619
713
  'resolved_backend': result.get('resolved_backend'),
620
714
  'errors': pipeline_errors,
715
+ 'products_found': products_found,
621
716
  'step3_compliance_results': [
622
717
  {
623
718
  'shelf_level': cr.shelf_level,
@@ -722,6 +817,7 @@ class PlanogramCompliance(AIPipeline, FlowComponent):
722
817
  # Add the new fields to the return dictionary
723
818
  'compliance_by_shelf': compliance_by_shelf,
724
819
  'detections': detections,
820
+ 'products_found': products_found,
725
821
  'status': 'success',
726
822
  'error': None
727
823
  }
@@ -743,6 +839,7 @@ class PlanogramCompliance(AIPipeline, FlowComponent):
743
839
  # Add new fields with error state
744
840
  'compliance_by_shelf': {"error": str(e)},
745
841
  'detections': [{"error": str(e)}],
842
+ 'products_found': [],
746
843
  'status': 'error',
747
844
  'error': str(e)
748
845
  }
@@ -772,13 +869,14 @@ class PlanogramCompliance(AIPipeline, FlowComponent):
772
869
  # NEW: Initialize columns for the new data
773
870
  'compliance_by_shelf': None,
774
871
  'detections': None,
872
+ 'products_found': None,
775
873
  'overlay_path': ""
776
874
  }
777
875
 
778
876
  for col, default in new_cols.items():
779
877
  # Use pd.NA for object types to allow for proper handling of missing values
780
878
  enhanced_df[col] = pd.NA if default is None else default
781
- if col in ['overlay_image', 'compliance_by_shelf', 'detections']:
879
+ if col in ['overlay_image', 'compliance_by_shelf', 'detections', 'products_found']:
782
880
  enhanced_df[col] = enhanced_df[col].astype('object')
783
881
 
784
882
  # Populate results
@@ -795,6 +893,7 @@ class PlanogramCompliance(AIPipeline, FlowComponent):
795
893
  # NEW: Populate the new columns
796
894
  enhanced_df.at[idx, 'compliance_by_shelf'] = result['compliance_by_shelf']
797
895
  enhanced_df.at[idx, 'detections'] = result.get('detections', [])
896
+ enhanced_df.at[idx, 'products_found'] = result.get('products_found', [])
798
897
  enhanced_df.at[idx, 'planogram_id'] = result.get('planogram_id', None)
799
898
 
800
899
  return enhanced_df
@@ -17,6 +17,7 @@ from parrot.models.google import ConversationalScriptConfig, FictionalSpeaker
17
17
  from parrot.conf import STATIC_DIR
18
18
  from asyncdb import AsyncDB
19
19
  from querysource.conf import default_dsn
20
+ from ..conf import pg_server_settings
20
21
  from parrot.models.responses import AgentResponse, AIMessage
21
22
  from parrot.models.basic import CompletionUsage
22
23
  from pathlib import Path
@@ -826,7 +827,7 @@ class ProductReportBot(ParrotAgentConfigMixin, ParrotBot, FlowComponent):
826
827
  )
827
828
 
828
829
  query = query_file.read_text()
829
- db = AsyncDB('pg', dsn=default_dsn)
830
+ db = AsyncDB('pg', dsn=default_dsn, server_settings=pg_server_settings('ProductReportBot'))
830
831
  async with await db.connection() as conn:
831
832
  product_data, error = await conn.query(query, model)
832
833
  if error:
@@ -992,7 +993,7 @@ class ProductReportBot(ParrotAgentConfigMixin, ParrotBot, FlowComponent):
992
993
  response_dict.pop(field, None)
993
994
 
994
995
 
995
- db = AsyncDB('pg', dsn=default_dsn)
996
+ db = AsyncDB('pg', dsn=default_dsn, server_settings=pg_server_settings('ProductReportBot'))
996
997
  async with await db.connection() as conn:
997
998
  ProductResponse.Meta.connection = conn
998
999
  ProductResponse.Meta.schema = program_slug
@@ -913,8 +913,8 @@ class SchedulingVisits(FlowComponent):
913
913
 
914
914
  self._logger.info("=== MARKET CAPACITY ANALYSIS ===")
915
915
 
916
- for market in df['market'].unique():
917
- market_data = df[df['market'] == market]
916
+ for market in df[self._market_name].unique():
917
+ market_data = df[df[self._market_name] == market]
918
918
  store_count = len(market_data)
919
919
 
920
920
  # Calculate visits needed per month, and the headcount that
@@ -3365,7 +3365,7 @@ class SchedulingVisits(FlowComponent):
3365
3365
  'employee_position': employee_position,
3366
3366
  'store_id': store_row['store_id'],
3367
3367
  'store_name': store_row.get('store_name', 'Unknown'),
3368
- 'market': store_row['market'],
3368
+ 'market': store_row[self._market_name],
3369
3369
  'market_id': store_row.get('market_id'),
3370
3370
  'store_position': store_row['store_position'],
3371
3371
  'scheduled_date': scheduled_date,
@@ -9,6 +9,7 @@ from navconfig.logging import logging
9
9
  from asyncdb import AsyncDB
10
10
  from asyncdb.exceptions import NoDataFound
11
11
  from querysource.conf import asyncpg_url
12
+ from ...conf import pg_server_settings
12
13
  from querysource.types.dt import transforms as qsdfunctions
13
14
  from ...exceptions import ComponentError
14
15
  from ...parsers.maps import open_map, open_model
@@ -142,7 +143,12 @@ class tMap(FlowComponent):
142
143
  event_loop = asyncio.get_running_loop()
143
144
  except RuntimeError:
144
145
  event_loop = asyncio.get_event_loop()
145
- db = AsyncDB("pg", dsn=asyncpg_url, loop=event_loop)
146
+ db = AsyncDB(
147
+ "pg",
148
+ dsn=asyncpg_url,
149
+ loop=event_loop,
150
+ server_settings=pg_server_settings("tMap"),
151
+ )
146
152
  async with await db.connection() as conn:
147
153
  result, error = await conn.query(discover)
148
154
  if error: