flowtask 5.13.2__tar.gz → 5.13.3__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 (884) hide show
  1. {flowtask-5.13.2 → flowtask-5.13.3}/PKG-INFO +1 -1
  2. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/BestBuy.py +194 -30
  3. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CopyToPg.py +124 -14
  4. flowtask-5.13.3/flowtask/documentation/generated/components/BestBuy.doc.json +80 -0
  5. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/index.json +271 -266
  6. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/copy_to.py +12 -0
  7. flowtask-5.13.3/flowtask/utils/bestbuy_greedy.py +531 -0
  8. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/version.py +1 -1
  9. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask.egg-info/PKG-INFO +1 -1
  10. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask.egg-info/SOURCES.txt +1 -0
  11. flowtask-5.13.2/flowtask/utils/bestbuy_greedy.py +0 -256
  12. {flowtask-5.13.2 → flowtask-5.13.3}/CONTRIBUTING.md +0 -0
  13. {flowtask-5.13.2 → flowtask-5.13.3}/INSTALL +0 -0
  14. {flowtask-5.13.2 → flowtask-5.13.3}/LICENSE +0 -0
  15. {flowtask-5.13.2 → flowtask-5.13.3}/MANIFEST.in +0 -0
  16. {flowtask-5.13.2 → flowtask-5.13.3}/README.md +0 -0
  17. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/__init__.py +0 -0
  18. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/__main__.py +0 -0
  19. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/_version.py +0 -0
  20. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/bots/__init__.py +0 -0
  21. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/bots/check.py +0 -0
  22. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/bots/codebot.py +0 -0
  23. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ASPX.py +0 -0
  24. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ATT.py +0 -0
  25. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/AddDataset.py +0 -0
  26. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Amazon.py +0 -0
  27. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/AutoTask.py +0 -0
  28. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Azure.py +0 -0
  29. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/AzureUsers.py +0 -0
  30. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/BaseAction.py +0 -0
  31. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/BaseLoop.py +0 -0
  32. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CSVToGCS.py +0 -0
  33. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CallAnalysis.py +0 -0
  34. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CallSummary.py +0 -0
  35. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CensusData.py +0 -0
  36. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CensusVariables.py +0 -0
  37. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CompanyScraper/__init__.py +0 -0
  38. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CompanyScraper/parsers/__init__.py +0 -0
  39. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CompanyScraper/parsers/base.py +0 -0
  40. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CompanyScraper/parsers/explorium.py +0 -0
  41. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CompanyScraper/parsers/leadiq.py +0 -0
  42. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CompanyScraper/parsers/rocket.py +0 -0
  43. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CompanyScraper/parsers/siccode.py +0 -0
  44. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CompanyScraper/parsers/visualvisitor.py +0 -0
  45. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CompanyScraper/parsers/zoominfo.py +0 -0
  46. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CompanyScraper/scrapper.py +0 -0
  47. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CopyFromBase.py +0 -0
  48. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CopyFromS3.py +0 -0
  49. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CopyFromSharepoint.py +0 -0
  50. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CopyTo.py +0 -0
  51. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CopyToBigQuery.py +0 -0
  52. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CopyToFileBase.py +0 -0
  53. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CopyToMongoDB.py +0 -0
  54. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CopyToRethink.py +0 -0
  55. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CopyToS3.py +0 -0
  56. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CopyToSharepoint.py +0 -0
  57. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Costco.py +0 -0
  58. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CreateGCSBucket.py +0 -0
  59. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CreateReport/CreateReport.py +0 -0
  60. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CreateReport/__init__.py +0 -0
  61. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CreateReport/charts/__init__.py +0 -0
  62. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CreateReport/charts/bar.py +0 -0
  63. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CreateReport/charts/base.py +0 -0
  64. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CreateReport/charts/pie.py +0 -0
  65. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CreateReport/utils.py +0 -0
  66. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/CustomerSatisfaction.py +0 -0
  67. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DataInput.py +0 -0
  68. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DateList.py +0 -0
  69. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DbClient.py +0 -0
  70. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DialPad.py +0 -0
  71. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DispatchMe.py +0 -0
  72. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DocumentDBQuery.py +0 -0
  73. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DownloadFrom.py +0 -0
  74. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DownloadFromD2L.py +0 -0
  75. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DownloadFromFTP.py +0 -0
  76. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DownloadFromGamma.py +0 -0
  77. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DownloadFromGoogleDrive.py +0 -0
  78. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DownloadFromIMAP.py +0 -0
  79. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DownloadFromS3.py +0 -0
  80. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DownloadFromSFTP.py +0 -0
  81. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DownloadFromSharepoint.py +0 -0
  82. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DownloadFromSmartSheet.py +0 -0
  83. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DownloadFromSmartsheet.py +0 -0
  84. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DownloadS3File.py +0 -0
  85. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Dummy.py +0 -0
  86. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/DuplicatePhoto.py +0 -0
  87. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/EmployeeEvaluation.py +0 -0
  88. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ExecuteSQL.py +0 -0
  89. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ExtractHTML.py +0 -0
  90. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ExtractTranscript.py +0 -0
  91. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/FileBase.py +0 -0
  92. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/FileCopy.py +0 -0
  93. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/FileDelete.py +0 -0
  94. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/FileExists.py +0 -0
  95. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/FileIteratorDelete.py +0 -0
  96. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/FileList.py +0 -0
  97. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/FileOpen.py +0 -0
  98. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/FileRead.py +0 -0
  99. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/FileRename.py +0 -0
  100. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/FilterIf.py +0 -0
  101. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/FilterRows/FilterRows.py +0 -0
  102. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/FilterRows/__init__.py +0 -0
  103. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/FilterRows/functions.py +0 -0
  104. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/GCSToBigQuery.py +0 -0
  105. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/GenData.py +0 -0
  106. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/GoogleA4.py +0 -0
  107. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/GoogleGeoCoding.py +0 -0
  108. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/GooglePlaces.py +0 -0
  109. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/GoogleSearch.py +0 -0
  110. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/HTTPClient.py +0 -0
  111. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ICIMS.py +0 -0
  112. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/IF.py +0 -0
  113. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/IcimsFolderCopy.py +0 -0
  114. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ImageFeatures/__init__.py +0 -0
  115. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ImageFeatures/process.py +0 -0
  116. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/IteratorBase.py +0 -0
  117. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/LeadIQ.py +0 -0
  118. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Loop.py +0 -0
  119. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Lowes.py +0 -0
  120. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/MS365Usage.py +0 -0
  121. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/MSTeamsMessages.py +0 -0
  122. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/MarkdownMaker.py +0 -0
  123. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/MarketClustering.py +0 -0
  124. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/MergeFileList.py +0 -0
  125. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/MergeFiles.py +0 -0
  126. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/MilvusOutput.py +0 -0
  127. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NearByStores.py +0 -0
  128. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/__init__.py +0 -0
  129. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/models/__init__.py +0 -0
  130. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/models/abstract.py +0 -0
  131. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/models/account.py +0 -0
  132. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/models/client.py +0 -0
  133. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/models/district.py +0 -0
  134. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/models/events.py +0 -0
  135. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/models/forms.py +0 -0
  136. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/models/market.py +0 -0
  137. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/models/organization.py +0 -0
  138. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/models/photos.py +0 -0
  139. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/models/project.py +0 -0
  140. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/models/region.py +0 -0
  141. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/models/store.py +0 -0
  142. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/models/user.py +0 -0
  143. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinja/router.py +0 -0
  144. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NetworkNinjaClaims.py +0 -0
  145. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NextStopAgent.py +0 -0
  146. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/NextTask.py +0 -0
  147. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Odoo.py +0 -0
  148. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/OdooInjector.py +0 -0
  149. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/OpenFromXML.py +0 -0
  150. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/OpenStreetMap.py +0 -0
  151. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/OpenWeather.py +0 -0
  152. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/OpenWithBase.py +0 -0
  153. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/OpenWithPandas.py +0 -0
  154. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/PDFGenerator.py +0 -0
  155. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/PGPDecrypt.py +0 -0
  156. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/PandasIterator.py +0 -0
  157. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/PandasToFile.py +0 -0
  158. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/PandasToPowerPoint.py +0 -0
  159. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Paradox.py +0 -0
  160. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ParamIterator.py +0 -0
  161. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ParrotAgent.py +0 -0
  162. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ParrotKnowledgeBuilder/__init__.py +0 -0
  163. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ParrotKnowledgeBuilder/loader.py +0 -0
  164. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ParrotKnowledgeBuilder/payload.py +0 -0
  165. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ParrotLoader/__init__.py +0 -0
  166. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ParrotLoader/loader.py +0 -0
  167. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ParseHTML.py +0 -0
  168. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/PgVectorOutput.py +0 -0
  169. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/PlacerStores.py +0 -0
  170. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/PlanogramCompliance.py +0 -0
  171. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/PodcastMaker.py +0 -0
  172. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Pokemon.py +0 -0
  173. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/PositiveBot.py +0 -0
  174. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/PowerPointSlide.py +0 -0
  175. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/PrintMessage.py +0 -0
  176. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductCompetitors/__init__.py +0 -0
  177. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductCompetitors/parsers/__init__.py +0 -0
  178. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductCompetitors/parsers/base.py +0 -0
  179. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductCompetitors/parsers/bestbuy.py +0 -0
  180. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductCompetitors/parsers/lowes.py +0 -0
  181. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductCompetitors/scrapper.py +0 -0
  182. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductCompliant.py +0 -0
  183. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductInfo/__init__.py +0 -0
  184. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductInfo/parsers/__init__.py +0 -0
  185. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductInfo/parsers/base.py +0 -0
  186. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductInfo/parsers/brother.py +0 -0
  187. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductInfo/parsers/canon.py +0 -0
  188. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductInfo/parsers/epson.py +0 -0
  189. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductInfo/parsers/hp.py +0 -0
  190. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductInfo/parsers/samsung.py +0 -0
  191. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductInfo/scraper.py +0 -0
  192. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductPricing.py +0 -0
  193. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ProductReportBot.py +0 -0
  194. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/QS.py +0 -0
  195. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/QSBase.py +0 -0
  196. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/QueryIterator.py +0 -0
  197. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/QueryToInsert.py +0 -0
  198. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/QueryToPandas.py +0 -0
  199. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/RESTClient.py +0 -0
  200. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/RethinkDBQuery.py +0 -0
  201. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Rsync.py +0 -0
  202. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/RunSSH.py +0 -0
  203. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/RunShell.py +0 -0
  204. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SAPExtraction.py +0 -0
  205. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SMSAnalysis.py +0 -0
  206. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SMSSummary.py +0 -0
  207. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SalesForce.py +0 -0
  208. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Sassie.py +0 -0
  209. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SaveImageBank/__init__.py +0 -0
  210. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SchedulingVisits.py +0 -0
  211. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ScrapPage.py +0 -0
  212. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ScrapSearch.py +0 -0
  213. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ScrapTool.py +0 -0
  214. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SearchQuery.py +0 -0
  215. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SendEmail.py +0 -0
  216. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SendNotify/__init__.py +0 -0
  217. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SendNotify/component.py +0 -0
  218. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SendNotify/models/__init__.py +0 -0
  219. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SendNotify/models/abstract.py +0 -0
  220. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SendNotify/models/zoom.py +0 -0
  221. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SentimentAnalysis.py +0 -0
  222. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ServiceScraperStores/__init__.py +0 -0
  223. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ServiceScraperStores/retailers/__init__.py +0 -0
  224. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ServiceScraperStores/retailers/base.py +0 -0
  225. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ServiceScraperStores/retailers/costco.py +0 -0
  226. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ServiceScraperStores/retailers/tractor_supply.py +0 -0
  227. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ServiceScraperStores/retailers/verizon.py +0 -0
  228. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ServiceScraperStores/scraper.py +0 -0
  229. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ServiceScrapper/__init__.py +0 -0
  230. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ServiceScrapper/parsers/__init__.py +0 -0
  231. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ServiceScrapper/parsers/base.py +0 -0
  232. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ServiceScrapper/parsers/costco.py +0 -0
  233. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ServiceScrapper/scrapper.py +0 -0
  234. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SetVariables.py +0 -0
  235. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SplitPDF.py +0 -0
  236. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Staples.py +0 -0
  237. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SubTask.py +0 -0
  238. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SuiteCRM.py +0 -0
  239. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SweetSpotScore/__init__.py +0 -0
  240. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SweetSpotScore/component.py +0 -0
  241. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/SweetSpotScore/layers.py +0 -0
  242. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Switch.py +0 -0
  243. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/TableBase.py +0 -0
  244. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/TableDelete.py +0 -0
  245. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/TableInput.py +0 -0
  246. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/TableOutput/TableOutput.py +0 -0
  247. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/TableOutput/__init__.py +0 -0
  248. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/TableSchema.py +0 -0
  249. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Target.py +0 -0
  250. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ThumbnailGenerator.py +0 -0
  251. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ToPandas.py +0 -0
  252. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/TransformRows/TransformRows.py +0 -0
  253. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/TransformRows/__init__.py +0 -0
  254. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/TransformRows/functions.py +0 -0
  255. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/TransposeRows.py +0 -0
  256. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/UPCDatabase.py +0 -0
  257. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/UnGzip.py +0 -0
  258. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Uncompress.py +0 -0
  259. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/UniqueRows.py +0 -0
  260. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Unzip.py +0 -0
  261. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/UpdateOperationalVars.py +0 -0
  262. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/UploadTo.py +0 -0
  263. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/UploadToS3.py +0 -0
  264. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/UploadToSFTP.py +0 -0
  265. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/UploadToSharepoint.py +0 -0
  266. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/UserFunc.py +0 -0
  267. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/VideoUnderstanding.py +0 -0
  268. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/VivaTracker.py +0 -0
  269. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/WSDLClient.py +0 -0
  270. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Wait.py +0 -0
  271. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Walmart.py +0 -0
  272. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/__init__.py +0 -0
  273. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/__init__.py +0 -0
  274. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/applicant.py +0 -0
  275. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/candidate.py +0 -0
  276. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/cost_center.py +0 -0
  277. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/custom_punch_field_report.py +0 -0
  278. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/job_posting.py +0 -0
  279. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/job_posting_site.py +0 -0
  280. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/job_requisition.py +0 -0
  281. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/location.py +0 -0
  282. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/location_hierarchy_assignments.py +0 -0
  283. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/organizations.py +0 -0
  284. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/reference.py +0 -0
  285. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/time_block.py +0 -0
  286. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/time_off_balance.py +0 -0
  287. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/time_request.py +0 -0
  288. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/models/worker.py +0 -0
  289. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/__init__.py +0 -0
  290. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/applicant_parsers.py +0 -0
  291. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/candidate_parsers.py +0 -0
  292. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/cost_center_parsers.py +0 -0
  293. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/custom_punch_field_report_parsers.py +0 -0
  294. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/job_posting_parsers.py +0 -0
  295. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/job_posting_site_parsers.py +0 -0
  296. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/job_requisition_parsers.py +0 -0
  297. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/location_hierarchy_assignments_parsers.py +0 -0
  298. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/location_parsers.py +0 -0
  299. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/organization_parsers.py +0 -0
  300. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/reference_parsers.py +0 -0
  301. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/time_block_parsers.py +0 -0
  302. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/time_off_balance_parsers.py +0 -0
  303. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/time_request_parsers.py +0 -0
  304. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/parsers/worker_parsers.py +0 -0
  305. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/__init__.py +0 -0
  306. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/applicants.py +0 -0
  307. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/base.py +0 -0
  308. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/candidates.py +0 -0
  309. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/cost_centers.py +0 -0
  310. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/custom_punch_field_report.py +0 -0
  311. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/custom_punch_field_report_rest.py +0 -0
  312. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/custom_report.py +0 -0
  313. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/job_posting_sites.py +0 -0
  314. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/job_postings.py +0 -0
  315. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/job_requisitions.py +0 -0
  316. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/location_hierarchy_assignments.py +0 -0
  317. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/locations.py +0 -0
  318. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/organization_single.py +0 -0
  319. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/organizations.py +0 -0
  320. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/recruiting_agency_users.py +0 -0
  321. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/references.py +0 -0
  322. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/time_block_report.py +0 -0
  323. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/time_blocks.py +0 -0
  324. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/time_off_balances.py +0 -0
  325. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/time_requests.py +0 -0
  326. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/types/workers.py +0 -0
  327. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/utils/__init__.py +0 -0
  328. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/utils/utils.py +0 -0
  329. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workday/workday.py +0 -0
  330. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/WorkdayReport.py +0 -0
  331. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Workplace.py +0 -0
  332. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/XMLToPandas.py +0 -0
  333. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Zammad/__init__.py +0 -0
  334. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Zammad/models.py +0 -0
  335. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/Zoom.py +0 -0
  336. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ZoomInfoScraper.py +0 -0
  337. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/ZoomUs.py +0 -0
  338. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/__init__.py +0 -0
  339. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/_census/__init__.py +0 -0
  340. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/_census/cache.py +0 -0
  341. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/_census/fetch.py +0 -0
  342. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/_census/resolver.py +0 -0
  343. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/_census/transform.py +0 -0
  344. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/abstract.py +0 -0
  345. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/flow.py +0 -0
  346. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/gendata/__init__.py +0 -0
  347. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/gendata/date_sequence.py +0 -0
  348. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/gendata/static_list.py +0 -0
  349. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/google.py +0 -0
  350. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/group.py +0 -0
  351. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/pandas_io.py +0 -0
  352. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/py.typed +0 -0
  353. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/reviewscrap.py +0 -0
  354. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tAddTotalRow.py +0 -0
  355. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tAutoincrement.py +0 -0
  356. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tConcat.py +0 -0
  357. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tConditionalMultiply.py +0 -0
  358. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tCrosstab.py +0 -0
  359. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tDictKey.py +0 -0
  360. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tDiff.py +0 -0
  361. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tExplode.py +0 -0
  362. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tFilter.py +0 -0
  363. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tFilterCommonValues.py +0 -0
  364. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tFlatten.py +0 -0
  365. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tFrequencyWeights.py +0 -0
  366. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tGroup.py +0 -0
  367. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tJoin.py +0 -0
  368. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tMap/__init__.py +0 -0
  369. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tMap/functions.py +0 -0
  370. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tMap/tMap.py +0 -0
  371. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tMelt.py +0 -0
  372. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tMerge.py +0 -0
  373. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tOrder.py +0 -0
  374. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tPandas.py +0 -0
  375. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tPivot.py +0 -0
  376. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tPluckCols.py +0 -0
  377. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/tUnnest.py +0 -0
  378. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/components/user.py +0 -0
  379. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/conf.py +0 -0
  380. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/__init__.py +0 -0
  381. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/categories.json +0 -0
  382. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/cli.py +0 -0
  383. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/ASPX.doc.json +0 -0
  384. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/AddDataset.doc.json +0 -0
  385. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/AutoTask.doc.json +0 -0
  386. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/AzureUsers.doc.json +0 -0
  387. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/CallAnalysis.doc.json +0 -0
  388. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/CallSummary.doc.json +0 -0
  389. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/CompanyScraper.doc.json +0 -0
  390. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/CopyFromS3.doc.json +0 -0
  391. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/CopyFromSharepoint.doc.json +0 -0
  392. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/CopyToBigQuery.doc.json +0 -0
  393. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/CopyToMongoDB.doc.json +0 -0
  394. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/CopyToPg.doc.json +0 -0
  395. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/CopyToRethink.doc.json +0 -0
  396. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/CopyToS3.doc.json +0 -0
  397. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/CopyToSharepoint.doc.json +0 -0
  398. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/CreateReport.doc.json +0 -0
  399. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/CustomerSatisfaction.doc.json +0 -0
  400. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/DataInput.doc.json +0 -0
  401. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/DateList.doc.json +0 -0
  402. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/DialPad.doc.json +0 -0
  403. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/DownloadFromD2L.doc.json +0 -0
  404. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/DownloadFromFTP.doc.json +0 -0
  405. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/DownloadFromIMAP.doc.json +0 -0
  406. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/DownloadFromS3.doc.json +0 -0
  407. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/DownloadFromSFTP.doc.json +0 -0
  408. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/DownloadFromSharepoint.doc.json +0 -0
  409. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/DownloadFromSmartSheet.doc.json +0 -0
  410. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/DownloadFromSmartsheet.doc.json +0 -0
  411. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/EmployeeEvaluation.doc.json +0 -0
  412. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/ExecuteSQL.doc.json +0 -0
  413. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/ExtractTranscript.doc.json +0 -0
  414. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/FileCopy.doc.json +0 -0
  415. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/FileDelete.doc.json +0 -0
  416. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/FileExists.doc.json +0 -0
  417. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/FileIteratorDelete.doc.json +0 -0
  418. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/FileList.doc.json +0 -0
  419. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/FileOpen.doc.json +0 -0
  420. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/FileRead.doc.json +0 -0
  421. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/FileRename.doc.json +0 -0
  422. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/FilterIf.doc.json +0 -0
  423. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/FilterRows.doc.json +0 -0
  424. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/GoogleA4.doc.json +0 -0
  425. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/GoogleGeoCoding.doc.json +0 -0
  426. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/GoogleSearch.doc.json +0 -0
  427. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/HTTPClient.doc.json +0 -0
  428. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/ICIMS.doc.json +0 -0
  429. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/IteratorBase.doc.json +0 -0
  430. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/LeadIQ.doc.json +0 -0
  431. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/MS365Usage.doc.json +0 -0
  432. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/MSTeamsMessages.doc.json +0 -0
  433. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/MergeFileList.doc.json +0 -0
  434. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/MergeFiles.doc.json +0 -0
  435. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/NetworkNinjaClaims.doc.json +0 -0
  436. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/NextTask.doc.json +0 -0
  437. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/Odoo.doc.json +0 -0
  438. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/OdooInjector.doc.json +0 -0
  439. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/OpenFromXML.doc.json +0 -0
  440. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/OpenWithBase.doc.json +0 -0
  441. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/OpenWithPandas.doc.json +0 -0
  442. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/PGPDecrypt.doc.json +0 -0
  443. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/PandasIterator.doc.json +0 -0
  444. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/PandasToFile.doc.json +0 -0
  445. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/Paradox.doc.json +0 -0
  446. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/ParamIterator.doc.json +0 -0
  447. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/ParrotAgent.doc.json +0 -0
  448. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/PlacerStores.doc.json +0 -0
  449. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/PlanogramCompliance.doc.json +0 -0
  450. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/Pokemon.doc.json +0 -0
  451. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/PositiveBot.doc.json +0 -0
  452. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/PowerPointSlide.doc.json +0 -0
  453. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/PrintMessage.doc.json +0 -0
  454. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/ProductCompliant.doc.json +0 -0
  455. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/ProductPricing.doc.json +0 -0
  456. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/ProductReportBot.doc.json +0 -0
  457. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/QS.doc.json +0 -0
  458. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/QueryIterator.doc.json +0 -0
  459. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/QueryToInsert.doc.json +0 -0
  460. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/QueryToPandas.doc.json +0 -0
  461. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/RESTClient.doc.json +0 -0
  462. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/RunShell.doc.json +0 -0
  463. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/SAPExtraction.doc.json +0 -0
  464. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/Sassie.doc.json +0 -0
  465. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/ScrapTool.doc.json +0 -0
  466. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/SearchQuery.doc.json +0 -0
  467. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/SendNotify.doc.json +0 -0
  468. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/SentimentAnalysis.doc.json +0 -0
  469. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/ServiceScraperStores.doc.json +0 -0
  470. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/ServiceScrapper.doc.json +0 -0
  471. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/SetVariables.doc.json +0 -0
  472. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/SplitPDF.doc.json +0 -0
  473. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/SubTask.doc.json +0 -0
  474. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/SuiteCRM.doc.json +0 -0
  475. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/TableDelete.doc.json +0 -0
  476. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/TableInput.doc.json +0 -0
  477. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/TableOutput.doc.json +0 -0
  478. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/TableSchema.doc.json +0 -0
  479. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/ThumbnailGenerator.doc.json +0 -0
  480. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/TransformRows.doc.json +0 -0
  481. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/TransposeRows.doc.json +0 -0
  482. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/UnGzip.doc.json +0 -0
  483. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/Uncompress.doc.json +0 -0
  484. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/UniqueRows.doc.json +0 -0
  485. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/Unzip.doc.json +0 -0
  486. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/UploadToS3.doc.json +0 -0
  487. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/UploadToSFTP.doc.json +0 -0
  488. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/UploadToSharepoint.doc.json +0 -0
  489. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/UserFunc.doc.json +0 -0
  490. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/Zoom.doc.json +0 -0
  491. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/ZoomInfoScraper.doc.json +0 -0
  492. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tAutoincrement.doc.json +0 -0
  493. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tConcat.doc.json +0 -0
  494. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tConditionalMultiply.doc.json +0 -0
  495. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tCrosstab.doc.json +0 -0
  496. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tDictKey.doc.json +0 -0
  497. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tDiff.doc.json +0 -0
  498. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tExplode.doc.json +0 -0
  499. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tFilter.doc.json +0 -0
  500. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tFilterCommonValues.doc.json +0 -0
  501. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tFlatten.doc.json +0 -0
  502. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tFrequencyWeights.doc.json +0 -0
  503. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tGroup.doc.json +0 -0
  504. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tJoin.doc.json +0 -0
  505. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tMap.doc.json +0 -0
  506. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tMelt.doc.json +0 -0
  507. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tOrder.doc.json +0 -0
  508. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tPivot.doc.json +0 -0
  509. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tPluckCols.doc.json +0 -0
  510. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generated/components/tUnnest.doc.json +0 -0
  511. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/generator.py +0 -0
  512. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/models.py +0 -0
  513. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/parser.py +0 -0
  514. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/schema.py +0 -0
  515. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/documentation/toolkit.py +0 -0
  516. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/download.py +0 -0
  517. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/__init__.py +0 -0
  518. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/__init__.py +0 -0
  519. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/abstract.py +0 -0
  520. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/alerts/__init__.py +0 -0
  521. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/alerts/colfunctions.py +0 -0
  522. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/alerts/functions.py +0 -0
  523. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/dummy.py +0 -0
  524. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/exec.py +0 -0
  525. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/file/__init__.py +0 -0
  526. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/file/base.py +0 -0
  527. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/file/copy.py +0 -0
  528. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/file/delete.py +0 -0
  529. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/interfaces/__init__.py +0 -0
  530. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/interfaces/client.py +0 -0
  531. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/interfaces/credentials.py +0 -0
  532. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/interfaces/notifications.py +0 -0
  533. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/jira.py +0 -0
  534. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/log.py +0 -0
  535. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/logerr.py +0 -0
  536. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/notify.py +0 -0
  537. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/notify_event.py +0 -0
  538. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/publish.py +0 -0
  539. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/sendfile.py +0 -0
  540. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/task.py +0 -0
  541. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/teams.py +0 -0
  542. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/events/webhook.py +0 -0
  543. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/events/manager.py +0 -0
  544. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/exceptions.py +0 -0
  545. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/executors/__init__.py +0 -0
  546. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/executors/base.py +0 -0
  547. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/executors/docker.py +0 -0
  548. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/executors/events.py +0 -0
  549. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/executors/exceptions.py +0 -0
  550. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/executors/k8s.py +0 -0
  551. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/executors/local.py +0 -0
  552. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/executors/models.py +0 -0
  553. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/executors/publish.py +0 -0
  554. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/executors/qworker.py +0 -0
  555. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/executors/registry.py +0 -0
  556. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/executors/resolver.py +0 -0
  557. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/extensions/__init__.py +0 -0
  558. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/extensions/abstract.py +0 -0
  559. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/extensions/component_docs.py +0 -0
  560. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/extensions/logging/__init__.py +0 -0
  561. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/factory/__init__.py +0 -0
  562. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/factory/agent.py +0 -0
  563. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/factory/composer.py +0 -0
  564. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/factory/parser.py +0 -0
  565. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/factory/validator.py +0 -0
  566. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/handlers/__init__.py +0 -0
  567. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/handlers/component.py +0 -0
  568. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/__init__.py +0 -0
  569. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/actions/__init__.py +0 -0
  570. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/actions/abstract.py +0 -0
  571. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/actions/dummy.py +0 -0
  572. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/actions/jira.py +0 -0
  573. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/actions/rest.py +0 -0
  574. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/actions/sampledata.py +0 -0
  575. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/actions/sensor.py +0 -0
  576. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/actions/task.py +0 -0
  577. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/actions/ticket.py +0 -0
  578. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/actions/zammad.py +0 -0
  579. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/actions/zoom_event.py +0 -0
  580. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/hook.py +0 -0
  581. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/models.py +0 -0
  582. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/service.py +0 -0
  583. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/step.py +0 -0
  584. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/__init__.py +0 -0
  585. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/base.py +0 -0
  586. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/brokers/__init__.py +0 -0
  587. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/brokers/base.py +0 -0
  588. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/brokers/mqtt.py +0 -0
  589. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/brokers/rabbitmq.py +0 -0
  590. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/brokers/redis.py +0 -0
  591. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/brokers/sqs.py +0 -0
  592. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/fs.py +0 -0
  593. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/http.py +0 -0
  594. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/imap.py +0 -0
  595. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/jira.py +0 -0
  596. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/mail.py +0 -0
  597. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/postgres.py +0 -0
  598. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/responses/__init__.py +0 -0
  599. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/responses/base.py +0 -0
  600. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/sharepoint.py +0 -0
  601. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/ssh.py +0 -0
  602. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/tagged.py +0 -0
  603. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/upload.py +0 -0
  604. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/watch.py +0 -0
  605. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/web.py +0 -0
  606. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/hooks/types/zoom.py +0 -0
  607. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/AzureClient.py +0 -0
  608. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/AzureGraph.py +0 -0
  609. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/Boto3Client.py +0 -0
  610. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/DropboxClient.py +0 -0
  611. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/ExcelHandler.py +0 -0
  612. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/FTPClient.py +0 -0
  613. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/GoogleCalendar.py +0 -0
  614. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/GoogleClient.py +0 -0
  615. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/GoogleDrive.py +0 -0
  616. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/GoogleGCS.py +0 -0
  617. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/GoogleGeocoding.py +0 -0
  618. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/GoogleLang.py +0 -0
  619. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/GooglePub.py +0 -0
  620. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/GoogleReverseGeocoding.py +0 -0
  621. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/GoogleSheet.py +0 -0
  622. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/IMAPClient.py +0 -0
  623. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/LLMClient.py +0 -0
  624. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/NominatimGeocoding.py +0 -0
  625. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/O365Calendar.py +0 -0
  626. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/O365Client.py +0 -0
  627. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/OneDrive.py +0 -0
  628. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/Outlook.py +0 -0
  629. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/OverpassGeocoding.py +0 -0
  630. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/ParrotBot.py +0 -0
  631. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/ParrotTool.py +0 -0
  632. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/ReverseGeocoding.py +0 -0
  633. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/SOAPClient.py +0 -0
  634. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/SSHClient.py +0 -0
  635. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/Sharepoint.py +0 -0
  636. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/__init__.py +0 -0
  637. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/abstract.py +0 -0
  638. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/azure_component.py +0 -0
  639. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/azureauth.py +0 -0
  640. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/base_action.py +0 -0
  641. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/base_loop.py +0 -0
  642. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/cache.py +0 -0
  643. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/client.py +0 -0
  644. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/compress.py +0 -0
  645. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/copy_from_base.py +0 -0
  646. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/copy_to_file_base.py +0 -0
  647. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/credentials.py +0 -0
  648. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/d2l.py +0 -0
  649. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/databases/__init__.py +0 -0
  650. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/databases/db.py +0 -0
  651. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/databases/documentdb.py +0 -0
  652. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/databases/rethink.py +0 -0
  653. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/dataframes/__init__.py +0 -0
  654. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/dataframes/abstract.py +0 -0
  655. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/dataframes/arrow.py +0 -0
  656. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/dataframes/dt.py +0 -0
  657. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/dataframes/pandas.py +0 -0
  658. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/dataframes/polars.py +0 -0
  659. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/db.py +0 -0
  660. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/db_client.py +0 -0
  661. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/download_from.py +0 -0
  662. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/env.py +0 -0
  663. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/file_base.py +0 -0
  664. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/flow.py +0 -0
  665. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/func.py +0 -0
  666. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/gamma.py +0 -0
  667. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/google_base.py +0 -0
  668. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/group.py +0 -0
  669. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/http.py +0 -0
  670. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/locale.py +0 -0
  671. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/log.py +0 -0
  672. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/mask.py +0 -0
  673. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/notification.py +0 -0
  674. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/parrot/__init__.py +0 -0
  675. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/parrot/agent.py +0 -0
  676. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/parrot/client.py +0 -0
  677. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/parrot/config.py +0 -0
  678. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/pipelines/__init__.py +0 -0
  679. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/pipelines/parrot.py +0 -0
  680. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/playwright.py +0 -0
  681. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/powerpoint.py +0 -0
  682. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/ppt.py +0 -0
  683. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/py.typed +0 -0
  684. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/qs.py +0 -0
  685. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/qs_base.py +0 -0
  686. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/result.py +0 -0
  687. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/routing.py +0 -0
  688. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/sassie.py +0 -0
  689. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/scoring/__init__.py +0 -0
  690. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/scoring/abstract.py +0 -0
  691. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/scoring/engine.py +0 -0
  692. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/scoring/extractors/__init__.py +0 -0
  693. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/scoring/extractors/count.py +0 -0
  694. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/scoring/extractors/gravity.py +0 -0
  695. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/scoring/extractors/nearest.py +0 -0
  696. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/scoring/models.py +0 -0
  697. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/scoring/service.py +0 -0
  698. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/scoring/spatial.py +0 -0
  699. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/search.py +0 -0
  700. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/selenium/__init__.py +0 -0
  701. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/selenium/options.py +0 -0
  702. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/selenium/service.py +0 -0
  703. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/selenium_service.py +0 -0
  704. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/skip_policy.py +0 -0
  705. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/smartsheet.py +0 -0
  706. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/stat.py +0 -0
  707. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/t_pandas.py +0 -0
  708. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/table_base.py +0 -0
  709. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/task.py +0 -0
  710. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/teams.py +0 -0
  711. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/template.py +0 -0
  712. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/tickets.py +0 -0
  713. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/upload_to.py +0 -0
  714. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/user.py +0 -0
  715. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/vectorstores/__init__.py +0 -0
  716. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/vectorstores/abstract.py +0 -0
  717. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/vectorstores/milvus.py +0 -0
  718. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/__init__.py +0 -0
  719. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/config.py +0 -0
  720. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/__init__.py +0 -0
  721. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/applicants.py +0 -0
  722. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/base.py +0 -0
  723. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/candidates.py +0 -0
  724. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/cost_centers.py +0 -0
  725. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/custom_punch_field_report.py +0 -0
  726. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/custom_punch_field_report_rest.py +0 -0
  727. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/custom_report.py +0 -0
  728. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/import_reported_time_blocks.py +0 -0
  729. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/import_time_clock_events.py +0 -0
  730. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/job_posting_sites.py +0 -0
  731. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/job_postings.py +0 -0
  732. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/job_requisitions.py +0 -0
  733. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/location_hierarchy_assignments.py +0 -0
  734. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/locations.py +0 -0
  735. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/organization_single.py +0 -0
  736. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/organizations.py +0 -0
  737. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/put_time_clock_events.py +0 -0
  738. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/recruiting_agency_users.py +0 -0
  739. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/references.py +0 -0
  740. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/time_block_report.py +0 -0
  741. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/time_blocks.py +0 -0
  742. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/time_off_balances.py +0 -0
  743. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/time_requests.py +0 -0
  744. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/handlers/workers.py +0 -0
  745. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/__init__.py +0 -0
  746. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/applicant.py +0 -0
  747. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/candidate.py +0 -0
  748. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/clock_event.py +0 -0
  749. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/cost_center.py +0 -0
  750. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/custom_punch_field_report.py +0 -0
  751. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/job_posting.py +0 -0
  752. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/job_posting_site.py +0 -0
  753. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/job_requisition.py +0 -0
  754. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/location.py +0 -0
  755. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/location_hierarchy_assignments.py +0 -0
  756. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/organizations.py +0 -0
  757. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/reference.py +0 -0
  758. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/time_block.py +0 -0
  759. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/time_off_balance.py +0 -0
  760. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/time_request.py +0 -0
  761. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/models/worker.py +0 -0
  762. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/__init__.py +0 -0
  763. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/applicant_parsers.py +0 -0
  764. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/candidate_parsers.py +0 -0
  765. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/cost_center_parsers.py +0 -0
  766. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/custom_punch_field_report_parsers.py +0 -0
  767. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/job_posting_parsers.py +0 -0
  768. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/job_posting_site_parsers.py +0 -0
  769. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/job_requisition_parsers.py +0 -0
  770. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/location_hierarchy_assignments_parsers.py +0 -0
  771. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/location_parsers.py +0 -0
  772. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/organization_parsers.py +0 -0
  773. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/reference_parsers.py +0 -0
  774. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/time_block_parsers.py +0 -0
  775. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/time_off_balance_parsers.py +0 -0
  776. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/time_request_parsers.py +0 -0
  777. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/parsers/worker_parsers.py +0 -0
  778. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/rest.py +0 -0
  779. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/service.py +0 -0
  780. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/utils/__init__.py +0 -0
  781. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/workday/utils/utils.py +0 -0
  782. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/zammad.py +0 -0
  783. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/interfaces/zoom.py +0 -0
  784. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/models.py +0 -0
  785. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/parsers/__init__.py +0 -0
  786. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/parsers/_yaml.pyx +0 -0
  787. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/parsers/argparser.py +0 -0
  788. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/parsers/base.pxd +0 -0
  789. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/parsers/base.pyx +0 -0
  790. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/parsers/json.pyx +0 -0
  791. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/parsers/maps.py +0 -0
  792. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/parsers/syntax/__init__.py +0 -0
  793. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/parsers/syntax/checker.py +0 -0
  794. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/parsers/syntax/detector.py +0 -0
  795. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/parsers/syntax/registry.py +0 -0
  796. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/parsers/syntax/report.py +0 -0
  797. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/parsers/syntax/schema.py +0 -0
  798. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/parsers/toml.pyx +0 -0
  799. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/plugins/__init__.py +0 -0
  800. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/plugins/components_/__init__.py +0 -0
  801. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/plugins/handler/__init__.py +0 -0
  802. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/plugins/importer.py +0 -0
  803. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/plugins/sources/__init__.py +0 -0
  804. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/runner.py +0 -0
  805. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/scheduler/__init__.py +0 -0
  806. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/scheduler/functions.py +0 -0
  807. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/scheduler/handlers/__init__.py +0 -0
  808. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/scheduler/handlers/manager.py +0 -0
  809. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/scheduler/handlers/models.py +0 -0
  810. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/scheduler/handlers/service.py +0 -0
  811. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/scheduler/notifications.py +0 -0
  812. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/scheduler/scheduler.py +0 -0
  813. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/__init__.py +0 -0
  814. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/bots/__init__.py +0 -0
  815. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/bots/telegram.py +0 -0
  816. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/files/__init__.py +0 -0
  817. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/files/manager.py +0 -0
  818. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/files/model.py +0 -0
  819. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/files/service.py +0 -0
  820. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/jira/__init__.py +0 -0
  821. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/jira/jira_actions.py +0 -0
  822. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/maintenance/README.md +0 -0
  823. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/maintenance/__init__.py +0 -0
  824. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/maintenance/changelog.py +0 -0
  825. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/maintenance/handlers.py +0 -0
  826. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/maintenance/health.py +0 -0
  827. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/maintenance/models.py +0 -0
  828. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/maintenance/service.py +0 -0
  829. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/maintenance/store.py +0 -0
  830. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/maintenance/templates.py +0 -0
  831. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/maintenance/windows.py +0 -0
  832. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/tasks/__init__.py +0 -0
  833. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/tasks/launcher.py +0 -0
  834. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/tasks/manager.py +0 -0
  835. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/tasks/service.py +0 -0
  836. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/tasks/task_manager.py +0 -0
  837. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/services/tasks/tasks.py +0 -0
  838. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/storages/__init__.py +0 -0
  839. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/storages/exceptions.py +0 -0
  840. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/storages/files/__init__.py +0 -0
  841. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/storages/files/abstract.py +0 -0
  842. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/storages/files/filesystem.py +0 -0
  843. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/storages/tasks/__init__.py +0 -0
  844. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/storages/tasks/abstract.py +0 -0
  845. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/storages/tasks/database.py +0 -0
  846. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/storages/tasks/filesystem.py +0 -0
  847. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/storages/tasks/github.py +0 -0
  848. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/storages/tasks/memory.py +0 -0
  849. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/storages/tasks/row.py +0 -0
  850. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/tasks/__init__.py +0 -0
  851. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/tasks/abstract.py +0 -0
  852. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/tasks/chain.py +0 -0
  853. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/tasks/chainer.py +0 -0
  854. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/tasks/command.py +0 -0
  855. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/tasks/exchange.py +0 -0
  856. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/tasks/pile.py +0 -0
  857. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/tasks/py.typed +0 -0
  858. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/tasks/task.py +0 -0
  859. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/tasks/workers.py +0 -0
  860. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/template/__init__.py +0 -0
  861. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/tests.py +0 -0
  862. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/types/__init__.py +0 -0
  863. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/types/typedefs.pyx +0 -0
  864. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/utils/__init__.py +0 -0
  865. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/utils/constants.py +0 -0
  866. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/utils/encoders.py +0 -0
  867. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/utils/executor.py +0 -0
  868. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/utils/functions.pyx +0 -0
  869. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/utils/json.pxi +0 -0
  870. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/utils/json.pyx +0 -0
  871. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/utils/mail.py +0 -0
  872. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/utils/msgraph_patch.py +0 -0
  873. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/utils/parseqs.pyx +0 -0
  874. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/utils/stats.py +0 -0
  875. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/utils/transformations.py +0 -0
  876. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/utils/uv.py +0 -0
  877. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask/utils/validators.py +0 -0
  878. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask.egg-info/dependency_links.txt +0 -0
  879. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask.egg-info/entry_points.txt +0 -0
  880. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask.egg-info/requires.txt +0 -0
  881. {flowtask-5.13.2 → flowtask-5.13.3}/flowtask.egg-info/top_level.txt +0 -0
  882. {flowtask-5.13.2 → flowtask-5.13.3}/pyproject.toml +0 -0
  883. {flowtask-5.13.2 → flowtask-5.13.3}/setup.cfg +0 -0
  884. {flowtask-5.13.2 → flowtask-5.13.3}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flowtask
