dagster-dingtalk 0.1.12__py3-none-any.whl → 0.1.13__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -44,7 +44,7 @@ class DingTalkWebhookResource(ConfigurableResource):
44
44
  ### 配置项:
45
45
 
46
46
  - **access_token** (str):
47
- 机器人 Webhook 地址中的 access_token 值。
47
+ 机器人 Webhook 地址中的 access_token 值。
48
48
  - **secret** (str, optional):
49
49
  如使用加签安全配置,则需传签名密钥。默认值为 None。
50
50
  - **alias** (str, optional):
@@ -54,46 +54,50 @@ class DingTalkWebhookResource(ConfigurableResource):
54
54
 
55
55
  ### 用例:
56
56
 
57
- 1. 使用单个资源:
58
-
57
+ ##### 1. 使用单个资源:
59
58
  ```python
60
59
  from dagster_dingtalk import DingTalkWebhookResource
60
+ from dagster import op, In, OpExecutionContext, job, Definitions
61
61
 
62
62
  @op(required_resource_keys={"dingtalk_webhook"}, ins={"text": In(str)})
63
63
  def op_send_text(context:OpExecutionContext, text:str):
64
64
  dingtalk_webhook:DingTalkWebhookResource = context.resources.dingtalk_webhook
65
- result = dingtalk.send_text(text)
65
+ dingtalk_webhook.send_text(text)
66
66
 
67
67
  @job
68
68
  def job_send_text():
69
- op_send_text
69
+ op_send_text()
70
70
 
71
71
  defs = Definitions(
72
- jobs=job_user_info,
72
+ jobs=[job_send_text],
73
73
  resources={"dingtalk_webhook": DingTalkWebhookResource(access_token = "<access_token>", secret = "<secret>")}
74
74
  )
75
75
  ```
76
76
 
