flowtask 5.12.4__tar.gz → 5.12.6__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.
- {flowtask-5.12.4 → flowtask-5.12.6}/PKG-INFO +2 -3
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/OpenWithBase.py +1 -1
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SearchQuery.py +60 -34
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/executors/qworker.py +40 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/parsers/argparser.py +12 -0
- flowtask-5.12.6/flowtask/parsers/base.pyx +76 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/runner.py +99 -47
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/scheduler/functions.py +31 -6
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/tasks/tasks.py +6 -3
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/tasks/abstract.py +12 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/version.py +1 -1
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask.egg-info/PKG-INFO +2 -3
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask.egg-info/requires.txt +1 -2
- {flowtask-5.12.4 → flowtask-5.12.6}/pyproject.toml +1 -2
- flowtask-5.12.4/flowtask/parsers/base.pyx +0 -59
- {flowtask-5.12.4 → flowtask-5.12.6}/CONTRIBUTING.md +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/INSTALL +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/LICENSE +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/MANIFEST.in +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/README.md +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/__main__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/bots/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/bots/check.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/bots/codebot.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ASPX.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ATT.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/AddDataset.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Amazon.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/AutoTask.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Azure.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/AzureUsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/BaseAction.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/BaseLoop.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/BestBuy.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CSVToGCS.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CallAnalysis.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CallSummary.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CensusData.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CensusVariables.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CompanyScraper/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CompanyScraper/parsers/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CompanyScraper/parsers/base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CompanyScraper/parsers/explorium.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CompanyScraper/parsers/leadiq.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CompanyScraper/parsers/rocket.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CompanyScraper/parsers/siccode.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CompanyScraper/parsers/visualvisitor.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CompanyScraper/parsers/zoominfo.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CompanyScraper/scrapper.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CopyFromBase.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CopyFromS3.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CopyFromSharepoint.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CopyTo.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CopyToBigQuery.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CopyToFileBase.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CopyToMongoDB.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CopyToPg.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CopyToRethink.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CopyToS3.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CopyToSharepoint.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Costco.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CreateGCSBucket.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CreateReport/CreateReport.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CreateReport/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CreateReport/charts/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CreateReport/charts/bar.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CreateReport/charts/base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CreateReport/charts/pie.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CreateReport/utils.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/CustomerSatisfaction.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DataInput.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DateList.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DbClient.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DialPad.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DispatchMe.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DocumentDBQuery.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DownloadFrom.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DownloadFromD2L.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DownloadFromFTP.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DownloadFromGamma.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DownloadFromIMAP.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DownloadFromS3.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DownloadFromSFTP.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DownloadFromSharepoint.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DownloadFromSmartSheet.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DownloadFromSmartsheet.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DownloadS3File.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Dummy.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/DuplicatePhoto.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/EmployeeEvaluation.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ExecuteSQL.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ExtractHTML.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ExtractTranscript.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/FileBase.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/FileCopy.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/FileDelete.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/FileExists.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/FileIteratorDelete.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/FileList.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/FileOpen.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/FileRead.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/FileRename.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/FilterIf.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/FilterRows/FilterRows.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/FilterRows/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/FilterRows/functions.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/GCSToBigQuery.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/GenData.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/GoogleA4.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/GoogleGeoCoding.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/GooglePlaces.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/GoogleSearch.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/HTTPClient.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ICIMS.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/IF.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/IcimsFolderCopy.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ImageFeatures/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ImageFeatures/process.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/IteratorBase.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/LeadIQ.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Loop.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Lowes.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/MS365Usage.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/MSTeamsMessages.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/MarkdownMaker.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/MarketClustering.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/MergeFileList.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/MergeFiles.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/MilvusOutput.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NearByStores.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/models/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/models/abstract.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/models/account.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/models/client.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/models/district.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/models/events.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/models/forms.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/models/market.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/models/organization.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/models/photos.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/models/project.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/models/region.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/models/store.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/models/user.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinja/router.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NetworkNinjaClaims.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/NextStopAgent.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Odoo.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/OdooInjector.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/OpenFromXML.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/OpenStreetMap.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/OpenWeather.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/OpenWithPandas.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/PDFGenerator.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/PGPDecrypt.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/PandasIterator.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/PandasToFile.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/PandasToPowerPoint.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Paradox.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ParamIterator.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ParrotKnowledgeBuilder/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ParrotKnowledgeBuilder/loader.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ParrotKnowledgeBuilder/payload.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ParrotLoader/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ParrotLoader/loader.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ParseHTML.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/PgVectorOutput.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/PlacerStores.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/PlanogramCompliance.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/PodcastMaker.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Pokemon.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/PositiveBot.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/PowerPointSlide.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/PrintMessage.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductCompetitors/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductCompetitors/parsers/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductCompetitors/parsers/base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductCompetitors/parsers/bestbuy.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductCompetitors/parsers/lowes.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductCompetitors/scrapper.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductCompliant.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductInfo/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductInfo/parsers/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductInfo/parsers/base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductInfo/parsers/brother.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductInfo/parsers/canon.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductInfo/parsers/epson.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductInfo/parsers/hp.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductInfo/parsers/samsung.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductInfo/scraper.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductPricing.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ProductReportBot.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/QS.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/QSBase.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/QueryIterator.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/QueryToInsert.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/QueryToPandas.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/RESTClient.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/RethinkDBQuery.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Rsync.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/RunSSH.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/RunShell.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SAPExtraction.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SMSAnalysis.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SMSSummary.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SalesForce.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Sassie.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SaveImageBank/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SchedulingVisits.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ScrapPage.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ScrapSearch.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ScrapTool.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SendEmail.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SendNotify/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SendNotify/component.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SendNotify/models/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SendNotify/models/abstract.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SendNotify/models/zoom.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SentimentAnalysis.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ServiceScrapper/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ServiceScrapper/parsers/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ServiceScrapper/parsers/base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ServiceScrapper/parsers/costco.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ServiceScrapper/scrapper.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SetVariables.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SplitPDF.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Staples.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SubTask.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/SuiteCRM.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Switch.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/TableBase.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/TableDelete.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/TableInput.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/TableOutput/TableOutput.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/TableOutput/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/TableSchema.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Target.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ThumbnailGenerator.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ToPandas.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/TransformRows/TransformRows.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/TransformRows/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/TransformRows/functions.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/TransposeRows.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/UPCDatabase.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/UnGzip.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Uncompress.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/UniqueRows.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Unzip.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/UpdateOperationalVars.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/UploadTo.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/UploadToS3.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/UploadToSFTP.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/UploadToSharepoint.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/UserFunc.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/VideoUnderstanding.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/VivaTracker.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/WSDLClient.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Wait.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Walmart.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/applicant.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/candidate.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/cost_center.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/custom_punch_field_report.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/job_posting.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/job_posting_site.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/job_requisition.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/location.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/location_hierarchy_assignments.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/organizations.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/reference.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/time_block.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/time_off_balance.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/time_request.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/models/worker.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/applicant_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/candidate_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/cost_center_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/custom_punch_field_report_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/job_posting_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/job_posting_site_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/job_requisition_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/location_hierarchy_assignments_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/location_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/organization_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/reference_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/time_block_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/time_off_balance_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/time_request_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/parsers/worker_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/applicants.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/candidates.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/cost_centers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/custom_punch_field_report.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/custom_punch_field_report_rest.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/custom_report.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/job_posting_sites.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/job_postings.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/job_requisitions.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/location_hierarchy_assignments.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/locations.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/organization_single.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/organizations.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/recruiting_agency_users.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/references.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/time_block_report.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/time_blocks.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/time_off_balances.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/time_requests.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/types/workers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/utils/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/utils/utils.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workday/workday.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/WorkdayReport.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Workplace.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/XMLToPandas.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Zammad/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Zammad/models.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/Zoom.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ZoomInfoScraper.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/ZoomUs.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/_census/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/_census/cache.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/_census/fetch.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/_census/resolver.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/_census/transform.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/abstract.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/flow.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/gendata/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/gendata/date_sequence.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/gendata/static_list.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/google.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/group.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/pandas_io.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/py.typed +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/reviewscrap.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tAddTotalRow.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tAutoincrement.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tConcat.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tConditionalMultiply.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tCrosstab.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tDictKey.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tExplode.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tFilter.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tFilterCommonValues.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tFlatten.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tFrequencyWeights.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tGroup.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tJoin.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tMap/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tMap/functions.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tMap/tMap.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tMelt.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tMerge.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tOrder.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tPandas.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tPivot.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tPluckCols.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/tUnnest.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/components/user.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/conf.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/categories.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/cli.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/ASPX.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/AddDataset.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/AutoTask.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/AzureUsers.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/CallAnalysis.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/CallSummary.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/CompanyScraper.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/CopyFromS3.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/CopyFromSharepoint.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/CopyToBigQuery.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/CopyToMongoDB.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/CopyToPg.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/CopyToRethink.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/CopyToS3.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/CopyToSharepoint.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/CreateReport.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/CustomerSatisfaction.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/DataInput.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/DateList.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/DialPad.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/DownloadFromD2L.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/DownloadFromFTP.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/DownloadFromIMAP.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/DownloadFromS3.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/DownloadFromSFTP.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/DownloadFromSharepoint.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/DownloadFromSmartSheet.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/DownloadFromSmartsheet.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/EmployeeEvaluation.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/ExecuteSQL.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/ExtractTranscript.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/FileCopy.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/FileDelete.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/FileExists.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/FileIteratorDelete.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/FileList.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/FileOpen.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/FileRead.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/FileRename.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/FilterIf.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/FilterRows.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/GoogleA4.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/GoogleGeoCoding.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/GoogleSearch.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/HTTPClient.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/ICIMS.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/IteratorBase.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/LeadIQ.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/MS365Usage.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/MSTeamsMessages.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/MergeFileList.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/MergeFiles.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/NetworkNinjaClaims.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/Odoo.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/OdooInjector.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/OpenFromXML.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/OpenWithBase.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/OpenWithPandas.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/PGPDecrypt.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/PandasIterator.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/PandasToFile.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/Paradox.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/ParamIterator.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/PlacerStores.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/Pokemon.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/PositiveBot.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/PowerPointSlide.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/PrintMessage.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/ProductCompliant.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/ProductPricing.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/ProductReportBot.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/QS.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/QueryIterator.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/QueryToInsert.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/QueryToPandas.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/RESTClient.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/RunShell.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/SAPExtraction.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/Sassie.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/ScrapTool.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/SearchQuery.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/SendNotify.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/SentimentAnalysis.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/ServiceScrapper.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/SetVariables.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/SplitPDF.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/SubTask.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/SuiteCRM.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/TableDelete.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/TableInput.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/TableOutput.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/TableSchema.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/ThumbnailGenerator.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/TransformRows.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/TransposeRows.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/UnGzip.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/Uncompress.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/UniqueRows.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/Unzip.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/UploadToS3.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/UploadToSFTP.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/UploadToSharepoint.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/UserFunc.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/Zoom.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/ZoomInfoScraper.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tAutoincrement.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tConcat.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tConditionalMultiply.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tCrosstab.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tExplode.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tFilter.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tFilterCommonValues.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tFrequencyWeights.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tGroup.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tJoin.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tMap.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tMelt.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tOrder.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tPivot.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tPluckCols.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/components/tUnnest.doc.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generated/index.json +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/generator.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/models.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/parser.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/schema.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/documentation/toolkit.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/download.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/abstract.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/alerts/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/alerts/colfunctions.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/alerts/functions.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/dummy.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/exec.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/file/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/file/base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/file/copy.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/file/delete.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/interfaces/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/interfaces/client.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/interfaces/credentials.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/interfaces/notifications.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/jira.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/log.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/logerr.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/notify.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/notify_event.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/publish.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/sendfile.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/task.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/teams.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/events/webhook.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/events/manager.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/exceptions.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/executors/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/executors/base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/executors/docker.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/executors/events.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/executors/exceptions.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/executors/k8s.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/executors/local.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/executors/models.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/executors/publish.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/executors/registry.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/executors/resolver.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/extensions/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/extensions/abstract.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/extensions/component_docs.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/extensions/logging/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/factory/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/factory/agent.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/factory/composer.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/factory/parser.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/factory/validator.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/handlers/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/handlers/component.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/actions/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/actions/abstract.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/actions/dummy.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/actions/jira.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/actions/rest.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/actions/sampledata.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/actions/sensor.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/actions/task.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/actions/ticket.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/actions/zammad.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/actions/zoom_event.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/hook.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/models.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/service.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/step.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/brokers/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/brokers/base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/brokers/mqtt.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/brokers/rabbitmq.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/brokers/redis.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/brokers/sqs.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/fs.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/http.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/imap.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/jira.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/mail.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/postgres.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/responses/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/responses/base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/sharepoint.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/ssh.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/tagged.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/upload.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/watch.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/web.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/hooks/types/zoom.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/AzureClient.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/AzureGraph.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/Boto3Client.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/DropboxClient.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/ExcelHandler.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/FTPClient.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/GoogleCalendar.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/GoogleClient.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/GoogleDrive.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/GoogleGCS.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/GoogleGeocoding.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/GoogleLang.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/GooglePub.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/GoogleSheet.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/IMAPClient.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/LLMClient.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/O365Calendar.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/O365Client.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/OneDrive.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/Outlook.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/ParrotBot.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/ParrotTool.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/SOAPClient.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/SSHClient.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/Sharepoint.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/abstract.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/azure_component.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/azureauth.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/base_action.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/base_loop.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/cache.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/client.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/compress.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/copy_from_base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/copy_to.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/copy_to_file_base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/credentials.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/d2l.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/databases/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/databases/db.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/databases/documentdb.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/databases/rethink.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/dataframes/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/dataframes/abstract.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/dataframes/arrow.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/dataframes/dt.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/dataframes/pandas.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/dataframes/polars.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/db.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/db_client.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/download_from.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/env.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/file_base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/flow.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/func.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/gamma.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/google_base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/group.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/http.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/locale.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/log.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/mask.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/notification.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/parrot/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/parrot/agent.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/parrot/client.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/pipelines/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/pipelines/parrot.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/playwright.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/powerpoint.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/ppt.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/py.typed +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/qs.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/qs_base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/result.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/sassie.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/search.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/selenium/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/selenium/options.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/selenium/service.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/selenium_service.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/smartsheet.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/stat.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/t_pandas.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/table_base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/task.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/teams.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/template.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/tickets.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/upload_to.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/user.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/vectorstores/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/vectorstores/abstract.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/vectorstores/milvus.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/config.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/applicants.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/base.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/candidates.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/cost_centers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/custom_punch_field_report.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/custom_punch_field_report_rest.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/custom_report.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/import_reported_time_blocks.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/import_time_clock_events.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/job_posting_sites.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/job_postings.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/job_requisitions.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/location_hierarchy_assignments.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/locations.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/organization_single.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/organizations.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/put_time_clock_events.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/recruiting_agency_users.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/references.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/time_block_report.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/time_blocks.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/time_off_balances.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/time_requests.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/handlers/workers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/applicant.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/candidate.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/clock_event.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/cost_center.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/custom_punch_field_report.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/job_posting.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/job_posting_site.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/job_requisition.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/location.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/location_hierarchy_assignments.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/organizations.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/reference.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/time_block.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/time_off_balance.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/time_request.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/models/worker.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/applicant_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/candidate_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/cost_center_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/custom_punch_field_report_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/job_posting_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/job_posting_site_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/job_requisition_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/location_hierarchy_assignments_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/location_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/organization_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/reference_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/time_block_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/time_off_balance_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/time_request_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/parsers/worker_parsers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/service.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/utils/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/workday/utils/utils.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/zammad.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/interfaces/zoom.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/models.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/parsers/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/parsers/_yaml.pyx +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/parsers/base.pxd +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/parsers/json.pyx +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/parsers/maps.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/parsers/syntax/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/parsers/syntax/checker.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/parsers/syntax/detector.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/parsers/syntax/registry.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/parsers/syntax/report.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/parsers/syntax/schema.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/parsers/toml.pyx +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/plugins/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/plugins/components_/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/plugins/handler/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/plugins/importer.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/plugins/sources/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/scheduler/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/scheduler/handlers/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/scheduler/handlers/manager.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/scheduler/handlers/models.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/scheduler/handlers/service.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/scheduler/notifications.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/scheduler/scheduler.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/bots/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/bots/telegram.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/files/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/files/manager.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/files/model.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/files/service.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/jira/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/jira/jira_actions.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/tasks/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/tasks/launcher.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/tasks/manager.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/tasks/service.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/services/tasks/task_manager.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/storages/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/storages/exceptions.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/storages/files/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/storages/files/abstract.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/storages/files/filesystem.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/storages/tasks/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/storages/tasks/abstract.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/storages/tasks/database.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/storages/tasks/filesystem.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/storages/tasks/github.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/storages/tasks/memory.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/storages/tasks/row.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/tasks/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/tasks/command.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/tasks/pile.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/tasks/py.typed +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/tasks/task.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/tasks/workers.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/template/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/tests.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/types/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/types/typedefs.pyx +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/utils/__init__.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/utils/constants.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/utils/encoders.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/utils/executor.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/utils/functions.pyx +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/utils/json.pxi +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/utils/json.pyx +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/utils/mail.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/utils/msgraph_patch.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/utils/parseqs.pyx +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/utils/stats.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/utils/transformations.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/utils/uv.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask/utils/validators.py +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask.egg-info/SOURCES.txt +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask.egg-info/dependency_links.txt +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask.egg-info/entry_points.txt +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/flowtask.egg-info/top_level.txt +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/setup.cfg +0 -0
- {flowtask-5.12.4 → flowtask-5.12.6}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flowtask
|
|
3
|
-
Version: 5.12.
|
|
3
|
+
Version: 5.12.6
|
|
4
4
|
Summary: Framework for Task orchestration
|
|
5
5
|
Author-email: Jesus Lara <jesuslarag@gmail.com>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -64,10 +64,9 @@ Requires-Dist: datatable==1.1.0
|
|
|
64
64
|
Requires-Dist: imageio==2.37.0
|
|
65
65
|
Requires-Dist: decorator>=5.1.1
|
|
66
66
|
Requires-Dist: emoji==2.14.1
|
|
67
|
-
Requires-Dist: caio==0.9.24
|
|
68
67
|
Requires-Dist: Wand==0.6.13
|
|
69
68
|
Requires-Dist: pylibdmtx==0.1.10
|
|
70
|
-
Requires-Dist:
|
|
69
|
+
Requires-Dist: aiofiles>=24.1.0
|
|
71
70
|
Requires-Dist: filetype==1.2.0
|
|
72
71
|
Requires-Dist: proxylists>=0.14.0
|
|
73
72
|
Requires-Dist: aioftp==0.23.1
|
|
@@ -132,6 +132,11 @@ class SearchQuery(SearchInterface, FlowComponent):
|
|
|
132
132
|
f"SearchQuery: 'query' is not valid JSON — {exc}"
|
|
133
133
|
) from exc
|
|
134
134
|
|
|
135
|
+
# Apply masks to a dict query too (when 'query' is given as YAML maps,
|
|
136
|
+
# not a JSON string), so {start}/{end}-style masks work in both forms.
|
|
137
|
+
if isinstance(self.query, dict):
|
|
138
|
+
self.query = self._mask_obj(self.query)
|
|
139
|
+
|
|
135
140
|
if not self.index:
|
|
136
141
|
raise ComponentError("SearchQuery: 'index' is required.")
|
|
137
142
|
if not self.query:
|
|
@@ -140,6 +145,21 @@ class SearchQuery(SearchInterface, FlowComponent):
|
|
|
140
145
|
await self.open_search_client()
|
|
141
146
|
return True
|
|
142
147
|
|
|
148
|
+
def _mask_obj(self, obj: Any) -> Any:
|
|
149
|
+
"""Recursively apply ``mask_replacement`` to string values.
|
|
150
|
+
|
|
151
|
+
Walks a dict/list and substitutes mask placeholders (e.g. ``{start}``,
|
|
152
|
+
``{end}``, ``{today}``) in every string value, so a query written as
|
|
153
|
+
YAML maps gets the same mask handling as a JSON-string query.
|
|
154
|
+
"""
|
|
155
|
+
if isinstance(obj, dict):
|
|
156
|
+
return {k: self._mask_obj(v) for k, v in obj.items()}
|
|
157
|
+
if isinstance(obj, list):
|
|
158
|
+
return [self._mask_obj(v) for v in obj]
|
|
159
|
+
if isinstance(obj, str) and "{" in obj:
|
|
160
|
+
return self.mask_replacement(obj)
|
|
161
|
+
return obj
|
|
162
|
+
|
|
143
163
|
async def run(self) -> pandas.DataFrame:
|
|
144
164
|
"""Execute the search and return a DataFrame of results.
|
|
145
165
|
|
|
@@ -162,42 +182,48 @@ class SearchQuery(SearchInterface, FlowComponent):
|
|
|
162
182
|
self.backend,
|
|
163
183
|
)
|
|
164
184
|
max_docs = int(self.max_documents) if self.max_documents is not None else None
|
|
165
|
-
|
|
166
|
-
self.
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
if not hits:
|
|
176
|
-
self.logger.warning(
|
|
177
|
-
"SearchQuery: no documents returned from index=%r", self.index
|
|
185
|
+
try:
|
|
186
|
+
hits = await self.paginate(
|
|
187
|
+
self.index,
|
|
188
|
+
self.query,
|
|
189
|
+
mode=self.pagination,
|
|
190
|
+
size=self.size,
|
|
191
|
+
scroll=self.scroll,
|
|
192
|
+
max_documents=max_docs,
|
|
193
|
+
raw_hits=self.include_metadata,
|
|
178
194
|
)
|
|
179
|
-
df = pandas.DataFrame()
|
|
180
|
-
elif self.include_metadata:
|
|
181
|
-
records: list[dict] = []
|
|
182
|
-
for h in hits:
|
|
183
|
-
row: dict = {
|
|
184
|
-
"_id": h.get("_id", ""),
|
|
185
|
-
"_index": h.get("_index", ""),
|
|
186
|
-
}
|
|
187
|
-
if h.get("_score") is not None:
|
|
188
|
-
row["_score"] = h["_score"]
|
|
189
|
-
row.update(h.get("_source", {}))
|
|
190
|
-
records.append(row)
|
|
191
|
-
df = pandas.DataFrame(records)
|
|
192
|
-
else:
|
|
193
|
-
df = pandas.DataFrame(hits)
|
|
194
195
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
196
|
+
if not hits:
|
|
197
|
+
self.logger.warning(
|
|
198
|
+
"SearchQuery: no documents returned from index=%r", self.index
|
|
199
|
+
)
|
|
200
|
+
df = pandas.DataFrame()
|
|
201
|
+
elif self.include_metadata:
|
|
202
|
+
records: list[dict] = []
|
|
203
|
+
for h in hits:
|
|
204
|
+
row: dict = {
|
|
205
|
+
"_id": h.get("_id", ""),
|
|
206
|
+
"_index": h.get("_index", ""),
|
|
207
|
+
}
|
|
208
|
+
if h.get("_score") is not None:
|
|
209
|
+
row["_score"] = h["_score"]
|
|
210
|
+
row.update(h.get("_source", {}))
|
|
211
|
+
records.append(row)
|
|
212
|
+
df = pandas.DataFrame(records)
|
|
213
|
+
else:
|
|
214
|
+
df = pandas.DataFrame(hits)
|
|
215
|
+
|
|
216
|
+
self.logger.info(
|
|
217
|
+
"SearchQuery: result shape %s",
|
|
218
|
+
df.shape if not df.empty else "(0, 0)",
|
|
219
|
+
)
|
|
220
|
+
self._result = df
|
|
221
|
+
return df
|
|
222
|
+
finally:
|
|
223
|
+
# Source component: the connection is no longer needed once all docs
|
|
224
|
+
# are fetched. Close here so the aiohttp session is always released
|
|
225
|
+
# (even on error / if the runner does not call close()). Idempotent.
|
|
226
|
+
await self.close_search_client()
|
|
201
227
|
|
|
202
228
|
async def close(self) -> None:
|
|
203
229
|
"""Close the search client, releasing any scroll or PIT context."""
|
|
@@ -52,6 +52,45 @@ class QworkerJobExecutor(AbstractJobExecutor):
|
|
|
52
52
|
"""
|
|
53
53
|
return "qworker"
|
|
54
54
|
|
|
55
|
+
def _sanitize_kwargs(self, program: str, task: str, kwargs: dict) -> dict:
|
|
56
|
+
"""Drop kwargs that cannot be cloudpickled before queue dispatch.
|
|
57
|
+
|
|
58
|
+
The TaskWrapper is serialized with ``cloudpickle`` when handed to the
|
|
59
|
+
worker. Any kwarg holding a non-serializable object (e.g. a live uvloop
|
|
60
|
+
event loop, a DB/Redis pool, or the navconfig ``config`` singleton)
|
|
61
|
+
raises ``TypeError: no default __reduce__ due to non-trivial __cinit__``
|
|
62
|
+
and kills the whole dispatch. This guards the boundary: each kwarg is
|
|
63
|
+
probed individually, and any that fails is logged by name and removed so
|
|
64
|
+
the remaining payload still serializes.
|
|
65
|
+
|
|
66
|
+
Args:
|
|
67
|
+
program: Program slug (for log context).
|
|
68
|
+
task: Task identifier (for log context).
|
|
69
|
+
kwargs: Raw kwargs destined for the TaskWrapper constructor.
|
|
70
|
+
|
|
71
|
+
Returns:
|
|
72
|
+
A new dict containing only the serializable kwargs.
|
|
73
|
+
"""
|
|
74
|
+
import cloudpickle # lazy import
|
|
75
|
+
|
|
76
|
+
clean: dict = {}
|
|
77
|
+
for key, value in kwargs.items():
|
|
78
|
+
try:
|
|
79
|
+
cloudpickle.dumps(value)
|
|
80
|
+
except Exception as exc: # noqa: BLE001 — probe, not control flow
|
|
81
|
+
self.logger.warning(
|
|
82
|
+
"Dropping non-serializable kwarg '%s' (%s) from %s.%s "
|
|
83
|
+
"dispatch — would break cloudpickle: %s",
|
|
84
|
+
key,
|
|
85
|
+
type(value).__name__,
|
|
86
|
+
program,
|
|
87
|
+
task,
|
|
88
|
+
exc,
|
|
89
|
+
)
|
|
90
|
+
continue
|
|
91
|
+
clean[key] = value
|
|
92
|
+
return clean
|
|
93
|
+
|
|
55
94
|
def _make_wrapper(
|
|
56
95
|
self,
|
|
57
96
|
program: str,
|
|
@@ -73,6 +112,7 @@ class QworkerJobExecutor(AbstractJobExecutor):
|
|
|
73
112
|
A TaskWrapper instance ready for dispatch.
|
|
74
113
|
"""
|
|
75
114
|
from qw.wrappers import TaskWrapper # lazy import
|
|
115
|
+
kwargs = self._sanitize_kwargs(program, task, kwargs)
|
|
76
116
|
wrapper = TaskWrapper(
|
|
77
117
|
program=program,
|
|
78
118
|
task=task,
|
|
@@ -105,6 +105,18 @@ class ConfigParser(object):
|
|
|
105
105
|
default=False,
|
|
106
106
|
help="Put Task in Queue Worker",
|
|
107
107
|
)
|
|
108
|
+
self.parser.add_argument(
|
|
109
|
+
"-r",
|
|
110
|
+
"--run",
|
|
111
|
+
dest="run",
|
|
112
|
+
action="store_true",
|
|
113
|
+
default=False,
|
|
114
|
+
help=(
|
|
115
|
+
"When dispatching to the QWorker, wait for the result "
|
|
116
|
+
"(QClient.run) instead of the default fire-and-forget "
|
|
117
|
+
"queue (QClient.queue)."
|
|
118
|
+
),
|
|
119
|
+
)
|
|
108
120
|
# ── Executor selection flags (FEAT-022) ───────────────────────────────
|
|
109
121
|
self.parser.add_argument(
|
|
110
122
|
"--executor",
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# cython: embedsignature=True, boundscheck=False, wraparound=False, initializedcheck=False
|
|
2
|
+
# Copyright (C) 2018-present Jesus Lara
|
|
3
|
+
#
|
|
4
|
+
"""
|
|
5
|
+
Parsing a Task File (abstract Method)
|
|
6
|
+
"""
|
|
7
|
+
cimport cython
|
|
8
|
+
import errno
|
|
9
|
+
from pathlib import PosixPath
|
|
10
|
+
import aiofiles
|
|
11
|
+
from ..exceptions import TaskError, TaskParseError, TaskDefinition, TaskNotFound
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
cdef class TaskParser:
|
|
15
|
+
# cdef public object filename
|
|
16
|
+
|
|
17
|
+
def __init__(self, str file = None, str content = None):
|
|
18
|
+
self.filename = file
|
|
19
|
+
self.content = content
|
|
20
|
+
if file:
|
|
21
|
+
self.filename = PosixPath(file)
|
|
22
|
+
|
|
23
|
+
def task_exists(self):
|
|
24
|
+
return self.filename.exists()
|
|
25
|
+
|
|
26
|
+
def _is_eagain(self, exc):
|
|
27
|
+
"""Return True when *exc* signals EAGAIN ('Resource temporarily
|
|
28
|
+
unavailable'), regardless of the concrete exception class.
|
|
29
|
+
|
|
30
|
+
Kept as defence-in-depth: a plain ``OSError`` carries ``errno`` set
|
|
31
|
+
to EAGAIN, while native-AIO backends may surface it as a
|
|
32
|
+
``SystemError(11, ...)`` instead. Detect both shapes.
|
|
33
|
+
"""
|
|
34
|
+
if getattr(exc, 'errno', None) == errno.EAGAIN:
|
|
35
|
+
return True
|
|
36
|
+
args = getattr(exc, 'args', ())
|
|
37
|
+
return bool(args) and args[0] == errno.EAGAIN
|
|
38
|
+
|
|
39
|
+
async def open_file(self):
|
|
40
|
+
cdef str content
|
|
41
|
+
try:
|
|
42
|
+
# aiofiles delegates to a thread-pool executor (no native libaio
|
|
43
|
+
# io_setup / fs.aio-max-nr budget), so it is immune to the EAGAIN
|
|
44
|
+
# context-exhaustion seen under high Qworker concurrency.
|
|
45
|
+
async with aiofiles.open(self.filename, 'r') as fp:
|
|
46
|
+
return await fp.read()
|
|
47
|
+
except (OSError, SystemError) as e:
|
|
48
|
+
# EAGAIN: fall back to a plain blocking read so the task can
|
|
49
|
+
# still be parsed.
|
|
50
|
+
if self._is_eagain(e):
|
|
51
|
+
try:
|
|
52
|
+
with open(self.filename, 'r') as fp:
|
|
53
|
+
return fp.read()
|
|
54
|
+
except Exception as ex:
|
|
55
|
+
raise TaskNotFound(
|
|
56
|
+
f'Task {self.filename!s} IO Error: {ex!s}'
|
|
57
|
+
)
|
|
58
|
+
raise TaskError(
|
|
59
|
+
f'Task File: {self.filename!s} with Error: {e!s}'
|
|
60
|
+
)
|
|
61
|
+
except Exception as err:
|
|
62
|
+
raise TaskError(
|
|
63
|
+
f'Task File: {self.filename!s} with Error: {err!s}'
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
async def run(self):
|
|
67
|
+
cdef str content
|
|
68
|
+
content = None
|
|
69
|
+
if self.filename:
|
|
70
|
+
content = await self.open_file()
|
|
71
|
+
else:
|
|
72
|
+
content = self.content
|
|
73
|
+
return await self.parse(content)
|
|
74
|
+
|
|
75
|
+
async def parse(self, str content):
|
|
76
|
+
pass
|
|
@@ -37,13 +37,8 @@ from .utils.stats import TaskMonitor
|
|
|
37
37
|
from .parsers.argparser import ConfigParser
|
|
38
38
|
from .exceptions import (
|
|
39
39
|
TaskError,
|
|
40
|
-
TaskException,
|
|
41
40
|
NotSupported,
|
|
42
|
-
TaskParseError,
|
|
43
|
-
ConfigError
|
|
44
41
|
)
|
|
45
|
-
from .tasks.task import Task
|
|
46
|
-
from .tasks.command import Command
|
|
47
42
|
|
|
48
43
|
|
|
49
44
|
def my_handler():
|
|
@@ -52,6 +47,62 @@ def my_handler():
|
|
|
52
47
|
for task in asyncio.all_tasks():
|
|
53
48
|
task.cancel()
|
|
54
49
|
|
|
50
|
+
|
|
51
|
+
def resolve_runner_route(
|
|
52
|
+
cli_executor: str | None,
|
|
53
|
+
no_worker: bool,
|
|
54
|
+
wait_for_result: bool,
|
|
55
|
+
default_executor: str | None,
|
|
56
|
+
) -> tuple[str, str]:
|
|
57
|
+
"""Decide the executor name and execution mode for a console task.
|
|
58
|
+
|
|
59
|
+
The Runner mirrors the scheduler's priority-driven router
|
|
60
|
+
(``flowtask/scheduler/functions.py``): here the *CLI flags* — not a
|
|
61
|
+
priority string — pick whether a task runs in-process or is handed to the
|
|
62
|
+
QWorker queue. ``"local"`` is the router sentinel, NOT a force-in-process
|
|
63
|
+
selector.
|
|
64
|
+
|
|
65
|
+
Resolution (highest precedence first):
|
|
66
|
+
|
|
67
|
+
* ``cli_executor`` (``--executor=<name>``) → that executor, as-is
|
|
68
|
+
(``qworker``, ``docker``, ``k8s``, ``publish``, ``local``…).
|
|
69
|
+
* ``no_worker`` (``--no-worker``) → ``"local"`` (run in-process).
|
|
70
|
+
* otherwise → the QWorker, unless ``default_executor`` names a non-local
|
|
71
|
+
global backend (e.g. ``docker``/``k8s``), which is honoured instead.
|
|
72
|
+
|
|
73
|
+
Mode for the QWorker:
|
|
74
|
+
|
|
75
|
+
* default → ``"dispatch"`` (fire-and-forget, ``QClient.queue()``).
|
|
76
|
+
* ``wait_for_result`` (``--run``) → ``"run"`` (``QClient.run()``, waits).
|
|
77
|
+
|
|
78
|
+
Every non-QWorker executor (local/docker/k8s/…) always runs and waits, so
|
|
79
|
+
its mode is ``"run"``.
|
|
80
|
+
|
|
81
|
+
Args:
|
|
82
|
+
cli_executor: Value of the ``--executor`` flag, or ``None``.
|
|
83
|
+
no_worker: Whether ``--no-worker`` was passed.
|
|
84
|
+
wait_for_result: Whether ``--run`` was passed.
|
|
85
|
+
default_executor: The global ``DEFAULT_EXECUTOR`` conf value.
|
|
86
|
+
|
|
87
|
+
Returns:
|
|
88
|
+
A ``(executor_name, mode)`` tuple where ``mode`` is ``"run"`` or
|
|
89
|
+
``"dispatch"``.
|
|
90
|
+
"""
|
|
91
|
+
if cli_executor:
|
|
92
|
+
executor_name = cli_executor
|
|
93
|
+
elif no_worker:
|
|
94
|
+
executor_name = "local"
|
|
95
|
+
else:
|
|
96
|
+
global_default = default_executor or "local"
|
|
97
|
+
executor_name = "qworker" if global_default == "local" else global_default
|
|
98
|
+
|
|
99
|
+
if executor_name == "qworker":
|
|
100
|
+
mode = "run" if wait_for_result else "dispatch"
|
|
101
|
+
else:
|
|
102
|
+
mode = "run"
|
|
103
|
+
|
|
104
|
+
return executor_name, mode
|
|
105
|
+
|
|
55
106
|
class TaskRunner:
|
|
56
107
|
"""
|
|
57
108
|
TaskRunner.
|
|
@@ -187,55 +238,56 @@ class TaskRunner:
|
|
|
187
238
|
await self.stat.start()
|
|
188
239
|
except Exception as err:
|
|
189
240
|
raise TaskError(f"Task Runner: Error on TaskMonitor: {err}") from err
|
|
190
|
-
#
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
**self._kwargs,
|
|
200
|
-
)
|
|
201
|
-
except Exception as err:
|
|
202
|
-
raise TaskException(f"{err!s}") from err
|
|
203
|
-
elif self.task_type == "task":
|
|
204
|
-
try:
|
|
205
|
-
self._task = Task(
|
|
206
|
-
task_id=self.task_id,
|
|
207
|
-
task=self._taskname,
|
|
208
|
-
program=self._program,
|
|
209
|
-
loop=self._loop,
|
|
210
|
-
parser=self._argparser,
|
|
211
|
-
storage=self._taskstorage,
|
|
212
|
-
disable_notifications=self.no_notify,
|
|
213
|
-
no_events=self.no_events,
|
|
214
|
-
**self._kwargs,
|
|
215
|
-
)
|
|
216
|
-
except Exception as err:
|
|
217
|
-
raise TaskException(f"{err!s}") from err
|
|
218
|
-
# then, try to "start" the task:
|
|
241
|
+
# NOTE: do NOT instantiate or start a Task/Command here. Since the
|
|
242
|
+
# executor-framework refactor (TASK-073), run() resolves an executor
|
|
243
|
+
# and that executor owns the entire task lifecycle (it builds its own
|
|
244
|
+
# Task and calls start()+run()). Creating + start()ing a Task here as
|
|
245
|
+
# well caused the task to be parsed/started twice — duplicate
|
|
246
|
+
# "Starting Task" events, a duplicate local execution alongside the
|
|
247
|
+
# intended executor, and a leaked TaskMonitor sampler. start() is now
|
|
248
|
+
# only responsible for resolving the task type and the monitor; run()
|
|
249
|
+
# performs the execution.
|
|
219
250
|
logging.debug(
|
|
220
|
-
f"::: FlowTask:
|
|
251
|
+
f"::: FlowTask: Prepared {self.task_type}: {self._taskname} with id: {self.task_id}"
|
|
221
252
|
)
|
|
222
|
-
try:
|
|
223
|
-
self._task.setStat(self.stat)
|
|
224
|
-
await self._task.start()
|
|
225
|
-
except (ConfigError, TaskParseError, TaskError):
|
|
226
|
-
raise
|
|
227
|
-
except Exception as err:
|
|
228
|
-
logging.error(err)
|
|
229
|
-
raise TaskException(f"{err!s}") from err
|
|
230
253
|
return True
|
|
231
254
|
|
|
232
255
|
async def run(self):
|
|
233
|
-
from flowtask.executors.resolver import resolve_executor
|
|
256
|
+
from flowtask.executors.resolver import resolve_executor
|
|
257
|
+
from flowtask.conf import DEFAULT_EXECUTOR
|
|
234
258
|
try:
|
|
235
|
-
#
|
|
236
|
-
|
|
259
|
+
# ── Flag-driven executor router ──────────────────────────────────
|
|
260
|
+
# The Runner mirrors the scheduler's priority-driven router
|
|
261
|
+
# (flowtask/scheduler/functions.py): here the *CLI flags* — not a
|
|
262
|
+
# priority string — decide whether a console task runs in-process
|
|
263
|
+
# or is handed to the QWorker queue. "local" is the router
|
|
264
|
+
# sentinel, NOT a force-in-process flag.
|
|
265
|
+
#
|
|
266
|
+
# --no-worker → local (run in-process, wait)
|
|
267
|
+
# --executor=<name> → <name> (explicit override: qworker,
|
|
268
|
+
# docker, k8s, publish, local…)
|
|
269
|
+
# (no flag) → qworker (default dispatch)
|
|
270
|
+
#
|
|
271
|
+
# DEFAULT_EXECUTOR only switches the *global* backend (e.g. a
|
|
272
|
+
# deployment that runs everything on docker/k8s). When it is the
|
|
273
|
+
# plain "local" sentinel, normal CLI dispatch routes to the worker;
|
|
274
|
+
# an explicit non-local DEFAULT_EXECUTOR is honoured as the default
|
|
275
|
+
# backend.
|
|
276
|
+
executor_name, mode = resolve_runner_route(
|
|
277
|
+
cli_executor=getattr(self._options, "executor", None),
|
|
278
|
+
no_worker=self.no_worker,
|
|
279
|
+
wait_for_result=getattr(self._options, "run", False),
|
|
280
|
+
default_executor=DEFAULT_EXECUTOR,
|
|
281
|
+
)
|
|
282
|
+
|
|
283
|
+
# Resolve via the executor name we just decided. Setting it on the
|
|
284
|
+
# options object (instead of relying on the legacy --no-worker /
|
|
285
|
+
# --queued handling inside resolve_executor) makes the choice
|
|
286
|
+
# explicit and suppresses the deprecation warnings, exactly like
|
|
287
|
+
# the scheduler does.
|
|
288
|
+
self._options.executor = executor_name
|
|
289
|
+
task_def = {"executor": executor_name}
|
|
237
290
|
executor = resolve_executor(task_def, self._options)
|
|
238
|
-
mode = determine_execution_mode(self._options)
|
|
239
291
|
# The executor builds a fresh Task WITHOUT the CLI parser, so options
|
|
240
292
|
# that the Task only reads from the parser (run_only, ignore,
|
|
241
293
|
# override_attributes, variables, conditions) would be silently lost
|
|
@@ -240,16 +240,39 @@ class TaskScheduler:
|
|
|
240
240
|
pass
|
|
241
241
|
|
|
242
242
|
opts = _Opts()
|
|
243
|
-
opts.executor = self._executor_name
|
|
244
243
|
opts.executor_image = None
|
|
245
244
|
opts.executor_namespace = None
|
|
246
|
-
# Map legacy priority flags to no_worker / queued for the resolver.
|
|
247
245
|
opts.no_worker = False
|
|
248
|
-
opts.queued = self.priority not in ("direct", None) and not self._executor_name
|
|
249
246
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
247
|
+
# --- Routing decision -------------------------------------------------
|
|
248
|
+
# The default scheduler executor ("local" / None) is a priority-driven
|
|
249
|
+
# *router*, not a force-local flag:
|
|
250
|
+
# * priority == "local" -> "local" (run in-scheduler)
|
|
251
|
+
# * any other priority -> "qworker" (dispatch via QWorker; the
|
|
252
|
+
# qworker executor maps pub→publish, direct→run,
|
|
253
|
+
# low/high/None/<list-key>→queue)
|
|
254
|
+
# priority == "local" is normally intercepted upstream in
|
|
255
|
+
# get_function() via launch_task and never reaches here, but the branch
|
|
256
|
+
# is kept explicit so the routing decision is self-contained.
|
|
257
|
+
#
|
|
258
|
+
# An explicit executor name (qworker/docker/k8s/…) overrides the router:
|
|
259
|
+
# * "qworker" relies solely on QWorker dispatch
|
|
260
|
+
# * anything else resolves to that executor as-is
|
|
261
|
+
#
|
|
262
|
+
# We set ``opts.executor`` directly (instead of the legacy ``queued``
|
|
263
|
+
# flag) so resolve_executor() picks the executor without emitting the
|
|
264
|
+
# ``--queued is deprecated`` warning.
|
|
265
|
+
if self._executor_name in (None, "local"):
|
|
266
|
+
opts.executor = "local" if self.priority == "local" else "qworker"
|
|
267
|
+
else:
|
|
268
|
+
opts.executor = self._executor_name
|
|
269
|
+
|
|
270
|
+
# Mode: the qworker executor dispatches fire-and-forget, except
|
|
271
|
+
# "direct" which waits for the worker result (QClient.run). Every other
|
|
272
|
+
# executor (local/docker/k8s/…) runs and waits.
|
|
273
|
+
opts.queued = opts.executor == "qworker"
|
|
274
|
+
|
|
275
|
+
task_def: dict = {"executor": opts.executor}
|
|
253
276
|
|
|
254
277
|
executor = resolve_executor(task_def, opts)
|
|
255
278
|
|
|
@@ -259,6 +282,8 @@ class TaskScheduler:
|
|
|
259
282
|
}
|
|
260
283
|
|
|
261
284
|
mode = determine_execution_mode(opts)
|
|
285
|
+
if self.priority == "direct" and opts.executor == "qworker":
|
|
286
|
+
mode = "run"
|
|
262
287
|
|
|
263
288
|
if mode == "dispatch":
|
|
264
289
|
self._scheduled = True
|
|
@@ -2,7 +2,6 @@ from typing import Union
|
|
|
2
2
|
import asyncio
|
|
3
3
|
from concurrent.futures import ThreadPoolExecutor
|
|
4
4
|
import pandas as pd
|
|
5
|
-
from navconfig import config as ENV
|
|
6
5
|
from navconfig.logging import logging
|
|
7
6
|
from ...conf import DEBUG
|
|
8
7
|
from ...exceptions import (
|
|
@@ -98,11 +97,15 @@ async def launch_task(
|
|
|
98
97
|
action = "Dispatched"
|
|
99
98
|
mode = "run"
|
|
100
99
|
|
|
101
|
-
# Build extra kwargs forwarded to the executor
|
|
100
|
+
# Build extra kwargs forwarded to the executor.
|
|
101
|
+
# NOTE: do NOT forward the live navconfig ``config`` (ENV) object here.
|
|
102
|
+
# The qworker executor cloudpickles the TaskWrapper, and ``config`` holds a
|
|
103
|
+
# live uvloop event loop (Cython type, non-trivial ``__cinit__``, no
|
|
104
|
+
# ``__reduce__``) which is unpicklable. The worker rebuilds its own
|
|
105
|
+
# ``self._env = config`` inside ``Task`` anyway, so the kwarg is never read.
|
|
102
106
|
exec_kwargs = {
|
|
103
107
|
"userid": userid,
|
|
104
108
|
"priority": priority,
|
|
105
|
-
"ENV": ENV,
|
|
106
109
|
"debug": DEBUG,
|
|
107
110
|
**kwargs,
|
|
108
111
|
}
|
|
@@ -5,6 +5,7 @@ import asyncio
|
|
|
5
5
|
import uuid
|
|
6
6
|
import random
|
|
7
7
|
import locale
|
|
8
|
+
import contextlib
|
|
8
9
|
import traceback
|
|
9
10
|
from collections.abc import Callable, Awaitable
|
|
10
11
|
from abc import ABC, abstractmethod
|
|
@@ -478,4 +479,15 @@ class AbstractTask(ABC):
|
|
|
478
479
|
|
|
479
480
|
async def close(self):
|
|
480
481
|
self.set_timezone("UTC") # forcing UTC at Task End.
|
|
482
|
+
# Always stop the TaskMonitor sampler, even when the task aborts early
|
|
483
|
+
# (e.g. a parse error in get_task() makes start() return False before
|
|
484
|
+
# run() ever stops it). Its _get_current_state() loop runs forever
|
|
485
|
+
# otherwise; once orphaned it is GC'd as "Task was destroyed but it is
|
|
486
|
+
# pending!", which asyncdb escalates into a noisy error cascade.
|
|
487
|
+
# stop() is idempotent, so this is a no-op on the success path where
|
|
488
|
+
# run() already stopped it.
|
|
489
|
+
stat = getattr(self, "stat", None)
|
|
490
|
+
if stat is not None and hasattr(stat, "stop"):
|
|
491
|
+
with contextlib.suppress(Exception):
|
|
492
|
+
await stat.stop()
|
|
481
493
|
# TODO: closing Memcached-related connections
|
|
@@ -5,7 +5,7 @@ __description__ = (
|
|
|
5
5
|
"Framework for running Tasks and from CLI and API for orchestation. "
|
|
6
6
|
"Component-based Task builder/Runner for non-programmers."
|
|
7
7
|
)
|
|
8
|
-
__version__ = "5.12.
|
|
8
|
+
__version__ = "5.12.6"
|
|
9
9
|
__copyright__ = "Copyright (c) 2018-2025 Jesus Lara"
|
|
10
10
|
__author__ = "Jesus Lara"
|
|
11
11
|
__author_email__ = "jesuslarag@gmail.com"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flowtask
|
|
3
|
-
Version: 5.12.
|
|
3
|
+
Version: 5.12.6
|
|
4
4
|
Summary: Framework for Task orchestration
|
|
5
5
|
Author-email: Jesus Lara <jesuslarag@gmail.com>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -64,10 +64,9 @@ Requires-Dist: datatable==1.1.0
|
|
|
64
64
|
Requires-Dist: imageio==2.37.0
|
|
65
65
|
Requires-Dist: decorator>=5.1.1
|
|
66
66
|
Requires-Dist: emoji==2.14.1
|
|
67
|
-
Requires-Dist: caio==0.9.24
|
|
68
67
|
Requires-Dist: Wand==0.6.13
|
|
69
68
|
Requires-Dist: pylibdmtx==0.1.10
|
|
70
|
-
Requires-Dist:
|
|
69
|
+
Requires-Dist: aiofiles>=24.1.0
|
|
71
70
|
Requires-Dist: filetype==1.2.0
|
|
72
71
|
Requires-Dist: proxylists>=0.14.0
|
|
73
72
|
Requires-Dist: aioftp==0.23.1
|
|
@@ -74,10 +74,9 @@ dependencies = [
|
|
|
74
74
|
"imageio==2.37.0",
|
|
75
75
|
"decorator>=5.1.1",
|
|
76
76
|
"emoji==2.14.1",
|
|
77
|
-
"caio==0.9.24",
|
|
78
77
|
"Wand==0.6.13",
|
|
79
78
|
"pylibdmtx==0.1.10",
|
|
80
|
-
"
|
|
79
|
+
"aiofiles>=24.1.0",
|
|
81
80
|
"filetype==1.2.0",
|
|
82
81
|
"proxylists>=0.14.0",
|
|
83
82
|
"aioftp==0.23.1",
|