3
- Version: 5.13.2
3
+ Version: 5.13.3
4
4
  Summary: Framework for Task orchestration
5
5
  Author-email: Jesus Lara <jesuslarag@gmail.com>
6
6
  License: Apache-2.0
@@ -35,14 +35,17 @@ from ..interfaces.flow import FlowComponent
35
35
  from ..interfaces import HTTPService, SeleniumService
36
36
  from ..interfaces.http import ua
37
37
  from ..utils.bestbuy_greedy import (
38
- NOT_ENABLED_STATES,
39
38
  CoverageMap,
40
39
  SeedCoverage,
40
+ SkuFulfillment,
41
41
  StoreAvailability,
42
42
  Target,
43
+ availability_types,
44
+ fulfillment_slice,
43
45
  greedy_next_seed,
44
46
  load_coverage,
45
47
  parse_fulfillment,
48
+ parse_sku_fulfillment,
46
49
  save_coverage,
47
50
  )
48
51
 
@@ -106,6 +109,25 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
106
109
  | coverage_file | No | Coverage map JSON (default <storage_path>/bestbuy_coverage.json; in-memory when unset). |
107
110
  | proxy_session_max_requests | No | Requests before a sticky proxy session is rotated (default 50). |
108
111
  | proxy_session_max_age | No | Seconds before a sticky proxy session is rotated (default 540). |
