非官方工作流API客户端

tdworkflow的Python项目详细描述


非官方珍宝工作流API客户端。在

安装

pip install tdworkflow

如果要使用开发版本,请按如下方式运行:

^{pr2}$

使用

importosfromtdworkflow.clientimportClientapikey=os.getenv("TD_API_KEY")client=Client(site="us",apikey=apikey)# Or, write endpoint explicitly# client = Client(endpoint="api-workflow.treasuredata.com", apikey=apikey)projects=client.projects("pandas-df")secrets={"td.apikey":apikey,"td.apiserver":"https://api.treasuredata.com","test":"secret-foo"}client.set_secrets(projects[0],secrets)client.secrets(projects[0])# ['td.apikey', 'td.apiserver', "test"]client.delete_secrets(projects[0],["test","td.apiserver"])

GitHub的Uplaod项目

在执行示例代码之前,必须安装gitpython

pip install gitpython

用git-python克隆示例库并上传digdag项目。在

importtempfileimportosimportshutilimporttdworkflowfromgitimportGit# Download example GitHub repositoorytempdir=tempfile.gettempdir()git_repo="https://github.com/treasure-data/treasure-boxes/"shutil.rmtree(os.path.join(tempdir,"treasure-boxes"))try:Git(tempdir).clone(git_repo)print("Clone repository succeeded")exceptException:print("Repository clone failed")raise# Upload specific Workflow projectapikey=os.getenv("TD_API_KEY")site="us"target_box=os.path.join("integration-box","python")target_path=os.path.join(tempdir,"treasure-boxes",target_box)client=tdworkflow.client.Client(site=site,apikey=apikey)project=client.create_project("my-project",target_path)

如果您想在浏览器上打开宝工作流控制台,可以获得如下工作流URL:

CONSOLE_URL={"us":"https://console.treasuredata.com/app/workflows","eu01":"https://console.eu01.treasuredata.com/app/workflows","jp":"https://console.treasuredata.co.jp/app/workflows",}workflows=client.project_workflows(project)workflows=list(filter(lambdaw:w.name!="test",workflows))ifworkflows:print(f"Project created! Open {CONSOLE_URL[site]}/{workflows[0].id}/info on your browser and clieck 'New Run' button.")else:print("Project creation failed.")

启动工作流会话

您可以使用Client.start_attempt启动工作流会话。在

attempt=client.start_attempt(workflows[0])# Wait attempt until finish. This may require few minutes.attempt=client.wait_attempt(attempt)

连接到开源digdag

由于珍宝工作流托管在digdag上,tdworkflow与开源digdag兼容。在

注意

开源digdagapi可能与珍宝工作流API不同,因此tdworkflow可能无法与开源digdag的某些API一起工作。在

下面是连接本地digdag服务器的示例代码。在

>>>importtdworkflow>>>importrequests>>>session=requests.Session()>>>client=tdworkflow.client.Client(...endpoint="localhost:65432",apikey="",_session=session,scheme="http")>>>client.projects()[Project(id=1,name='python-tdworkflow',revision='134fe2f9-ded3-4e7c-af8e-8a82d55d688b',archiveType='db',archiveMd5='5Lc6F6m3DtmBN4DA5MzK8A==',createdAt='2019-11-01T13:03:26Z',deletedAt=None,updatedAt='2019-11-01T13:03:26Z')]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么stripVersion不能在带有mojo依赖项的mavendependencyplugin上工作   java存储具有不同功能的大量对象   java Spring MockMvc自定义验证器未在Spring容器中注册/调用   javascript程序编辑实体而不是添加   C++如何在java上检索图形卡信息?   java如何在没有方法参数的方法上使用@cacheable注释的键   java如何获取特定用户或学生的JSON   java可序列化AjaxRequestTarget   java Tomcat 8禁用分块编码过滤器   java这个简单的Swingbase类是线程安全的吗?   java调用Gdi32。使用JNA获取对象   如何使用来自其他类Java Android onClick的方法?   json序列化已经有了id(java.lang.String)的POJO   java使用jsp上传多个文件?   java有没有办法为Android项目在EclipseIndigo上设置JVM参数?   Eclipse中的java,为什么它告诉我添加一个已经存在的分号?   Java中的正则表达式拆分行   Java:在单行中赋值