flowtask 5.12.18__tar.gz → 5.13.0__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 (876) hide show
  1. {flowtask-5.12.18 → flowtask-5.13.0}/PKG-INFO +9 -8
  2. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CopyToPg.py +1 -2
  3. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/MarketClustering.py +1 -1
  4. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/OpenStreetMap.py +2 -0
  5. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SchedulingVisits.py +2 -2
  6. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ServiceScraperStores/retailers/costco.py +14 -0
  7. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/TableSchema.py +1 -1
  8. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/TransformRows/TransformRows.py +1 -1
  9. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/TransformRows/functions.py +3 -3
  10. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/workday.py +3 -0
  11. flowtask-5.13.0/flowtask/components/tDiff.py +449 -0
  12. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tJoin.py +1 -0
  13. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tMap/functions.py +1 -1
  14. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tMerge.py +53 -6
  15. flowtask-5.13.0/flowtask/documentation/generated/components/tDiff.doc.json +76 -0
  16. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tJoin.doc.json +1 -1
  17. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/dataframes/dt.py +5 -1
  18. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/version.py +1 -1
  19. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask.egg-info/PKG-INFO +9 -8
  20. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask.egg-info/SOURCES.txt +2 -0
  21. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask.egg-info/requires.txt +8 -7
  22. {flowtask-5.12.18 → flowtask-5.13.0}/pyproject.toml +40 -17
  23. {flowtask-5.12.18 → flowtask-5.13.0}/CONTRIBUTING.md +0 -0
  24. {flowtask-5.12.18 → flowtask-5.13.0}/INSTALL +0 -0
  25. {flowtask-5.12.18 → flowtask-5.13.0}/LICENSE +0 -0
  26. {flowtask-5.12.18 → flowtask-5.13.0}/MANIFEST.in +0 -0
  27. {flowtask-5.12.18 → flowtask-5.13.0}/README.md +0 -0
  28. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/__init__.py +0 -0
  29. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/__main__.py +0 -0
  30. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/bots/__init__.py +0 -0
  31. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/bots/check.py +0 -0
  32. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/bots/codebot.py +0 -0
  33. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ASPX.py +0 -0
  34. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ATT.py +0 -0
  35. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/AddDataset.py +0 -0
  36. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Amazon.py +0 -0
  37. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/AutoTask.py +0 -0
  38. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Azure.py +0 -0
  39. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/AzureUsers.py +0 -0
  40. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/BaseAction.py +0 -0
  41. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/BaseLoop.py +0 -0
  42. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/BestBuy.py +0 -0
  43. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CSVToGCS.py +0 -0
  44. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CallAnalysis.py +0 -0
  45. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CallSummary.py +0 -0
  46. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CensusData.py +0 -0
  47. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CensusVariables.py +0 -0
  48. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CompanyScraper/__init__.py +0 -0
  49. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CompanyScraper/parsers/__init__.py +0 -0
  50. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CompanyScraper/parsers/base.py +0 -0
  51. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CompanyScraper/parsers/explorium.py +0 -0
  52. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CompanyScraper/parsers/leadiq.py +0 -0
  53. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CompanyScraper/parsers/rocket.py +0 -0
  54. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CompanyScraper/parsers/siccode.py +0 -0
  55. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CompanyScraper/parsers/visualvisitor.py +0 -0
  56. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CompanyScraper/parsers/zoominfo.py +0 -0
  57. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CompanyScraper/scrapper.py +0 -0
  58. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CopyFromBase.py +0 -0
  59. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CopyFromS3.py +0 -0
  60. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CopyFromSharepoint.py +0 -0
  61. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CopyTo.py +0 -0
  62. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CopyToBigQuery.py +0 -0
  63. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CopyToFileBase.py +0 -0
  64. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CopyToMongoDB.py +0 -0
  65. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CopyToRethink.py +0 -0
  66. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CopyToS3.py +0 -0
  67. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CopyToSharepoint.py +0 -0
  68. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Costco.py +0 -0
  69. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CreateGCSBucket.py +0 -0
  70. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CreateReport/CreateReport.py +0 -0
  71. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CreateReport/__init__.py +0 -0
  72. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CreateReport/charts/__init__.py +0 -0
  73. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CreateReport/charts/bar.py +0 -0
  74. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CreateReport/charts/base.py +0 -0
  75. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CreateReport/charts/pie.py +0 -0
  76. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CreateReport/utils.py +0 -0
  77. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/CustomerSatisfaction.py +0 -0
  78. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DataInput.py +0 -0
  79. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DateList.py +0 -0
  80. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DbClient.py +0 -0
  81. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DialPad.py +0 -0
  82. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DispatchMe.py +0 -0
  83. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DocumentDBQuery.py +0 -0
  84. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DownloadFrom.py +0 -0
  85. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DownloadFromD2L.py +0 -0
  86. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DownloadFromFTP.py +0 -0
  87. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DownloadFromGamma.py +0 -0
  88. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DownloadFromGoogleDrive.py +0 -0
  89. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DownloadFromIMAP.py +0 -0
  90. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DownloadFromS3.py +0 -0
  91. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DownloadFromSFTP.py +0 -0
  92. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DownloadFromSharepoint.py +0 -0
  93. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DownloadFromSmartSheet.py +0 -0
  94. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DownloadFromSmartsheet.py +0 -0
  95. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DownloadS3File.py +0 -0
  96. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Dummy.py +0 -0
  97. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/DuplicatePhoto.py +0 -0
  98. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/EmployeeEvaluation.py +0 -0
  99. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ExecuteSQL.py +0 -0
  100. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ExtractHTML.py +0 -0
  101. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ExtractTranscript.py +0 -0
  102. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/FileBase.py +0 -0
  103. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/FileCopy.py +0 -0
  104. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/FileDelete.py +0 -0
  105. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/FileExists.py +0 -0
  106. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/FileIteratorDelete.py +0 -0
  107. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/FileList.py +0 -0
  108. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/FileOpen.py +0 -0
  109. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/FileRead.py +0 -0
  110. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/FileRename.py +0 -0
  111. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/FilterIf.py +0 -0
  112. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/FilterRows/FilterRows.py +0 -0
  113. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/FilterRows/__init__.py +0 -0
  114. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/FilterRows/functions.py +0 -0
  115. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/GCSToBigQuery.py +0 -0
  116. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/GenData.py +0 -0
  117. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/GoogleA4.py +0 -0
  118. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/GoogleGeoCoding.py +0 -0
  119. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/GooglePlaces.py +0 -0
  120. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/GoogleSearch.py +0 -0
  121. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/HTTPClient.py +0 -0
  122. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ICIMS.py +0 -0
  123. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/IF.py +0 -0
  124. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/IcimsFolderCopy.py +0 -0
  125. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ImageFeatures/__init__.py +0 -0
  126. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ImageFeatures/process.py +0 -0
  127. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/IteratorBase.py +0 -0
  128. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/LeadIQ.py +0 -0
  129. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Loop.py +0 -0
  130. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Lowes.py +0 -0
  131. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/MS365Usage.py +0 -0
  132. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/MSTeamsMessages.py +0 -0
  133. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/MarkdownMaker.py +0 -0
  134. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/MergeFileList.py +0 -0
  135. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/MergeFiles.py +0 -0
  136. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/MilvusOutput.py +0 -0
  137. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NearByStores.py +0 -0
  138. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/__init__.py +0 -0
  139. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/models/__init__.py +0 -0
  140. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/models/abstract.py +0 -0
  141. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/models/account.py +0 -0
  142. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/models/client.py +0 -0
  143. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/models/district.py +0 -0
  144. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/models/events.py +0 -0
  145. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/models/forms.py +0 -0
  146. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/models/market.py +0 -0
  147. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/models/organization.py +0 -0
  148. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/models/photos.py +0 -0
  149. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/models/project.py +0 -0
  150. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/models/region.py +0 -0
  151. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/models/store.py +0 -0
  152. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/models/user.py +0 -0
  153. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinja/router.py +0 -0
  154. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NetworkNinjaClaims.py +0 -0
  155. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NextStopAgent.py +0 -0
  156. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/NextTask.py +0 -0
  157. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Odoo.py +0 -0
  158. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/OdooInjector.py +0 -0
  159. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/OpenFromXML.py +0 -0
  160. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/OpenWeather.py +0 -0
  161. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/OpenWithBase.py +0 -0
  162. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/OpenWithPandas.py +0 -0
  163. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/PDFGenerator.py +0 -0
  164. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/PGPDecrypt.py +0 -0
  165. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/PandasIterator.py +0 -0
  166. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/PandasToFile.py +0 -0
  167. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/PandasToPowerPoint.py +0 -0
  168. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Paradox.py +0 -0
  169. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ParamIterator.py +0 -0
  170. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ParrotAgent.py +0 -0
  171. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ParrotKnowledgeBuilder/__init__.py +0 -0
  172. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ParrotKnowledgeBuilder/loader.py +0 -0
  173. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ParrotKnowledgeBuilder/payload.py +0 -0
  174. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ParrotLoader/__init__.py +0 -0
  175. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ParrotLoader/loader.py +0 -0
  176. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ParseHTML.py +0 -0
  177. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/PgVectorOutput.py +0 -0
  178. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/PlacerStores.py +0 -0
  179. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/PlanogramCompliance.py +0 -0
  180. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/PodcastMaker.py +0 -0
  181. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Pokemon.py +0 -0
  182. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/PositiveBot.py +0 -0
  183. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/PowerPointSlide.py +0 -0
  184. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/PrintMessage.py +0 -0
  185. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductCompetitors/__init__.py +0 -0
  186. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductCompetitors/parsers/__init__.py +0 -0
  187. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductCompetitors/parsers/base.py +0 -0
  188. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductCompetitors/parsers/bestbuy.py +0 -0
  189. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductCompetitors/parsers/lowes.py +0 -0
  190. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductCompetitors/scrapper.py +0 -0
  191. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductCompliant.py +0 -0
  192. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductInfo/__init__.py +0 -0
  193. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductInfo/parsers/__init__.py +0 -0
  194. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductInfo/parsers/base.py +0 -0
  195. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductInfo/parsers/brother.py +0 -0
  196. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductInfo/parsers/canon.py +0 -0
  197. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductInfo/parsers/epson.py +0 -0
  198. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductInfo/parsers/hp.py +0 -0
  199. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductInfo/parsers/samsung.py +0 -0
  200. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductInfo/scraper.py +0 -0
  201. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductPricing.py +0 -0
  202. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ProductReportBot.py +0 -0
  203. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/QS.py +0 -0
  204. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/QSBase.py +0 -0
  205. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/QueryIterator.py +0 -0
  206. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/QueryToInsert.py +0 -0
  207. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/QueryToPandas.py +0 -0
  208. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/RESTClient.py +0 -0
  209. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/RethinkDBQuery.py +0 -0
  210. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Rsync.py +0 -0
  211. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/RunSSH.py +0 -0
  212. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/RunShell.py +0 -0
  213. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SAPExtraction.py +0 -0
  214. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SMSAnalysis.py +0 -0
  215. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SMSSummary.py +0 -0
  216. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SalesForce.py +0 -0
  217. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Sassie.py +0 -0
  218. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SaveImageBank/__init__.py +0 -0
  219. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ScrapPage.py +0 -0
  220. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ScrapSearch.py +0 -0
  221. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ScrapTool.py +0 -0
  222. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SearchQuery.py +0 -0
  223. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SendEmail.py +0 -0
  224. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SendNotify/__init__.py +0 -0
  225. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SendNotify/component.py +0 -0
  226. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SendNotify/models/__init__.py +0 -0
  227. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SendNotify/models/abstract.py +0 -0
  228. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SendNotify/models/zoom.py +0 -0
  229. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SentimentAnalysis.py +0 -0
  230. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ServiceScraperStores/__init__.py +0 -0
  231. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ServiceScraperStores/retailers/__init__.py +0 -0
  232. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ServiceScraperStores/retailers/base.py +0 -0
  233. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ServiceScraperStores/retailers/tractor_supply.py +0 -0
  234. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ServiceScraperStores/retailers/verizon.py +0 -0
  235. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ServiceScraperStores/scraper.py +0 -0
  236. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ServiceScrapper/__init__.py +0 -0
  237. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ServiceScrapper/parsers/__init__.py +0 -0
  238. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ServiceScrapper/parsers/base.py +0 -0
  239. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ServiceScrapper/parsers/costco.py +0 -0
  240. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ServiceScrapper/scrapper.py +0 -0
  241. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SetVariables.py +0 -0
  242. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SplitPDF.py +0 -0
  243. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Staples.py +0 -0
  244. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SubTask.py +0 -0
  245. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SuiteCRM.py +0 -0
  246. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SweetSpotScore/__init__.py +0 -0
  247. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SweetSpotScore/component.py +0 -0
  248. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/SweetSpotScore/layers.py +0 -0
  249. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Switch.py +0 -0
  250. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/TableBase.py +0 -0
  251. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/TableDelete.py +0 -0
  252. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/TableInput.py +0 -0
  253. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/TableOutput/TableOutput.py +0 -0
  254. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/TableOutput/__init__.py +0 -0
  255. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Target.py +0 -0
  256. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ThumbnailGenerator.py +0 -0
  257. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ToPandas.py +0 -0
  258. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/TransformRows/__init__.py +0 -0
  259. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/TransposeRows.py +0 -0
  260. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/UPCDatabase.py +0 -0
  261. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/UnGzip.py +0 -0
  262. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Uncompress.py +0 -0
  263. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/UniqueRows.py +0 -0
  264. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Unzip.py +0 -0
  265. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/UpdateOperationalVars.py +0 -0
  266. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/UploadTo.py +0 -0
  267. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/UploadToS3.py +0 -0
  268. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/UploadToSFTP.py +0 -0
  269. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/UploadToSharepoint.py +0 -0
  270. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/UserFunc.py +0 -0
  271. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/VideoUnderstanding.py +0 -0
  272. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/VivaTracker.py +0 -0
  273. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/WSDLClient.py +0 -0
  274. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Wait.py +0 -0
  275. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Walmart.py +0 -0
  276. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/__init__.py +0 -0
  277. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/__init__.py +0 -0
  278. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/applicant.py +0 -0
  279. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/candidate.py +0 -0
  280. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/cost_center.py +0 -0
  281. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/custom_punch_field_report.py +0 -0
  282. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/job_posting.py +0 -0
  283. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/job_posting_site.py +0 -0
  284. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/job_requisition.py +0 -0
  285. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/location.py +0 -0
  286. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/location_hierarchy_assignments.py +0 -0
  287. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/organizations.py +0 -0
  288. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/reference.py +0 -0
  289. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/time_block.py +0 -0
  290. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/time_off_balance.py +0 -0
  291. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/time_request.py +0 -0
  292. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/models/worker.py +0 -0
  293. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/__init__.py +0 -0
  294. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/applicant_parsers.py +0 -0
  295. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/candidate_parsers.py +0 -0
  296. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/cost_center_parsers.py +0 -0
  297. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/custom_punch_field_report_parsers.py +0 -0
  298. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/job_posting_parsers.py +0 -0
  299. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/job_posting_site_parsers.py +0 -0
  300. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/job_requisition_parsers.py +0 -0
  301. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/location_hierarchy_assignments_parsers.py +0 -0
  302. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/location_parsers.py +0 -0
  303. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/organization_parsers.py +0 -0
  304. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/reference_parsers.py +0 -0
  305. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/time_block_parsers.py +0 -0
  306. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/time_off_balance_parsers.py +0 -0
  307. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/time_request_parsers.py +0 -0
  308. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/parsers/worker_parsers.py +0 -0
  309. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/__init__.py +0 -0
  310. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/applicants.py +0 -0
  311. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/base.py +0 -0
  312. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/candidates.py +0 -0
  313. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/cost_centers.py +0 -0
  314. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/custom_punch_field_report.py +0 -0
  315. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/custom_punch_field_report_rest.py +0 -0
  316. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/custom_report.py +0 -0
  317. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/job_posting_sites.py +0 -0
  318. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/job_postings.py +0 -0
  319. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/job_requisitions.py +0 -0
  320. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/location_hierarchy_assignments.py +0 -0
  321. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/locations.py +0 -0
  322. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/organization_single.py +0 -0
  323. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/organizations.py +0 -0
  324. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/recruiting_agency_users.py +0 -0
  325. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/references.py +0 -0
  326. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/time_block_report.py +0 -0
  327. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/time_blocks.py +0 -0
  328. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/time_off_balances.py +0 -0
  329. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/time_requests.py +0 -0
  330. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/types/workers.py +0 -0
  331. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/utils/__init__.py +0 -0
  332. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workday/utils/utils.py +0 -0
  333. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/WorkdayReport.py +0 -0
  334. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Workplace.py +0 -0
  335. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/XMLToPandas.py +0 -0
  336. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Zammad/__init__.py +0 -0
  337. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Zammad/models.py +0 -0
  338. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/Zoom.py +0 -0
  339. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ZoomInfoScraper.py +0 -0
  340. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/ZoomUs.py +0 -0
  341. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/__init__.py +0 -0
  342. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/_census/__init__.py +0 -0
  343. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/_census/cache.py +0 -0
  344. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/_census/fetch.py +0 -0
  345. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/_census/resolver.py +0 -0
  346. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/_census/transform.py +0 -0
  347. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/abstract.py +0 -0
  348. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/flow.py +0 -0
  349. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/gendata/__init__.py +0 -0
  350. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/gendata/date_sequence.py +0 -0
  351. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/gendata/static_list.py +0 -0
  352. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/google.py +0 -0
  353. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/group.py +0 -0
  354. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/pandas_io.py +0 -0
  355. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/py.typed +0 -0
  356. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/reviewscrap.py +0 -0
  357. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tAddTotalRow.py +0 -0
  358. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tAutoincrement.py +0 -0
  359. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tConcat.py +0 -0
  360. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tConditionalMultiply.py +0 -0
  361. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tCrosstab.py +0 -0
  362. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tDictKey.py +0 -0
  363. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tExplode.py +0 -0
  364. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tFilter.py +0 -0
  365. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tFilterCommonValues.py +0 -0
  366. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tFlatten.py +0 -0
  367. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tFrequencyWeights.py +0 -0
  368. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tGroup.py +0 -0
  369. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tMap/__init__.py +0 -0
  370. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tMap/tMap.py +0 -0
  371. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tMelt.py +0 -0
  372. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tOrder.py +0 -0
  373. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tPandas.py +0 -0
  374. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tPivot.py +0 -0
  375. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tPluckCols.py +0 -0
  376. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/tUnnest.py +0 -0
  377. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/components/user.py +0 -0
  378. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/conf.py +0 -0
  379. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/__init__.py +0 -0
  380. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/categories.json +0 -0
  381. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/cli.py +0 -0
  382. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/ASPX.doc.json +0 -0
  383. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/AddDataset.doc.json +0 -0
  384. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/AutoTask.doc.json +0 -0
  385. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/AzureUsers.doc.json +0 -0
  386. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/CallAnalysis.doc.json +0 -0
  387. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/CallSummary.doc.json +0 -0
  388. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/CompanyScraper.doc.json +0 -0
  389. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/CopyFromS3.doc.json +0 -0
  390. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/CopyFromSharepoint.doc.json +0 -0
  391. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/CopyToBigQuery.doc.json +0 -0
  392. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/CopyToMongoDB.doc.json +0 -0
  393. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/CopyToPg.doc.json +0 -0
  394. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/CopyToRethink.doc.json +0 -0
  395. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/CopyToS3.doc.json +0 -0
  396. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/CopyToSharepoint.doc.json +0 -0
  397. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/CreateReport.doc.json +0 -0
  398. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/CustomerSatisfaction.doc.json +0 -0
  399. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/DataInput.doc.json +0 -0
  400. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/DateList.doc.json +0 -0
  401. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/DialPad.doc.json +0 -0
  402. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/DownloadFromD2L.doc.json +0 -0
  403. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/DownloadFromFTP.doc.json +0 -0
  404. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/DownloadFromIMAP.doc.json +0 -0
  405. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/DownloadFromS3.doc.json +0 -0
  406. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/DownloadFromSFTP.doc.json +0 -0
  407. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/DownloadFromSharepoint.doc.json +0 -0
  408. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/DownloadFromSmartSheet.doc.json +0 -0
  409. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/DownloadFromSmartsheet.doc.json +0 -0
  410. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/EmployeeEvaluation.doc.json +0 -0
  411. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/ExecuteSQL.doc.json +0 -0
  412. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/ExtractTranscript.doc.json +0 -0
  413. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/FileCopy.doc.json +0 -0
  414. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/FileDelete.doc.json +0 -0
  415. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/FileExists.doc.json +0 -0
  416. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/FileIteratorDelete.doc.json +0 -0
  417. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/FileList.doc.json +0 -0
  418. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/FileOpen.doc.json +0 -0
  419. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/FileRead.doc.json +0 -0
  420. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/FileRename.doc.json +0 -0
  421. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/FilterIf.doc.json +0 -0
  422. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/FilterRows.doc.json +0 -0
  423. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/GoogleA4.doc.json +0 -0
  424. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/GoogleGeoCoding.doc.json +0 -0
  425. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/GoogleSearch.doc.json +0 -0
  426. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/HTTPClient.doc.json +0 -0
  427. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/ICIMS.doc.json +0 -0
  428. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/IteratorBase.doc.json +0 -0
  429. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/LeadIQ.doc.json +0 -0
  430. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/MS365Usage.doc.json +0 -0
  431. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/MSTeamsMessages.doc.json +0 -0
  432. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/MergeFileList.doc.json +0 -0
  433. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/MergeFiles.doc.json +0 -0
  434. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/NetworkNinjaClaims.doc.json +0 -0
  435. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/NextTask.doc.json +0 -0
  436. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/Odoo.doc.json +0 -0
  437. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/OdooInjector.doc.json +0 -0
  438. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/OpenFromXML.doc.json +0 -0
  439. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/OpenWithBase.doc.json +0 -0
  440. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/OpenWithPandas.doc.json +0 -0
  441. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/PGPDecrypt.doc.json +0 -0
  442. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/PandasIterator.doc.json +0 -0
  443. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/PandasToFile.doc.json +0 -0
  444. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/Paradox.doc.json +0 -0
  445. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/ParamIterator.doc.json +0 -0
  446. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/ParrotAgent.doc.json +0 -0
  447. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/PlacerStores.doc.json +0 -0
  448. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/Pokemon.doc.json +0 -0
  449. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/PositiveBot.doc.json +0 -0
  450. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/PowerPointSlide.doc.json +0 -0
  451. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/PrintMessage.doc.json +0 -0
  452. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/ProductCompliant.doc.json +0 -0
  453. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/ProductPricing.doc.json +0 -0
  454. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/ProductReportBot.doc.json +0 -0
  455. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/QS.doc.json +0 -0
  456. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/QueryIterator.doc.json +0 -0
  457. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/QueryToInsert.doc.json +0 -0
  458. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/QueryToPandas.doc.json +0 -0
  459. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/RESTClient.doc.json +0 -0
  460. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/RunShell.doc.json +0 -0
  461. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/SAPExtraction.doc.json +0 -0
  462. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/Sassie.doc.json +0 -0
  463. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/ScrapTool.doc.json +0 -0
  464. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/SearchQuery.doc.json +0 -0
  465. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/SendNotify.doc.json +0 -0
  466. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/SentimentAnalysis.doc.json +0 -0
  467. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/ServiceScraperStores.doc.json +0 -0
  468. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/ServiceScrapper.doc.json +0 -0
  469. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/SetVariables.doc.json +0 -0
  470. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/SplitPDF.doc.json +0 -0
  471. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/SubTask.doc.json +0 -0
  472. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/SuiteCRM.doc.json +0 -0
  473. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/TableDelete.doc.json +0 -0
  474. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/TableInput.doc.json +0 -0
  475. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/TableOutput.doc.json +0 -0
  476. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/TableSchema.doc.json +0 -0
  477. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/ThumbnailGenerator.doc.json +0 -0
  478. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/TransformRows.doc.json +0 -0
  479. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/TransposeRows.doc.json +0 -0
  480. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/UnGzip.doc.json +0 -0
  481. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/Uncompress.doc.json +0 -0
  482. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/UniqueRows.doc.json +0 -0
  483. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/Unzip.doc.json +0 -0
  484. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/UploadToS3.doc.json +0 -0
  485. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/UploadToSFTP.doc.json +0 -0
  486. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/UploadToSharepoint.doc.json +0 -0
  487. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/UserFunc.doc.json +0 -0
  488. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/Zoom.doc.json +0 -0
  489. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/ZoomInfoScraper.doc.json +0 -0
  490. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tAutoincrement.doc.json +0 -0
  491. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tConcat.doc.json +0 -0
  492. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tConditionalMultiply.doc.json +0 -0
  493. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tCrosstab.doc.json +0 -0
  494. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tDictKey.doc.json +0 -0
  495. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tExplode.doc.json +0 -0
  496. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tFilter.doc.json +0 -0
  497. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tFilterCommonValues.doc.json +0 -0
  498. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tFlatten.doc.json +0 -0
  499. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tFrequencyWeights.doc.json +0 -0
  500. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tGroup.doc.json +0 -0
  501. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tMap.doc.json +0 -0
  502. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tMelt.doc.json +0 -0
  503. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tOrder.doc.json +0 -0
  504. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tPivot.doc.json +0 -0
  505. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tPluckCols.doc.json +0 -0
  506. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/components/tUnnest.doc.json +0 -0
  507. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generated/index.json +0 -0
  508. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/generator.py +0 -0
  509. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/models.py +0 -0
  510. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/parser.py +0 -0
  511. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/schema.py +0 -0
  512. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/documentation/toolkit.py +0 -0
  513. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/download.py +0 -0
  514. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/__init__.py +0 -0
  515. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/__init__.py +0 -0
  516. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/abstract.py +0 -0
  517. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/alerts/__init__.py +0 -0
  518. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/alerts/colfunctions.py +0 -0
  519. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/alerts/functions.py +0 -0
  520. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/dummy.py +0 -0
  521. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/exec.py +0 -0
  522. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/file/__init__.py +0 -0
  523. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/file/base.py +0 -0
  524. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/file/copy.py +0 -0
  525. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/file/delete.py +0 -0
  526. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/interfaces/__init__.py +0 -0
  527. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/interfaces/client.py +0 -0
  528. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/interfaces/credentials.py +0 -0
  529. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/interfaces/notifications.py +0 -0
  530. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/jira.py +0 -0
  531. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/log.py +0 -0
  532. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/logerr.py +0 -0
  533. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/notify.py +0 -0
  534. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/notify_event.py +0 -0
  535. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/publish.py +0 -0
  536. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/sendfile.py +0 -0
  537. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/task.py +0 -0
  538. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/teams.py +0 -0
  539. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/events/webhook.py +0 -0
  540. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/events/manager.py +0 -0
  541. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/exceptions.py +0 -0
  542. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/executors/__init__.py +0 -0
  543. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/executors/base.py +0 -0
  544. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/executors/docker.py +0 -0
  545. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/executors/events.py +0 -0
  546. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/executors/exceptions.py +0 -0
  547. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/executors/k8s.py +0 -0
  548. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/executors/local.py +0 -0
  549. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/executors/models.py +0 -0
  550. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/executors/publish.py +0 -0
  551. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/executors/qworker.py +0 -0
  552. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/executors/registry.py +0 -0
  553. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/executors/resolver.py +0 -0
  554. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/extensions/__init__.py +0 -0
  555. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/extensions/abstract.py +0 -0
  556. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/extensions/component_docs.py +0 -0
  557. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/extensions/logging/__init__.py +0 -0
  558. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/factory/__init__.py +0 -0
  559. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/factory/agent.py +0 -0
  560. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/factory/composer.py +0 -0
  561. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/factory/parser.py +0 -0
  562. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/factory/validator.py +0 -0
  563. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/handlers/__init__.py +0 -0
  564. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/handlers/component.py +0 -0
  565. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/__init__.py +0 -0
  566. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/actions/__init__.py +0 -0
  567. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/actions/abstract.py +0 -0
  568. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/actions/dummy.py +0 -0
  569. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/actions/jira.py +0 -0
  570. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/actions/rest.py +0 -0
  571. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/actions/sampledata.py +0 -0
  572. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/actions/sensor.py +0 -0
  573. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/actions/task.py +0 -0
  574. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/actions/ticket.py +0 -0
  575. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/actions/zammad.py +0 -0
  576. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/actions/zoom_event.py +0 -0
  577. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/hook.py +0 -0
  578. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/models.py +0 -0
  579. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/service.py +0 -0
  580. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/step.py +0 -0
  581. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/__init__.py +0 -0
  582. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/base.py +0 -0
  583. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/brokers/__init__.py +0 -0
  584. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/brokers/base.py +0 -0
  585. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/brokers/mqtt.py +0 -0
  586. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/brokers/rabbitmq.py +0 -0
  587. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/brokers/redis.py +0 -0
  588. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/brokers/sqs.py +0 -0
  589. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/fs.py +0 -0
  590. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/http.py +0 -0
  591. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/imap.py +0 -0
  592. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/jira.py +0 -0
  593. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/mail.py +0 -0
  594. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/postgres.py +0 -0
  595. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/responses/__init__.py +0 -0
  596. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/responses/base.py +0 -0
  597. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/sharepoint.py +0 -0
  598. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/ssh.py +0 -0
  599. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/tagged.py +0 -0
  600. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/upload.py +0 -0
  601. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/watch.py +0 -0
  602. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/web.py +0 -0
  603. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/hooks/types/zoom.py +0 -0
  604. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/AzureClient.py +0 -0
  605. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/AzureGraph.py +0 -0
  606. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/Boto3Client.py +0 -0
  607. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/DropboxClient.py +0 -0
  608. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/ExcelHandler.py +0 -0
  609. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/FTPClient.py +0 -0
  610. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/GoogleCalendar.py +0 -0
  611. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/GoogleClient.py +0 -0
  612. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/GoogleDrive.py +0 -0
  613. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/GoogleGCS.py +0 -0
  614. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/GoogleGeocoding.py +0 -0
  615. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/GoogleLang.py +0 -0
  616. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/GooglePub.py +0 -0
  617. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/GoogleSheet.py +0 -0
  618. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/IMAPClient.py +0 -0
  619. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/LLMClient.py +0 -0
  620. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/O365Calendar.py +0 -0
  621. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/O365Client.py +0 -0
  622. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/OneDrive.py +0 -0
  623. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/Outlook.py +0 -0
  624. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/OverpassGeocoding.py +0 -0
  625. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/ParrotBot.py +0 -0
  626. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/ParrotTool.py +0 -0
  627. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/SOAPClient.py +0 -0
  628. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/SSHClient.py +0 -0
  629. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/Sharepoint.py +0 -0
  630. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/__init__.py +0 -0
  631. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/abstract.py +0 -0
  632. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/azure_component.py +0 -0
  633. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/azureauth.py +0 -0
  634. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/base_action.py +0 -0
  635. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/base_loop.py +0 -0
  636. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/cache.py +0 -0
  637. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/client.py +0 -0
  638. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/compress.py +0 -0
  639. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/copy_from_base.py +0 -0
  640. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/copy_to.py +0 -0
  641. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/copy_to_file_base.py +0 -0
  642. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/credentials.py +0 -0
  643. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/d2l.py +0 -0
  644. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/databases/__init__.py +0 -0
  645. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/databases/db.py +0 -0
  646. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/databases/documentdb.py +0 -0
  647. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/databases/rethink.py +0 -0
  648. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/dataframes/__init__.py +0 -0
  649. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/dataframes/abstract.py +0 -0
  650. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/dataframes/arrow.py +0 -0
  651. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/dataframes/pandas.py +0 -0
  652. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/dataframes/polars.py +0 -0
  653. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/db.py +0 -0
  654. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/db_client.py +0 -0
  655. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/download_from.py +0 -0
  656. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/env.py +0 -0
  657. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/file_base.py +0 -0
  658. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/flow.py +0 -0
  659. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/func.py +0 -0
  660. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/gamma.py +0 -0
  661. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/google_base.py +0 -0
  662. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/group.py +0 -0
  663. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/http.py +0 -0
  664. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/locale.py +0 -0
  665. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/log.py +0 -0
  666. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/mask.py +0 -0
  667. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/notification.py +0 -0
  668. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/parrot/__init__.py +0 -0
  669. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/parrot/agent.py +0 -0
  670. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/parrot/client.py +0 -0
  671. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/parrot/config.py +0 -0
  672. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/pipelines/__init__.py +0 -0
  673. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/pipelines/parrot.py +0 -0
  674. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/playwright.py +0 -0
  675. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/powerpoint.py +0 -0
  676. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/ppt.py +0 -0
  677. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/py.typed +0 -0
  678. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/qs.py +0 -0
  679. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/qs_base.py +0 -0
  680. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/result.py +0 -0
  681. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/routing.py +0 -0
  682. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/sassie.py +0 -0
  683. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/scoring/__init__.py +0 -0
  684. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/scoring/abstract.py +0 -0
  685. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/scoring/engine.py +0 -0
  686. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/scoring/extractors/__init__.py +0 -0
  687. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/scoring/extractors/count.py +0 -0
  688. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/scoring/extractors/gravity.py +0 -0
  689. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/scoring/extractors/nearest.py +0 -0
  690. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/scoring/models.py +0 -0
  691. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/scoring/service.py +0 -0
  692. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/scoring/spatial.py +0 -0
  693. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/search.py +0 -0
  694. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/selenium/__init__.py +0 -0
  695. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/selenium/options.py +0 -0
  696. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/selenium/service.py +0 -0
  697. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/selenium_service.py +0 -0
  698. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/skip_policy.py +0 -0
  699. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/smartsheet.py +0 -0
  700. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/stat.py +0 -0
  701. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/t_pandas.py +0 -0
  702. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/table_base.py +0 -0
  703. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/task.py +0 -0
  704. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/teams.py +0 -0
  705. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/template.py +0 -0
  706. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/tickets.py +0 -0
  707. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/upload_to.py +0 -0
  708. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/user.py +0 -0
  709. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/vectorstores/__init__.py +0 -0
  710. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/vectorstores/abstract.py +0 -0
  711. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/vectorstores/milvus.py +0 -0
  712. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/__init__.py +0 -0
  713. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/config.py +0 -0
  714. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/__init__.py +0 -0
  715. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/applicants.py +0 -0
  716. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/base.py +0 -0
  717. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/candidates.py +0 -0
  718. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/cost_centers.py +0 -0
  719. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/custom_punch_field_report.py +0 -0
  720. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/custom_punch_field_report_rest.py +0 -0
  721. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/custom_report.py +0 -0
  722. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/import_reported_time_blocks.py +0 -0
  723. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/import_time_clock_events.py +0 -0
  724. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/job_posting_sites.py +0 -0
  725. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/job_postings.py +0 -0
  726. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/job_requisitions.py +0 -0
  727. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/location_hierarchy_assignments.py +0 -0
  728. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/locations.py +0 -0
  729. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/organization_single.py +0 -0
  730. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/organizations.py +0 -0
  731. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/put_time_clock_events.py +0 -0
  732. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/recruiting_agency_users.py +0 -0
  733. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/references.py +0 -0
  734. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/time_block_report.py +0 -0
  735. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/time_blocks.py +0 -0
  736. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/time_off_balances.py +0 -0
  737. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/time_requests.py +0 -0
  738. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/handlers/workers.py +0 -0
  739. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/__init__.py +0 -0
  740. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/applicant.py +0 -0
  741. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/candidate.py +0 -0
  742. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/clock_event.py +0 -0
  743. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/cost_center.py +0 -0
  744. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/custom_punch_field_report.py +0 -0
  745. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/job_posting.py +0 -0
  746. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/job_posting_site.py +0 -0
  747. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/job_requisition.py +0 -0
  748. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/location.py +0 -0
  749. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/location_hierarchy_assignments.py +0 -0
  750. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/organizations.py +0 -0
  751. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/reference.py +0 -0
  752. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/time_block.py +0 -0
  753. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/time_off_balance.py +0 -0
  754. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/time_request.py +0 -0
  755. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/models/worker.py +0 -0
  756. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/__init__.py +0 -0
  757. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/applicant_parsers.py +0 -0
  758. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/candidate_parsers.py +0 -0
  759. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/cost_center_parsers.py +0 -0
  760. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/custom_punch_field_report_parsers.py +0 -0
  761. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/job_posting_parsers.py +0 -0
  762. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/job_posting_site_parsers.py +0 -0
  763. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/job_requisition_parsers.py +0 -0
  764. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/location_hierarchy_assignments_parsers.py +0 -0
  765. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/location_parsers.py +0 -0
  766. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/organization_parsers.py +0 -0
  767. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/reference_parsers.py +0 -0
  768. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/time_block_parsers.py +0 -0
  769. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/time_off_balance_parsers.py +0 -0
  770. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/time_request_parsers.py +0 -0
  771. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/parsers/worker_parsers.py +0 -0
  772. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/rest.py +0 -0
  773. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/service.py +0 -0
  774. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/utils/__init__.py +0 -0
  775. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/workday/utils/utils.py +0 -0
  776. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/zammad.py +0 -0
  777. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/interfaces/zoom.py +0 -0
  778. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/models.py +0 -0
  779. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/parsers/__init__.py +0 -0
  780. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/parsers/_yaml.pyx +0 -0
  781. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/parsers/argparser.py +0 -0
  782. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/parsers/base.pxd +0 -0
  783. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/parsers/base.pyx +0 -0
  784. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/parsers/json.pyx +0 -0
  785. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/parsers/maps.py +0 -0
  786. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/parsers/syntax/__init__.py +0 -0
  787. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/parsers/syntax/checker.py +0 -0
  788. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/parsers/syntax/detector.py +0 -0
  789. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/parsers/syntax/registry.py +0 -0
  790. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/parsers/syntax/report.py +0 -0
  791. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/parsers/syntax/schema.py +0 -0
  792. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/parsers/toml.pyx +0 -0
  793. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/plugins/__init__.py +0 -0
  794. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/plugins/components_/__init__.py +0 -0
  795. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/plugins/handler/__init__.py +0 -0
  796. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/plugins/importer.py +0 -0
  797. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/plugins/sources/__init__.py +0 -0
  798. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/runner.py +0 -0
  799. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/scheduler/__init__.py +0 -0
  800. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/scheduler/functions.py +0 -0
  801. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/scheduler/handlers/__init__.py +0 -0
  802. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/scheduler/handlers/manager.py +0 -0
  803. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/scheduler/handlers/models.py +0 -0
  804. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/scheduler/handlers/service.py +0 -0
  805. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/scheduler/notifications.py +0 -0
  806. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/scheduler/scheduler.py +0 -0
  807. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/__init__.py +0 -0
  808. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/bots/__init__.py +0 -0
  809. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/bots/telegram.py +0 -0
  810. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/files/__init__.py +0 -0
  811. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/files/manager.py +0 -0
  812. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/files/model.py +0 -0
  813. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/files/service.py +0 -0
  814. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/jira/__init__.py +0 -0
  815. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/jira/jira_actions.py +0 -0
  816. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/maintenance/README.md +0 -0
  817. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/maintenance/__init__.py +0 -0
  818. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/maintenance/changelog.py +0 -0
  819. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/maintenance/handlers.py +0 -0
  820. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/maintenance/health.py +0 -0
  821. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/maintenance/models.py +0 -0
  822. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/maintenance/service.py +0 -0
  823. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/maintenance/store.py +0 -0
  824. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/maintenance/templates.py +0 -0
  825. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/maintenance/windows.py +0 -0
  826. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/tasks/__init__.py +0 -0
  827. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/tasks/launcher.py +0 -0
  828. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/tasks/manager.py +0 -0
  829. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/tasks/service.py +0 -0
  830. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/tasks/task_manager.py +0 -0
  831. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/services/tasks/tasks.py +0 -0
  832. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/storages/__init__.py +0 -0
  833. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/storages/exceptions.py +0 -0
  834. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/storages/files/__init__.py +0 -0
  835. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/storages/files/abstract.py +0 -0
  836. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/storages/files/filesystem.py +0 -0
  837. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/storages/tasks/__init__.py +0 -0
  838. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/storages/tasks/abstract.py +0 -0
  839. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/storages/tasks/database.py +0 -0
  840. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/storages/tasks/filesystem.py +0 -0
  841. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/storages/tasks/github.py +0 -0
  842. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/storages/tasks/memory.py +0 -0
  843. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/storages/tasks/row.py +0 -0
  844. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/tasks/__init__.py +0 -0
  845. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/tasks/abstract.py +0 -0
  846. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/tasks/chain.py +0 -0
  847. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/tasks/chainer.py +0 -0
  848. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/tasks/command.py +0 -0
  849. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/tasks/exchange.py +0 -0
  850. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/tasks/pile.py +0 -0
  851. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/tasks/py.typed +0 -0
  852. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/tasks/task.py +0 -0
  853. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/tasks/workers.py +0 -0
  854. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/template/__init__.py +0 -0
  855. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/tests.py +0 -0
  856. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/types/__init__.py +0 -0
  857. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/types/typedefs.pyx +0 -0
  858. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/utils/__init__.py +0 -0
  859. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/utils/constants.py +0 -0
  860. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/utils/encoders.py +0 -0
  861. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/utils/executor.py +0 -0
  862. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/utils/functions.pyx +0 -0
  863. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/utils/json.pxi +0 -0
  864. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/utils/json.pyx +0 -0
  865. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/utils/mail.py +0 -0
  866. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/utils/msgraph_patch.py +0 -0
  867. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/utils/parseqs.pyx +0 -0
  868. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/utils/stats.py +0 -0
  869. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/utils/transformations.py +0 -0
  870. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/utils/uv.py +0 -0
  871. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask/utils/validators.py +0 -0
  872. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask.egg-info/dependency_links.txt +0 -0
  873. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask.egg-info/entry_points.txt +0 -0
  874. {flowtask-5.12.18 → flowtask-5.13.0}/flowtask.egg-info/top_level.txt +0 -0
  875. {flowtask-5.12.18 → flowtask-5.13.0}/setup.cfg +0 -0
  876. {flowtask-5.12.18 → flowtask-5.13.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flowtask
3
- Version: 5.12.18
3
+ Version: 5.13.0
4
4
  Summary: Framework for Task orchestration
5
5
  Author-email: Jesus Lara <jesuslarag@gmail.com>
6
6
  License: Apache-2.0
@@ -109,8 +109,9 @@ Requires-Dist: querysource>=3.17.0
109
109
  Requires-Dist: asyncdb[all]>=2.11.7
110
110
  Requires-Dist: navconfig[default,uvloop]>=1.7.13
111
111
  Requires-Dist: navigator-auth>=0.15.8
112
+ Requires-Dist: aiohttp>=3.14
112
113
  Requires-Dist: navigator-api[locale,uvloop]>=2.12.22
113
- Requires-Dist: ai-parrot[llms]>=0.17.4
114
+ Requires-Dist: ai-parrot[llms]>=1.0.5
114
115
  Requires-Dist: msal<2,>=1.30.0
115
116
  Requires-Dist: azure-core<2,>=1.38.0
116
117
  Requires-Dist: azure-identity<2,>=1.20.0
@@ -132,12 +133,12 @@ Requires-Dist: gitpython>=3.1.50; extra == "git"
132
133
  Provides-Extra: scoring
133
134
  Requires-Dist: h3>=4.0; extra == "scoring"
134
135
  Provides-Extra: ai
135
- Requires-Dist: ai-parrot[agents,graphindex,images,llms,retrieval]>=0.20.4; extra == "ai"
136
- Requires-Dist: ai-parrot-loaders[audio,document,ebook,ml,pdf,scraping,video,web,youtube]>=0.1.0; extra == "ai"
137
- Requires-Dist: ai-parrot-tools[analysis,arxiv,aws,codeinterpreter,db,docker,excel,finance,flowtask,git,google,jira,messaging,pdf,pulumi,sandbox,scraping,sitesearch,slack,weather,wikipedia]>=0.1.0; extra == "ai"
138
- Requires-Dist: ai-parrot-pipelines>=0.1.0; extra == "ai"
139
- Requires-Dist: ai-parrot-server[all]>=0.1.0; extra == "ai"
140
- Requires-Dist: ai-parrot-integrations[all]>=0.0.17; extra == "ai"
136
+ Requires-Dist: ai-parrot[agents,graphindex,images,llms,retrieval]>=1.0.5; extra == "ai"
137
+ Requires-Dist: ai-parrot-loaders[audio,document,ebook,ml,pdf,scraping,video,web,youtube]>=1.0.5; extra == "ai"
138
+ Requires-Dist: ai-parrot-tools[analysis,arxiv,aws,codeinterpreter,db,docker,excel,finance,flowtask,git,google,jira,messaging,pdf,pulumi,sandbox,scraping,sitesearch,slack,weather,wikipedia]>=1.0.5; extra == "ai"
139
+ Requires-Dist: ai-parrot-pipelines>=1.0.5; extra == "ai"
140
+ Requires-Dist: ai-parrot-server[all]>=1.0.5; extra == "ai"
141
+ Requires-Dist: ai-parrot-integrations[all]>=1.0.5; extra == "ai"
141
142
  Provides-Extra: dev
142
143
  Requires-Dist: pytest>=5.4.0; extra == "dev"
143
144
  Requires-Dist: coverage; extra == "dev"
@@ -10,7 +10,6 @@ from typing import Sequence, Union
10
10
  import pandas as pd
11
11
  from pandas.api.types import (
12
12
  is_datetime64_any_dtype,
13
- is_datetime64tz_dtype,
14
13
  is_integer_dtype,
15
14
  is_float_dtype,
16
15
  is_bool_dtype
@@ -461,7 +460,7 @@ class CopyToPg(CopyTo):
461
460
  utc=True # parse as UTC if a tz string is present
462
461
  )
463
462
  # After the coercion, act only on tz-aware columns
464
- if is_datetime64tz_dtype(self.data[col]):
463
+ if isinstance(self.data[col].dtype, pd.DatetimeTZDtype):
465
464
  # tz_localize(None) drops the tz info but keeps the *wall time*
466
465
  # e.g. 2025-03-20 19:11:09+00:00 → 2025-03-20 19:11:09
467
466
  self.data[col] = self.data[col].dt.tz_localize(None)
@@ -9987,7 +9987,7 @@ class MarketClustering(FlowComponent):
9987
9987
  partition = self._partition_mask(self._data)
9988
9988
  total = 0
9989
9989
  for _ in range(max(1, max_rounds)):
9990
- markets = self._data.loc[idx, self._cluster_id].to_numpy()
9990
+ markets = self._data.loc[idx, self._cluster_id].to_numpy(copy=True)
9991
9991
  # Full headcount (including sub-cluster rows) for capacity
9992
9992
  # checks — they count toward the market even though they
9993
9993
  # cannot be moved by this pass.
@@ -964,6 +964,8 @@ class OpenStreetMap(FlowComponent):
964
964
  clon = float(row[self.lon_column])
965
965
  except (TypeError, ValueError, KeyError):
966
966
  return idx, None
967
+ if pd.isna(clat) or pd.isna(clon):
968
+ return idx, None
967
969
  query = self._build_geocode_query(row, clat, clon)
968
970
  if query is None:
969
971
  return idx, None
@@ -564,7 +564,7 @@ class SchedulingVisits(FlowComponent):
564
564
  `_pack_visits()` relies on to pick the ISO-week vs. monthly window.
565
565
  """
566
566
  frequency = visit_frequency
567
- if cadence:
567
+ if isinstance(cadence, str) and cadence:
568
568
  parsed = self._parse_cadence(cadence)
569
569
  if parsed:
570
570
  frequency = parsed[1] # only the frequency label, not the rule
@@ -591,7 +591,7 @@ class SchedulingVisits(FlowComponent):
591
591
  # Uses _parse_cadence() which regexes the full leading integer —
592
592
  # the old ``int(cadence[0])`` parsed only the first character, so
593
593
  # ``"10xWeek"`` silently became 1 visit (defect 4 fix).
594
- if cadence:
594
+ if isinstance(cadence, str) and cadence:
595
595
  parsed = self._parse_cadence(cadence)
596
596
  if parsed:
597
597
  visit_rule, visit_frequency = parsed
@@ -22,6 +22,7 @@ For a quick test run, pass `args: {limit: 10}` in the task YAML to stop
22
22
  after the first 10 warehouses found (see search()) instead of crawling
23
23
  every state.
24
24
  """
25
+ import html as html_lib
25
26
  import json
26
27
  import re
27
28
  import time
@@ -46,6 +47,13 @@ US_STATE_ABBRS = [
46
47
 
47
48
  WAREHOUSE_LINK_RE = re.compile(r'href="(/w/-/[a-z0-9-]+/[a-z0-9-]+/(\d+))"')
48
49
 
50
+ #: The warehouse's marketing name (e.g. "Aurora Village Warehouse") - has no
51
+ #: relation to its mailing address city (store 106 is "Aurora Village" but
52
+ #: sits in Shoreline, WA) and isn't in the LocalBusiness JSON-LD block at all
53
+ #: (verified 2026-09-20 against costco.com/w/-/wa/shoreline/106) - it's only
54
+ #: in this plain <h1>, so it needs its own regex.
55
+ WAREHOUSE_NAME_RE = re.compile(r'<h1[^>]*>(.*?)</h1>', re.S)
56
+
49
57
  DAY_ORDER = [
50
58
  ("mon", "Monday"), ("tue", "Tuesday"), ("wed", "Wednesday"),
51
59
  ("thu", "Thursday"), ("fri", "Friday"), ("sat", "Saturday"),
@@ -71,6 +79,7 @@ class CostcoStrategy(RetailerStrategy):
71
79
  field_map = {
72
80
  "store_number": "store_number",
73
81
  "store_name": "store_name",
82
+ "warehouse_name": "warehouse_name",
74
83
  "street_address": "street_address",
75
84
  "city": "city",
76
85
  "state_code": "state_code",
@@ -127,9 +136,14 @@ class CostcoStrategy(RetailerStrategy):
127
136
  address = local_business.get("address") or {}
128
137
  geo = local_business.get("geo") or {}
129
138
  zipcode = (address.get("postalCode") or "").split("-")[0].strip() or None
139
+ name_match = WAREHOUSE_NAME_RE.search(html)
140
+ warehouse_name = html_lib.unescape(name_match.group(1)).strip() if name_match else None
130
141
  return {
131
142
  "store_number": number,
143
+ # Fallback only - the real name is warehouse_name below. Kept for
144
+ # pages where the <h1> match fails for some reason.
132
145
  "store_name": f"{address.get('addressLocality', '')} {address.get('addressRegion', '')}".strip() or None,
146
+ "warehouse_name": warehouse_name or None,
133
147
  "street_address": address.get("streetAddress"),
134
148
  "city": address.get("addressLocality"),
135
149
  "state_code": address.get("addressRegion"),
@@ -287,7 +287,7 @@ class TableSchema(QSSupport, FlowComponent):
287
287
  **arguments,
288
288
  )
289
289
  else:
290
- self.params = {"infer_datetime_format": True}
290
+ self.params = {}
291
291
  arguments = {**self.params}
292
292
  if hasattr(self, "pd_args") and isinstance(self.pd_args, dict):
293
293
  arguments = {**self.params, **self.pd_args}
@@ -556,7 +556,7 @@ class TransformRows(FlowComponent):
556
556
  if hasattr(elem, "clean_str"):
557
557
  df.is_copy = None
558
558
  u = df.select_dtypes(include=["object", "string"])
559
- u = u.applymap(lambda x: x.strip() if isinstance(x, str) else x)
559
+ u = u.map(lambda x: x.strip() if isinstance(x, str) else x)
560
560
  df[u.columns] = df[u.columns].fillna("")
561
561
  if hasattr(elem, "drop_empty"):
562
562
  # First filter out those rows which
@@ -425,7 +425,7 @@ def drop_timezone(
425
425
  column = field
426
426
 
427
427
  series = df[column]
428
- if pandas.api.types.is_datetime64tz_dtype(series):
428
+ if isinstance(series.dtype, pandas.DatetimeTZDtype):
429
429
  # This is a regular tz-aware pandas Series
430
430
  df[field] = series.dt.tz_localize(None)
431
431
  return df
@@ -1427,7 +1427,7 @@ def to_integer(df: pandas.DataFrame, field: str):
1427
1427
  df[field] = pandas.to_numeric(df[field], errors="coerce")
1428
1428
  # Replace non-finite values (NaN, inf, -inf) with pd.NA before converting to int64
1429
1429
  df[field] = df[field].where(np.isfinite(df[field]), pandas.NA)
1430
- df[field] = df[field].astype("Int64", copy=False)
1430
+ df[field] = df[field].astype("Int64")
1431
1431
  except TypeError as err:
1432
1432
  print(f"TO Integer {field}: Unable to safely cast non-equivalent float to int.")
1433
1433
  numeric_col = pandas.to_numeric(df[field], errors="coerce")
@@ -1458,7 +1458,7 @@ def to_float(
1458
1458
  :return: Modified pandas DataFrame with the values converted to floats.
1459
1459
  """
1460
1460
  try:
1461
- df[field] = pandas.to_numeric(df[field], errors="coerce").astype("float64", copy=False)
1461
+ df[field] = pandas.to_numeric(df[field], errors="coerce").astype("float64")
1462
1462
  except Exception as err:
1463
1463
  print(f"TO Float {field}: An error occurred during conversion.")
1464
1464
  print(err)
@@ -594,6 +594,9 @@ class Workday(FlowComponent):
594
594
  "cost_center_id_type", "organization_id_type", "worker_id_type",
595
595
  "exclude_all_attachments", "exclude_employees", "exclude_contingent_workers",
596
596
  "StepName", "TaskName", "debug", "step_name", "task_name",
597
+ # Injected by Task for every component (tasks/task.py);
598
+ # Workday RaaS rejects unknown query params.
599
+ "storage_name",
597
600
  }
598
601
  for attr_name in dir(self):
599
602
  if attr_name.startswith("_") or attr_name in excluded_attrs:
@@ -0,0 +1,449 @@
1
+ import asyncio
2
+ import warnings
3
+ from collections.abc import Callable
4
+ from typing import Any, Optional, Union
5
+ import numpy as np
6
+ import pandas as pd
7
+ from pandas import DataFrame
8
+ from ..exceptions import ComponentError, ConfigError, DataNotFound
9
+ from ..interfaces.flow import FlowComponent
10
+ from ..interfaces.t_pandas import tPandas
11
+
12
+ CHANGE_TYPES: tuple[str, ...] = ("new", "modified", "deleted", "unchanged")
13
+ METHODS: tuple[str, ...] = ("compare", "hash")
14
+ DTYPE_POLICIES: tuple[str, ...] = ("strict", "coerce")
15
+
16
+
17
+ def _is_null(value: Any) -> bool:
18
+ """Return True when a scalar cell is null (None, NaN, pd.NA, NaT)."""
19
+ return bool(pd.api.types.is_scalar(value) and pd.isna(value))
20
+
21
+
22
+ def _safe_equal(left: Any, right: Any) -> bool:
23
+ """Null-safe, exception-safe equality between two cells (plain equality, no nested diff)."""
24
+ left_null, right_null = _is_null(left), _is_null(right)
25
+ if left_null or right_null:
26
+ return left_null and right_null
27
+ try:
28
+ return bool(left == right)
29
+ except (ValueError, TypeError):
30
+ try:
31
+ return bool(np.array_equal(left, right))
32
+ except Exception: # pragma: no cover - defensive
33
+ return False
34
+
35
+
36
+ def _family(dtype: Any) -> str:
37
+ """Classify a dtype into a strict-compatibility family."""
38
+ if pd.api.types.is_bool_dtype(dtype):
39
+ return "bool"
40
+ if pd.api.types.is_integer_dtype(dtype):
41
+ return "int"
42
+ if pd.api.types.is_float_dtype(dtype):
43
+ return "float"
44
+ if pd.api.types.is_datetime64_any_dtype(dtype):
45
+ return "datetime"
46
+ if dtype == object or isinstance(dtype, pd.StringDtype):
47
+ return "text"
48
+ return str(dtype)
49
+
50
+
51
+ class tDiff(tPandas):
52
+ """
53
+ tDiff
54
+
55
+ Overview
56
+
57
+ The tDiff class detects changes between two DataFrames that share a primary key. Rows are
58
+ classified as new, modified, deleted or unchanged (label column ``_change``) so downstream
59
+ steps can filter on them. Invalid primary keys fail explicitly, comparisons are null-safe,
60
+ schema/dtype mismatches are reported (never silently fixed) and "no changes" is a valid
61
+ result (empty typed DataFrame) unless raise_on_empty is set. The first source in depends is
62
+ the current DataFrame (A), the second is the previous one (B).
63
+
64
+ :widths: auto
65
+
66
+ | depends | Yes | Exactly two sources: first is current (A), second is previous (B). |
67
+ | pk | Yes | Primary key column (str) or list of columns (composite key). |
68
+ | compare_columns | No | Columns whose change marks a row as modified (default: common columns minus pk and ignore). |
69
+ | ignore_columns | No | Columns that are never compared (e.g. updated_at, etl_ts). |
70
+ | include | No | Change types emitted: new, modified, deleted, unchanged (default: new, modified, deleted). |
71
+ | change_column | No | Name of the label column, defaults to _change. |
72
+ | changed_columns | No | true adds _changed_columns (list of columns) on modified rows; a string names that column. |
73
+ | method | No | compare (vectorized per column, default) or hash (per-row hash over compare_columns). |
74
+ | float_tolerance | No | Dict with rtol and atol used with numpy.isclose on float columns (not valid with method hash). |
75
+ | strip_strings | No | Strip strings before comparing (returned values are never altered), defaults to false. |
76
+ | case_sensitive | No | When false, strings are compared with casefold(), defaults to true. |
77
+ | dtype_policy | No | strict fails on incompatible dtypes; coerce casts B to the dtype of A (defaults to strict). |
78
+ | raise_on_empty | No | When true and the result is empty, raises DataNotFound, defaults to false. |
79
+
80
+ Return
81
+
82
+ A DataFrame with the columns of A (in A order) plus the label column. New, modified and unchanged
83
+ rows carry A values; deleted rows carry B values (A-only columns are null). A rows keep their order
84
+ and deleted rows follow in B order. Metrics: NEW_ROWS, MODIFIED_ROWS, DELETED_ROWS, UNCHANGED_ROWS
85
+ and SCHEMA_DRIFT; variables: {StepName}_NUMROWS, _NEW, _MODIFIED and _DELETED.
86
+
87
+ :consumes: dataframe
88
+ :produces: dataframe
89
+
90
+ Example:
91
+
92
+ ```yaml
93
+ tDiff:
94
+ depends:
95
+ - QueryToPandas_1
96
+ - QueryToPandas_2
97
+ pk: user_id
98
+ compare_columns:
99
+ - nombre
100
+ - email
101
+ include:
102
+ - new
103
+ - modified
104
+ - deleted
105
+ ```
106
+ """
107
+ _version = "1.0.0"
108
+
109
+ def __init__(
110
+ self,
111
+ loop: asyncio.AbstractEventLoop = None,
112
+ job: Callable = None,
113
+ stat: Callable = None,
114
+ **kwargs: Any,
115
+ ) -> None:
116
+ """Set defaults for every property before kwargs override them."""
117
+ self.pk: Union[str, list[str], None] = None
118
+ self.compare_columns: Optional[list[str]] = None
119
+ self.ignore_columns: list[str] = []
120
+ self.include: list[str] = ["new", "modified", "deleted"]
121
+ self.change_column: str = "_change"
122
+ self.changed_columns: Union[bool, str] = False
123
+ self.method: str = "compare"
124
+ self.float_tolerance: Optional[dict[str, float]] = None
125
+ self.strip_strings: bool = False
126
+ self.case_sensitive: bool = True
127
+ self.dtype_policy: str = "strict"
128
+ self.raise_on_empty: bool = False
129
+ self._pk: list[str] = []
130
+ self._schema_drift: dict[str, list[str]] = {
131
+ "only_in_current": [],
132
+ "only_in_previous": [],
133
+ }
134
+ super().__init__(loop=loop, job=job, stat=stat, **kwargs)
135
+
136
+ async def start(self, **kwargs: Any) -> bool:
137
+ """Resolve current (A) / previous (B) and validate config.
138
+
139
+ Raises:
140
+ ComponentError: missing/extra source.
141
+ ConfigError: invalid include/method/dtype_policy, missing pk, hash+tolerance.
142
+ """
143
+ depends = getattr(self, "depends", None)
144
+ if not depends or not isinstance(depends, (list, tuple)):
145
+ raise ComponentError("tDiff requires 'depends' with exactly 2 sources (current, previous)")
146
+ if len(depends) != 2:
147
+ missing = "previous" if len(depends) < 2 else "extra"
148
+ raise ComponentError(
149
+ f"tDiff requires exactly 2 sources in depends (current, previous); "
150
+ f"got {len(depends)} ({missing} source problem)"
151
+ )
152
+ sources = self.previous
153
+ if not self._multi or not isinstance(sources, list) or len(sources) != 2:
154
+ raise ComponentError(
155
+ f"tDiff could not resolve both sources {list(depends)!s}: the 'previous' source is missing"
156
+ )
157
+ frames = []
158
+ for label, name, source in zip(("current", "previous"), depends, sources):
159
+ df = source.output()
160
+ if not isinstance(df, DataFrame):
161
+ raise ComponentError(f"tDiff {label} source '{name}' did not produce a DataFrame")
162
+ frames.append(df)
163
+ self.df1, self.df2 = frames
164
+
165
+ # config values
166
+ if self.method not in METHODS:
167
+ raise ConfigError(f"tDiff: invalid method '{self.method}', valid values: {list(METHODS)}")
168
+ if self.dtype_policy not in DTYPE_POLICIES:
169
+ raise ConfigError(
170
+ f"tDiff: invalid dtype_policy '{self.dtype_policy}', valid values: {list(DTYPE_POLICIES)}"
171
+ )
172
+ if isinstance(self.include, str):
173
+ self.include = [self.include]
174
+ invalid = [x for x in self.include if x not in CHANGE_TYPES]
175
+ if invalid:
176
+ raise ConfigError(f"tDiff: invalid include value(s) {invalid}, valid values: {list(CHANGE_TYPES)}")
177
+ if self.method == "hash" and self.float_tolerance:
178
+ raise ConfigError("tDiff: method 'hash' is incompatible with float_tolerance")
179
+ if not self.pk:
180
+ raise ConfigError("tDiff: 'pk' is required (column name or list of columns)")
181
+ self._pk = [self.pk] if isinstance(self.pk, str) else list(self.pk)
182
+ if isinstance(self.compare_columns, str):
183
+ self.compare_columns = [self.compare_columns]
184
+ if isinstance(self.ignore_columns, str):
185
+ self.ignore_columns = [self.ignore_columns]
186
+ await FlowComponent.start(self, **kwargs)
187
+ return True
188
+
189
+ async def close(self) -> None:
190
+ """No resources to release."""
191
+
192
+ def _validate_pk(self, df: DataFrame, side: str) -> None:
193
+ """Raise ConfigError if a pk column is missing; ComponentError on null or duplicated keys."""
194
+ for col in self._pk:
195
+ if col not in df.columns:
196
+ raise ConfigError(f"tDiff: pk column '{col}' is missing in {side} DataFrame")
197
+ nulls = int(df[self._pk].isna().any(axis=1).sum())
198
+ if nulls:
199
+ raise ComponentError(f"tDiff: pk has nulls in {side} DataFrame ({nulls} rows)")
200
+ dup = df.duplicated(subset=self._pk, keep=False)
201
+ if dup.any():
202
+ keys = df.loc[dup, self._pk].drop_duplicates().head(5)
203
+ if len(self._pk) == 1:
204
+ examples = keys[self._pk[0]].tolist()
205
+ else:
206
+ examples = [tuple(row) for row in keys.itertuples(index=False, name=None)]
207
+ raise ComponentError(
208
+ f"tDiff: pk is duplicated in {side} DataFrame ({int(dup.sum())} rows), examples: {examples}"
209
+ )
210
+
211
+ def _resolve_compare_columns(self, a: DataFrame, b: DataFrame) -> list[str]:
212
+ """Return the compared columns and store SCHEMA_DRIFT in self._schema_drift."""
213
+ ignore = set(self.ignore_columns or [])
214
+ only_a = [c for c in a.columns if c not in b.columns]
215
+ only_b = [c for c in b.columns if c not in a.columns]
216
+ self._schema_drift = {"only_in_current": only_a, "only_in_previous": only_b}
217
+ if only_a or only_b:
218
+ self._logger.warning(
219
+ f"tDiff schema drift: only in current={only_a}, only in previous={only_b} (not compared)"
220
+ )
221
+ if self.compare_columns:
222
+ for col in self.compare_columns:
223
+ if col not in a.columns:
224
+ raise ConfigError(f"tDiff: compare column '{col}' is missing in current DataFrame")
225
+ if col not in b.columns:
226
+ raise ConfigError(f"tDiff: compare column '{col}' is missing in previous DataFrame")
227
+ return [c for c in self.compare_columns if c not in self._pk and c not in ignore]
228
+ return [c for c in a.columns if c in b.columns and c not in self._pk and c not in ignore]
229
+
230
+ def _align_dtypes(self, ca: DataFrame, cb: DataFrame) -> DataFrame:
231
+ """Return a copy of cb aligned to ca per dtype_policy."""
232
+ out = cb.copy()
233
+ for col in ca.columns:
234
+ da, db = ca[col].dtype, cb[col].dtype
235
+ fa, fb = _family(da), _family(db)
236
+ if fa == "datetime" and fb == "datetime":
237
+ tz_a, tz_b = getattr(da, "tz", None), getattr(db, "tz", None)
238
+ if (tz_a is None) != (tz_b is None):
239
+ raise ComponentError(f"tDiff: column '{col}' mixes tz-aware and naive datetimes ({da} vs {db})")
240
+ if str(tz_a) != str(tz_b):
241
+ raise ComponentError(f"tDiff: column '{col}' has different timezones ({da} vs {db})")
242
+ if fa != fb:
243
+ if self.dtype_policy == "strict":
244
+ raise ComponentError(f"tDiff: incompatible dtypes in column '{col}': {da} vs {db}")
245
+ if fa == "datetime" and fb in ("datetime", "text") and getattr(da, "tz", None) is not None:
246
+ raise ComponentError(f"tDiff: column '{col}' cannot be coerced to tz-aware {da}")
247
+ try:
248
+ out[col] = self._coerce(cb[col], da, fa)
249
+ except (ValueError, TypeError, OverflowError) as err:
250
+ raise ComponentError(f"tDiff: cannot coerce column '{col}' ({db} -> {da}): {err!s}") from err
251
+ elif da != db:
252
+ try:
253
+ out[col] = cb[col].astype(da)
254
+ except (ValueError, TypeError):
255
+ # compatible family but not representable (e.g. nulls into int64): keep as is
256
+ pass
257
+ return out
258
+
259
+ @staticmethod
260
+ def _coerce(series: pd.Series, dtype: Any, family: str) -> pd.Series:
261
+ """Cast a series to the dtype of A (raises ValueError/TypeError on failure)."""
262
+ if family in ("int", "float"):
263
+ return pd.to_numeric(series, errors="raise").astype(dtype)
264
+ if family == "datetime":
265
+ return pd.to_datetime(series, errors="raise").astype(dtype)
266
+ return series.astype(dtype)
267
+
268
+ def _normalize(self, df: DataFrame) -> DataFrame:
269
+ """Return a copy with strip/casefold applied to string-like columns."""
270
+ out = df.copy()
271
+ if not self.strip_strings and self.case_sensitive:
272
+ return out
273
+
274
+ def _fix(value: Any) -> Any:
275
+ if isinstance(value, str):
276
+ if self.strip_strings:
277
+ value = value.strip()
278
+ if not self.case_sensitive:
279
+ value = value.casefold()
280
+ return value
281
+
282
+ for col in out.columns:
283
+ if _family(out[col].dtype) == "text":
284
+ out[col] = out[col].astype(object).map(_fix)
285
+ return out
286
+
287
+ async def run(self) -> DataFrame:
288
+ """Run the diff; empty is a valid result unless raise_on_empty."""
289
+ try:
290
+ df = await self._run()
291
+ except (ComponentError, ConfigError, DataNotFound):
292
+ raise
293
+ except (ValueError, KeyError) as err:
294
+ raise ComponentError(f"tDiff Error: {err!s}") from err
295
+ if df.empty and self.raise_on_empty:
296
+ raise DataNotFound("tDiff: no changes found for the selected include types")
297
+ self._result = df
298
+ self.add_metric("NUM_ROWS", df.shape[0])
299
+ self.add_metric("NUM_COLUMNS", df.shape[1])
300
+ return self._result
301
+
302
+ async def _run(self) -> DataFrame:
303
+ """Classify rows into new/modified/deleted/unchanged and assemble the output."""
304
+ a, b = self.df1, self.df2
305
+ pk = self._pk
306
+ self._validate_pk(a, "current")
307
+ self._validate_pk(b, "previous")
308
+ cols = self._resolve_compare_columns(a, b)
309
+
310
+ # keys (pk dtypes must be compatible too)
311
+ b_pk = self._align_dtypes(a[pk], b[pk])
312
+ if len(pk) == 1:
313
+ a_keys = pd.Index(a[pk[0]])
314
+ b_keys = pd.Index(b_pk[pk[0]])
315
+ else:
316
+ a_keys = pd.MultiIndex.from_frame(a[pk])
317
+ b_keys = pd.MultiIndex.from_frame(b_pk)
318
+ new_mask = ~np.asarray(a_keys.isin(b_keys))
319
+ deleted_pos = np.flatnonzero(~np.asarray(b_keys.isin(a_keys)))
320
+ b_pos = np.asarray(b_keys.get_indexer(a_keys))
321
+ common_a = np.flatnonzero(b_pos >= 0)
322
+ common_b = b_pos[common_a]
323
+
324
+ # compared copies
325
+ ca = a[cols].iloc[common_a].reset_index(drop=True)
326
+ cb_raw = b[cols].iloc[common_b].reset_index(drop=True)
327
+ cb = self._align_dtypes(ca, cb_raw)
328
+ ca, cb = self._normalize(ca), self._normalize(cb)
329
+
330
+ eq: Optional[DataFrame] = None
331
+ if not cols or len(common_a) == 0:
332
+ modified = np.zeros(len(common_a), dtype=bool)
333
+ elif self.method == "hash":
334
+ modified = np.asarray(self._hash_modified(ca, cb), dtype=bool)
335
+ else:
336
+ eq = self._equal_matrix(ca, cb)
337
+ modified = ~eq.all(axis=1).to_numpy(dtype=bool)
338
+
339
+ labels = np.full(len(a), "new", dtype=object)
340
+ labels[common_a] = np.where(modified, "modified", "unchanged")
341
+
342
+ # changed columns (only for modified rows)
343
+ cc_name: Optional[str] = None
344
+ if self.changed_columns:
345
+ cc_name = self.changed_columns if isinstance(self.changed_columns, str) else "_changed_columns"
346
+ changed_lists: Optional[list[list[str]]] = None
347
+ if cc_name is not None:
348
+ changed_lists = [[] for _ in range(len(a))]
349
+ if modified.any():
350
+ if eq is None:
351
+ eq_mod = self._equal_matrix(
352
+ ca[modified].reset_index(drop=True), cb[modified].reset_index(drop=True)
353
+ )
354
+ else:
355
+ eq_mod = eq[modified]
356
+ flags = ~eq_mod.to_numpy(dtype=bool)
357
+ for pos, row in zip(common_a[modified], flags):
358
+ changed_lists[pos] = [c for c, diff in zip(cols, row) if diff]
359
+
360
+ # metrics (independent of include)
361
+ n_mod = int(modified.sum())
362
+ n_new = int(new_mask.sum())
363
+ n_del = int(len(deleted_pos))
364
+ n_unch = int(len(common_a) - n_mod)
365
+ self.add_metric("NEW_ROWS", n_new)
366
+ self.add_metric("MODIFIED_ROWS", n_mod)
367
+ self.add_metric("DELETED_ROWS", n_del)
368
+ self.add_metric("UNCHANGED_ROWS", n_unch)
369
+ self.add_metric("SCHEMA_DRIFT", self._schema_drift)
370
+
371
+ # assemble
372
+ keep = np.flatnonzero(np.isin(labels, [x for x in self.include if x != "deleted"]))
373
+ parts: list[DataFrame] = []
374
+ if len(keep):
375
+ part = a.iloc[keep].copy()
376
+ part[self.change_column] = labels[keep]
377
+ if cc_name is not None:
378
+ part[cc_name] = pd.Series([changed_lists[i] for i in keep], index=part.index, dtype=object)
379
+ parts.append(part)
380
+ if "deleted" in self.include and n_del:
381
+ dele = b.iloc[deleted_pos].reindex(columns=a.columns).copy()
382
+ dele[self.change_column] = "deleted"
383
+ if cc_name is not None:
384
+ dele[cc_name] = pd.Series([[] for _ in range(n_del)], index=dele.index, dtype=object)
385
+ parts.append(dele)
386
+ if not parts:
387
+ out = self._empty_output(a)
388
+ elif len(parts) == 1:
389
+ out = parts[0].reset_index(drop=True)
390
+ else:
391
+ with warnings.catch_warnings():
392
+ # A-only columns of deleted rows are all-NA: pandas upcasting is accepted (spec §8)
393
+ warnings.simplefilter("ignore", FutureWarning)
394
+ out = pd.concat(parts, ignore_index=True)
395
+ self._variables[f"{self.StepName}_NUMROWS"] = len(out)
396
+ self._variables[f"{self.StepName}_NEW"] = n_new
397
+ self._variables[f"{self.StepName}_MODIFIED"] = n_mod
398
+ self._variables[f"{self.StepName}_DELETED"] = n_del
399
+ return out
400
+
401
+ def _equal_matrix(self, ca: DataFrame, cb: DataFrame) -> DataFrame:
402
+ """Boolean frame, True where values are equal under spec §2 semantics."""
403
+ tol = self.float_tolerance or None
404
+ result: dict[str, np.ndarray] = {}
405
+ for col in ca.columns:
406
+ sa, sb = ca[col], cb[col]
407
+ nulls = sa.isna().to_numpy() & sb.isna().to_numpy()
408
+ if tol and pd.api.types.is_float_dtype(sa.dtype) and pd.api.types.is_float_dtype(sb.dtype):
409
+ va = sa.to_numpy(dtype=float, na_value=np.nan)
410
+ vb = sb.to_numpy(dtype=float, na_value=np.nan)
411
+ same = np.isclose(va, vb, rtol=tol.get("rtol", 1e-5), atol=tol.get("atol", 1e-8))
412
+ elif sa.dtype == object or sb.dtype == object:
413
+ try:
414
+ same = (sa == sb).to_numpy(dtype=bool, na_value=False)
415
+ except (ValueError, TypeError):
416
+ same = np.fromiter((_safe_equal(x, y) for x, y in zip(sa, sb)), dtype=bool, count=len(sa))
417
+ else:
418
+ same = (sa == sb).to_numpy(dtype=bool, na_value=False)
419
+ result[col] = same | nulls
420
+ return pd.DataFrame(result, index=ca.index, columns=list(ca.columns))
421
+
422
+ def _hash_modified(self, ca: DataFrame, cb: DataFrame) -> pd.Series:
423
+ """Per-row hash comparison; True where the row changed."""
424
+ try:
425
+ ha = pd.util.hash_pandas_object(ca, index=False)
426
+ hb = pd.util.hash_pandas_object(cb, index=False)
427
+ except TypeError as err:
428
+ bad = None
429
+ for col in ca.columns:
430
+ try:
431
+ pd.util.hash_pandas_object(ca[col], index=False)
432
+ pd.util.hash_pandas_object(cb[col], index=False)
433
+ except TypeError:
434
+ bad = col
435
+ break
436
+ where = f" in column '{bad}'" if bad else ""
437
+ raise ComponentError(
438
+ f"tDiff hash method cannot hash values{where}: {err!s}. Use method: compare for nested cells"
439
+ ) from err
440
+ return pd.Series(ha.to_numpy() != hb.to_numpy(), index=ca.index)
441
+
442
+ def _empty_output(self, a: DataFrame) -> DataFrame:
443
+ """Zero-row frame with A's columns/dtypes plus the label (and changed-columns) column."""
444
+ out = a.iloc[0:0].copy()
445
+ out[self.change_column] = pd.Series([], dtype=object)
446
+ if self.changed_columns:
447
+ name = self.changed_columns if isinstance(self.changed_columns, str) else "_changed_columns"
448
+ out[name] = pd.Series([], dtype=object)
449
+ return out.reset_index(drop=True)
@@ -24,6 +24,7 @@ class tJoin(FlowComponent):
24
24
  | type | No | "left" | The type of join to perform. Supported values are "left", "right", "inner", |
25
25
  | | | | "outer", and "anti-join". When "anti-join" is used, it returns the difference |
26
26
  | | | | of B - A, i.e., all rows present in df1 but not in df2. |
27
+ | | | | For change detection (new/modified/deleted rows) use tDiff instead. |
27
28
  | depends | Yes | A list of dependencies defining the sources for the join. |
28
29
  | operator | No | The logical operator to use for join conditions, defaults to "and". |
29
30
  | fk | No | The foreign key or list of keys to use for joining DataFrames. |