112
+ | 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
+ ``type: availability`` output columns (one row per store × sku). Legacy contract:
115
+ ``enabled``, ``locationId``, ``location_data``, ``availability`` (pickup ``fulfillmentType``),
116
+ ``inStoreAvailability`` / ``inStoreAvailable`` (pickup eligible AND inventory in store),
117
+ ``onShelfDisplay`` (kept for compatibility; the API has no shelf-display signal, so it stays
118
+ ``NULL`` unless the input already carries it), ``pickupEligible``,
119
+ ``availablePickupQuantity``, ``availableInStoreQuantity``, ``checked``.
120
+ Extended columns: ``availabilityTypes`` (``IN_STORE,PICKUP,SHIPPING,DELIVERY`` summary),
121
+ ``condition``; pickup detail ``pickupMinHours``, ``pickupMinDate``, ``pickupMaxDate``,
122
+ ``pickupFulfillDate``, ``pickupDisplayDateType``, ``pickupInStoreOnly``, ``pickupPreorderable``,
123
+ ``pickupBackordered``, ``pickupWhenAvailable``, ``pickupRestrictions``, ``storeDistance``;
124
+ shipping (for the request zipcode) ``shippingEligible``, ``shippingZipcode``, ``shippingBackordered``,
125
+ ``shippingInStoreOnly``, ``shippingPreorderable``, ``fulfillByVendor``, ``directToBoxEligible``,
126
+ ``shippingSameDay``, ``shippingDefaultOption``, ``shippingFastestDate``, ``shippingFastestPrice``,
127
+ ``shippingFreeDate``, ``shippingOptions`` (list of dicts); home delivery ``deliveryEligible``,
128
+ ``deliverable``, ``deliveryBackordered``, ``deliveryInStoreOnly``, ``installationEligible``;
129
+ and ``fulfillment_data``, the raw JSON slice (button states, store, pickup entry, shipping,
130
+ delivery) the columns were derived from.
109
131
 
