flowtask 5.13.0__tar.gz → 5.13.1__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 (879) hide show
  1. {flowtask-5.13.0 → flowtask-5.13.1}/PKG-INFO +1 -1
  2. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/__main__.py +8 -1
  3. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/MarketClustering.py +123 -14
  4. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ParrotAgent.py +4 -1
  5. flowtask-5.13.1/flowtask/interfaces/GoogleReverseGeocoding.py +171 -0
  6. flowtask-5.13.1/flowtask/interfaces/NominatimGeocoding.py +149 -0
  7. flowtask-5.13.1/flowtask/interfaces/ReverseGeocoding.py +255 -0
  8. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/parrot/config.py +176 -6
  9. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/version.py +1 -1
  10. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask.egg-info/PKG-INFO +1 -1
  11. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask.egg-info/SOURCES.txt +3 -0
  12. {flowtask-5.13.0 → flowtask-5.13.1}/CONTRIBUTING.md +0 -0
  13. {flowtask-5.13.0 → flowtask-5.13.1}/INSTALL +0 -0
  14. {flowtask-5.13.0 → flowtask-5.13.1}/LICENSE +0 -0
  15. {flowtask-5.13.0 → flowtask-5.13.1}/MANIFEST.in +0 -0
  16. {flowtask-5.13.0 → flowtask-5.13.1}/README.md +0 -0
  17. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/__init__.py +0 -0
  18. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/bots/__init__.py +0 -0
  19. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/bots/check.py +0 -0
  20. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/bots/codebot.py +0 -0
  21. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ASPX.py +0 -0
  22. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ATT.py +0 -0
  23. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/AddDataset.py +0 -0
  24. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Amazon.py +0 -0
  25. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/AutoTask.py +0 -0
  26. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Azure.py +0 -0
  27. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/AzureUsers.py +0 -0
  28. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/BaseAction.py +0 -0
  29. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/BaseLoop.py +0 -0
  30. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/BestBuy.py +0 -0
  31. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CSVToGCS.py +0 -0
  32. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CallAnalysis.py +0 -0
  33. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CallSummary.py +0 -0
  34. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CensusData.py +0 -0
  35. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CensusVariables.py +0 -0
  36. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CompanyScraper/__init__.py +0 -0
  37. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CompanyScraper/parsers/__init__.py +0 -0
  38. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CompanyScraper/parsers/base.py +0 -0
  39. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CompanyScraper/parsers/explorium.py +0 -0
  40. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CompanyScraper/parsers/leadiq.py +0 -0
  41. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CompanyScraper/parsers/rocket.py +0 -0
  42. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CompanyScraper/parsers/siccode.py +0 -0
  43. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CompanyScraper/parsers/visualvisitor.py +0 -0
  44. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CompanyScraper/parsers/zoominfo.py +0 -0
  45. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CompanyScraper/scrapper.py +0 -0
  46. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CopyFromBase.py +0 -0
  47. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CopyFromS3.py +0 -0
  48. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CopyFromSharepoint.py +0 -0
  49. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CopyTo.py +0 -0
  50. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CopyToBigQuery.py +0 -0
  51. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CopyToFileBase.py +0 -0
  52. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CopyToMongoDB.py +0 -0
  53. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CopyToPg.py +0 -0
  54. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CopyToRethink.py +0 -0
  55. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CopyToS3.py +0 -0
  56. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CopyToSharepoint.py +0 -0
  57. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Costco.py +0 -0
  58. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CreateGCSBucket.py +0 -0
  59. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CreateReport/CreateReport.py +0 -0
  60. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CreateReport/__init__.py +0 -0
  61. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CreateReport/charts/__init__.py +0 -0
  62. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CreateReport/charts/bar.py +0 -0
  63. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CreateReport/charts/base.py +0 -0
  64. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CreateReport/charts/pie.py +0 -0
  65. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CreateReport/utils.py +0 -0
  66. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/CustomerSatisfaction.py +0 -0
  67. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DataInput.py +0 -0
  68. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DateList.py +0 -0
  69. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DbClient.py +0 -0
  70. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DialPad.py +0 -0
  71. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DispatchMe.py +0 -0
  72. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DocumentDBQuery.py +0 -0
  73. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DownloadFrom.py +0 -0
  74. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DownloadFromD2L.py +0 -0
  75. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DownloadFromFTP.py +0 -0
  76. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DownloadFromGamma.py +0 -0
  77. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DownloadFromGoogleDrive.py +0 -0
  78. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DownloadFromIMAP.py +0 -0
  79. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DownloadFromS3.py +0 -0
  80. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DownloadFromSFTP.py +0 -0
  81. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DownloadFromSharepoint.py +0 -0
  82. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DownloadFromSmartSheet.py +0 -0
  83. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DownloadFromSmartsheet.py +0 -0
  84. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DownloadS3File.py +0 -0
  85. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Dummy.py +0 -0
  86. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/DuplicatePhoto.py +0 -0
  87. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/EmployeeEvaluation.py +0 -0
  88. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ExecuteSQL.py +0 -0
  89. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ExtractHTML.py +0 -0
  90. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ExtractTranscript.py +0 -0
  91. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/FileBase.py +0 -0
  92. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/FileCopy.py +0 -0
  93. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/FileDelete.py +0 -0
  94. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/FileExists.py +0 -0
  95. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/FileIteratorDelete.py +0 -0
  96. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/FileList.py +0 -0
  97. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/FileOpen.py +0 -0
  98. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/FileRead.py +0 -0
  99. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/FileRename.py +0 -0
  100. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/FilterIf.py +0 -0
  101. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/FilterRows/FilterRows.py +0 -0
  102. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/FilterRows/__init__.py +0 -0
  103. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/FilterRows/functions.py +0 -0
  104. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/GCSToBigQuery.py +0 -0
  105. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/GenData.py +0 -0
  106. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/GoogleA4.py +0 -0
  107. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/GoogleGeoCoding.py +0 -0
  108. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/GooglePlaces.py +0 -0
  109. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/GoogleSearch.py +0 -0
  110. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/HTTPClient.py +0 -0
  111. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ICIMS.py +0 -0
  112. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/IF.py +0 -0
  113. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/IcimsFolderCopy.py +0 -0
  114. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ImageFeatures/__init__.py +0 -0
  115. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ImageFeatures/process.py +0 -0
  116. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/IteratorBase.py +0 -0
  117. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/LeadIQ.py +0 -0
  118. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Loop.py +0 -0
  119. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Lowes.py +0 -0
  120. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/MS365Usage.py +0 -0
  121. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/MSTeamsMessages.py +0 -0
  122. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/MarkdownMaker.py +0 -0
  123. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/MergeFileList.py +0 -0
  124. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/MergeFiles.py +0 -0
  125. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/MilvusOutput.py +0 -0
  126. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NearByStores.py +0 -0
  127. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/__init__.py +0 -0
  128. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/models/__init__.py +0 -0
  129. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/models/abstract.py +0 -0
  130. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/models/account.py +0 -0
  131. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/models/client.py +0 -0
  132. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/models/district.py +0 -0
  133. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/models/events.py +0 -0
  134. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/models/forms.py +0 -0
  135. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/models/market.py +0 -0
  136. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/models/organization.py +0 -0
  137. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/models/photos.py +0 -0
  138. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/models/project.py +0 -0
  139. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/models/region.py +0 -0
  140. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/models/store.py +0 -0
  141. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/models/user.py +0 -0
  142. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinja/router.py +0 -0
  143. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NetworkNinjaClaims.py +0 -0
  144. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NextStopAgent.py +0 -0
  145. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/NextTask.py +0 -0
  146. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Odoo.py +0 -0
  147. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/OdooInjector.py +0 -0
  148. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/OpenFromXML.py +0 -0
  149. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/OpenStreetMap.py +0 -0
  150. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/OpenWeather.py +0 -0
  151. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/OpenWithBase.py +0 -0
  152. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/OpenWithPandas.py +0 -0
  153. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/PDFGenerator.py +0 -0
  154. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/PGPDecrypt.py +0 -0
  155. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/PandasIterator.py +0 -0
  156. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/PandasToFile.py +0 -0
  157. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/PandasToPowerPoint.py +0 -0
  158. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Paradox.py +0 -0
  159. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ParamIterator.py +0 -0
  160. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ParrotKnowledgeBuilder/__init__.py +0 -0
  161. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ParrotKnowledgeBuilder/loader.py +0 -0
  162. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ParrotKnowledgeBuilder/payload.py +0 -0
  163. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ParrotLoader/__init__.py +0 -0
  164. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ParrotLoader/loader.py +0 -0
  165. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ParseHTML.py +0 -0
  166. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/PgVectorOutput.py +0 -0
  167. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/PlacerStores.py +0 -0
  168. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/PlanogramCompliance.py +0 -0
  169. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/PodcastMaker.py +0 -0
  170. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Pokemon.py +0 -0
  171. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/PositiveBot.py +0 -0
  172. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/PowerPointSlide.py +0 -0
  173. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/PrintMessage.py +0 -0
  174. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductCompetitors/__init__.py +0 -0
  175. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductCompetitors/parsers/__init__.py +0 -0
  176. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductCompetitors/parsers/base.py +0 -0
  177. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductCompetitors/parsers/bestbuy.py +0 -0
  178. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductCompetitors/parsers/lowes.py +0 -0
  179. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductCompetitors/scrapper.py +0 -0
  180. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductCompliant.py +0 -0
  181. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductInfo/__init__.py +0 -0
  182. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductInfo/parsers/__init__.py +0 -0
  183. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductInfo/parsers/base.py +0 -0
  184. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductInfo/parsers/brother.py +0 -0
  185. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductInfo/parsers/canon.py +0 -0
  186. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductInfo/parsers/epson.py +0 -0
  187. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductInfo/parsers/hp.py +0 -0
  188. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductInfo/parsers/samsung.py +0 -0
  189. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductInfo/scraper.py +0 -0
  190. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductPricing.py +0 -0
  191. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ProductReportBot.py +0 -0
  192. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/QS.py +0 -0
  193. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/QSBase.py +0 -0
  194. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/QueryIterator.py +0 -0
  195. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/QueryToInsert.py +0 -0
  196. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/QueryToPandas.py +0 -0
  197. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/RESTClient.py +0 -0
  198. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/RethinkDBQuery.py +0 -0
  199. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Rsync.py +0 -0
  200. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/RunSSH.py +0 -0
  201. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/RunShell.py +0 -0
  202. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SAPExtraction.py +0 -0
  203. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SMSAnalysis.py +0 -0
  204. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SMSSummary.py +0 -0
  205. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SalesForce.py +0 -0
  206. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Sassie.py +0 -0
  207. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SaveImageBank/__init__.py +0 -0
  208. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SchedulingVisits.py +0 -0
  209. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ScrapPage.py +0 -0
  210. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ScrapSearch.py +0 -0
  211. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ScrapTool.py +0 -0
  212. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SearchQuery.py +0 -0
  213. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SendEmail.py +0 -0
  214. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SendNotify/__init__.py +0 -0
  215. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SendNotify/component.py +0 -0
  216. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SendNotify/models/__init__.py +0 -0
  217. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SendNotify/models/abstract.py +0 -0
  218. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SendNotify/models/zoom.py +0 -0
  219. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SentimentAnalysis.py +0 -0
  220. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ServiceScraperStores/__init__.py +0 -0
  221. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ServiceScraperStores/retailers/__init__.py +0 -0
  222. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ServiceScraperStores/retailers/base.py +0 -0
  223. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ServiceScraperStores/retailers/costco.py +0 -0
  224. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ServiceScraperStores/retailers/tractor_supply.py +0 -0
  225. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ServiceScraperStores/retailers/verizon.py +0 -0
  226. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ServiceScraperStores/scraper.py +0 -0
  227. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ServiceScrapper/__init__.py +0 -0
  228. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ServiceScrapper/parsers/__init__.py +0 -0
  229. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ServiceScrapper/parsers/base.py +0 -0
  230. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ServiceScrapper/parsers/costco.py +0 -0
  231. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ServiceScrapper/scrapper.py +0 -0
  232. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SetVariables.py +0 -0
  233. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SplitPDF.py +0 -0
  234. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Staples.py +0 -0
  235. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SubTask.py +0 -0
  236. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SuiteCRM.py +0 -0
  237. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SweetSpotScore/__init__.py +0 -0
  238. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SweetSpotScore/component.py +0 -0
  239. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/SweetSpotScore/layers.py +0 -0
  240. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Switch.py +0 -0
  241. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/TableBase.py +0 -0
  242. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/TableDelete.py +0 -0
  243. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/TableInput.py +0 -0
  244. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/TableOutput/TableOutput.py +0 -0
  245. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/TableOutput/__init__.py +0 -0
  246. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/TableSchema.py +0 -0
  247. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Target.py +0 -0
  248. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ThumbnailGenerator.py +0 -0
  249. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ToPandas.py +0 -0
  250. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/TransformRows/TransformRows.py +0 -0
  251. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/TransformRows/__init__.py +0 -0
  252. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/TransformRows/functions.py +0 -0
  253. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/TransposeRows.py +0 -0
  254. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/UPCDatabase.py +0 -0
  255. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/UnGzip.py +0 -0
  256. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Uncompress.py +0 -0
  257. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/UniqueRows.py +0 -0
  258. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Unzip.py +0 -0
  259. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/UpdateOperationalVars.py +0 -0
  260. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/UploadTo.py +0 -0
  261. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/UploadToS3.py +0 -0
  262. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/UploadToSFTP.py +0 -0
  263. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/UploadToSharepoint.py +0 -0
  264. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/UserFunc.py +0 -0
  265. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/VideoUnderstanding.py +0 -0
  266. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/VivaTracker.py +0 -0
  267. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/WSDLClient.py +0 -0
  268. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Wait.py +0 -0
  269. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Walmart.py +0 -0
  270. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/__init__.py +0 -0
  271. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/__init__.py +0 -0
  272. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/applicant.py +0 -0
  273. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/candidate.py +0 -0
  274. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/cost_center.py +0 -0
  275. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/custom_punch_field_report.py +0 -0
  276. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/job_posting.py +0 -0
  277. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/job_posting_site.py +0 -0
  278. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/job_requisition.py +0 -0
  279. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/location.py +0 -0
  280. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/location_hierarchy_assignments.py +0 -0
  281. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/organizations.py +0 -0
  282. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/reference.py +0 -0
  283. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/time_block.py +0 -0
  284. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/time_off_balance.py +0 -0
  285. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/time_request.py +0 -0
  286. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/models/worker.py +0 -0
  287. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/__init__.py +0 -0
  288. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/applicant_parsers.py +0 -0
  289. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/candidate_parsers.py +0 -0
  290. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/cost_center_parsers.py +0 -0
  291. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/custom_punch_field_report_parsers.py +0 -0
  292. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/job_posting_parsers.py +0 -0
  293. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/job_posting_site_parsers.py +0 -0
  294. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/job_requisition_parsers.py +0 -0
  295. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/location_hierarchy_assignments_parsers.py +0 -0
  296. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/location_parsers.py +0 -0
  297. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/organization_parsers.py +0 -0
  298. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/reference_parsers.py +0 -0
  299. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/time_block_parsers.py +0 -0
  300. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/time_off_balance_parsers.py +0 -0
  301. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/time_request_parsers.py +0 -0
  302. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/parsers/worker_parsers.py +0 -0
  303. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/__init__.py +0 -0
  304. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/applicants.py +0 -0
  305. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/base.py +0 -0
  306. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/candidates.py +0 -0
  307. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/cost_centers.py +0 -0
  308. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/custom_punch_field_report.py +0 -0
  309. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/custom_punch_field_report_rest.py +0 -0
  310. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/custom_report.py +0 -0
  311. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/job_posting_sites.py +0 -0
  312. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/job_postings.py +0 -0
  313. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/job_requisitions.py +0 -0
  314. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/location_hierarchy_assignments.py +0 -0
  315. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/locations.py +0 -0
  316. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/organization_single.py +0 -0
  317. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/organizations.py +0 -0
  318. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/recruiting_agency_users.py +0 -0
  319. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/references.py +0 -0
  320. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/time_block_report.py +0 -0
  321. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/time_blocks.py +0 -0
  322. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/time_off_balances.py +0 -0
  323. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/time_requests.py +0 -0
  324. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/types/workers.py +0 -0
  325. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/utils/__init__.py +0 -0
  326. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/utils/utils.py +0 -0
  327. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workday/workday.py +0 -0
  328. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/WorkdayReport.py +0 -0
  329. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Workplace.py +0 -0
  330. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/XMLToPandas.py +0 -0
  331. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Zammad/__init__.py +0 -0
  332. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Zammad/models.py +0 -0
  333. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/Zoom.py +0 -0
  334. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ZoomInfoScraper.py +0 -0
  335. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/ZoomUs.py +0 -0
  336. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/__init__.py +0 -0
  337. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/_census/__init__.py +0 -0
  338. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/_census/cache.py +0 -0
  339. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/_census/fetch.py +0 -0
  340. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/_census/resolver.py +0 -0
  341. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/_census/transform.py +0 -0
  342. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/abstract.py +0 -0
  343. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/flow.py +0 -0
  344. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/gendata/__init__.py +0 -0
  345. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/gendata/date_sequence.py +0 -0
  346. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/gendata/static_list.py +0 -0
  347. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/google.py +0 -0
  348. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/group.py +0 -0
  349. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/pandas_io.py +0 -0
  350. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/py.typed +0 -0
  351. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/reviewscrap.py +0 -0
  352. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tAddTotalRow.py +0 -0
  353. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tAutoincrement.py +0 -0
  354. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tConcat.py +0 -0
  355. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tConditionalMultiply.py +0 -0
  356. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tCrosstab.py +0 -0
  357. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tDictKey.py +0 -0
  358. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tDiff.py +0 -0
  359. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tExplode.py +0 -0
  360. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tFilter.py +0 -0
  361. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tFilterCommonValues.py +0 -0
  362. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tFlatten.py +0 -0
  363. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tFrequencyWeights.py +0 -0
  364. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tGroup.py +0 -0
  365. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tJoin.py +0 -0
  366. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tMap/__init__.py +0 -0
  367. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tMap/functions.py +0 -0
  368. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tMap/tMap.py +0 -0
  369. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tMelt.py +0 -0
  370. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tMerge.py +0 -0
  371. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tOrder.py +0 -0
  372. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tPandas.py +0 -0
  373. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tPivot.py +0 -0
  374. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tPluckCols.py +0 -0
  375. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/tUnnest.py +0 -0
  376. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/components/user.py +0 -0
  377. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/conf.py +0 -0
  378. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/__init__.py +0 -0
  379. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/categories.json +0 -0
  380. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/cli.py +0 -0
  381. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/ASPX.doc.json +0 -0
  382. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/AddDataset.doc.json +0 -0
  383. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/AutoTask.doc.json +0 -0
  384. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/AzureUsers.doc.json +0 -0
  385. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/CallAnalysis.doc.json +0 -0
  386. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/CallSummary.doc.json +0 -0
  387. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/CompanyScraper.doc.json +0 -0
  388. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/CopyFromS3.doc.json +0 -0
  389. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/CopyFromSharepoint.doc.json +0 -0
  390. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/CopyToBigQuery.doc.json +0 -0
  391. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/CopyToMongoDB.doc.json +0 -0
  392. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/CopyToPg.doc.json +0 -0
  393. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/CopyToRethink.doc.json +0 -0
  394. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/CopyToS3.doc.json +0 -0
  395. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/CopyToSharepoint.doc.json +0 -0
  396. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/CreateReport.doc.json +0 -0
  397. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/CustomerSatisfaction.doc.json +0 -0
  398. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/DataInput.doc.json +0 -0
  399. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/DateList.doc.json +0 -0
  400. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/DialPad.doc.json +0 -0
  401. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/DownloadFromD2L.doc.json +0 -0
  402. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/DownloadFromFTP.doc.json +0 -0
  403. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/DownloadFromIMAP.doc.json +0 -0
  404. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/DownloadFromS3.doc.json +0 -0
  405. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/DownloadFromSFTP.doc.json +0 -0
  406. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/DownloadFromSharepoint.doc.json +0 -0
  407. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/DownloadFromSmartSheet.doc.json +0 -0
  408. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/DownloadFromSmartsheet.doc.json +0 -0
  409. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/EmployeeEvaluation.doc.json +0 -0
  410. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/ExecuteSQL.doc.json +0 -0
  411. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/ExtractTranscript.doc.json +0 -0
  412. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/FileCopy.doc.json +0 -0
  413. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/FileDelete.doc.json +0 -0
  414. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/FileExists.doc.json +0 -0
  415. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/FileIteratorDelete.doc.json +0 -0
  416. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/FileList.doc.json +0 -0
  417. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/FileOpen.doc.json +0 -0
  418. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/FileRead.doc.json +0 -0
  419. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/FileRename.doc.json +0 -0
  420. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/FilterIf.doc.json +0 -0
  421. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/FilterRows.doc.json +0 -0
  422. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/GoogleA4.doc.json +0 -0
  423. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/GoogleGeoCoding.doc.json +0 -0
  424. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/GoogleSearch.doc.json +0 -0
  425. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/HTTPClient.doc.json +0 -0
  426. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/ICIMS.doc.json +0 -0
  427. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/IteratorBase.doc.json +0 -0
  428. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/LeadIQ.doc.json +0 -0
  429. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/MS365Usage.doc.json +0 -0
  430. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/MSTeamsMessages.doc.json +0 -0
  431. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/MergeFileList.doc.json +0 -0
  432. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/MergeFiles.doc.json +0 -0
  433. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/NetworkNinjaClaims.doc.json +0 -0
  434. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/NextTask.doc.json +0 -0
  435. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/Odoo.doc.json +0 -0
  436. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/OdooInjector.doc.json +0 -0
  437. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/OpenFromXML.doc.json +0 -0
  438. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/OpenWithBase.doc.json +0 -0
  439. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/OpenWithPandas.doc.json +0 -0
  440. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/PGPDecrypt.doc.json +0 -0
  441. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/PandasIterator.doc.json +0 -0
  442. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/PandasToFile.doc.json +0 -0
  443. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/Paradox.doc.json +0 -0
  444. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/ParamIterator.doc.json +0 -0
  445. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/ParrotAgent.doc.json +0 -0
  446. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/PlacerStores.doc.json +0 -0
  447. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/Pokemon.doc.json +0 -0
  448. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/PositiveBot.doc.json +0 -0
  449. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/PowerPointSlide.doc.json +0 -0
  450. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/PrintMessage.doc.json +0 -0
  451. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/ProductCompliant.doc.json +0 -0
  452. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/ProductPricing.doc.json +0 -0
  453. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/ProductReportBot.doc.json +0 -0
  454. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/QS.doc.json +0 -0
  455. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/QueryIterator.doc.json +0 -0
  456. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/QueryToInsert.doc.json +0 -0
  457. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/QueryToPandas.doc.json +0 -0
  458. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/RESTClient.doc.json +0 -0
  459. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/RunShell.doc.json +0 -0
  460. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/SAPExtraction.doc.json +0 -0
  461. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/Sassie.doc.json +0 -0
  462. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/ScrapTool.doc.json +0 -0
  463. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/SearchQuery.doc.json +0 -0
  464. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/SendNotify.doc.json +0 -0
  465. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/SentimentAnalysis.doc.json +0 -0
  466. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/ServiceScraperStores.doc.json +0 -0
  467. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/ServiceScrapper.doc.json +0 -0
  468. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/SetVariables.doc.json +0 -0
  469. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/SplitPDF.doc.json +0 -0
  470. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/SubTask.doc.json +0 -0
  471. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/SuiteCRM.doc.json +0 -0
  472. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/TableDelete.doc.json +0 -0
  473. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/TableInput.doc.json +0 -0
  474. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/TableOutput.doc.json +0 -0
  475. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/TableSchema.doc.json +0 -0
  476. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/ThumbnailGenerator.doc.json +0 -0
  477. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/TransformRows.doc.json +0 -0
  478. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/TransposeRows.doc.json +0 -0
  479. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/UnGzip.doc.json +0 -0
  480. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/Uncompress.doc.json +0 -0
  481. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/UniqueRows.doc.json +0 -0
  482. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/Unzip.doc.json +0 -0
  483. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/UploadToS3.doc.json +0 -0
  484. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/UploadToSFTP.doc.json +0 -0
  485. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/UploadToSharepoint.doc.json +0 -0
  486. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/UserFunc.doc.json +0 -0
  487. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/Zoom.doc.json +0 -0
  488. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/ZoomInfoScraper.doc.json +0 -0
  489. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tAutoincrement.doc.json +0 -0
  490. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tConcat.doc.json +0 -0
  491. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tConditionalMultiply.doc.json +0 -0
  492. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tCrosstab.doc.json +0 -0
  493. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tDictKey.doc.json +0 -0
  494. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tDiff.doc.json +0 -0
  495. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tExplode.doc.json +0 -0
  496. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tFilter.doc.json +0 -0
  497. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tFilterCommonValues.doc.json +0 -0
  498. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tFlatten.doc.json +0 -0
  499. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tFrequencyWeights.doc.json +0 -0
  500. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tGroup.doc.json +0 -0
  501. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tJoin.doc.json +0 -0
  502. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tMap.doc.json +0 -0
  503. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tMelt.doc.json +0 -0
  504. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tOrder.doc.json +0 -0
  505. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tPivot.doc.json +0 -0
  506. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tPluckCols.doc.json +0 -0
  507. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/components/tUnnest.doc.json +0 -0
  508. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generated/index.json +0 -0
  509. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/generator.py +0 -0
  510. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/models.py +0 -0
  511. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/parser.py +0 -0
  512. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/schema.py +0 -0
  513. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/documentation/toolkit.py +0 -0
  514. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/download.py +0 -0
  515. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/__init__.py +0 -0
  516. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/__init__.py +0 -0
  517. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/abstract.py +0 -0
  518. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/alerts/__init__.py +0 -0
  519. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/alerts/colfunctions.py +0 -0
  520. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/alerts/functions.py +0 -0
  521. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/dummy.py +0 -0
  522. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/exec.py +0 -0
  523. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/file/__init__.py +0 -0
  524. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/file/base.py +0 -0
  525. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/file/copy.py +0 -0
  526. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/file/delete.py +0 -0
  527. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/interfaces/__init__.py +0 -0
  528. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/interfaces/client.py +0 -0
  529. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/interfaces/credentials.py +0 -0
  530. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/interfaces/notifications.py +0 -0
  531. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/jira.py +0 -0
  532. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/log.py +0 -0
  533. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/logerr.py +0 -0
  534. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/notify.py +0 -0
  535. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/notify_event.py +0 -0
  536. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/publish.py +0 -0
  537. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/sendfile.py +0 -0
  538. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/task.py +0 -0
  539. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/teams.py +0 -0
  540. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/events/webhook.py +0 -0
  541. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/events/manager.py +0 -0
  542. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/exceptions.py +0 -0
  543. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/executors/__init__.py +0 -0
  544. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/executors/base.py +0 -0
  545. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/executors/docker.py +0 -0
  546. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/executors/events.py +0 -0
  547. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/executors/exceptions.py +0 -0
  548. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/executors/k8s.py +0 -0
  549. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/executors/local.py +0 -0
  550. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/executors/models.py +0 -0
  551. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/executors/publish.py +0 -0
  552. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/executors/qworker.py +0 -0
  553. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/executors/registry.py +0 -0
  554. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/executors/resolver.py +0 -0
  555. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/extensions/__init__.py +0 -0
  556. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/extensions/abstract.py +0 -0
  557. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/extensions/component_docs.py +0 -0
  558. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/extensions/logging/__init__.py +0 -0
  559. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/factory/__init__.py +0 -0
  560. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/factory/agent.py +0 -0
  561. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/factory/composer.py +0 -0
  562. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/factory/parser.py +0 -0
  563. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/factory/validator.py +0 -0
  564. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/handlers/__init__.py +0 -0
  565. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/handlers/component.py +0 -0
  566. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/__init__.py +0 -0
  567. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/actions/__init__.py +0 -0
  568. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/actions/abstract.py +0 -0
  569. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/actions/dummy.py +0 -0
  570. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/actions/jira.py +0 -0
  571. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/actions/rest.py +0 -0
  572. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/actions/sampledata.py +0 -0
  573. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/actions/sensor.py +0 -0
  574. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/actions/task.py +0 -0
  575. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/actions/ticket.py +0 -0
  576. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/actions/zammad.py +0 -0
  577. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/actions/zoom_event.py +0 -0
  578. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/hook.py +0 -0
  579. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/models.py +0 -0
  580. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/service.py +0 -0
  581. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/step.py +0 -0
  582. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/__init__.py +0 -0
  583. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/base.py +0 -0
  584. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/brokers/__init__.py +0 -0
  585. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/brokers/base.py +0 -0
  586. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/brokers/mqtt.py +0 -0
  587. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/brokers/rabbitmq.py +0 -0
  588. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/brokers/redis.py +0 -0
  589. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/brokers/sqs.py +0 -0
  590. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/fs.py +0 -0
  591. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/http.py +0 -0
  592. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/imap.py +0 -0
  593. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/jira.py +0 -0
  594. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/mail.py +0 -0
  595. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/postgres.py +0 -0
  596. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/responses/__init__.py +0 -0
  597. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/responses/base.py +0 -0
  598. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/sharepoint.py +0 -0
  599. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/ssh.py +0 -0
  600. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/tagged.py +0 -0
  601. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/upload.py +0 -0
  602. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/watch.py +0 -0
  603. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/web.py +0 -0
  604. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/hooks/types/zoom.py +0 -0
  605. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/AzureClient.py +0 -0
  606. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/AzureGraph.py +0 -0
  607. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/Boto3Client.py +0 -0
  608. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/DropboxClient.py +0 -0
  609. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/ExcelHandler.py +0 -0
  610. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/FTPClient.py +0 -0
  611. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/GoogleCalendar.py +0 -0
  612. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/GoogleClient.py +0 -0
  613. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/GoogleDrive.py +0 -0
  614. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/GoogleGCS.py +0 -0
  615. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/GoogleGeocoding.py +0 -0
  616. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/GoogleLang.py +0 -0
  617. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/GooglePub.py +0 -0
  618. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/GoogleSheet.py +0 -0
  619. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/IMAPClient.py +0 -0
  620. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/LLMClient.py +0 -0
  621. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/O365Calendar.py +0 -0
  622. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/O365Client.py +0 -0
  623. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/OneDrive.py +0 -0
  624. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/Outlook.py +0 -0
  625. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/OverpassGeocoding.py +0 -0
  626. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/ParrotBot.py +0 -0
  627. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/ParrotTool.py +0 -0
  628. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/SOAPClient.py +0 -0
  629. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/SSHClient.py +0 -0
  630. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/Sharepoint.py +0 -0
  631. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/__init__.py +0 -0
  632. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/abstract.py +0 -0
  633. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/azure_component.py +0 -0
  634. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/azureauth.py +0 -0
  635. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/base_action.py +0 -0
  636. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/base_loop.py +0 -0
  637. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/cache.py +0 -0
  638. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/client.py +0 -0
  639. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/compress.py +0 -0
  640. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/copy_from_base.py +0 -0
  641. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/copy_to.py +0 -0
  642. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/copy_to_file_base.py +0 -0
  643. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/credentials.py +0 -0
  644. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/d2l.py +0 -0
  645. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/databases/__init__.py +0 -0
  646. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/databases/db.py +0 -0
  647. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/databases/documentdb.py +0 -0
  648. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/databases/rethink.py +0 -0
  649. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/dataframes/__init__.py +0 -0
  650. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/dataframes/abstract.py +0 -0
  651. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/dataframes/arrow.py +0 -0
  652. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/dataframes/dt.py +0 -0
  653. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/dataframes/pandas.py +0 -0
  654. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/dataframes/polars.py +0 -0
  655. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/db.py +0 -0
  656. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/db_client.py +0 -0
  657. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/download_from.py +0 -0
  658. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/env.py +0 -0
  659. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/file_base.py +0 -0
  660. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/flow.py +0 -0
  661. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/func.py +0 -0
  662. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/gamma.py +0 -0
  663. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/google_base.py +0 -0
  664. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/group.py +0 -0
  665. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/http.py +0 -0
  666. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/locale.py +0 -0
  667. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/log.py +0 -0
  668. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/mask.py +0 -0
  669. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/notification.py +0 -0
  670. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/parrot/__init__.py +0 -0
  671. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/parrot/agent.py +0 -0
  672. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/parrot/client.py +0 -0
  673. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/pipelines/__init__.py +0 -0
  674. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/pipelines/parrot.py +0 -0
  675. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/playwright.py +0 -0
  676. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/powerpoint.py +0 -0
  677. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/ppt.py +0 -0
  678. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/py.typed +0 -0
  679. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/qs.py +0 -0
  680. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/qs_base.py +0 -0
  681. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/result.py +0 -0
  682. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/routing.py +0 -0
  683. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/sassie.py +0 -0
  684. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/scoring/__init__.py +0 -0
  685. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/scoring/abstract.py +0 -0
  686. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/scoring/engine.py +0 -0
  687. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/scoring/extractors/__init__.py +0 -0
  688. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/scoring/extractors/count.py +0 -0
  689. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/scoring/extractors/gravity.py +0 -0
  690. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/scoring/extractors/nearest.py +0 -0
  691. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/scoring/models.py +0 -0
  692. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/scoring/service.py +0 -0
  693. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/scoring/spatial.py +0 -0
  694. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/search.py +0 -0
  695. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/selenium/__init__.py +0 -0
  696. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/selenium/options.py +0 -0
  697. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/selenium/service.py +0 -0
  698. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/selenium_service.py +0 -0
  699. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/skip_policy.py +0 -0
  700. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/smartsheet.py +0 -0
  701. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/stat.py +0 -0
  702. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/t_pandas.py +0 -0
  703. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/table_base.py +0 -0
  704. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/task.py +0 -0
  705. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/teams.py +0 -0
  706. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/template.py +0 -0
  707. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/tickets.py +0 -0
  708. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/upload_to.py +0 -0
  709. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/user.py +0 -0
  710. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/vectorstores/__init__.py +0 -0
  711. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/vectorstores/abstract.py +0 -0
  712. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/vectorstores/milvus.py +0 -0
  713. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/__init__.py +0 -0
  714. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/config.py +0 -0
  715. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/__init__.py +0 -0
  716. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/applicants.py +0 -0
  717. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/base.py +0 -0
  718. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/candidates.py +0 -0
  719. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/cost_centers.py +0 -0
  720. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/custom_punch_field_report.py +0 -0
  721. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/custom_punch_field_report_rest.py +0 -0
  722. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/custom_report.py +0 -0
  723. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/import_reported_time_blocks.py +0 -0
  724. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/import_time_clock_events.py +0 -0
  725. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/job_posting_sites.py +0 -0
  726. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/job_postings.py +0 -0
  727. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/job_requisitions.py +0 -0
  728. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/location_hierarchy_assignments.py +0 -0
  729. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/locations.py +0 -0
  730. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/organization_single.py +0 -0
  731. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/organizations.py +0 -0
  732. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/put_time_clock_events.py +0 -0
  733. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/recruiting_agency_users.py +0 -0
  734. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/references.py +0 -0
  735. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/time_block_report.py +0 -0
  736. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/time_blocks.py +0 -0
  737. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/time_off_balances.py +0 -0
  738. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/time_requests.py +0 -0
  739. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/handlers/workers.py +0 -0
  740. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/__init__.py +0 -0
  741. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/applicant.py +0 -0
  742. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/candidate.py +0 -0
  743. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/clock_event.py +0 -0
  744. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/cost_center.py +0 -0
  745. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/custom_punch_field_report.py +0 -0
  746. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/job_posting.py +0 -0
  747. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/job_posting_site.py +0 -0
  748. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/job_requisition.py +0 -0
  749. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/location.py +0 -0
  750. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/location_hierarchy_assignments.py +0 -0
  751. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/organizations.py +0 -0
  752. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/reference.py +0 -0
  753. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/time_block.py +0 -0
  754. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/time_off_balance.py +0 -0
  755. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/time_request.py +0 -0
  756. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/models/worker.py +0 -0
  757. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/__init__.py +0 -0
  758. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/applicant_parsers.py +0 -0
  759. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/candidate_parsers.py +0 -0
  760. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/cost_center_parsers.py +0 -0
  761. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/custom_punch_field_report_parsers.py +0 -0
  762. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/job_posting_parsers.py +0 -0
  763. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/job_posting_site_parsers.py +0 -0
  764. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/job_requisition_parsers.py +0 -0
  765. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/location_hierarchy_assignments_parsers.py +0 -0
  766. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/location_parsers.py +0 -0
  767. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/organization_parsers.py +0 -0
  768. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/reference_parsers.py +0 -0
  769. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/time_block_parsers.py +0 -0
  770. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/time_off_balance_parsers.py +0 -0
  771. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/time_request_parsers.py +0 -0
  772. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/parsers/worker_parsers.py +0 -0
  773. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/rest.py +0 -0
  774. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/service.py +0 -0
  775. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/utils/__init__.py +0 -0
  776. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/workday/utils/utils.py +0 -0
  777. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/zammad.py +0 -0
  778. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/interfaces/zoom.py +0 -0
  779. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/models.py +0 -0
  780. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/parsers/__init__.py +0 -0
  781. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/parsers/_yaml.pyx +0 -0
  782. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/parsers/argparser.py +0 -0
  783. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/parsers/base.pxd +0 -0
  784. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/parsers/base.pyx +0 -0
  785. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/parsers/json.pyx +0 -0
  786. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/parsers/maps.py +0 -0
  787. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/parsers/syntax/__init__.py +0 -0
  788. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/parsers/syntax/checker.py +0 -0
  789. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/parsers/syntax/detector.py +0 -0
  790. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/parsers/syntax/registry.py +0 -0
  791. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/parsers/syntax/report.py +0 -0
  792. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/parsers/syntax/schema.py +0 -0
  793. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/parsers/toml.pyx +0 -0
  794. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/plugins/__init__.py +0 -0
  795. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/plugins/components_/__init__.py +0 -0
  796. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/plugins/handler/__init__.py +0 -0
  797. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/plugins/importer.py +0 -0
  798. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/plugins/sources/__init__.py +0 -0
  799. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/runner.py +0 -0
  800. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/scheduler/__init__.py +0 -0
  801. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/scheduler/functions.py +0 -0
  802. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/scheduler/handlers/__init__.py +0 -0
  803. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/scheduler/handlers/manager.py +0 -0
  804. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/scheduler/handlers/models.py +0 -0
  805. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/scheduler/handlers/service.py +0 -0
  806. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/scheduler/notifications.py +0 -0
  807. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/scheduler/scheduler.py +0 -0
  808. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/__init__.py +0 -0
  809. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/bots/__init__.py +0 -0
  810. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/bots/telegram.py +0 -0
  811. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/files/__init__.py +0 -0
  812. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/files/manager.py +0 -0
  813. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/files/model.py +0 -0
  814. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/files/service.py +0 -0
  815. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/jira/__init__.py +0 -0
  816. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/jira/jira_actions.py +0 -0
  817. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/maintenance/README.md +0 -0
  818. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/maintenance/__init__.py +0 -0
  819. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/maintenance/changelog.py +0 -0
  820. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/maintenance/handlers.py +0 -0
  821. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/maintenance/health.py +0 -0
  822. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/maintenance/models.py +0 -0
  823. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/maintenance/service.py +0 -0
  824. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/maintenance/store.py +0 -0
  825. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/maintenance/templates.py +0 -0
  826. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/maintenance/windows.py +0 -0
  827. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/tasks/__init__.py +0 -0
  828. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/tasks/launcher.py +0 -0
  829. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/tasks/manager.py +0 -0
  830. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/tasks/service.py +0 -0
  831. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/tasks/task_manager.py +0 -0
  832. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/services/tasks/tasks.py +0 -0
  833. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/storages/__init__.py +0 -0
  834. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/storages/exceptions.py +0 -0
  835. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/storages/files/__init__.py +0 -0
  836. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/storages/files/abstract.py +0 -0
  837. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/storages/files/filesystem.py +0 -0
  838. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/storages/tasks/__init__.py +0 -0
  839. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/storages/tasks/abstract.py +0 -0
  840. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/storages/tasks/database.py +0 -0
  841. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/storages/tasks/filesystem.py +0 -0
  842. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/storages/tasks/github.py +0 -0
  843. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/storages/tasks/memory.py +0 -0
  844. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/storages/tasks/row.py +0 -0
  845. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/tasks/__init__.py +0 -0
  846. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/tasks/abstract.py +0 -0
  847. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/tasks/chain.py +0 -0
  848. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/tasks/chainer.py +0 -0
  849. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/tasks/command.py +0 -0
  850. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/tasks/exchange.py +0 -0
  851. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/tasks/pile.py +0 -0
  852. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/tasks/py.typed +0 -0
  853. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/tasks/task.py +0 -0
  854. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/tasks/workers.py +0 -0
  855. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/template/__init__.py +0 -0
  856. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/tests.py +0 -0
  857. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/types/__init__.py +0 -0
  858. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/types/typedefs.pyx +0 -0
  859. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/utils/__init__.py +0 -0
  860. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/utils/constants.py +0 -0
  861. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/utils/encoders.py +0 -0
  862. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/utils/executor.py +0 -0
  863. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/utils/functions.pyx +0 -0
  864. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/utils/json.pxi +0 -0
  865. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/utils/json.pyx +0 -0
  866. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/utils/mail.py +0 -0
  867. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/utils/msgraph_patch.py +0 -0
  868. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/utils/parseqs.pyx +0 -0
  869. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/utils/stats.py +0 -0
  870. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/utils/transformations.py +0 -0
  871. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/utils/uv.py +0 -0
  872. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask/utils/validators.py +0 -0
  873. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask.egg-info/dependency_links.txt +0 -0
  874. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask.egg-info/entry_points.txt +0 -0
  875. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask.egg-info/requires.txt +0 -0
  876. {flowtask-5.13.0 → flowtask-5.13.1}/flowtask.egg-info/top_level.txt +0 -0
  877. {flowtask-5.13.0 → flowtask-5.13.1}/pyproject.toml +0 -0
  878. {flowtask-5.13.0 → flowtask-5.13.1}/setup.cfg +0 -0
  879. {flowtask-5.13.0 → flowtask-5.13.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flowtask
3
- Version: 5.13.0
3
+ Version: 5.13.1
4
4
  Summary: Framework for Task orchestration
5
5
  Author-email: Jesus Lara <jesuslarag@gmail.com>
6
6
  License: Apache-2.0
@@ -185,7 +185,14 @@ def main():
185
185
  from .utils.uv import install_uvloop
186
186
  from .utils import cPrint
187
187
  install_uvloop()
188
- loop = asyncio.get_event_loop()
188
+ # `get_event_loop()` stopped creating a loop when none is set: it is
189
+ # deprecated on 3.10+, and uvloop 0.22 raises outright instead of falling
190
+ # back. Without this the CLI dies before the first log line.
191
+ try:
192
+ loop = asyncio.get_event_loop()
193
+ except RuntimeError:
194
+ loop = asyncio.new_event_loop()
195
+ asyncio.set_event_loop(loop)
189
196
  loop.slow_callback_duration = 0.2
190
197
  try:
191
198
  result = loop.run_until_complete(task(loop))
@@ -27,12 +27,19 @@ from ..interfaces.OverpassGeocoding import (
27
27
  ReverseGeocodeResult,
28
28
  DEFAULT_OVERPASS_URL,
29
29
  )
30
+ from ..interfaces.GoogleReverseGeocoding import GoogleReverseGeocoder
31
+ from ..interfaces.NominatimGeocoding import (
32
+ NominatimReverseGeocoder,
33
+ DEFAULT_NOMINATIM_URL,
34
+ DEFAULT_NOMINATIM_USER_AGENT,
35
+ PUBLIC_MIN_INTERVAL,
36
+ )
30
37
  from ..exceptions import (
31
38
  DataNotFound,
32
39
  ConfigError,
33
40
  ComponentError,
34
41
  )
35
- from ..conf import ROUTING_DETOUR_FACTOR
42
+ from ..conf import ROUTING_DETOUR_FACTOR, GOOGLE_PLACES_API_KEY
36
43
  from ..interfaces.routing import RoutingService, DistanceMatrix
37
44
  from .SchedulingVisits import SchedulingVisits
38
45
 
@@ -50,6 +57,9 @@ from .SchedulingVisits import SchedulingVisits
50
57
  # through the actual RoutingService instance and its own average_speed.
51
58
  _INTRA_CLUSTER_AVERAGE_SPEED_MPH = 40.0
52
59
 
60
+ # Reverse geocoders accepted by `geocoding_backend` (resolve_centroid_location).
61
+ GEOCODING_BACKENDS = frozenset({'overpass', 'google', 'nominatim'})
62
+
53
63
 
54
64
  def meters_to_miles(m):
55
65
  return m * 0.000621371
@@ -942,8 +952,9 @@ class MarketClustering(FlowComponent):
942
952
  plus ``centroid_city``, ``centroid_state``, ``centroid_county``
943
953
  and ``centroid_postcode``. The point resolved is
944
954
  ``centroid_lat``/``centroid_lon`` itself — the market's centre,
945
- not a member store — at **one Overpass query per market**,
946
- issued once the layout is final.
955
+ not a member store — at **one geocoder query per market**,
956
+ issued once the layout is final, against the backend chosen by
957
+ ``geocoding_backend``.
947
958
 
948
959
  A centroid is a geometric mean and can land on a parking lot or
949
960
  an empty field: a point with nothing addressable nearby degrades
@@ -960,6 +971,33 @@ class MarketClustering(FlowComponent):
960
971
  rotated through on retry.
961
972
  geocode_concurrency (int, default 8): Maximum in-flight
962
973
  reverse-geocode queries.
974
+ geocoding_backend (str, default ``'overpass'``): Reverse geocoder used
975
+ by ``resolve_centroid_location``. ``'overpass'`` queries
976
+ ``overpass_url``; ``'google'`` uses the Google Geocoding API
977
+ (paid, most accurate; needs ``google_api_key`` or
978
+ ``GOOGLE_PLACES_API_KEY``); ``'nominatim'`` uses OpenStreetMap's
979
+ Nominatim — the public server by default, throttled to one
980
+ request per second as its usage policy requires (~2 minutes for
981
+ 120 markets). Google and Nominatim retry HTTP 429/5xx (and
982
+ Google's ``OVER_QUERY_LIMIT``) with exponential backoff,
983
+ honouring ``Retry-After``.
984
+ google_api_key (str, optional): Key for ``geocoding_backend='google'``;
985
+ defaults to ``GOOGLE_PLACES_API_KEY`` from the configuration.
986
+ nominatim_url (str, default public server): Nominatim base URL, e.g.
987
+ a self-hosted ``http://localhost:8080``.
988
+ nominatim_email (str, optional): Contact address sent to Nominatim,
989
+ recommended by the public server's usage policy.
990
+ nominatim_user_agent (str, optional): Identifying ``User-Agent`` for
991
+ Nominatim; defaults to ``flowtask/<version>``.
992
+ nominatim_min_interval (float, default 1.0): Seconds between Nominatim
993
+ requests. Keep 1.0 on the public server; ``0`` for a self-hosted
994
+ instance.
995
+ routing_backend (str, optional): Backend for the road-mile lookups
996
+ made by the sub-cluster anchoring and fly-out probe passes:
997
+ ``'valhalla'``, ``'osrm'`` or ``'geodesic'`` (offline
998
+ great-circle × detour factor, zero network calls). Defaults to
999
+ ``ROUTING_BACKEND`` from the configuration. The
1000
+ ``no_clustering`` path never routes, whatever this is set to.
963
1001
  isolation_values (list, optional): Values of ``isolation_column``
964
1002
  forming the isolated partition. Stores inside and outside the
965
1003
  partition are clustered separately and NEVER share a market —
@@ -1864,6 +1902,40 @@ class MarketClustering(FlowComponent):
1864
1902
  else:
1865
1903
  self.overpass_url_fallback = list(_overpass_fallback)
1866
1904
  self.geocode_concurrency: int = kwargs.pop('geocode_concurrency', 8)
1905
+ # Which reverse geocoder resolve_centroid_location talks to.
1906
+ self.geocoding_backend: str = str(
1907
+ kwargs.pop('geocoding_backend', 'overpass') or 'overpass'
1908
+ ).strip().lower()
1909
+ if self.geocoding_backend not in GEOCODING_BACKENDS:
1910
+ raise ConfigError(
1911
+ f"geocoding_backend must be one of {sorted(GEOCODING_BACKENDS)}, "
1912
+ f"got {self.geocoding_backend!r}"
1913
+ )
1914
+ self.google_api_key: Optional[str] = (
1915
+ kwargs.pop('google_api_key', None) or GOOGLE_PLACES_API_KEY
1916
+ )
1917
+ if (
1918
+ self.resolve_centroid_location
1919
+ and self.geocoding_backend == 'google'
1920
+ and not self.google_api_key
1921
+ ):
1922
+ raise ConfigError(
1923
+ "geocoding_backend='google' needs google_api_key "
1924
+ "(or GOOGLE_PLACES_API_KEY in the environment)"
1925
+ )
1926
+ self.nominatim_url: str = kwargs.pop('nominatim_url', DEFAULT_NOMINATIM_URL)
1927
+ self.nominatim_email: Optional[str] = kwargs.pop('nominatim_email', None)
1928
+ self.nominatim_user_agent: str = kwargs.pop(
1929
+ 'nominatim_user_agent', DEFAULT_NOMINATIM_USER_AGENT
1930
+ )
1931
+ self.nominatim_min_interval: float = float(
1932
+ kwargs.pop('nominatim_min_interval', PUBLIC_MIN_INTERVAL)
1933
+ )
1934
+
1935
+ # Road-mile backend for the sub-cluster / fly-out passes. None keeps
1936
+ # RoutingService's configured default (ROUTING_BACKEND); 'geodesic'
1937
+ # runs them fully offline, without a Valhalla instance.
1938
+ self.routing_backend: Optional[str] = kwargs.pop('routing_backend', None)
1867
1939
 
1868
1940
  # -- Global employee-budget mode (FEAT-240) --------------------------
1869
1941
  # A hard cap on total hires for the entire run. Its presence (with
@@ -5284,7 +5356,7 @@ class MarketClustering(FlowComponent):
5284
5356
  n_unplaced = 0
5285
5357
  n_beyond_cap = 0
5286
5358
  stores_beyond_cap = 0
5287
- async with RoutingService() as routing:
5359
+ async with RoutingService(backend=self.routing_backend) as routing:
5288
5360
  for subcluster in subclusters:
5289
5361
  medoid = subcluster['medoid']
5290
5362
  candidates = sorted(
@@ -5536,7 +5608,7 @@ class MarketClustering(FlowComponent):
5536
5608
  cid = self._data.at[idx, self._cluster_id]
5537
5609
  by_market.setdefault(cid, []).append(idx)
5538
5610
 
5539
- async with RoutingService() as routing:
5611
+ async with RoutingService(backend=self.routing_backend) as routing:
5540
5612
  for cid in sorted(by_market.keys(), key=str):
5541
5613
  idxs = sorted(by_market[cid])
5542
5614
  centroid = centroids.get(cid)
@@ -9565,10 +9637,51 @@ class MarketClustering(FlowComponent):
9565
9637
  points[cid] = (float(lat), float(lon))
9566
9638
  return points
9567
9639
 
9640
+ def _geocoder_label(self) -> str:
9641
+ """Human-readable backend + endpoint, for the resolution logs."""
9642
+ if self.geocoding_backend == 'google':
9643
+ return "Google Geocoding"
9644
+ if self.geocoding_backend == 'nominatim':
9645
+ return f"Nominatim ({self.nominatim_url})"
9646
+ return f"Overpass ({self.overpass_url})"
9647
+
9648
+ def _build_reverse_geocoder(
9649
+ self,
9650
+ ) -> Union[OverpassReverseGeocoder, GoogleReverseGeocoder, NominatimReverseGeocoder]:
9651
+ """Instantiate the reverse geocoder selected by `geocoding_backend`.
9652
+
9653
+ Returns:
9654
+ An un-entered geocoder; use it with ``async with``. All three
9655
+ share the ``reverse_many`` contract and return
9656
+ `ReverseGeocodeResult` values.
9657
+ """
9658
+ if self.geocoding_backend == 'google':
9659
+ return GoogleReverseGeocoder(
9660
+ api_key=self.google_api_key,
9661
+ concurrency=self.geocode_concurrency,
9662
+ )
9663
+ if self.geocoding_backend == 'nominatim':
9664
+ # The public server allows one request per second; the
9665
+ # min_interval throttle already serialises, so concurrency
9666
+ # only matters for a self-hosted instance with no throttle.
9667
+ return NominatimReverseGeocoder(
9668
+ url=self.nominatim_url,
9669
+ email=self.nominatim_email,
9670
+ user_agent=self.nominatim_user_agent,
9671
+ min_interval=self.nominatim_min_interval,
9672
+ concurrency=self.geocode_concurrency,
9673
+ )
9674
+ return OverpassReverseGeocoder(
9675
+ url=self.overpass_url,
9676
+ fallback_urls=self.overpass_url_fallback,
9677
+ concurrency=self.geocode_concurrency,
9678
+ )
9679
+
9568
9680
  async def _resolve_centroid_locations(self) -> None:
9569
9681
  """Reverse-geocode each market's centroid into a street address.
9570
9682
 
9571
- One Overpass query per market — the centroid itself, not a member
9683
+ One query per market against `geocoding_backend` (Overpass, Google
9684
+ or Nominatim) — the centroid itself, not a member
9572
9685
  store — de-duplicated and run with bounded concurrency, so a market
9573
9686
  of 400 stores still costs exactly one lookup.
9574
9687
 
@@ -9593,22 +9706,18 @@ class MarketClustering(FlowComponent):
9593
9706
  )
9594
9707
  return
9595
9708
 
9709
+ label = self._geocoder_label()
9596
9710
  self._logger.info(
9597
9711
  f"Resolving centroid location for {len(points)} markets via "
9598
- f"Overpass ({self.overpass_url})"
9712
+ f"{label}"
9599
9713
  )
9600
9714
  try:
9601
- async with OverpassReverseGeocoder(
9602
- url=self.overpass_url,
9603
- fallback_urls=self.overpass_url_fallback,
9604
- concurrency=self.geocode_concurrency,
9605
- ) as geocoder:
9715
+ async with self._build_reverse_geocoder() as geocoder:
9606
9716
  resolved = await geocoder.reverse_many(points.values())
9607
9717
  except Exception as exc: # noqa: BLE001 - never lose a layout over a label
9608
9718
  self._logger.warning(
9609
9719
  f"Centroid location resolution failed against "
9610
- f"{self.overpass_url} ({exc}); every centroid_address will "
9611
- f"be empty."
9720
+ f"{label} ({exc}); every centroid_address will be empty."
9612
9721
  )
9613
9722
  return
9614
9723
 
@@ -452,7 +452,10 @@ class ParrotAgent(ParrotAgentConfigMixin, AgentBase, FlowComponent):
452
452
  # keeps its fields inside `output_column` rather than as columns of
453
453
  # their own, so look there too — otherwise `attach_columns` would work
454
454
  # per row (where the result is merged into the context) but not here.
455
- for column in {c for ch in config.channels for c in ch.attach_columns}:
455
+ columns = {c for ch in config.channels for c in ch.attach_columns}
456
+ if config.storage is not None:
457
+ columns |= set(config.storage.columns)
458
+ for column in columns:
456
459
  values = self._collect_paths(df, column)
457
460
  if values:
458
461
  context[column] = values[: config.max_attachments]
@@ -0,0 +1,171 @@
1
+ """Reverse geocoding through the Google Geocoding API.
2
+
3
+ The paid but most accurate of the ``geocoding_backend`` options: one
4
+ ``latlng`` request per point against
5
+ ``https://maps.googleapis.com/maps/api/geocode/json``. Google reports
6
+ throttling inside a 200 body (``status: OVER_QUERY_LIMIT``), so those
7
+ answers are retried with the same exponential backoff as HTTP 429/5xx.
8
+ A ``REQUEST_DENIED`` (bad or unauthorised key) is final and stops every
9
+ later lookup in the same session instead of repeating the error per market.
10
+
11
+ Typical use::
12
+
13
+ async with GoogleReverseGeocoder(api_key=GOOGLE_API_KEY) as geocoder:
14
+ results = await geocoder.reverse_many(market_centroids)
15
+ """
16
+ from __future__ import annotations
17
+
18
+ from typing import Any, Mapping, Optional
19
+
20
+ from .OverpassGeocoding import ReverseGeocodeResult, _haversine_m, _valid_postcode
21
+ from .ReverseGeocoding import BaseReverseGeocoder
22
+
23
+
24
+ DEFAULT_GOOGLE_GEOCODE_URL = "https://maps.googleapis.com/maps/api/geocode/json"
25
+
26
+ # Body statuses meaning "try again later" rather than "no answer".
27
+ _RETRY_STATUSES = frozenset({"OVER_QUERY_LIMIT", "UNKNOWN_ERROR"})
28
+ # Body statuses meaning the key or request is unusable: retrying is futile.
29
+ _FATAL_STATUSES = frozenset({"REQUEST_DENIED", "INVALID_REQUEST"})
30
+
31
+ # Address-component types that name the municipality, in preference order.
32
+ _CITY_TYPES = (
33
+ "locality",
34
+ "postal_town",
35
+ "sublocality_level_1",
36
+ "sublocality",
37
+ "administrative_area_level_3",
38
+ )
39
+
40
+
41
+ def _components(result: Mapping[str, Any]) -> dict[str, dict]:
42
+ """Index a result's address components by type (first one wins)."""
43
+ indexed: dict[str, dict] = {}
44
+ for component in result.get("address_components") or []:
45
+ for kind in component.get("types") or []:
46
+ indexed.setdefault(kind, component)
47
+ return indexed
48
+
49
+
50
+ class GoogleReverseGeocoder(BaseReverseGeocoder):
51
+ """Resolve coordinates to street addresses via Google Geocoding.
52
+
53
+ Args:
54
+ api_key: Google Maps Platform key with the Geocoding API enabled.
55
+ url: Geocoding endpoint (overridable for tests or a proxy).
56
+ language: ``language`` parameter for the returned names.
57
+ **kwargs: Transport options forwarded to :class:`BaseReverseGeocoder`
58
+ (``max_retries``, ``backoff_base``, ``max_backoff``,
59
+ ``concurrency``, ``timeout``, ``session``...).
60
+
61
+ Raises:
62
+ ValueError: If ``api_key`` is empty.
63
+ """
64
+
65
+ def __init__(
66
+ self,
67
+ api_key: str,
68
+ url: str = DEFAULT_GOOGLE_GEOCODE_URL,
69
+ language: str = "en",
70
+ **kwargs: Any,
71
+ ) -> None:
72
+ if not api_key:
73
+ raise ValueError("GoogleReverseGeocoder requires an api_key")
74
+ super().__init__(**kwargs)
75
+ self.api_key = api_key
76
+ self.url = url
77
+ self.language = language
78
+ self._denied = False
79
+
80
+ @property
81
+ def name(self) -> str:
82
+ return "Google Geocoding"
83
+
84
+ def _retry_payload(self, payload: Mapping[str, Any]) -> bool:
85
+ return payload.get("status") in _RETRY_STATUSES
86
+
87
+ @staticmethod
88
+ def _parse(payload: Optional[Mapping[str, Any]], lat: float, lon: float) -> ReverseGeocodeResult:
89
+ """Turn one Geocoding API payload into a :class:`ReverseGeocodeResult`.
90
+
91
+ The street comes from the first result carrying both a
92
+ ``street_number`` and a ``route`` (Google orders results from most
93
+ to least specific); without one, the first result with a ``route``
94
+ gives a street-only answer. City, state, county and postcode are
95
+ taken from that result and, where it lacks them, from the broader
96
+ results that follow.
97
+
98
+ Args:
99
+ payload: Decoded JSON, or ``None`` for a failed request.
100
+ lat: Latitude originally queried, for the distance.
101
+ lon: Longitude originally queried.
102
+
103
+ Returns:
104
+ A result whose ``degraded`` flag is ``False`` only when a house
105
+ number and street were matched.
106
+ """
107
+ if not payload or payload.get("status") != "OK":
108
+ return ReverseGeocodeResult()
109
+ results = payload.get("results") or []
110
+ if not results:
111
+ return ReverseGeocodeResult()
112
+
113
+ indexed = [(result, _components(result)) for result in results]
114
+ primary = next(
115
+ (pair for pair in indexed if "street_number" in pair[1] and "route" in pair[1]),
116
+ None,
117
+ ) or next((pair for pair in indexed if "route" in pair[1]), None) or indexed[0]
118
+ primary_result, primary_parts = primary
119
+
120
+ def _pick(kinds: tuple[str, ...], short: bool = False) -> Optional[str]:
121
+ for _, parts in [primary, *indexed]:
122
+ for kind in kinds:
123
+ component = parts.get(kind)
124
+ if component:
125
+ return component.get("short_name" if short else "long_name")
126
+ return None
127
+
128
+ housenumber = (primary_parts.get("street_number") or {}).get("long_name")
129
+ street = (primary_parts.get("route") or {}).get("long_name")
130
+ location = (primary_result.get("geometry") or {}).get("location") or {}
131
+ distance = (
132
+ _haversine_m(lat, lon, float(location["lat"]), float(location["lng"]))
133
+ if "lat" in location and "lng" in location
134
+ else None
135
+ )
136
+ return ReverseGeocodeResult(
137
+ housenumber=housenumber,
138
+ street=street,
139
+ city=_pick(_CITY_TYPES),
140
+ state=_pick(("administrative_area_level_1",), short=True),
141
+ postcode=_valid_postcode(_pick(("postal_code",))),
142
+ county=_pick(("administrative_area_level_2",)),
143
+ distance_m=distance,
144
+ degraded=not (housenumber and street),
145
+ )
146
+
147
+ async def reverse(self, lat: float, lon: float) -> ReverseGeocodeResult:
148
+ """Resolve one coordinate through the Geocoding API.
149
+
150
+ Args:
151
+ lat: Latitude to resolve.
152
+ lon: Longitude to resolve.
153
+
154
+ Returns:
155
+ The parsed result; an empty degraded one when the request
156
+ failed, returned ``ZERO_RESULTS`` or the key was rejected.
157
+ """
158
+ if self._denied:
159
+ return ReverseGeocodeResult()
160
+ payload = await self._get_json(
161
+ self.url,
162
+ {"latlng": f"{lat},{lon}", "key": self.api_key, "language": self.language},
163
+ )
164
+ status = (payload or {}).get("status")
165
+ if status in _FATAL_STATUSES:
166
+ self._denied = status == "REQUEST_DENIED"
167
+ self._logger.error(
168
+ "Google Geocoding %s: %s", status, (payload or {}).get("error_message", "")
169
+ )
170
+ return self._parse(payload, lat, lon)
171
+
@@ -0,0 +1,149 @@
1
+ """Reverse geocoding through Nominatim, OpenStreetMap's geocoder.
2
+
3
+ The key-free ``geocoding_backend`` option. By default it targets the
4
+ public server, ``https://nominatim.openstreetmap.org``, and obeys its
5
+ usage policy (https://operations.osmfoundation.org/policies/nominatim/):
6
+
7
+ * **at most one request per second**, enforced across concurrent callers
8
+ (``min_interval=1.0``), so ~120 market centroids take ~2 minutes;
9
+ * an identifying ``User-Agent`` on every request (and an optional
10
+ ``email`` contact parameter);
11
+ * exponential backoff on HTTP 429/5xx, honouring ``Retry-After``.
12
+
13
+ A self-hosted instance can lift the throttle with ``min_interval=0``.
14
+
15
+ Typical use::
16
+
17
+ async with NominatimReverseGeocoder(email="ops@example.com") as geocoder:
18
+ results = await geocoder.reverse_many(market_centroids)
19
+ """
20
+ from __future__ import annotations
21
+
22
+ from typing import Any, Mapping, Optional
23
+
24
+ from ..version import __version__
25
+ from .OverpassGeocoding import ReverseGeocodeResult, _haversine_m, _valid_postcode
26
+ from .ReverseGeocoding import BaseReverseGeocoder
27
+
28
+
29
+ DEFAULT_NOMINATIM_URL = "https://nominatim.openstreetmap.org"
30
+ DEFAULT_NOMINATIM_USER_AGENT = (
31
+ f"flowtask/{__version__} (+https://github.com/phenobarbital/flowtask)"
32
+ )
33
+ # Public-server policy: an absolute maximum of 1 request per second.
34
+ PUBLIC_MIN_INTERVAL = 1.0
35
+
36
+ # Address keys naming the municipality, in preference order.
37
+ _CITY_KEYS = ("city", "town", "village", "hamlet", "municipality", "suburb")
38
+ # Address keys naming the street, in preference order.
39
+ _STREET_KEYS = ("road", "pedestrian", "footway", "residential", "path")
40
+
41
+
42
+ class NominatimReverseGeocoder(BaseReverseGeocoder):
43
+ """Resolve coordinates to street addresses via Nominatim ``/reverse``.
44
+
45
+ Args:
46
+ url: Nominatim base URL (without ``/reverse``).
47
+ email: Contact address sent as the ``email`` parameter, as the
48
+ public usage policy recommends for any non-trivial use.
49
+ user_agent: Identifying ``User-Agent``; the policy rejects generic
50
+ library defaults.
51
+ language: ``accept-language`` for the returned names.
52
+ zoom: Detail level; 18 asks for a building/address.
53
+ min_interval: Seconds between request starts (1.0 for the public
54
+ server; ``0`` for a self-hosted one).
55
+ **kwargs: Transport options forwarded to :class:`BaseReverseGeocoder`
56
+ (``max_retries``, ``backoff_base``, ``max_backoff``,
57
+ ``concurrency``, ``timeout``, ``session``...).
58
+ """
59
+
60
+ def __init__(
61
+ self,
62
+ url: str = DEFAULT_NOMINATIM_URL,
63
+ email: Optional[str] = None,
64
+ user_agent: str = DEFAULT_NOMINATIM_USER_AGENT,
65
+ language: str = "en",
66
+ zoom: int = 18,
67
+ min_interval: float = PUBLIC_MIN_INTERVAL,
68
+ **kwargs: Any,
69
+ ) -> None:
70
+ super().__init__(
71
+ min_interval=min_interval,
72
+ user_agent=user_agent or DEFAULT_NOMINATIM_USER_AGENT,
73
+ **kwargs,
74
+ )
75
+ self.url = (url or DEFAULT_NOMINATIM_URL).rstrip("/")
76
+ self.email = email
77
+ self.language = language
78
+ self.zoom = zoom
79
+
80
+ @property
81
+ def name(self) -> str:
82
+ return "Nominatim"
83
+
84
+ @staticmethod
85
+ def _state_code(address: Mapping[str, Any]) -> Optional[str]:
86
+ """Prefer the ISO 3166-2 subdivision code (``US-GA`` -> ``GA``)."""
87
+ iso = address.get("ISO3166-2-lvl4")
88
+ if iso and "-" in iso:
89
+ return iso.split("-", 1)[1]
90
+ return address.get("state")
91
+
92
+ @staticmethod
93
+ def _parse(payload: Optional[Mapping[str, Any]], lat: float, lon: float) -> ReverseGeocodeResult:
94
+ """Turn one ``/reverse?format=jsonv2`` payload into a result.
95
+
96
+ Args:
97
+ payload: Decoded JSON, or ``None`` for a failed request.
98
+ lat: Latitude originally queried, for the distance.
99
+ lon: Longitude originally queried.
100
+
101
+ Returns:
102
+ A result whose ``degraded`` flag is ``False`` only when a house
103
+ number and street were matched. ``{"error": ...}`` (nothing
104
+ within reach, e.g. open water) yields an empty degraded result.
105
+ """
106
+ if not payload or payload.get("error"):
107
+ return ReverseGeocodeResult()
108
+ address = payload.get("address") or {}
109
+ housenumber = address.get("house_number")
110
+ street = next((address[key] for key in _STREET_KEYS if address.get(key)), None)
111
+ city = next((address[key] for key in _CITY_KEYS if address.get(key)), None)
112
+ distance: Optional[float] = None
113
+ try:
114
+ distance = _haversine_m(lat, lon, float(payload["lat"]), float(payload["lon"]))
115
+ except (KeyError, TypeError, ValueError):
116
+ pass
117
+ return ReverseGeocodeResult(
118
+ housenumber=housenumber,
119
+ street=street,
120
+ city=city,
121
+ state=NominatimReverseGeocoder._state_code(address),
122
+ postcode=_valid_postcode(address.get("postcode")),
123
+ county=address.get("county"),
124
+ distance_m=distance,
125
+ degraded=not (housenumber and street),
126
+ )
127
+
128
+ async def reverse(self, lat: float, lon: float) -> ReverseGeocodeResult:
129
+ """Resolve one coordinate through Nominatim ``/reverse``.
130
+
131
+ Args:
132
+ lat: Latitude to resolve.
133
+ lon: Longitude to resolve.
134
+
135
+ Returns:
136
+ The parsed result; an empty degraded one on failure.
137
+ """
138
+ params: dict[str, Any] = {
139
+ "format": "jsonv2",
140
+ "lat": lat,
141
+ "lon": lon,
142
+ "zoom": self.zoom,
143
+ "addressdetails": 1,
144
+ "accept-language": self.language,
145
+ }
146
+ if self.email:
147
+ params["email"] = self.email
148
+ payload = await self._get_json(f"{self.url}/reverse", params)
149
+ return self._parse(payload, lat, lon)