77
- 2. 启动时动态构建企业内部应用资源, 可参考 [Dagster文档 | 在启动时配置资源](https://docs.dagster.io/concepts/resources#configuring-resources-at-launch-time)
77
+ ##### 2. 启动时动态构建企业内部应用资源, 可参考 [Dagster文档 | 在启动时配置资源](https://docs.dagster.io/concepts/resources#configuring-resources-at-launch-time)
78
78
 
79
79
  ```python
80
80
  from dagster_dingtalk import DingTalkWebhookResource
81
+ from dagster import op, In, OpExecutionContext, job, Definitions, schedule, RunRequest, RunConfig
81
82
 
82
83
  @op(required_resource_keys={"dingtalk_webhook"}, ins={"text": In(str)})
83
84
  def op_send_text(context:OpExecutionContext, text:str):
84
85
  dingtalk_webhook:DingTalkWebhookResource = context.resources.dingtalk_webhook
85
- result = dingtalk.send_text(text)
86
+ dingtalk_webhook.send_text(text)
86
87
 
87
88
  @job
88
89
  def job_send_text():
89
- op_send_text
90
+ op_send_text()
90
91
 
91
92
  dingtalk_webhooks = {
92
93
  "Group1" : DingTalkWebhookResource(access_token="<access_token>", secret="<secret>", alias="Group1"),
93
94
  "Group2" : DingTalkWebhookResource(access_token="<access_token>", secret="<secret>", alias="Group2")
94
95
  }
95
96
 
96
- defs = Definitions(jobs=job_send_text, resources={"dingtalk_webhook": DingTalkWebhookResource.configure_at_launch()})
97
+ defs = Definitions(
98
+ jobs=[job_send_text],
99
+ resources={"dingtalk_webhook": DingTalkWebhookResource.configure_at_launch()}
100
+ )
97
101
 
98
102
  @schedule(cron_schedule="20 9 * * *", job=job_send_text)
99
103
  def schedule_user_info():
@@ -109,16 +113,17 @@ class DingTalkWebhookResource(ConfigurableResource):
109
113
  应当从环境变量中读取密钥。你可以在代码中注册临时的环境变量,或从系统中引入环境变量。
110
114
 
111
115
  ```python
116
+
112
117
  import os
118
+ from dagster import EnvVar
113
119
  from dagster_dingtalk import DingTalkWebhookResource
114
120
 
115
121
  # 直接在代码中注册临时的环境变量
116
- os.environ.update({'access_token': "<access_token>"})
117
- os.environ.update({'secret': "<secret>"})
118
-
119
- webhook = DingTalkWebhookResource(access_token=EnvVar("access_token"), secret=EnvVar("secret"))
120
-
122
+ os.environ.update({'access_token_name': "<your-access_token>"})
123
+ os.environ.update({'secret_name': "<your-secret>"})
121
124
 
125
+ webhook = DingTalkWebhookResource(access_token=EnvVar("access_token_name"), secret=EnvVar("secret_name"))
126
+ ```
122
127
  """
123
128
 
124
129
  access_token: str = Field(description="Webhook地址中的 access_token 部分")
@@ -298,94 +303,100 @@ class DingTalkWebhookResource(ConfigurableResource):
298
303
 
299
304
  class DingTalkAppResource(ConfigurableResource):
300
305
  """
301
- [钉钉服务端 API](https://open.dingtalk.com/document/orgapp/api-overview) 企业内部应用部分的第三方封装。
302
-
303
- 通过此资源,可以调用部分钉钉服务端 API。具体封装的 API 可以在 IDE 中通过引入 `DingTalkAppClient` 类来查看 IDE 提示:
304
-
305
- `from dagster_dingtalk import DingTalkAppClient`
306
-
307
- ### 配置项:
308
-
309
- - **AppID** (str):
310
- 应用应用唯一标识 AppID,作为缓存标识符使用。不传入则不缓存鉴权。
311
- - **AgentID** (int, optional):
312
- 原企业内部应用 AgentId ,部分 API 会使用到。默认值为 None
313
- - **AppName** (str, optional):
314
- 应用名。
315
- - **ClientId** (str):
316
- 应用的 Client ID ,原 AppKey 和 SuiteKey
317
- - **ClientSecret** (str):
318
- 应用的 Client Secret ,原 AppSecret 和 SuiteSecret
319
-
320
- ### 用例:
321
-
322
- 1. 使用单一的企业内部应用资源。
323
-
324
- ```python
325
- from dagster_dingtalk import DingTalkAppResource
326
-
327
- @op(required_resource_keys={"dingtalk"}, ins={"user_id": In(str)})
328
- def op_user_info(context:OpExecutionContext, user_id:str):
329
- dingtalk:DingTalkAppClient = context.resources.dingtalk
330
- result = dingtalk.通讯录管理.用户管理.查询用户详情(user_id).get('result')
331
- context.log.info(result)
332
-
333
- @job
334
- def job_user_info():
335
- op_user_info
336
-
337
- defs = Definitions(jobs=job_user_info, resources={
338
- "dingtalk": DingTalkAppResource(
339
- AppID = "<the-app-id>",
340
- ClientId = "<the-client-id>",
341
- ClientSecret = EnvVar("<the-client-secret-env-name>"),
342
- )
343
- })
344
- ```
345
-
346
- 2. 启动时动态构建企业内部应用资源, 可参考 [Dagster文档 | 在启动时配置资源](https://docs.dagster.io/concepts/resources#configuring-resources-at-launch-time)
347
-
348
- ```python
349
- from dagster_dingtalk import DingTalkAppResource
350
-
351
- @op(required_resource_keys={"dingtalk"}, ins={"user_id": In(str)})
352
- def op_user_info(context:OpExecutionContext, user_id:str):
353
- dingtalk:DingTalkAppClient = context.resources.dingtalk
354
- result = dingtalk.通讯录管理.用户管理.查询用户详情(user_id).get('result')
355
- context.log.info(result)
356
-
357
- @job
358
- def job_user_info():
359
- op_user_info()
360
-
361
- dingtalk_apps = {
362
- "App1" : DingTalkAppResource(
363
- AppID = "<app-1-app-id>",
364
- ClientId = "<app-1-client-id>",
365
- ClientSecret = EnvVar("<app-1-client-secret-env-name>"),
366
- ),
367
- "App2" : DingTalkAppResource(
368
- AppID = "<app-2-app-id>",
369
- ClientId = "<app-2-client-id>",
370
- ClientSecret = EnvVar("<app-2-client-secret-env-name>"),
371
- )
372
- }
373
-
374
- defs = Definitions(jobs=job_user_info, resources={"dingtalk": DingTalkAppResource.configure_at_launch()})
306
+ Dagster 资源允许定义一个钉钉的 API Client,更加便捷地调用钉钉服务端企业内部应用 API
307
+
308
+ [钉钉服务端 API](https://open.dingtalk.com/document/orgapp/api-overview) 企业内部应用部分的第三方封装。
309
+
310
+ 通过此资源,可以调用部分钉钉服务端 API。具体封装的 API 可以在 IDE 中通过引入 `DingTalkAppClient` 类来查看 IDE 提示:
311
+
312
+ ```python
313
+ from dagster_dingtalk import DingTalkAppClient
314
+
315
+ dingtalk: DingTalkAppClient
316
+ ```
317
+
318
+ ### 配置项:
319
+
320
+ - **AppID** (str):
321
+ 应用应用唯一标识 AppID,作为缓存标识符使用。不传入则不缓存鉴权。
322
+ - **AgentID** (int, optional):
323
+ 原企业内部应用 AgentId ,部分 API 会使用到。默认值为 None
324
+ - **AppName** (str, optional):
325
+ 应用名。
326
+ - **ClientId** (str):
327
+ 应用的 Client ID ,原 AppKey 和 SuiteKey
328
+ - **ClientSecret** (str):
329
+ 应用的 Client Secret ,原 AppSecret 和 SuiteSecret
330
+
331
+ ### 用例
332
+
333
+ ##### 1. 使用单一的企业内部应用资源。
334
+
335
+ ```python
336
+ from dagster_dingtalk import DingTalkAppResource, DingTalkAppClient
337
+ from dagster import op, In, OpExecutionContext, job, Definitions, EnvVar
338
+
339
+ @op(required_resource_keys={"dingtalk"}, ins={"user_id": In(str)})
340
+ def op_user_info(context:OpExecutionContext, user_id:str):
341
+ dingtalk:DingTalkAppClient = context.resources.dingtalk
342
+ result = dingtalk.通讯录管理.用户管理.查询用户详情(user_id).get('result')
343
+ context.log.info(result)
344
+
345
+ @job
346
+ def job_user_info():
347
+ op_user_info()
348
+
349
+ defs = Definitions(
350
+ jobs=[job_user_info],
351
+ resources={"dingtalk": DingTalkAppResource(
352
+ AppID = "<the-app-id>",
353
+ ClientId = "<the-client-id>",
354
+ ClientSecret = EnvVar("<the-client-secret-env-name>"),
355
+ )})
356
+ ```
357
+
358
+ ##### 2. 启动时动态构建企业内部应用资源, 可参考 [Dagster文档 | 在启动时配置资源](https://docs.dagster.io/concepts/resources#configuring-resources-at-launch-time)
359
+
360
+ ```python
361
+ from dagster_dingtalk import DingTalkAppResource, DingTalkAppClient
362
+ from dagster import op, In, OpExecutionContext, job, Definitions, schedule, RunRequest, RunConfig, EnvVar
363
+
364
+ @op(required_resource_keys={"dingtalk"}, ins={"user_id": In(str)})
365
+ def op_user_info(context:OpExecutionContext, user_id:str):
366
+ dingtalk:DingTalkAppClient = context.resources.dingtalk
367
+ result = dingtalk.通讯录管理.用户管理.查询用户详情(user_id).get('result')
368
+ context.log.info(result)
369
+
370
+ @job
371
+ def job_user_info():
372
+ op_user_info()
373
+
374
+ dingtalk_apps = {
375
+ "App1" : DingTalkAppResource(
376
+ AppID = "<app-1-app-id>",
377
+ ClientId = "<app-1-client-id>",
378
+ ClientSecret = EnvVar("<app-1-client-secret-env-name>"),
379
+ ),
380
+ "App2" : DingTalkAppResource(
381
+ AppID = "<app-2-app-id>",
382
+ ClientId = "<app-2-client-id>",
383
+ ClientSecret = EnvVar("<app-2-client-secret-env-name>"),
384
+ )
385
+ }
375
386
 
376
- @schedule(cron_schedule="20 9 * * *", job=job_user_info)
377
- def schedule_user_info():
378
- return RunRequest(run_config=RunConfig(
379
- ops={"op_user_info": {"inputs": {"user_id": "<the-user-id>"}}},
380
- resources={"dingtalk": dingtalk_apps["App1"]},
381
- ))
382
- ```
387
+ defs = Definitions(jobs=[job_user_info], resources={"dingtalk": DingTalkAppResource.configure_at_launch()})
383
388
 
384
- ### 注意:
389
+ @schedule(cron_schedule="20 9 * * *", job=job_user_info)
390
+ def schedule_user_info():
391
+ return RunRequest(run_config=RunConfig(
392
+ ops={"op_user_info": {"inputs": {"user_id": "<the-user-id>"}}},
393
+ resources={"dingtalk": dingtalk_apps["App1"]},
394
+ ))
395
+ ```
385
396
 
386
- 应该永远避免直接将密钥字符串直接配置给资源,这会导致在 dagster 前端用户界面暴露密钥。
387
- 应当从环境变量中读取密钥。你可以在代码中注册临时的环境变量,或从系统中引入环境变量。
397
+ ### 注意:
388
398
 
399
+ 应该永远避免直接将密钥字符串直接配置给资源,这会导致在 dagster 前端用户界面暴露密钥。你可以在代码中注册临时的环境变量,或从系统中引入环境变量。
389
400
  """
390
401
 
391
402
  AppID: str = Field(description="应用应用唯一标识 AppID,作为缓存标识符使用。不传入则不缓存鉴权。")
@@ -1 +1 @@
1
- __version__ = "0.1.12"
1
+ __version__ = "0.1.13"
@@ -0,0 +1,210 @@
1
+ Metadata-Version: 2.1
2
+ Name: dagster-dingtalk
3
+ Version: 0.1.13
4
+ Summary: A dagster plugin for the DingTalk
5
+ Author: YiZixuan
6
+ Author-email: sqkkyzx@qq.com
7
+ Requires-Python: >=3.10,<3.13
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.10
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Requires-Dist: dagster (>=1.8.10)
13
+ Requires-Dist: httpx (>=0.27.2,<0.28.0)
14
+ Requires-Dist: pydantic (>=2.9.2,<3.0.0)
15
+ Description-Content-Type: text/markdown
16
+
17
+ # 钉钉与 Dagster 集成
18
+
19
+ ---
20
+
21
+ ## 介绍
22
+
23
+ 该 Dagster 集成是为了更便捷的调用钉钉(DingTalk)的API,集成提供了两个 Dagster Resource。
24
+
25
+
26
+ ## DingTalkWebhookResource
27
+
28
+ 该资源允许定义单个钉钉自定义机器人的 Webhook 端点,以便于发送文本、Markdown、Link、 ActionCard、FeedCard 消息,消息具体样式可参考
29
+ [钉钉开放平台 | 自定义机器人发送消息的消息类型](https://open.dingtalk.com/document/orgapp/custom-bot-send-message-type)。
30
+
31
+ ### 配置项:
32
+
33
+ - **access_token** (str):
34
+ 机器人 Webhook 地址中的 access_token 值。
35
+ - **secret** (str, optional):
36
+ 如使用加签安全配置,则需传签名密钥。默认值为 None。
37
+ - **alias** (str, optional):
38
+ 如提供别名,可以在使用 `MultiDingTalkWebhookResource` 中使用别名进行 webhook 选择。默认值为 None。
39
+ - **base_url** (str, optional):
40
+ 通用地址,一般无需更改。默认值为 “https://oapi.dingtalk.com/robot/send”。
41
+
42
+ ### 用例:
43
+
44
+ ##### 1. 使用单个资源:
45
+ ```python
46
+ from dagster_dingtalk import DingTalkWebhookResource
47
+ from dagster import op, In, OpExecutionContext, job, Definitions
48
+
49
+ @op(required_resource_keys={"dingtalk_webhook"}, ins={"text": In(str)})
50
+ def op_send_text(context:OpExecutionContext, text:str):
51
+ dingtalk_webhook:DingTalkWebhookResource = context.resources.dingtalk_webhook
52
+ dingtalk_webhook.send_text(text)
53
+
54
+ @job
55
+ def job_send_text():
56
+ op_send_text()
57
+
58
+ defs = Definitions(
59
+ jobs=[job_send_text],
60
+ resources={"dingtalk_webhook": DingTalkWebhookResource(access_token = "<access_token>", secret = "<secret>")}
61
+ )
62
+ ```
63
+
64
+ ##### 2. 启动时动态构建企业内部应用资源, 可参考 [Dagster文档 | 在启动时配置资源](https://docs.dagster.io/concepts/resources#configuring-resources-at-launch-time)
65
+
66
+ ```python
67
+ from dagster_dingtalk import DingTalkWebhookResource
68
+ from dagster import op, In, OpExecutionContext, job, Definitions, schedule, RunRequest, RunConfig
69
+
70
+ @op(required_resource_keys={"dingtalk_webhook"}, ins={"text": In(str)})
71
+ def op_send_text(context:OpExecutionContext, text:str):
72
+ dingtalk_webhook:DingTalkWebhookResource = context.resources.dingtalk_webhook
73
+ dingtalk_webhook.send_text(text)
74
+
75
+ @job
76
+ def job_send_text():
77
+ op_send_text()
78
+
79
+ dingtalk_webhooks = {
80
+ "Group1" : DingTalkWebhookResource(access_token="<access_token>", secret="<secret>", alias="Group1"),
81
+ "Group2" : DingTalkWebhookResource(access_token="<access_token>", secret="<secret>", alias="Group2")
82
+ }
83
+
84
+ defs = Definitions(
85
+ jobs=[job_send_text],
86
+ resources={"dingtalk_webhook": DingTalkWebhookResource.configure_at_launch()}
87
+ )
88
+
89
+ @schedule(cron_schedule="20 9 * * *", job=job_send_text)
90
+ def schedule_user_info():
91
+ return RunRequest(run_config=RunConfig(
92
+ ops={"op_send_text": {"inputs": {"text": "This a test text."}}},
93
+ resources={"dingtalk": dingtalk_webhooks["Group1"]},
94
+ ))
95
+ ```
96
+
97
+ ### 注意:
98
+
99
+ 应该永远避免直接将密钥字符串直接配置给资源,这会导致在 dagster 前端用户界面暴露密钥。
100
+ 应当从环境变量中读取密钥。你可以在代码中注册临时的环境变量,或从系统中引入环境变量。
101
+
102
+ ```python
103
+ import os
104
+ from dagster import EnvVar
105
+ from dagster_dingtalk import DingTalkWebhookResource
106
+
107
+ # 直接在代码中注册临时的环境变量
108
+ os.environ.update({'access_token_name': "<your-access_token>"})
109
+ os.environ.update({'secret_name': "<your-secret>"})
110
+
111
+ webhook = DingTalkWebhookResource(access_token=EnvVar("access_token_name"), secret=EnvVar("secret_name"))
112
+ ```
113
+
114
+ ## DingTalkAppResource
115
+
116
+ 该 Dagster 资源允许定义一个钉钉的 API Client,更加便捷地调用钉钉服务端企业内部应用 API
117
+
118
+ [钉钉服务端 API](https://open.dingtalk.com/document/orgapp/api-overview) 企业内部应用部分的第三方封装。
119
+
120
+ 通过此资源,可以调用部分钉钉服务端 API。具体封装的 API 可以在 IDE 中通过引入 `DingTalkAppClient` 类来查看 IDE 提示:
121
+
122
+ ```python
123
+ from dagster_dingtalk import DingTalkAppClient
124
+
125
+ dingtalk: DingTalkAppClient
126
+ ```
127
+
128
+ ### 配置项:
129
+
130
+ - **AppID** (str):
131
+ 应用应用唯一标识 AppID,作为缓存标识符使用。不传入则不缓存鉴权。
132
+ - **AgentID** (int, optional):
133
+ 原企业内部应用 AgentId ,部分 API 会使用到。默认值为 None
134
+ - **AppName** (str, optional):
135
+ 应用名。
136
+ - **ClientId** (str):
137
+ 应用的 Client ID ,原 AppKey 和 SuiteKey
138
+ - **ClientSecret** (str):
139
+ 应用的 Client Secret ,原 AppSecret 和 SuiteSecret
140
+
141
+ ### 用例
142
+
143
+ ##### 1. 使用单一的企业内部应用资源。
144
+
145
+ ```python
146
+ from dagster_dingtalk import DingTalkAppResource, DingTalkAppClient
147
+ from dagster import op, In, OpExecutionContext, job, Definitions, EnvVar
148
+
149
+ @op(required_resource_keys={"dingtalk"}, ins={"user_id": In(str)})
150
+ def op_user_info(context:OpExecutionContext, user_id:str):
151
+ dingtalk:DingTalkAppClient = context.resources.dingtalk
152
+ result = dingtalk.通讯录管理.用户管理.查询用户详情(user_id).get('result')
153
+ context.log.info(result)
154
+
155
+ @job
156
+ def job_user_info():
157
+ op_user_info()
158
+
159
+ defs = Definitions(
160
+ jobs=[job_user_info],
161
+ resources={"dingtalk": DingTalkAppResource(
162
+ AppID = "<the-app-id>",
163
+ ClientId = "<the-client-id>",
164
+ ClientSecret = EnvVar("<the-client-secret-env-name>"),
165
+ )})
166
+ ```
167
+
168
+ ##### 2. 启动时动态构建企业内部应用资源, 可参考 [Dagster文档 | 在启动时配置资源](https://docs.dagster.io/concepts/resources#configuring-resources-at-launch-time)
169
+
170
+ ```python
171
+ from dagster_dingtalk import DingTalkAppResource, DingTalkAppClient
172
+ from dagster import op, In, OpExecutionContext, job, Definitions, schedule, RunRequest, RunConfig, EnvVar
173
+
174
+ @op(required_resource_keys={"dingtalk"}, ins={"user_id": In(str)})
175
+ def op_user_info(context:OpExecutionContext, user_id:str):
176
+ dingtalk:DingTalkAppClient = context.resources.dingtalk
177
+ result = dingtalk.通讯录管理.用户管理.查询用户详情(user_id).get('result')
178
+ context.log.info(result)
179
+
180
+ @job
181
+ def job_user_info():
182
+ op_user_info()
183
+
184
+ dingtalk_apps = {
185
+ "App1" : DingTalkAppResource(
186
+ AppID = "<app-1-app-id>",
187
+ ClientId = "<app-1-client-id>",
188
+ ClientSecret = EnvVar("<app-1-client-secret-env-name>"),
189
+ ),
190
+ "App2" : DingTalkAppResource(
191
+ AppID = "<app-2-app-id>",
192
+ ClientId = "<app-2-client-id>",
193
+ ClientSecret = EnvVar("<app-2-client-secret-env-name>"),
194
+ )
195
+ }
196
+
197
+ defs = Definitions(jobs=[job_user_info], resources={"dingtalk": DingTalkAppResource.configure_at_launch()})
198
+
199
+ @schedule(cron_schedule="20 9 * * *", job=job_user_info)
200
+ def schedule_user_info():
201
+ return RunRequest(run_config=RunConfig(
202
+ ops={"op_user_info": {"inputs": {"user_id": "<the-user-id>"}}},
203
+ resources={"dingtalk": dingtalk_apps["App1"]},
204
+ ))
205
+ ```
206
+
207
+ ### 注意:
208
+
209
+ 应该永远避免直接将密钥字符串直接配置给资源,这会导致在 dagster 前端用户界面暴露密钥。你可以在代码中注册临时的环境变量,或从系统中引入环境变量。
210
+
@@ -0,0 +1,8 @@
1
+ dagster_dingtalk/__init__.py,sha256=X7r8JoydXOsT9Sis4rBpVSKQeKJnnZ_t_qFae-ASF7E,466
2
+ dagster_dingtalk/app_client.py,sha256=STTBxNzs2rhyHX7gsDuTpftJcctbTPKRAFIZV7zsF08,13800
3
+ dagster_dingtalk/operations.py,sha256=3cCZCxh-dAdzzb75WCTKVdzeMV8yu_JJpIeULS7XaNg,761
4
+ dagster_dingtalk/resources.py,sha256=EL-Q9MfRuAInLw7ZYcLl_5060zOvhBdV_QvvO4JKXQc,17621
5
+ dagster_dingtalk/version.py,sha256=khDKUuWafURKVs5EAZkpOMiUHI2-V7axlqrWLPUpuZo,23
6
+ dagster_dingtalk-0.1.13.dist-info/METADATA,sha256=w7mlRCT1mbj8sebZfUhy10eVklUTnYP31JpVDdjTiuo,7608
7
+ dagster_dingtalk-0.1.13.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
8
+ dagster_dingtalk-0.1.13.dist-info/RECORD,,
@@ -1,38 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: dagster-dingtalk
3
- Version: 0.1.12
4
- Summary: A dagster plugin for the DingTalk
5
- Author: YiZixuan
6
- Author-email: sqkkyzx@qq.com
7
- Requires-Python: >=3.10,<3.13
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: Programming Language :: Python :: 3.10
10
- Classifier: Programming Language :: Python :: 3.11
11
- Classifier: Programming Language :: Python :: 3.12
12
- Requires-Dist: dagster (>=1.8.10,<2.0.0)
13
- Requires-Dist: httpx (>=0.27.2,<0.28.0)
14
- Requires-Dist: pydantic (>=2.9.2,<3.0.0)
15
- Description-Content-Type: text/markdown
16
-
17
- # 钉钉与 Dagster 集成
18
-
19
- ---
20
-
21
- ## 介绍
22
-
23
- 该 Dagster 集成是为了更便捷的调用钉钉(DingTalk)的API,集成提供了两个 Dagster Resource。
24
-
25
-
26
- ## Webhook 资源
27
-
28
- ### DingTalkWebhookResource
29
-
30
- 该资源允许定义单个钉钉自定义机器人的 Webhook 端点,以便于发送文本、Markdown
31
- 、Link、 ActionCard、FeedCard 消息,消息具体样式可参考
32
- [钉钉开放平台 | 自定义机器人发送消息的消息类型](https://open.dingtalk.com/document/orgapp/custom-bot-send-message-type) 。
33
-
34
-
35
- ### DingTalkAppResource
36
-
37
- 该 Dagster 资源允许定义一个钉钉的 API Client,更加便捷地调用钉钉服务端企业内部应用 API
38
-
@@ -1,8 +0,0 @@
1
- dagster_dingtalk/__init__.py,sha256=X7r8JoydXOsT9Sis4rBpVSKQeKJnnZ_t_qFae-ASF7E,466
2
- dagster_dingtalk/app_client.py,sha256=STTBxNzs2rhyHX7gsDuTpftJcctbTPKRAFIZV7zsF08,13800
3
- dagster_dingtalk/operations.py,sha256=3cCZCxh-dAdzzb75WCTKVdzeMV8yu_JJpIeULS7XaNg,761
4
- dagster_dingtalk/resources.py,sha256=XXGRub47EZY2MfAsGhyEZ_Joh_D-BMFNh_jXCVPx6tU,17255
5
- dagster_dingtalk/version.py,sha256=LcIlFjHZFfiF9Rd4UHoakmombOFkxIYk00I181frGBM,23
6
- dagster_dingtalk-0.1.12.dist-info/METADATA,sha256=SW9BRyeyi1n4TwidyzrrWxpHK2usjXI-wTJxysI3tN8,1221
7
- dagster_dingtalk-0.1.12.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
8
- dagster_dingtalk-0.1.12.dist-info/RECORD,,