110
132
  :consumes: dataframe
111
133
  :produces: dataframe
@@ -196,6 +218,8 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
196
218
  self._pool_size: int = kwargs.get('concurrency', 12)
197
219
  self.proxy_session_max_requests: int = kwargs.get('proxy_session_max_requests', 50)
198
220
  self.proxy_session_max_age: float = kwargs.get('proxy_session_max_age', 540)
221
+ # Debug: dump the raw GraphQL availability payload (log + optional file)
222
+ self.debug_payload: bool = kwargs.get('debug_payload', False)
199
223
  self._session_pool: list[ProxySession] = []
200
224
  self._pool_lock = asyncio.Lock()
201
225
  self._pool_cursor: int = 0
@@ -989,7 +1013,10 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
989
1013
  await self._release_session(session, status=r.status_code)
990
1014
  if r.status_code == 200:
991
1015
  self._num_iterations += 1
992
- return r.json()
1016
+ payload = r.json()
1017
+ if self.debug_payload:
1018
+ await self._dump_availability_payload(payload, sku, store_id, nearby)
1019
+ return payload
993
1020
  if r.status_code in (522, 502, 503, 504) and attempt < 3:
994
1021
  await asyncio.sleep(0.5 * attempt)
995
1022
  continue
@@ -1005,6 +1032,36 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
1005
1032
  return None
