flowtask 5.12.14__tar.gz → 5.12.16__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.14 → flowtask-5.12.16}/PKG-INFO +5 -3
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CopyToBigQuery.py +23 -6
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DateList.py +59 -43
- flowtask-5.12.16/flowtask/components/DownloadFromGoogleDrive.py +154 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DownloadFromSFTP.py +57 -2
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DownloadFromSmartsheet.py +2 -2
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ExecuteSQL.py +5 -3
- flowtask-5.12.16/flowtask/components/FileList.py +365 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/FilterRows/FilterRows.py +1 -1
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/IteratorBase.py +147 -59
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Loop.py +86 -55
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/MarketClustering.py +2557 -207
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/MergeFileList.py +51 -16
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/MergeFiles.py +3 -1
- flowtask-5.12.16/flowtask/components/NextTask.py +104 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/OpenWithBase.py +14 -10
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/PandasIterator.py +45 -13
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ParamIterator.py +26 -8
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/PlanogramCompliance.py +1 -2
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/QueryIterator.py +24 -9
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SchedulingVisits.py +209 -35
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SubTask.py +46 -8
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/TransformRows/TransformRows.py +70 -2
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/UserFunc.py +2 -17
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/workday.py +6 -1
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tMap/tMap.py +73 -3
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/conf.py +7 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/categories.json +1 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/DownloadFromSFTP.doc.json +4 -3
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/FileList.doc.json +4 -3
- flowtask-5.12.16/flowtask/documentation/generated/components/NextTask.doc.json +60 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/SubTask.doc.json +6 -1
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/index.json +6 -1
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/tagged.py +1 -1
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/GoogleClient.py +27 -9
- flowtask-5.12.16/flowtask/interfaces/GoogleDrive.py +372 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/GoogleSheet.py +9 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/OverpassGeocoding.py +82 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/SSHClient.py +77 -38
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/Sharepoint.py +1 -1
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/base_loop.py +83 -63
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/flow.py +2 -1
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/group.py +4 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/pipelines/parrot.py +1 -2
- flowtask-5.12.16/flowtask/interfaces/skip_policy.py +186 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/smartsheet.py +1 -1
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/table_base.py +11 -5
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/parsers/maps.py +21 -4
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/parsers/syntax/registry.py +15 -6
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/tasks/abstract.py +28 -24
- flowtask-5.12.16/flowtask/tasks/chain.py +182 -0
- flowtask-5.12.16/flowtask/tasks/chainer.py +581 -0
- flowtask-5.12.16/flowtask/tasks/exchange.py +295 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/tasks/pile.py +101 -9
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/tasks/task.py +205 -32
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/utils/executor.py +32 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/version.py +1 -1
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask.egg-info/PKG-INFO +5 -3
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask.egg-info/SOURCES.txt +7 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask.egg-info/requires.txt +4 -2
- {flowtask-5.12.14 → flowtask-5.12.16}/pyproject.toml +33 -18
- flowtask-5.12.14/flowtask/components/FileList.py +0 -195
- flowtask-5.12.14/flowtask/interfaces/GoogleDrive.py +0 -127
- {flowtask-5.12.14 → flowtask-5.12.16}/CONTRIBUTING.md +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/INSTALL +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/LICENSE +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/MANIFEST.in +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/README.md +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/__main__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/bots/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/bots/check.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/bots/codebot.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ASPX.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ATT.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/AddDataset.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Amazon.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/AutoTask.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Azure.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/AzureUsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/BaseAction.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/BaseLoop.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/BestBuy.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CSVToGCS.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CallAnalysis.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CallSummary.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CensusData.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CensusVariables.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CompanyScraper/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CompanyScraper/parsers/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CompanyScraper/parsers/base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CompanyScraper/parsers/explorium.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CompanyScraper/parsers/leadiq.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CompanyScraper/parsers/rocket.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CompanyScraper/parsers/siccode.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CompanyScraper/parsers/visualvisitor.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CompanyScraper/parsers/zoominfo.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CompanyScraper/scrapper.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CopyFromBase.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CopyFromS3.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CopyFromSharepoint.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CopyTo.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CopyToFileBase.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CopyToMongoDB.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CopyToPg.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CopyToRethink.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CopyToS3.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CopyToSharepoint.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Costco.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CreateGCSBucket.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CreateReport/CreateReport.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CreateReport/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CreateReport/charts/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CreateReport/charts/bar.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CreateReport/charts/base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CreateReport/charts/pie.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CreateReport/utils.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/CustomerSatisfaction.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DataInput.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DbClient.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DialPad.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DispatchMe.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DocumentDBQuery.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DownloadFrom.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DownloadFromD2L.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DownloadFromFTP.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DownloadFromGamma.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DownloadFromIMAP.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DownloadFromS3.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DownloadFromSharepoint.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DownloadFromSmartSheet.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DownloadS3File.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Dummy.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/DuplicatePhoto.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/EmployeeEvaluation.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ExtractHTML.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ExtractTranscript.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/FileBase.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/FileCopy.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/FileDelete.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/FileExists.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/FileIteratorDelete.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/FileOpen.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/FileRead.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/FileRename.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/FilterIf.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/FilterRows/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/FilterRows/functions.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/GCSToBigQuery.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/GenData.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/GoogleA4.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/GoogleGeoCoding.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/GooglePlaces.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/GoogleSearch.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/HTTPClient.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ICIMS.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/IF.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/IcimsFolderCopy.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ImageFeatures/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ImageFeatures/process.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/LeadIQ.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Lowes.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/MS365Usage.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/MSTeamsMessages.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/MarkdownMaker.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/MilvusOutput.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NearByStores.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/models/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/models/abstract.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/models/account.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/models/client.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/models/district.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/models/events.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/models/forms.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/models/market.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/models/organization.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/models/photos.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/models/project.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/models/region.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/models/store.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/models/user.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinja/router.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NetworkNinjaClaims.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/NextStopAgent.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Odoo.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/OdooInjector.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/OpenFromXML.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/OpenStreetMap.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/OpenWeather.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/OpenWithPandas.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/PDFGenerator.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/PGPDecrypt.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/PandasToFile.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/PandasToPowerPoint.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Paradox.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ParrotKnowledgeBuilder/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ParrotKnowledgeBuilder/loader.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ParrotKnowledgeBuilder/payload.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ParrotLoader/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ParrotLoader/loader.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ParseHTML.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/PgVectorOutput.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/PlacerStores.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/PodcastMaker.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Pokemon.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/PositiveBot.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/PowerPointSlide.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/PrintMessage.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductCompetitors/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductCompetitors/parsers/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductCompetitors/parsers/base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductCompetitors/parsers/bestbuy.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductCompetitors/parsers/lowes.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductCompetitors/scrapper.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductCompliant.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductInfo/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductInfo/parsers/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductInfo/parsers/base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductInfo/parsers/brother.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductInfo/parsers/canon.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductInfo/parsers/epson.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductInfo/parsers/hp.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductInfo/parsers/samsung.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductInfo/scraper.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductPricing.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ProductReportBot.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/QS.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/QSBase.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/QueryToInsert.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/QueryToPandas.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/RESTClient.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/RethinkDBQuery.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Rsync.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/RunSSH.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/RunShell.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SAPExtraction.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SMSAnalysis.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SMSSummary.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SalesForce.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Sassie.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SaveImageBank/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ScrapPage.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ScrapSearch.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ScrapTool.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SearchQuery.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SendEmail.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SendNotify/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SendNotify/component.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SendNotify/models/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SendNotify/models/abstract.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SendNotify/models/zoom.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SentimentAnalysis.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ServiceScraperStores/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ServiceScraperStores/retailers/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ServiceScraperStores/retailers/base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ServiceScraperStores/retailers/costco.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ServiceScraperStores/retailers/tractor_supply.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ServiceScraperStores/retailers/verizon.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ServiceScraperStores/scraper.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ServiceScrapper/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ServiceScrapper/parsers/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ServiceScrapper/parsers/base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ServiceScrapper/parsers/costco.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ServiceScrapper/scrapper.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SetVariables.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SplitPDF.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Staples.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SuiteCRM.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SweetSpotScore/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SweetSpotScore/component.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/SweetSpotScore/layers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Switch.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/TableBase.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/TableDelete.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/TableInput.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/TableOutput/TableOutput.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/TableOutput/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/TableSchema.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Target.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ThumbnailGenerator.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ToPandas.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/TransformRows/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/TransformRows/functions.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/TransposeRows.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/UPCDatabase.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/UnGzip.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Uncompress.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/UniqueRows.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Unzip.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/UpdateOperationalVars.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/UploadTo.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/UploadToS3.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/UploadToSFTP.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/UploadToSharepoint.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/VideoUnderstanding.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/VivaTracker.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/WSDLClient.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Wait.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Walmart.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/applicant.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/candidate.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/cost_center.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/custom_punch_field_report.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/job_posting.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/job_posting_site.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/job_requisition.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/location.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/location_hierarchy_assignments.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/organizations.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/reference.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/time_block.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/time_off_balance.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/time_request.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/models/worker.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/applicant_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/candidate_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/cost_center_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/custom_punch_field_report_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/job_posting_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/job_posting_site_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/job_requisition_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/location_hierarchy_assignments_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/location_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/organization_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/reference_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/time_block_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/time_off_balance_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/time_request_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/parsers/worker_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/applicants.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/candidates.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/cost_centers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/custom_punch_field_report.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/custom_punch_field_report_rest.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/custom_report.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/job_posting_sites.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/job_postings.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/job_requisitions.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/location_hierarchy_assignments.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/locations.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/organization_single.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/organizations.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/recruiting_agency_users.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/references.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/time_block_report.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/time_blocks.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/time_off_balances.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/time_requests.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/types/workers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/utils/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workday/utils/utils.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/WorkdayReport.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Workplace.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/XMLToPandas.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Zammad/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Zammad/models.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/Zoom.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ZoomInfoScraper.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/ZoomUs.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/_census/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/_census/cache.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/_census/fetch.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/_census/resolver.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/_census/transform.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/abstract.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/flow.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/gendata/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/gendata/date_sequence.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/gendata/static_list.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/google.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/group.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/pandas_io.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/py.typed +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/reviewscrap.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tAddTotalRow.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tAutoincrement.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tConcat.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tConditionalMultiply.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tCrosstab.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tDictKey.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tExplode.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tFilter.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tFilterCommonValues.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tFlatten.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tFrequencyWeights.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tGroup.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tJoin.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tMap/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tMap/functions.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tMelt.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tMerge.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tOrder.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tPandas.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tPivot.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tPluckCols.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/tUnnest.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/components/user.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/cli.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/ASPX.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/AddDataset.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/AutoTask.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/AzureUsers.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/CallAnalysis.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/CallSummary.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/CompanyScraper.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/CopyFromS3.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/CopyFromSharepoint.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/CopyToBigQuery.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/CopyToMongoDB.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/CopyToPg.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/CopyToRethink.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/CopyToS3.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/CopyToSharepoint.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/CreateReport.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/CustomerSatisfaction.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/DataInput.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/DateList.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/DialPad.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/DownloadFromD2L.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/DownloadFromFTP.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/DownloadFromIMAP.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/DownloadFromS3.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/DownloadFromSharepoint.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/DownloadFromSmartSheet.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/DownloadFromSmartsheet.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/EmployeeEvaluation.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/ExecuteSQL.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/ExtractTranscript.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/FileCopy.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/FileDelete.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/FileExists.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/FileIteratorDelete.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/FileOpen.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/FileRead.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/FileRename.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/FilterIf.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/FilterRows.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/GoogleA4.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/GoogleGeoCoding.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/GoogleSearch.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/HTTPClient.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/ICIMS.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/IteratorBase.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/LeadIQ.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/MS365Usage.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/MSTeamsMessages.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/MergeFileList.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/MergeFiles.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/NetworkNinjaClaims.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/Odoo.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/OdooInjector.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/OpenFromXML.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/OpenWithBase.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/OpenWithPandas.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/PGPDecrypt.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/PandasIterator.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/PandasToFile.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/Paradox.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/ParamIterator.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/PlacerStores.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/Pokemon.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/PositiveBot.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/PowerPointSlide.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/PrintMessage.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/ProductCompliant.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/ProductPricing.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/ProductReportBot.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/QS.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/QueryIterator.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/QueryToInsert.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/QueryToPandas.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/RESTClient.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/RunShell.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/SAPExtraction.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/Sassie.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/ScrapTool.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/SearchQuery.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/SendNotify.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/SentimentAnalysis.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/ServiceScrapper.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/SetVariables.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/SplitPDF.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/SuiteCRM.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/TableDelete.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/TableInput.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/TableOutput.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/TableSchema.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/ThumbnailGenerator.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/TransformRows.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/TransposeRows.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/UnGzip.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/Uncompress.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/UniqueRows.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/Unzip.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/UploadToS3.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/UploadToSFTP.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/UploadToSharepoint.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/UserFunc.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/Zoom.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/ZoomInfoScraper.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tAutoincrement.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tConcat.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tConditionalMultiply.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tCrosstab.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tExplode.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tFilter.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tFilterCommonValues.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tFrequencyWeights.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tGroup.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tJoin.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tMap.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tMelt.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tOrder.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tPivot.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tPluckCols.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generated/components/tUnnest.doc.json +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/generator.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/models.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/parser.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/schema.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/documentation/toolkit.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/download.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/abstract.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/alerts/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/alerts/colfunctions.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/alerts/functions.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/dummy.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/exec.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/file/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/file/base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/file/copy.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/file/delete.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/interfaces/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/interfaces/client.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/interfaces/credentials.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/interfaces/notifications.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/jira.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/log.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/logerr.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/notify.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/notify_event.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/publish.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/sendfile.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/task.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/teams.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/events/webhook.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/events/manager.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/exceptions.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/executors/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/executors/base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/executors/docker.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/executors/events.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/executors/exceptions.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/executors/k8s.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/executors/local.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/executors/models.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/executors/publish.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/executors/qworker.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/executors/registry.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/executors/resolver.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/extensions/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/extensions/abstract.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/extensions/component_docs.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/extensions/logging/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/factory/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/factory/agent.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/factory/composer.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/factory/parser.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/factory/validator.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/handlers/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/handlers/component.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/actions/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/actions/abstract.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/actions/dummy.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/actions/jira.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/actions/rest.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/actions/sampledata.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/actions/sensor.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/actions/task.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/actions/ticket.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/actions/zammad.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/actions/zoom_event.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/hook.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/models.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/service.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/step.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/brokers/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/brokers/base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/brokers/mqtt.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/brokers/rabbitmq.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/brokers/redis.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/brokers/sqs.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/fs.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/http.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/imap.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/jira.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/mail.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/postgres.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/responses/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/responses/base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/sharepoint.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/ssh.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/upload.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/watch.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/web.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/hooks/types/zoom.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/AzureClient.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/AzureGraph.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/Boto3Client.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/DropboxClient.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/ExcelHandler.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/FTPClient.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/GoogleCalendar.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/GoogleGCS.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/GoogleGeocoding.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/GoogleLang.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/GooglePub.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/IMAPClient.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/LLMClient.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/O365Calendar.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/O365Client.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/OneDrive.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/Outlook.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/ParrotBot.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/ParrotTool.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/SOAPClient.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/abstract.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/azure_component.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/azureauth.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/base_action.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/cache.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/client.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/compress.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/copy_from_base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/copy_to.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/copy_to_file_base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/credentials.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/d2l.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/databases/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/databases/db.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/databases/documentdb.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/databases/rethink.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/dataframes/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/dataframes/abstract.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/dataframes/arrow.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/dataframes/dt.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/dataframes/pandas.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/dataframes/polars.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/db.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/db_client.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/download_from.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/env.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/file_base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/func.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/gamma.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/google_base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/http.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/locale.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/log.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/mask.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/notification.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/parrot/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/parrot/agent.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/parrot/client.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/pipelines/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/playwright.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/powerpoint.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/ppt.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/py.typed +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/qs.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/qs_base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/result.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/routing.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/sassie.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/scoring/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/scoring/abstract.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/scoring/engine.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/scoring/extractors/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/scoring/extractors/count.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/scoring/extractors/gravity.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/scoring/extractors/nearest.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/scoring/models.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/scoring/service.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/scoring/spatial.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/search.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/selenium/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/selenium/options.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/selenium/service.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/selenium_service.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/stat.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/t_pandas.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/task.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/teams.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/template.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/tickets.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/upload_to.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/user.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/vectorstores/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/vectorstores/abstract.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/vectorstores/milvus.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/config.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/applicants.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/base.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/candidates.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/cost_centers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/custom_punch_field_report.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/custom_punch_field_report_rest.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/custom_report.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/import_reported_time_blocks.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/import_time_clock_events.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/job_posting_sites.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/job_postings.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/job_requisitions.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/location_hierarchy_assignments.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/locations.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/organization_single.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/organizations.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/put_time_clock_events.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/recruiting_agency_users.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/references.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/time_block_report.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/time_blocks.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/time_off_balances.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/time_requests.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/handlers/workers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/applicant.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/candidate.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/clock_event.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/cost_center.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/custom_punch_field_report.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/job_posting.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/job_posting_site.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/job_requisition.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/location.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/location_hierarchy_assignments.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/organizations.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/reference.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/time_block.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/time_off_balance.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/time_request.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/models/worker.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/applicant_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/candidate_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/cost_center_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/custom_punch_field_report_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/job_posting_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/job_posting_site_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/job_requisition_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/location_hierarchy_assignments_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/location_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/organization_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/reference_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/time_block_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/time_off_balance_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/time_request_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/parsers/worker_parsers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/rest.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/service.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/utils/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/workday/utils/utils.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/zammad.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/interfaces/zoom.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/models.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/parsers/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/parsers/_yaml.pyx +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/parsers/argparser.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/parsers/base.pxd +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/parsers/base.pyx +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/parsers/json.pyx +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/parsers/syntax/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/parsers/syntax/checker.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/parsers/syntax/detector.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/parsers/syntax/report.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/parsers/syntax/schema.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/parsers/toml.pyx +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/plugins/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/plugins/components_/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/plugins/handler/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/plugins/importer.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/plugins/sources/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/runner.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/scheduler/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/scheduler/functions.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/scheduler/handlers/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/scheduler/handlers/manager.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/scheduler/handlers/models.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/scheduler/handlers/service.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/scheduler/notifications.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/scheduler/scheduler.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/bots/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/bots/telegram.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/files/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/files/manager.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/files/model.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/files/service.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/jira/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/jira/jira_actions.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/maintenance/README.md +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/maintenance/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/maintenance/changelog.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/maintenance/handlers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/maintenance/health.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/maintenance/models.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/maintenance/service.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/maintenance/store.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/maintenance/templates.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/maintenance/windows.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/tasks/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/tasks/launcher.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/tasks/manager.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/tasks/service.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/tasks/task_manager.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/services/tasks/tasks.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/storages/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/storages/exceptions.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/storages/files/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/storages/files/abstract.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/storages/files/filesystem.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/storages/tasks/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/storages/tasks/abstract.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/storages/tasks/database.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/storages/tasks/filesystem.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/storages/tasks/github.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/storages/tasks/memory.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/storages/tasks/row.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/tasks/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/tasks/command.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/tasks/py.typed +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/tasks/workers.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/template/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/tests.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/types/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/types/typedefs.pyx +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/utils/__init__.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/utils/constants.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/utils/encoders.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/utils/functions.pyx +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/utils/json.pxi +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/utils/json.pyx +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/utils/mail.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/utils/msgraph_patch.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/utils/parseqs.pyx +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/utils/stats.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/utils/transformations.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/utils/uv.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask/utils/validators.py +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask.egg-info/dependency_links.txt +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask.egg-info/entry_points.txt +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/flowtask.egg-info/top_level.txt +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/setup.cfg +0 -0
- {flowtask-5.12.14 → flowtask-5.12.16}/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.16
|
|
4
4
|
Summary: Framework for Task orchestration
|
|
5
5
|
Author-email: Jesus Lara <jesuslarag@gmail.com>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -73,9 +73,8 @@ Requires-Dist: aioftp==0.23.1
|
|
|
73
73
|
Requires-Dist: py7zr==0.22.0
|
|
74
74
|
Requires-Dist: rarfile==4.2
|
|
75
75
|
Requires-Dist: python-pptx==1.0.2
|
|
76
|
-
Requires-Dist: gspread==6.2.0
|
|
77
|
-
Requires-Dist: oauth2client>=4.1.3
|
|
78
76
|
Requires-Dist: google-auth>=2.35.0
|
|
77
|
+
Requires-Dist: google-api-python-client>=2.198.0
|
|
79
78
|
Requires-Dist: google-cloud-language>=2.15.0
|
|
80
79
|
Requires-Dist: googlemaps==4.10.0
|
|
81
80
|
Requires-Dist: fastavro==1.9.7
|
|
@@ -119,6 +118,8 @@ Requires-Dist: microsoft-kiota-authentication-azure~=1.9
|
|
|
119
118
|
Requires-Dist: msgraph-sdk~=1.22
|
|
120
119
|
Requires-Dist: zendriver>=0.15.2
|
|
121
120
|
Requires-Dist: pyarrow>=14.0
|
|
121
|
+
Requires-Dist: redis>=5.2
|
|
122
|
+
Requires-Dist: cloudpickle>=3.1
|
|
122
123
|
Requires-Dist: scipy>=1.13
|
|
123
124
|
Requires-Dist: scikit-learn>=1.5
|
|
124
125
|
Requires-Dist: polyline>=2.0.4
|
|
@@ -145,6 +146,7 @@ Requires-Dist: pytest-xdist==3.3.1; extra == "dev"
|
|
|
145
146
|
Requires-Dist: pytest-assume==2.4.3; extra == "dev"
|
|
146
147
|
Requires-Dist: ruff; extra == "dev"
|
|
147
148
|
Requires-Dist: aioresponses>=0.7.8; extra == "dev"
|
|
149
|
+
Requires-Dist: fakeredis[aioredis]>=2.26; extra == "dev"
|
|
148
150
|
Dynamic: license-file
|
|
149
151
|
|
|
150
152
|
# FlowTask #
|
|
@@ -14,7 +14,6 @@ from ..interfaces.copy_to import CopyTo
|
|
|
14
14
|
from ..interfaces.dataframes import PandasDataframe
|
|
15
15
|
from ..exceptions import (
|
|
16
16
|
ComponentError,
|
|
17
|
-
DataNotFound
|
|
18
17
|
)
|
|
19
18
|
from querysource.conf import (
|
|
20
19
|
BIGQUERY_CREDENTIALS,
|
|
@@ -305,7 +304,7 @@ class CopyToBigQuery(CopyTo, PandasDataframe):
|
|
|
305
304
|
|
|
306
305
|
async def _truncate_table(self):
|
|
307
306
|
"""Truncate the BigQuery table using the driver's built-in method."""
|
|
308
|
-
async with await self._connection.connection()
|
|
307
|
+
async with await self._connection.connection():
|
|
309
308
|
await self._connection.truncate_table(
|
|
310
309
|
table_id=self.tablename,
|
|
311
310
|
dataset_id=self.schema
|
|
@@ -421,7 +420,7 @@ class CopyToBigQuery(CopyTo, PandasDataframe):
|
|
|
421
420
|
table_ref,
|
|
422
421
|
job_config=job_config
|
|
423
422
|
)
|
|
424
|
-
|
|
423
|
+
load_job.result() # Wait for completion
|
|
425
424
|
self._logger.info(f'CopyTo: Loaded {len(records)} rows into {table_ref}')
|
|
426
425
|
|
|
427
426
|
async def _copy_with_json_loader(self, json_columns, column_types):
|
|
@@ -656,9 +655,27 @@ class CopyToBigQuery(CopyTo, PandasDataframe):
|
|
|
656
655
|
if pd.api.types.is_datetime64_any_dtype(converted_df[col]):
|
|
657
656
|
converted_df[col] = pd.to_datetime(converted_df[col]).dt.date
|
|
658
657
|
self._logger.debug(f'CopyTo: Converted {col} to DATE (BigQuery schema type)')
|
|
659
|
-
elif pd.api.types.
|
|
660
|
-
# Unix
|
|
661
|
-
|
|
658
|
+
elif pd.api.types.is_numeric_dtype(converted_df[col]):
|
|
659
|
+
# Numeric DATE values represent Unix timestamps. This also
|
|
660
|
+
# converts an all-null float column to Python None values
|
|
661
|
+
# instead of passing float64/NaN to PyArrow as DATE.
|
|
662
|
+
dates = pd.to_datetime(
|
|
663
|
+
converted_df[col], unit="s", errors="coerce"
|
|
664
|
+
).dt.date
|
|
665
|
+
converted_df[col] = dates.astype(object).where(
|
|
666
|
+
dates.notna(), None
|
|
667
|
+
)
|
|
668
|
+
self._logger.debug(
|
|
669
|
+
f"CopyTo: Converted {col} to DATE (from numeric values)"
|
|
670
|
+
)
|
|
671
|
+
elif not pd.api.types.is_object_dtype(converted_df[col]):
|
|
672
|
+
dates = pd.to_datetime(converted_df[col], errors="coerce").dt.date
|
|
673
|
+
converted_df[col] = dates.astype(object).where(
|
|
674
|
+
dates.notna(), None
|
|
675
|
+
)
|
|
676
|
+
self._logger.debug(
|
|
677
|
+
f"CopyTo: Converted {col} to DATE (BigQuery schema type)"
|
|
678
|
+
)
|
|
662
679
|
|
|
663
680
|
# Handle DATETIME type
|
|
664
681
|
elif bq_type == "DATETIME":
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
-
import logging
|
|
3
2
|
import datetime
|
|
4
3
|
import builtins
|
|
5
4
|
from dateutil.relativedelta import relativedelta
|
|
6
5
|
from numbers import Number
|
|
7
6
|
from collections.abc import Callable
|
|
8
7
|
from asyncdb.exceptions import NoDataFound, ProviderError
|
|
9
|
-
from querysource.exceptions import DataNotFound
|
|
10
8
|
from querysource.utils.functions import format_date
|
|
11
9
|
import querysource.utils.functions as qsfunctions
|
|
12
|
-
from ..exceptions import ComponentError, NotSupported
|
|
10
|
+
from ..exceptions import ComponentError, NotSupported, DataNotFound
|
|
11
|
+
from ..interfaces.skip_policy import (
|
|
12
|
+
ConsecutiveFailureTracker,
|
|
13
|
+
SKIPPED_ITERATION,
|
|
14
|
+
)
|
|
13
15
|
from ..utils import fnExecutor
|
|
14
16
|
from .IteratorBase import IteratorBase
|
|
15
17
|
|
|
@@ -228,47 +230,61 @@ class DateList(IteratorBase):
|
|
|
228
230
|
job.close()
|
|
229
231
|
|
|
230
232
|
async def run(self):
|
|
231
|
-
"""
|
|
232
|
-
|
|
233
|
+
"""Itera el rango de fechas ejecutando el paso siguiente por fecha.
|
|
234
|
+
|
|
235
|
+
Contrato tras FEAT-554 (spec §3 M3):
|
|
236
|
+
- `DataNotFound`/`NoDataFound`: `continue` INCONDICIONAL (D3) y **no**
|
|
237
|
+
cuenta para el umbral -- verified: DateList.py:247-252
|
|
238
|
+
- Familias no-de-datos: `async_job` ya aplico `skipError`; si llega
|
|
239
|
+
una excepcion aqui, la politica era ENFORCE y se propaga
|
|
240
|
+
- Aborta cuando los fallos CONSECUTIVOS alcanzan
|
|
241
|
+
`self.max_consecutive_failures` (0/None desactiva), con
|
|
242
|
+
`tracker.last_error` como causa
|
|
243
|
+
|
|
244
|
+
Returns:
|
|
245
|
+
`True` si hubo al menos una iteracion util y no se abortó; `False`
|
|
246
|
+
si no se completo ninguna. El veredicto NO depende del `status` de
|
|
247
|
+
la ultima vuelta (S8, §7 #10).
|
|
248
|
+
"""
|
|
233
249
|
if not self._iterator:
|
|
234
250
|
return False
|
|
235
|
-
if self.iterate:
|
|
236
|
-
# iterate over next task
|
|
237
|
-
step, target, params = self.get_step()
|
|
238
|
-
step_name = step.name
|
|
239
|
-
for d in self._iterator:
|
|
240
|
-
dt = format_date(d, self._format)
|
|
241
|
-
|
|
242
|
-
self.setAttributes(dt)
|
|
243
|
-
job = self.createJob(target, params, dt, d)
|
|
244
|
-
if job:
|
|
245
|
-
try:
|
|
246
|
-
status = await self.async_job(job, step_name)
|
|
247
|
-
except (NoDataFound, DataNotFound) as err:
|
|
248
|
-
# its a data component a no data was found
|
|
249
|
-
logging.debug(
|
|
250
|
-
f"Data not Found for Task {step_name}, Error: {err}"
|
|
251
|
-
)
|
|
252
|
-
continue
|
|
253
|
-
except (ProviderError, ComponentError) as err:
|
|
254
|
-
raise ComponentError(
|
|
255
|
-
f"Error running Component {step_name}, error: {err}"
|
|
256
|
-
) from err
|
|
257
|
-
except NotSupported as err:
|
|
258
|
-
raise NotSupported(
|
|
259
|
-
f"Not Supported: Error on Component {step_name}, error: {err}"
|
|
260
|
-
) from err
|
|
261
|
-
except Exception as err:
|
|
262
|
-
raise ComponentError(
|
|
263
|
-
f"DateList: Component Error on {step_name}, error: {err}"
|
|
264
|
-
) from err
|
|
265
|
-
finally:
|
|
266
|
-
await self.close(job)
|
|
267
|
-
if status is False:
|
|
268
|
-
return False
|
|
269
|
-
else:
|
|
270
|
-
return True
|
|
271
|
-
else:
|
|
272
|
-
# return the list of date
|
|
251
|
+
if not self.iterate:
|
|
273
252
|
self._result = list(self._iterator)
|
|
274
253
|
return True
|
|
254
|
+
step, target, params = self.get_step()
|
|
255
|
+
step_name = step.name
|
|
256
|
+
tracker = ConsecutiveFailureTracker(self.max_consecutive_failures)
|
|
257
|
+
for d in self._iterator:
|
|
258
|
+
dt = format_date(d, self._format)
|
|
259
|
+
self.setAttributes(dt)
|
|
260
|
+
job = self.createJob(target, params, dt, d)
|
|
261
|
+
if not job:
|
|
262
|
+
continue
|
|
263
|
+
try:
|
|
264
|
+
status = await self.async_job(job, step_name)
|
|
265
|
+
except (NoDataFound, DataNotFound) as err:
|
|
266
|
+
# D3: continue INCONDICIONAL, y NO cuenta para el umbral.
|
|
267
|
+
self._logger.debug(
|
|
268
|
+
f"Data not Found for Task {step_name} at {dt}, Error: {err}"
|
|
269
|
+
)
|
|
270
|
+
continue
|
|
271
|
+
except (ProviderError, ComponentError, NotSupported):
|
|
272
|
+
# async_job ya consulto skipError: si llega aqui era ENFORCE.
|
|
273
|
+
raise
|
|
274
|
+
except Exception as err:
|
|
275
|
+
raise ComponentError(
|
|
276
|
+
f"DateList: Component Error on {step_name} at {dt}, error: {err}"
|
|
277
|
+
) from err
|
|
278
|
+
|
|
279
|
+
if status is SKIPPED_ITERATION:
|
|
280
|
+
should_abort = tracker.record_skip(ComponentError(f"Skipped iteration at {dt}"))
|
|
281
|
+
if should_abort:
|
|
282
|
+
tracker.publish(self)
|
|
283
|
+
raise ComponentError(
|
|
284
|
+
f"DateList: Aborted due to {tracker.consecutive} consecutive failures at {dt}. Last error: {tracker.last_error}"
|
|
285
|
+
) from tracker.last_error
|
|
286
|
+
else:
|
|
287
|
+
tracker.record_success()
|
|
288
|
+
|
|
289
|
+
tracker.publish(self)
|
|
290
|
+
return tracker.successes > 0
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
from collections.abc import Callable
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
from typing import Any, Dict, List, Optional
|
|
5
|
+
from ..exceptions import FileError, FileNotFound
|
|
6
|
+
from ..interfaces.GoogleDrive import GoogleDriveClient
|
|
7
|
+
from ..interfaces.download_from import DownloadFromBase
|
|
8
|
+
from ..utils import SafeDict
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class DownloadFromGoogleDrive(GoogleDriveClient, DownloadFromBase):
|
|
12
|
+
"""
|
|
13
|
+
DownloadFromGoogleDrive.
|
|
14
|
+
|
|
15
|
+
**Overview**
|
|
16
|
+
|
|
17
|
+
Downloads (or, for native Google Docs/Sheets/Slides/Drawings,
|
|
18
|
+
exports) files from Google Drive using a service account. Supports
|
|
19
|
+
lookup by Drive ``file_id``, exact ``filename``, or
|
|
20
|
+
``pattern``/``extension`` search scoped to a ``directory`` (folder
|
|
21
|
+
path, resolved by segment — Drive has no literal paths). When no
|
|
22
|
+
``filename``/``pattern`` is given, matches every file directly under
|
|
23
|
+
``directory``; with ``recursive: true``, descends into subfolders
|
|
24
|
+
too.
|
|
25
|
+
|
|
26
|
+
**Properties** (inherited from ``DownloadFromBase`` and ``GoogleClient``)
|
|
27
|
+
|
|
28
|
+
| Name | Required | Summary |
|
|
29
|
+
|---------------|----------|---------------------------------------------------------------------|
|
|
30
|
+
| credentials | No | Service account credentials override (path, JSON string, or dict). |
|
|
31
|
+
| | | Defaults to ``GOOGLE_CREDENTIALS_FILE`` when omitted. |
|
|
32
|
+
| file | Yes* | Search spec dict (or list of dicts): ``file_id`` \\| ``filename`` \\| |
|
|
33
|
+
| | | ``pattern``/``extension`` + ``directory`` + ``recursive``. |
|
|
34
|
+
| source | Yes* | Alternate spelling of ``file`` (destination-style tasks). |
|
|
35
|
+
| destination | Yes | ``directory`` (required), optional ``filename``/``export_format``. |
|
|
36
|
+
|
|
37
|
+
\\* Exactly one of ``file`` or ``source`` must be provided.
|
|
38
|
+
|
|
39
|
+
Example:
|
|
40
|
+
|
|
41
|
+
```yaml
|
|
42
|
+
DownloadFromGoogleDrive:
|
|
43
|
+
file:
|
|
44
|
+
file_id: "1t8W6lNVTH1Z0DDG0IHpCgAu7ALtHMJNQz8YpaVz2J1o"
|
|
45
|
+
destination:
|
|
46
|
+
directory: "/home/ubuntu/symbits/pharmabox/files/"
|
|
47
|
+
filename: "MasterProductList.xlsx"
|
|
48
|
+
export_format: "xlsx"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```yaml
|
|
52
|
+
DownloadFromGoogleDrive:
|
|
53
|
+
file:
|
|
54
|
+
pattern: "*MPL*"
|
|
55
|
+
extension: "xlsx"
|
|
56
|
+
directory: "Pharmabox/Reports"
|
|
57
|
+
destination:
|
|
58
|
+
directory: "/home/ubuntu/symbits/pharmabox/files/"
|
|
59
|
+
```
|
|
60
|
+
"""
|
|
61
|
+
_version = "1.0.0"
|
|
62
|
+
|
|
63
|
+
def __init__(
|
|
64
|
+
self,
|
|
65
|
+
loop: asyncio.AbstractEventLoop = None,
|
|
66
|
+
job: Callable = None,
|
|
67
|
+
stat: Callable = None,
|
|
68
|
+
**kwargs,
|
|
69
|
+
):
|
|
70
|
+
self.export_format: Optional[str] = None
|
|
71
|
+
self._srcfiles: List[Dict[str, Any]] = []
|
|
72
|
+
self._filenames: List[str] = []
|
|
73
|
+
super().__init__(loop=loop, job=job, stat=stat, **kwargs)
|
|
74
|
+
|
|
75
|
+
def processing_credentials(self):
|
|
76
|
+
"""No-op override.
|
|
77
|
+
|
|
78
|
+
``GoogleClient.__init__`` already fully resolves credentials into
|
|
79
|
+
``credentials_file``/``credentials_dict``/``credentials_str`` from
|
|
80
|
+
the ``credentials`` constructor kwarg. There is no per-field
|
|
81
|
+
env-var substitution step to run the way
|
|
82
|
+
``CredentialsInterface.processing_credentials()`` does for
|
|
83
|
+
username/password-style dict credentials, so this is intentionally
|
|
84
|
+
a no-op — it exists only so ``DownloadFromBase.start()`` (which
|
|
85
|
+
calls ``self.processing_credentials()`` unconditionally) has
|
|
86
|
+
something to call, since ``GoogleClient`` doesn't provide one.
|
|
87
|
+
"""
|
|
88
|
+
return None
|
|
89
|
+
|
|
90
|
+
async def start(self, **kwargs):
|
|
91
|
+
await super(DownloadFromGoogleDrive, self).start(**kwargs)
|
|
92
|
+
self._started = True
|
|
93
|
+
|
|
94
|
+
self._srcfiles = []
|
|
95
|
+
if hasattr(self, "file"):
|
|
96
|
+
spec_source = self.file
|
|
97
|
+
elif hasattr(self, "source"):
|
|
98
|
+
spec_source = self.source
|
|
99
|
+
else:
|
|
100
|
+
raise FileError(
|
|
101
|
+
"DownloadFromGoogleDrive: either 'file' or 'source' must be provided"
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
if isinstance(spec_source, list):
|
|
105
|
+
for entry in spec_source:
|
|
106
|
+
if isinstance(entry, dict):
|
|
107
|
+
self._srcfiles.append(dict(entry))
|
|
108
|
+
else:
|
|
109
|
+
self._srcfiles.append({"filename": entry})
|
|
110
|
+
elif isinstance(spec_source, dict):
|
|
111
|
+
self._srcfiles.append(dict(spec_source))
|
|
112
|
+
else:
|
|
113
|
+
raise FileError(
|
|
114
|
+
"DownloadFromGoogleDrive: 'file'/'source' must be a dict or a list of dicts"
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
self.export_format = None
|
|
118
|
+
self._filenames = []
|
|
119
|
+
if hasattr(self, "destination"):
|
|
120
|
+
_dir = self.destination.get("directory", ".")
|
|
121
|
+
_direc = _dir.format_map(SafeDict(**self._variables))
|
|
122
|
+
_dir = self.mask_replacement(_direc)
|
|
123
|
+
self.directory = Path(_dir)
|
|
124
|
+
self.export_format = self.destination.get("export_format")
|
|
125
|
+
|
|
126
|
+
filename = self.destination.get("filename")
|
|
127
|
+
if isinstance(filename, list):
|
|
128
|
+
self._filenames = [self.mask_replacement(f) for f in filename]
|
|
129
|
+
elif filename:
|
|
130
|
+
self._filenames = [self.mask_replacement(filename)]
|
|
131
|
+
else:
|
|
132
|
+
self.directory = Path(".")
|
|
133
|
+
|
|
134
|
+
return True
|
|
135
|
+
|
|
136
|
+
async def close(self):
|
|
137
|
+
pass
|
|
138
|
+
|
|
139
|
+
async def run(self):
|
|
140
|
+
# GoogleClient never initializes self.credentials in __init__, so
|
|
141
|
+
# get_service()'s lazy `if not self.credentials: self.connection()`
|
|
142
|
+
# check would raise AttributeError on first use. Connect eagerly
|
|
143
|
+
# here instead of relying on that lazy path.
|
|
144
|
+
self.connection()
|
|
145
|
+
|
|
146
|
+
found = await self.search_files(self._srcfiles)
|
|
147
|
+
if not found:
|
|
148
|
+
raise FileNotFound("No files found to download")
|
|
149
|
+
|
|
150
|
+
self._result = await self.download_found_files(
|
|
151
|
+
found, self.directory, self._filenames, self.export_format
|
|
152
|
+
)
|
|
153
|
+
self.add_metric("GOOGLEDRIVE_FILES", self._result)
|
|
154
|
+
return self._result
|
|
@@ -7,7 +7,6 @@ from ..exceptions import FileError, ComponentError, FileNotFound
|
|
|
7
7
|
from ..interfaces.download_from import DownloadFromBase
|
|
8
8
|
from ..interfaces.SSHClient import SSHClient
|
|
9
9
|
|
|
10
|
-
|
|
11
10
|
class DownloadFromSFTP(SSHClient, DownloadFromBase):
|
|
12
11
|
"""
|
|
13
12
|
DownloadFromSFTP.
|
|
@@ -15,6 +14,9 @@ class DownloadFromSFTP(SSHClient, DownloadFromBase):
|
|
|
15
14
|
**Overview**
|
|
16
15
|
|
|
17
16
|
Download a file or directory from an SFTP server using the functionality from DownloadFrom.
|
|
17
|
+
When no `file`, `source` or `filename` is defined, the remote path(s) to download are read from
|
|
18
|
+
the previous component (`self.input`): a single path (e.g. each item of an iterating `FileList`,
|
|
19
|
+
also inside a `Group`) or a list of paths (e.g. `FileList` with `iterate: false`).
|
|
18
20
|
|
|
19
21
|
**Properties** (inherited from DownloadFromBase and SSHClient)
|
|
20
22
|
|
|
@@ -79,6 +81,26 @@ class DownloadFromSFTP(SSHClient, DownloadFromBase):
|
|
|
79
81
|
- yesterday
|
|
80
82
|
- mask: '%Y-%m-%d'
|
|
81
83
|
```
|
|
84
|
+
|
|
85
|
+
```yaml
|
|
86
|
+
- FileList:
|
|
87
|
+
sftp_config:
|
|
88
|
+
host: 10.0.22.233
|
|
89
|
+
username: jlara
|
|
90
|
+
client_keys: ~/.ssh/jesuslara.pem
|
|
91
|
+
directory: /nfs/symbits/epson/files/sales
|
|
92
|
+
pattern: 'SELLTHRU_TROC_*.TXT'
|
|
93
|
+
iterate: true
|
|
94
|
+
to_group: download_sales
|
|
95
|
+
- DownloadFromSFTP:
|
|
96
|
+
Group: download_sales
|
|
97
|
+
host: 10.0.22.233
|
|
98
|
+
credentials:
|
|
99
|
+
username: jlara
|
|
100
|
+
client_keys: ~/.ssh/jesuslara.pem
|
|
101
|
+
known_hosts: null
|
|
102
|
+
directory: /home/ubuntu/symbits/epson/files/sales/
|
|
103
|
+
```
|
|
82
104
|
"""
|
|
83
105
|
_version = "1.0.0"
|
|
84
106
|
|
|
@@ -107,8 +129,38 @@ class DownloadFromSFTP(SSHClient, DownloadFromBase):
|
|
|
107
129
|
self.whole_dir: bool = False
|
|
108
130
|
super().__init__(loop=loop, job=job, stat=stat, **kwargs)
|
|
109
131
|
|
|
132
|
+
def _files_from_input(self) -> list[str]:
|
|
133
|
+
"""Remote paths received from the previous component (`self.input`).
|
|
134
|
+
|
|
135
|
+
Accepts a single path (e.g. the current item of a `FileList`
|
|
136
|
+
iteration) or a list of paths (e.g. `FileList` with `iterate: false`).
|
|
137
|
+
|
|
138
|
+
Returns:
|
|
139
|
+
The remote paths as strings, empty when the input carries no paths.
|
|
140
|
+
"""
|
|
141
|
+
if not self.previous:
|
|
142
|
+
return []
|
|
143
|
+
data = self.input
|
|
144
|
+
if isinstance(data, (str, PurePath)):
|
|
145
|
+
data = [data]
|
|
146
|
+
if not isinstance(data, (list, tuple)):
|
|
147
|
+
return []
|
|
148
|
+
if not all(isinstance(item, (str, PurePath)) for item in data):
|
|
149
|
+
return []
|
|
150
|
+
return [str(item) for item in data]
|
|
151
|
+
|
|
110
152
|
async def start(self, **kwargs):
|
|
111
153
|
await super(DownloadFromSFTP, self).start(**kwargs)
|
|
154
|
+
if not self._srcfiles and not self.filename:
|
|
155
|
+
# no source of its own: download what the previous component sent
|
|
156
|
+
self._srcfiles = self._files_from_input()
|
|
157
|
+
if not self._srcfiles:
|
|
158
|
+
raise ComponentError(
|
|
159
|
+
"DownloadFromSFTP: no file to download, define file/source/filename "
|
|
160
|
+
"or chain it after a component that outputs remote paths (e.g. FileList)"
|
|
161
|
+
)
|
|
162
|
+
if len(self._srcfiles) == 1:
|
|
163
|
+
self.filename = self._srcfiles[0]
|
|
112
164
|
if hasattr(self, "source"):
|
|
113
165
|
self.whole_dir = (
|
|
114
166
|
self.source["whole_dir"] if "whole_dir" in self.source else False
|
|
@@ -129,10 +181,13 @@ class DownloadFromSFTP(SSHClient, DownloadFromBase):
|
|
|
129
181
|
self.rename = Path("{}/{}".format(self.directory, self.rename))
|
|
130
182
|
if self.rename is not None:
|
|
131
183
|
self.local_name = self.rename
|
|
132
|
-
|
|
184
|
+
elif self.filename:
|
|
133
185
|
self.local_name = Path(
|
|
134
186
|
"{}/{}".format(self.directory, PurePath(self.filename).name)
|
|
135
187
|
)
|
|
188
|
+
else:
|
|
189
|
+
# several files from the input: there is no single local name
|
|
190
|
+
self.local_name = Path(self.directory)
|
|
136
191
|
return True
|
|
137
192
|
|
|
138
193
|
def download_progress(self, srcpath, dstpath, bytes_copied, total_bytes):
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""
|
|
1
|
+
r"""
|
|
2
2
|
DownloadFromSmartsheet
|
|
3
3
|
Download attachments from SmartSheet sheets or rows with advanced filtering.
|
|
4
4
|
|
|
@@ -26,7 +26,7 @@ from ..interfaces.smartsheet import SmartSheetClient
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
class DownloadFromSmartsheet(SmartSheetClient, FlowComponent):
|
|
29
|
-
"""
|
|
29
|
+
r"""
|
|
30
30
|
DownloadFromSmartsheet
|
|
31
31
|
|
|
32
32
|
Overview
|
|
@@ -19,7 +19,6 @@ from ..utils import SafeDict
|
|
|
19
19
|
# TODO: migrate to FileStore component
|
|
20
20
|
from ..interfaces.flow import FlowComponent
|
|
21
21
|
from ..interfaces import TemplateSupport
|
|
22
|
-
from ..conf import TASK_PATH
|
|
23
22
|
from ..interfaces.qs import QSSupport
|
|
24
23
|
|
|
25
24
|
|
|
@@ -148,7 +147,8 @@ class ExecuteSQL(QSSupport, TemplateSupport, FlowComponent):
|
|
|
148
147
|
)
|
|
149
148
|
for fs in qs:
|
|
150
149
|
self._logger.debug(f"Execute SQL File: {fs!s}")
|
|
151
|
-
|
|
150
|
+
# sql files live in the task storage the task was loaded from
|
|
151
|
+
file_path = self._taskstore.get_path().joinpath(self._program, "sql", fs)
|
|
152
152
|
try:
|
|
153
153
|
sql = await self.open_sqlfile(file_path)
|
|
154
154
|
self._queries.append(sql)
|
|
@@ -243,7 +243,9 @@ class ExecuteSQL(QSSupport, TemplateSupport, FlowComponent):
|
|
|
243
243
|
)
|
|
244
244
|
else:
|
|
245
245
|
if self._driver == 'bigquery':
|
|
246
|
-
|
|
246
|
+
# first row of a SELECT; None for DML/scripts, which
|
|
247
|
+
# return no rows (next() without default raised StopIteration)
|
|
248
|
+
return next(iter(result), None)
|
|
247
249
|
return result
|
|
248
250
|
except StatementError as err:
|
|
249
251
|
raise StatementError(f"Statement error: {err}") from err
|