Skip to content

Commit 9601889

Browse files
ginpingginping
andauthored
Fix/circular import problem (#35)
* ✨ feat: 更新卡片内容时支持其它参数 * 🐛 fix: 修复 handlers.py 和 card_replier 属性类型声明导致的模块循环引用的问题 * upgrade version to 0.17.2 * upgrade version to 0.17.2 --------- Co-authored-by: ginping <[email protected]>
1 parent 216dd9a commit 9601889

File tree

3 files changed

+19
-14
lines changed

3 files changed

+19
-14
lines changed

dingtalk_stream/card_replier.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,27 @@
44

55
import platform, requests, copy, hashlib
66
from .utils import DINGTALK_OPENAPI_ENDPOINT
7-
from .chatbot import ChatbotMessage
8-
from .stream import DingTalkStreamClient
97
from .log import setup_default_logger
108
from enum import Enum, unique
119

10+
from typing import TYPE_CHECKING
11+
12+
if TYPE_CHECKING:
13+
from .chatbot import ChatbotMessage
14+
from .stream import DingTalkStreamClient
15+
1216

1317
class CardReplier(object):
1418

15-
def __init__(self, dingtalk_client: DingTalkStreamClient, incoming_message: ChatbotMessage):
16-
self.dingtalk_client: DingTalkStreamClient = dingtalk_client
17-
self.incoming_message: ChatbotMessage = incoming_message
19+
def __init__(self, dingtalk_client: 'DingTalkStreamClient', incoming_message: 'ChatbotMessage'):
20+
self.dingtalk_client: 'DingTalkStreamClient' = dingtalk_client
21+
self.incoming_message: 'ChatbotMessage' = incoming_message
1822
self.conversation_type = incoming_message.conversation_type
1923
self.open_conversation_id = incoming_message
2024
self.logger = setup_default_logger('dingtalk_stream.handler')
2125

2226
@staticmethod
23-
def gen_card_id(msg):
27+
def gen_card_id(msg: 'ChatbotMessage'):
2428
factor = '%s_%s_%s_%s_%s' % (
2529
msg.sender_id, msg.sender_corp_id, msg.conversation_id, msg.message_id, str(uuid.uuid1()))
2630
m = hashlib.sha256()

dingtalk_stream/handlers.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
1-
import json
2-
31
from .frames import Headers
42
from .frames import AckMessage
53
from .frames import SystemMessage
64
from .frames import EventMessage
75
from .frames import CallbackMessage
8-
from .stream import DingTalkStreamClient
96
from .log import setup_default_logger
107

8+
from typing import TYPE_CHECKING
9+
10+
if TYPE_CHECKING:
11+
from .stream import DingTalkStreamClient
1112

1213
class CallbackHandler(object):
1314
TOPIC_CARD_CALLBACK = '/v1.0/card/instances/callback'
1415

1516
def __init__(self):
16-
self.dingtalk_client: DingTalkStreamClient = None
17+
self.dingtalk_client: 'DingTalkStreamClient' = None
1718
self.logger = setup_default_logger('dingtalk_stream.handler')
1819

1920
def pre_start(self):
@@ -34,7 +35,7 @@ async def raw_process(self, callback_message: CallbackMessage):
3435

3536
class EventHandler(object):
3637
def __init__(self):
37-
self.dingtalk_client: DingTalkStreamClient = None
38+
self.dingtalk_client: 'DingTalkStreamClient' = None
3839
self.logger = setup_default_logger('dingtalk_stream.handler')
3940

4041
def pre_start(self):
@@ -56,13 +57,13 @@ async def raw_process(self, event_message: EventMessage):
5657

5758
class SystemHandler(object):
5859
def __init__(self):
59-
self.dingtalk_client: DingTalkStreamClient = None
60+
self.dingtalk_client: 'DingTalkStreamClient' = None
6061
self.logger = setup_default_logger('dingtalk_stream.handler')
6162

6263
def pre_start(self):
6364
return
6465

65-
async def process(self, message):
66+
async def process(self, message: SystemMessage):
6667
return AckMessage.STATUS_OK, 'OK'
6768

6869
async def raw_process(self, system_message: SystemMessage):

dingtalk_stream/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
VERSION_STRING = '0.17.1'
1+
VERSION_STRING = '0.17.2'

0 commit comments

Comments
 (0)