1006
1033
  return None
1007
1034
 
1035
+ async def _dump_availability_payload(self, payload: dict, sku: str, store_id: str,
1036
+ nearby: bool) -> None:
1037
+ """Log the raw GraphQL fulfillment payload and optionally persist it to disk.
1038
+
1039
+ Enabled with ``debug_payload: true``. The full JSON is written to the logger
1040
+ and, when ``storage_path`` is configured, saved as
1041
+ ``<storage_path>/payloads/availability_<sku>_<store_id>[_nearby].json``.
1042
+
1043
+ Args:
1044
+ payload: Decoded JSON returned by ``/gateway/graphql/fulfillment``.
1045
+ sku: Product SKU of the request.
1046
+ store_id: Seed store id of the request.
1047
+ nearby: Whether the request asked for nearby stores (bulk mode seed call).
1048
+ """
1049
+ pretty = json.dumps(payload, indent=2, ensure_ascii=False, default=str)
1050
+ self._logger.info(
1051
+ f"BestBuy availability payload sku={sku} store={store_id} nearby={nearby}:\n{pretty}"
1052
+ )
1053
+ if not self.storage_path:
1054
+ return
1055
+ suffix = "_nearby" if nearby else ""
1056
+ out_dir = Path(self.storage_path).joinpath("payloads")
1057
+ out_file = out_dir.joinpath(f"availability_{sku}_{store_id}{suffix}.json")
1058
+ try:
1059
+ await asyncio.to_thread(out_dir.mkdir, parents=True, exist_ok=True)
1060
+ await asyncio.to_thread(out_file.write_text, pretty, encoding="utf-8")
1061
+ self._logger.debug(f"BestBuy: availability payload saved to {out_file}")
1062
+ except OSError as exc:
1063
+ self._logger.warning(f"BestBuy: could not save availability payload: {exc}")
1064
+
1008
1065
  def _build_oxylabs_us_proxy_url(self, sessid: str | None = None) -> Optional[str]:
1009
1066
  """Build an Oxylabs Residential URL pinned to a US sticky session.
1010
1067
 
@@ -1254,46 +1311,150 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
1254
1311
  if avail is None:
1255
1312
  self._write_unavailable(idx, result, sku)
1256
1313
  return row
1257
- self._write_row(idx, avail, brand)
1314
+ self._write_row(idx, avail, brand, parse_sku_fulfillment(result, sku))
1258
1315
  return row
1259
1316
 
1317
+ # Extended availability columns -> default value when the column is created.
1318
+ EXTENDED_AVAILABILITY_COLUMNS: dict[str, Any] = {
1319
+ 'availabilityTypes': None,
1320
+ 'condition': None,
1321
+ 'pickupMinHours': None,
1322
+ 'pickupMinDate': None,
1323
+ 'pickupMaxDate': None,
1324
+ 'pickupFulfillDate': None,
1325
+ 'pickupDisplayDateType': None,
1326
+ 'pickupInStoreOnly': None,
1327
+ 'pickupPreorderable': None,
1328
+ 'pickupBackordered': None,
1329
+ 'pickupWhenAvailable': None,
1330
+ 'pickupRestrictions': None,
1331
+ 'storeDistance': None,
1332
+ 'shippingEligible': None,
1333
+ 'shippingZipcode': None,
1334
+ 'shippingBackordered': None,
1335
+ 'shippingInStoreOnly': None,
1336
+ 'shippingPreorderable': None,
1337
+ 'fulfillByVendor': None,
1338
+ 'directToBoxEligible': None,
1339
+ 'shippingSameDay': None,
1340
+ 'shippingDefaultOption': None,
1341
+ 'shippingFastestDate': None,
1342
+ 'shippingFastestPrice': None,
1343
+ 'shippingFreeDate': None,
1344
+ 'shippingOptions': None,
1345
+ 'deliveryEligible': None,
1346
+ 'deliverable': None,
1347
+ 'deliveryBackordered': None,
1348
+ 'deliveryInStoreOnly': None,
1349
+ 'installationEligible': None,
1350
+ 'fulfillment_data': None,
1351
+ }
1352
+
1353
+ def _ensure_extended_columns(self) -> None:
1354
+ """Create any missing extended availability column (idempotent, object dtype)."""
1355
+ missing = [c for c in self.EXTENDED_AVAILABILITY_COLUMNS if c not in self.data.columns]
1356
+ for column in missing:
1357
+ self.data[column] = pd.Series(
1358
+ [self.EXTENDED_AVAILABILITY_COLUMNS[column]] * len(self.data),
1359
+ index=self.data.index, dtype=object,
1360
+ )
1361
+
1260
1362
  def _write_unavailable(self, idx: Any, data: dict, sku: str) -> None:
1261
- """No fulfillment info in the response: write only ``enabled`` + ``checked`` (legacy behaviour)."""
1262
- fo = (data.get('data') or {}).get('fulfillmentOptions') or {}
1263
- states = fo.get('buttonStates') or []
1264
- state = ''
1265
- for bs in states:
1266
- if (bs.get('skuId') or bs.get('sku')) == sku:
1267
- state = bs.get('buttonState') or ''
1268
- break
1269
- if not state and states:
1270
- state = states[0].get('buttonState') or ''
1271
- self.data.loc[idx, 'enabled'] = state not in NOT_ENABLED_STATES
1363
+ """No per-store pickup info in the response: write the SKU-level columns and ``checked``.
1364
+
1365
+ ``enabled`` still comes from the button state (legacy behaviour); shipping / delivery
1366
+ columns and ``fulfillment_data`` are filled when the payload carries them, so a
1367
+ ship-only SKU is still fully described.
1368
+ """
1369
+ info = parse_sku_fulfillment(data, sku)
1370
+ self.data.loc[idx, 'enabled'] = info.enabled
1371
+ self._write_sku_columns(idx, None, info)
1272
1372
  self.data.loc[idx, 'checked'] = True
1273
1373
 
1274
- def _write_row(self, idx: Any, avail: StoreAvailability, brand: Any) -> None:
1374
+ def _write_sku_columns(self, idx: Any, avail: StoreAvailability | None,
1375
+ info: SkuFulfillment) -> None:
1376
+ """Write the SKU-level (button state, shipping, delivery) columns plus the JSON slice.
1377
+
1378
+ Args:
1379
+ idx: DataFrame index label.
1380
+ avail: Per-store availability when known (used for the summary / JSON), else None.
1381
+ info: SKU-level fulfillment info parsed from the same response.
1382
+ """
1383
+ self._ensure_extended_columns()
1384
+ d = self.data
1385
+ types = availability_types(avail, info)
1386
+ d.at[idx, 'availabilityTypes'] = ','.join(types) if types else None
1387
+ d.at[idx, 'condition'] = (avail.condition if avail and avail.condition else None) or info.condition
1388
+ d.at[idx, 'shippingEligible'] = info.shipping_eligible
1389
+ d.at[idx, 'shippingZipcode'] = info.shipping_zipcode
1390
+ d.at[idx, 'shippingBackordered'] = info.shipping_backordered
1391
+ d.at[idx, 'shippingInStoreOnly'] = info.shipping_in_store_only
1392
+ d.at[idx, 'shippingPreorderable'] = info.shipping_preorderable
1393
+ d.at[idx, 'fulfillByVendor'] = info.fulfill_by_vendor
1394
+ d.at[idx, 'directToBoxEligible'] = info.direct_to_box_eligible
1395
+ d.at[idx, 'shippingSameDay'] = info.shipping_same_day
1396
+ d.at[idx, 'shippingDefaultOption'] = info.shipping_default_option
1397
+ d.at[idx, 'shippingFastestDate'] = info.shipping_fastest_date
1398
+ d.at[idx, 'shippingFastestPrice'] = info.shipping_fastest_price
1399
+ d.at[idx, 'shippingFreeDate'] = info.shipping_free_date
1400
+ d.at[idx, 'shippingOptions'] = (
1401
+ [o.model_dump() for o in info.shipping_options] if info.shipping_options else None
1402
+ )
1403
+ d.at[idx, 'deliveryEligible'] = info.delivery_eligible
1404
+ d.at[idx, 'deliverable'] = info.deliverable
1405
+ d.at[idx, 'deliveryBackordered'] = info.delivery_backordered
1406
+ d.at[idx, 'deliveryInStoreOnly'] = info.delivery_in_store_only
1407
+ installation = [
1408
+ x for x in (
1409
+ avail.installation_eligible if avail else None,
1410
+ info.shipping_installation_eligible,
1411
+ info.delivery_installation_eligible,
1412
+ ) if x is not None
1413
+ ]
1414
+ d.at[idx, 'installationEligible'] = any(installation) if installation else None
1415
+ d.at[idx, 'fulfillment_data'] = fulfillment_slice(avail, info)
1416
+
1417
+ def _write_row(self, idx: Any, avail: StoreAvailability, brand: Any,
1418
+ info: SkuFulfillment | None = None) -> None:
1275
1419
  """Write the output-contract columns for one DataFrame row and set checked=True.
1276
1420
 
1277
1421
  Args:
1278
1422
  idx: DataFrame index label.
1279
1423
  avail: Normalized availability for that row's (store, sku).
1280
1424
  brand: Brand value to copy into the row.
1425
+ info: SKU-level fulfillment info (button state, shipping, delivery) parsed from the
1426
+ same response. When omitted only the per-store columns are written.
1281
1427
  """
1282
1428
  is_in_store_pickup = (
1283
1429
  avail.pickup_eligible and avail.instore_inventory and avail.fulfillment_type == 'PICKUP'
1284
1430
  )
1285
- self.data.loc[idx, 'enabled'] = avail.enabled
1286
- self.data.loc[idx, 'locationId'] = avail.store.get('storeId') or avail.store_id
1287
- self.data.at[idx, 'brand'] = brand
1288
- self.data.at[idx, 'location_data'] = avail.store
1289
- self.data.loc[idx, 'availability'] = avail.fulfillment_type
1290
- self.data.loc[idx, 'inStoreAvailability'] = is_in_store_pickup
1291
- self.data.loc[idx, 'inStoreAvailable'] = is_in_store_pickup
1292
- self.data.loc[idx, 'onShelfDisplay'] = avail.instore_inventory
1293
- self.data.loc[idx, 'pickupEligible'] = avail.pickup_eligible
1294
- self.data.loc[idx, 'availablePickupQuantity'] = avail.quantity if avail.pickup_eligible else 0
1295
- self.data.loc[idx, 'availableInStoreQuantity'] = avail.quantity if is_in_store_pickup else 0
1296
- self.data.loc[idx, 'checked'] = True
1431
+ self._ensure_extended_columns()
1432
+ d = self.data
1433
+ d.loc[idx, 'enabled'] = avail.enabled
1434
+ d.loc[idx, 'locationId'] = avail.store.get('storeId') or avail.store_id
1435
+ d.at[idx, 'brand'] = brand
1436
+ d.at[idx, 'location_data'] = avail.store
1437
+ d.loc[idx, 'availability'] = avail.fulfillment_type
1438
+ d.loc[idx, 'inStoreAvailability'] = is_in_store_pickup
1439
+ d.loc[idx, 'inStoreAvailable'] = is_in_store_pickup
1440
+ d.loc[idx, 'pickupEligible'] = avail.pickup_eligible
1441
+ d.loc[idx, 'availablePickupQuantity'] = avail.quantity if avail.pickup_eligible else 0
1442
+ d.loc[idx, 'availableInStoreQuantity'] = avail.quantity if is_in_store_pickup else 0
1443
+ # pickup detail
1444
+ d.at[idx, 'pickupMinHours'] = avail.min_pickup_hours
1445
+ d.at[idx, 'pickupMinDate'] = avail.min_date
1446
+ d.at[idx, 'pickupMaxDate'] = avail.max_date
1447
+ d.at[idx, 'pickupFulfillDate'] = avail.fulfill_date
1448
+ d.at[idx, 'pickupDisplayDateType'] = avail.display_date_type
1449
+ d.at[idx, 'pickupInStoreOnly'] = avail.in_store_only
1450
+ d.at[idx, 'pickupPreorderable'] = avail.preorderable
1451
+ d.at[idx, 'pickupBackordered'] = avail.backordered
1452
+ d.at[idx, 'pickupWhenAvailable'] = avail.when_available_flag
1453
+ d.at[idx, 'pickupRestrictions'] = avail.restrictions
1454
+ d.at[idx, 'storeDistance'] = avail.distance
1455
+ if info is not None:
1456
+ self._write_sku_columns(idx, avail, info)
1457
+ d.loc[idx, 'checked'] = True
1297
1458
 
1298
1459
  def column_exists(self, column: str, default_val: Any = None):
1299
1460
  if column not in self.data.columns:
@@ -1501,12 +1662,13 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
1501
1662
  self.column_exists('locationId')
1502
1663
  self.column_exists('availability')
1503
1664
  self.column_exists('inStoreAvailability')
1504
- self.column_exists('onShelfDisplay', False)
1665
+ self.column_exists('onShelfDisplay') # not provided by the API: NULL unless set upstream
1505
1666
  self.column_exists('availableInStoreQuantity', 0)
1506
1667
  self.column_exists('inStoreAvailable', False)
1507
1668
  self.column_exists('pickupEligible', False)
1508
1669
  self.column_exists('availablePickupQuantity', 0)
1509
1670
  self.column_exists('enabled', False)
1671
+ self._ensure_extended_columns()
1510
1672
  self.data['checked'] = False # Add 'checked' flag column
1511
1673
  self._logger.info(
1512
1674
  f"BestBuy availability: {len(self.data)} rows, bulk_mode={self.bulk_mode}"
@@ -1591,11 +1753,12 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
1591
1753
  return
1592
1754
  by_store, returned, _max = parse_fulfillment(data, sku, store_id)
1593
1755
  avail = by_store.get(store_id) or (by_store.get(returned[0]) if returned else None)
1756
+ info = parse_sku_fulfillment(data, sku)
1594
1757
  for idx in idxs:
1595
1758
  if avail is None:
1596
1759
  self._write_unavailable(idx, data, sku)
1597
1760
  else:
1598
- self._write_row(idx, avail, self.data.at[idx, 'brand'])
1761
+ self._write_row(idx, avail, self.data.at[idx, 'brand'], info)
1599
1762
 
1600
1763
  def _apply_response(self, sku: str, seed: str, data: dict, targets: dict[str, Target]) -> set[str]:
1601
1764
  """Parse one nearby response, write every covered target row, update coverage.
@@ -1604,13 +1767,14 @@ class BestBuy(FlowComponent, SeleniumService, HTTPService):
1604
1767
  The target store ids covered by the response.
1605
1768
  """
1606
1769
  by_store, returned, max_dist = parse_fulfillment(data, sku, seed)
1770
+ info = parse_sku_fulfillment(data, sku)
1607
1771
  covered: set[str] = set()
1608
1772
  for sid, avail in by_store.items():
1609
1773
  if sid not in targets:
1610
1774
  continue
1611
1775
  idxs = self._row_index.get((sid, sku), [])
1612
1776
  for idx in idxs:
1613
- self._write_row(idx, avail, self.data.at[idx, 'brand'])
1777
+ self._write_row(idx, avail, self.data.at[idx, 'brand'], info)
1614
1778
  if idxs:
1615
1779
  self._seed_resolved.add((sid, sku))
1616
1780
  covered.add(sid)
@@ -37,6 +37,13 @@ from ..interfaces.copy_to import CopyTo, dtypes
37
37
  from ..utils.json import json_decoder, json_encoder
38
38
 
39
39
 
40
+ # PostgreSQL type names (as reported by asyncpg) that store plain text.
41
+ PG_TEXT_TYPES = frozenset({"text", "varchar", "bpchar", "character varying", "character", "name"})
42
+
43
+ # Column names that collide with attributes used internally by the dynamic
44
+ # asyncdb Model while rendering the CREATE TABLE statement.
45
+ RESERVED_MODEL_COLUMNS = frozenset({"columns", "Meta"})
46
+
40
47
  # adding support for primary keys on raw tables
41
48
  pk_sentence = """ALTER TABLE {schema}.{table}
42
49
  ADD CONSTRAINT {schema}_{table}_pkey PRIMARY KEY({fields});"""
@@ -44,6 +51,43 @@ unique_sentence = """ALTER TABLE {schema}.{table}
44
51
  ADD CONSTRAINT unq_{schema}_{table} UNIQUE({fields});"""
45
52
 
46
53
 
54
+ def quote_identifier(name: str) -> str:
55
+ """Quote a PostgreSQL identifier so its case is preserved.
56
+
57
+ Args:
58
+ name: Column name as it appears in the DataFrame.
59
+
60
+ Returns:
61
+ The name wrapped in double quotes, with embedded quotes escaped.
62
+ """
63
+ return '"' + name.replace('"', '""') + '"'
64
+
65
+
66
+ def quote_ddl_columns(sql: str, columns: list[str]) -> str:
67
+ """Quote the column identifiers of an asyncdb-rendered ``CREATE TABLE``.
68
+
69
+ asyncdb emits one `` <name> <type> ...`` line per column with the name
70
+ unquoted, so PostgreSQL folds it to lowercase and a later ``COPY`` using
71
+ the DataFrame's exact (quoted) names fails with *Undefined Column*.
72
+
73
+ Args:
74
+ sql: DDL returned by ``Model.model(dialect="sql")``.
75
+ columns: Column names in the order they were given to the model.
76
+
77
+ Returns:
78
+ The same DDL with every column identifier double-quoted.
79
+ """
80
+ for col in columns:
81
+ sql = re.sub(
82
+ rf"^(\s*){re.escape(col)}(?=\s)",
83
+ lambda m, c=col: f"{m.group(1)}{quote_identifier(c)}",
84
+ sql,
85
+ count=1,
86
+ flags=re.MULTILINE,
87
+ )
88
+ return sql
89
+
90
+
47
91
  class CopyToPg(CopyTo):
48
92
  """
49
93
  CopyToPg
@@ -145,6 +189,17 @@ class CopyToPg(CopyTo):
145
189
  return total
146
190
 
147
191
  async def _create_table(self):
192
+ """Create the destination table from the DataFrame columns.
193
+
194
+ Builds a dynamic ``asyncdb`` Model from the DataFrame dtypes and
195
+ renders it as a ``CREATE TABLE`` statement. Column names that
196
+ collide with attributes the model machinery needs (``columns``,
197
+ ``Meta``) cannot be represented and raise a ``ComponentError``.
198
+
199
+ Raises:
200
+ ComponentError: when no primary key is defined, a column name
201
+ is reserved, or the DDL execution fails.
202
+ """
148
203
  _pk = self.create_table.get("pk", None)
149
204
  _unq = self.create_table.get("unique", None)
150
205
  _drop = self.create_table.get("drop", False)
@@ -154,6 +209,13 @@ class CopyToPg(CopyTo):
154
209
  )
155
210
  # extracting columns:
156
211
  columns = self.data.columns.tolist()
212
+ reserved = RESERVED_MODEL_COLUMNS.intersection(columns)
213
+ if reserved:
214
+ raise ComponentError(
215
+ f"CopyToPg: Error on Table Creation: column name(s) "
216
+ f"{sorted(reserved)} are reserved by the table model; "
217
+ "rename them before CopyToPg."
218
+ )
157
219
  cols = []
158
220
  for col in columns:
159
221
  if col in self._json_columns:
@@ -166,22 +228,37 @@ class CopyToPg(CopyTo):
166
228
  f = (col, Optional[bytes], Field(default=None, nullable=True, db_type='bytea'))
167
229
  else:
168
230
  datatype = self.data.dtypes[col]
169
- try:
170
- t = dtypes[str(datatype)]
171
- except KeyError:
172
- t = str
173
- f = (col, t)
231
+ if is_datetime64_any_dtype(datatype):
232
+ # any precision (ns/us/ms/s); tz-aware keeps the offset
233
+ db_type = (
234
+ "timestamp with time zone"
235
+ if isinstance(datatype, pd.DatetimeTZDtype)
236
+ else "timestamp without time zone"
237
+ )
238
+ f = (
239
+ col,
240
+ Optional[datetime.datetime],
241
+ Field(default=None, nullable=True, db_type=db_type),
242
+ )
243
+ else:
244
+ try:
245
+ t = dtypes[str(datatype)]
246
+ except KeyError:
247
+ t = str
248
+ f = (col, t)
174
249
  cols.append(f)
175
250
  try:
176
251
  cls = Model.make_model(
177
252
  name=self.tablename, schema=self.schema, fields=cols
178
253
  )
179
- # Create model instance with None values for all columns
180
- init_kwargs = {field[0]: None for field in cols}
181
- mdl = cls(**init_kwargs)
182
-
183
- if sql := mdl.model(dialect="sql"):
184
- print("SQL IS ", sql)
254
+ # Call the classmethod through its underlying function: a column
255
+ # named "model" becomes a field on the dynamic class and would
256
+ # shadow ``Model.model`` (resolving to None).
257
+ if sql := Model.model.__func__(cls, dialect="sql"):
258
+ # Quote identifiers so the table keeps the DataFrame's exact
259
+ # column names (the COPY path quotes them too).
260
+ sql = quote_ddl_columns(sql, columns)
261
+ self._logger.debug(f"Create Table SQL: {sql}")
185
262
  async with await self._connection.connection() as conn:
186
263
  if _drop is True:
187
264
  result, error = await conn.execute(
@@ -198,7 +275,7 @@ class CopyToPg(CopyTo):
198
275
  pk = pk_sentence.format(
199
276
  schema=self.schema,
200
277
  table=self.tablename,
201
- fields=",".join(_pk),
278
+ fields=",".join(quote_identifier(c) for c in _pk),
202
279
  )
203
280
  _primary, error = await conn.execute(sentence=pk)
204
281
  self._logger.debug(
@@ -209,7 +286,7 @@ class CopyToPg(CopyTo):
209
286
  unique = unique_sentence.format(
210
287
  schema=self.schema,
211
288
  table=self.tablename,
212
- fields=",".join(_unq),
289
+ fields=",".join(quote_identifier(c) for c in _unq),
213
290
  )
214
291
  _unique, error = await conn.execute(sentence=unique)
215
292
  self._logger.debug(
@@ -284,6 +361,38 @@ class CopyToPg(CopyTo):
284
361
  self._logger.error(f"Error getting column types: {e}")
285
362
  return {}
286
363
 
364
+ def _coerce_text_columns(self, pg_column_types: list[dict] | dict) -> None:
365
+ """Stringify scalar values bound for columns the table stores as text.
366
+
367
+ ``object`` columns holding ints, floats, bools or dates (for example a
368
+ ``pickup_min_hours`` that is ``None`` on most rows) are created as
369
+ ``varchar`` but the binary COPY receives the raw Python value and
370
+ asyncpg rejects it with *expected str, got int*.
371
+
372
+ Args:
373
+ pg_column_types: Result of :meth:`_get_column_types`; the
374
+ ``{}`` fallback returned on lookup errors is ignored.
375
+ """
376
+ if not isinstance(pg_column_types, list):
377
+ return
378
+ text_cols = [
379
+ col["name"] for col in pg_column_types
380
+ if col.get("pg_type") in PG_TEXT_TYPES
381
+ ]
382
+ skip = set(self._json_columns) | set(self._array_columns) | set(self._vector_columns)
383
+ scalars = (bool, int, float, Decimal, np.generic, datetime.date, datetime.datetime, pd.Timestamp)
384
+ converted = []
385
+ for col in text_cols:
386
+ if col not in self.data.columns or col in skip:
387
+ continue
388
+ series = self.data[col]
389
+ mask = series.map(lambda v: isinstance(v, scalars))
390
+ if mask.any():
391
+ self.data[col] = series.where(~mask, series.map(str))
392
+ converted.append(col)
393
+ if converted:
394
+ self._logger.debug(f"CopyToPg: coerced to text for {self.schema}.{self.tablename}: {converted}")
395
+
287
396
  async def _copy_dataframe(self):
288
397
  # insert data directly into table
289
398
  columns = list(self.data.columns)
@@ -437,7 +546,6 @@ class CopyToPg(CopyTo):
437
546
  async with await self._connection.connection() as conn:
438
547
  # Get PostgreSQL column types
439
548
  pg_column_types = await self._get_column_types(conn)
440
- # TODO: using the column types to refine the conversion
441
549
 
442
550
  # Handle datetime columns - replace NaT with None
443
551
  datetime_cols = self.data.select_dtypes(include=['datetime64[ns]', 'datetime64[ns, UTC]'])
@@ -494,6 +602,8 @@ class CopyToPg(CopyTo):
494
602
 
495
603
  # 1️⃣ Turn every NaN / NA / NaT into Python None
496
604
  self.data = self.data.astype(object).where(pd.notnull(self.data), None)
605
+ # 2️⃣ Numbers / bools heading to text columns must be strings for COPY
606
+ self._coerce_text_columns(pg_column_types)
497
607
  tuples = list(zip(*map(self.data.get, self.data)))
498
608
 
499
609
  async with await self._connection.connection() as conn:
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "BestBuy",
3
+ "version": "1.0.0",
4
+ "category": "Other",
5
+ "description": "Extract Best Buy information (stores, products, reviews, product availability) by combining the Best Buy API with web scraping. ``type: availability`` checks per-store pickup availability through the GraphQL fulfillment endpoint over sticky Oxylabs US sessions. With ``bulk_mode: true`` it runs a greedy set-cover over the endpoint's nearby-store fan-out, so the call count drops from stores x skus to roughly seeds x skus.",
6
+ "examples": [
7
+ "BestBuy:\n type: availability\n brand: Epson\n bulk_mode: true\n storage_path: /home/ubuntu/symbits/bestbuy/\n concurrency: 12"
8
+ ],
9
+ "schema": {
10
+ "$schema": "http://json-schema.org/draft-07/schema#",
11
+ "type": "object",
12
+ "title": "BestBuy",
13
+ "description": "Extract Best Buy information (stores, products, reviews, product availability) by combining the Best Buy API with web scraping. ``type: availability`` checks per-store pickup availability through the GraphQL fulfillment endpoint over sticky Oxylabs US sessions. With ``bulk_mode: true`` it runs a greedy set-cover over the endpoint's nearby-store fan-out, so the call count drops from stores x skus to roughly seeds x skus.",
14
+ "properties": {
15
+ "type": {
16
+ "type": "string",
17
+ "description": "Function to run: availability, product, reviews, products, products_by_brand, stores, product_api."
18
+ },
19
+ "brand": {
20
+ "type": "string",
21
+ "description": "Brand to filter or tag products with."
22
+ },
23
+ "product_info": {
24
+ "type": "string",
25
+ "description": "Fetch extra product information (default false)."
26
+ },
27
+ "use_proxy": {
28
+ "type": "string",
29
+ "description": "Opt in to the proxy for non-availability scraping (default false)."
30
+ },
31
+ "use_storage": {
32
+ "type": "string",
33
+ "description": "Reuse a same-day CSV result from storage_path (default false)."
34
+ },
35
+ "storage_path": {
36
+ "type": "string",
37
+ "description": "Directory for stored results and the default coverage file. Required when use_storage is true."
38
+ },
39
+ "chunk_size": {
40
+ "type": "string",
41
+ "description": "Rows per processing chunk (default 100)."
42
+ },
43
+ "task_parts": {
44
+ "type": "string",
45
+ "description": "Number of task partitions (default 10)."
46
+ },
47
+ "concurrency": {
48
+ "type": "string",
49
+ "description": "Max concurrent requests and sticky proxy-session pool size (default 12)."
50
+ },
51
+ "bulk_mode": {
52
+ "type": "string",
53
+ "description": "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."
54
+ },
55
+ "coverage_file": {
56
+ "type": "string",
57
+ "description": "Coverage map JSON (default <storage_path>/bestbuy_coverage.json; in-memory when unset)."
58
+ },
59
+ "proxy_session_max_requests": {
60
+ "type": "string",
61
+ "description": "Requests before a sticky proxy session is rotated (default 50)."
62
+ },
63
+ "proxy_session_max_age": {
64
+ "type": "string",
65
+ "description": "Seconds before a sticky proxy session is rotated (default 540)."
66
+ },
67
+ "debug_payload": {
68
+ "type": "string",
69
+ "description": "availability only: log the full GraphQL JSON of every call; with storage_path also dump it to <storage_path>/payloads/ (default false)."
70
+ }
71
+ },
72
+ "required": [
73
+ "type"
74
+ ],
75
+ "x-flowtask-io": {
76
+ "consumes": "dataframe",
77
+ "produces": "dataframe"
78
+ }
79
+ }
80
+ }