yuz10 opened a new issue, #784: URL: https://github.com/apache/rocketmq-clients/issues/784
### Before Creating the Bug Report - [X] I found a bug, not just asking a question, which should be created in [GitHub Discussions](https://github.com/apache/rocketmq-clients/discussions). - [X] I have searched the [GitHub Issues](https://github.com/apache/rocketmq-clients/issues) and [GitHub Discussions](https://github.com/apache/rocketmq-clients/discussions) of this repository and believe that this is not a duplicate. - [X] I have confirmed that this bug belongs to the current repository, not other repositories of RocketMQ. ### Programming Language of the Client Python ### Runtime Platform Environment Ubuntu ### RocketMQ Version of the Client/Server 5.2.0 ### Run or Compiler Version Ubuntu ### Describe the Bug python client code: ```python import asyncio import sys import os sys.path.append(os.path.join(os.path.dirname(__file__), '..')) sys.path.append(os.path.join(os.path.dirname(__file__), '../rocketmq')) from client_config import ClientConfig from filter_expression import FilterExpression from log import logger from protocol.definition_pb2 import Resource from rpc_client import Endpoints from session_credentials import (SessionCredentials, SessionCredentialsProvider) from simple_consumer import SimpleConsumer async def test(): credentials = SessionCredentials("username", "password") credentials_provider = SessionCredentialsProvider(credentials) client_config = ClientConfig( endpoints=Endpoints("localhost:8080"), session_credentials_provider=credentials_provider, ssl_enabled=False, ) topic = Resource() topic.name = "TopicTest" consumer_group = "yourConsumerGroup" subscription = {topic.name: FilterExpression("*")} simple_consumer = (await SimpleConsumer.Builder() .set_client_config(client_config) .set_consumer_group(consumer_group) .set_await_duration(15) .set_subscription_expression(subscription) .build()) logger.info(simple_consumer) while True: message_views = await simple_consumer.receive(16, 15) logger.info(message_views) for message in message_views: logger.info(message.body) logger.info(f"Received a message, topic={message.topic}, message-id={message.message_id}, body-size={len(message.body)}") await simple_consumer.ack(message) logger.info(f"Message is acknowledged successfully, message-id={message.message_id}") if __name__ == "__main__": asyncio.run(test()) ``` errors: 1, importlib.metadata.PackageNotFoundError: No package metadata was found for rocketmq ``` File "/root/rocketmq-clients/python/examples/../rocketmq/client.py", line 332, in query_route metadata = Signature.sign(self.__client.client_config, self.__client.client_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/rocketmq-clients/python/examples/../rocketmq/signature.py", line 48, in sign (Signature.__CLIENT_VERSION_KEY, importlib.metadata.version("rocketmq")), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/metadata/__init__.py", line 889, in version return distribution(distribution_name).version ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/metadata/__init__.py", line 862, in distribution return Distribution.from_name(distribution_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/metadata/__init__.py", line 399, in from_name raise PackageNotFoundError(name) importlib.metadata.PackageNotFoundError: No package metadata was found for rocketmq ``` 2. 'FilterExpression' object has no attribute 'Type'. Did you mean: 'type'? ``` File "/root/rocketmq-clients/python/examples/../rocketmq/simple_consumer.py", line 289, in build await simple_consumer.start() File "/root/rocketmq-clients/python/examples/../rocketmq/simple_consumer.py", line 137, in start await super().start() File "/root/rocketmq-clients/python/examples/../rocketmq/client.py", line 94, in start self.topic_route_cache[topic] = await self.fetch_topic_route(topic) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/rocketmq-clients/python/examples/../rocketmq/client.py", line 249, in fetch_topic_route await self.on_topic_route_data_fetched(topic, topic_route_data) File "/root/rocketmq-clients/python/examples/../rocketmq/client.py", line 213, in on_topic_route_data_fetched await session.sync_settings(True) File "/root/rocketmq-clients/python/examples/../rocketmq/session.py", line 54, in sync_settings telemetry_command.settings.CopyFrom(settings.to_protobuf()) ^^^^^^^^^^^^^^^^^^^^^^ File "/root/rocketmq-clients/python/examples/../rocketmq/simple_subscription_settings.py", line 68, in to_protobuf logger.warn(f"[Bug] Unrecognized filter type={value.Type} for simple consumer") ^^^^^^^^^^ AttributeError: 'FilterExpression' object has no attribute 'Type'. Did you mean: 'type'? ``` ### Steps to Reproduce python client code: ```python import asyncio import sys import os sys.path.append(os.path.join(os.path.dirname(__file__), '..')) sys.path.append(os.path.join(os.path.dirname(__file__), '../rocketmq')) from client_config import ClientConfig from filter_expression import FilterExpression from log import logger from protocol.definition_pb2 import Resource from rpc_client import Endpoints from session_credentials import (SessionCredentials, SessionCredentialsProvider) from simple_consumer import SimpleConsumer async def test(): credentials = SessionCredentials("username", "password") credentials_provider = SessionCredentialsProvider(credentials) client_config = ClientConfig( endpoints=Endpoints("localhost:8080"), session_credentials_provider=credentials_provider, ssl_enabled=False, ) topic = Resource() topic.name = "TopicTest" consumer_group = "yourConsumerGroup" subscription = {topic.name: FilterExpression("*")} simple_consumer = (await SimpleConsumer.Builder() .set_client_config(client_config) .set_consumer_group(consumer_group) .set_await_duration(15) .set_subscription_expression(subscription) .build()) logger.info(simple_consumer) while True: message_views = await simple_consumer.receive(16, 15) logger.info(message_views) for message in message_views: logger.info(message.body) logger.info(f"Received a message, topic={message.topic}, message-id={message.message_id}, body-size={len(message.body)}") await simple_consumer.ack(message) logger.info(f"Message is acknowledged successfully, message-id={message.message_id}") if __name__ == "__main__": asyncio.run(test()) ``` ### What Did You Expect to See? run success ### What Did You See Instead? errors: 1, importlib.metadata.PackageNotFoundError: No package metadata was found for rocketmq ``` File "/root/rocketmq-clients/python/examples/../rocketmq/client.py", line 332, in query_route metadata = Signature.sign(self.__client.client_config, self.__client.client_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/rocketmq-clients/python/examples/../rocketmq/signature.py", line 48, in sign (Signature.__CLIENT_VERSION_KEY, importlib.metadata.version("rocketmq")), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/metadata/__init__.py", line 889, in version return distribution(distribution_name).version ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/metadata/__init__.py", line 862, in distribution return Distribution.from_name(distribution_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/metadata/__init__.py", line 399, in from_name raise PackageNotFoundError(name) importlib.metadata.PackageNotFoundError: No package metadata was found for rocketmq ``` 2. 'FilterExpression' object has no attribute 'Type'. Did you mean: 'type'? ``` File "/root/rocketmq-clients/python/examples/../rocketmq/simple_consumer.py", line 289, in build await simple_consumer.start() File "/root/rocketmq-clients/python/examples/../rocketmq/simple_consumer.py", line 137, in start await super().start() File "/root/rocketmq-clients/python/examples/../rocketmq/client.py", line 94, in start self.topic_route_cache[topic] = await self.fetch_topic_route(topic) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/rocketmq-clients/python/examples/../rocketmq/client.py", line 249, in fetch_topic_route await self.on_topic_route_data_fetched(topic, topic_route_data) File "/root/rocketmq-clients/python/examples/../rocketmq/client.py", line 213, in on_topic_route_data_fetched await session.sync_settings(True) File "/root/rocketmq-clients/python/examples/../rocketmq/session.py", line 54, in sync_settings telemetry_command.settings.CopyFrom(settings.to_protobuf()) ^^^^^^^^^^^^^^^^^^^^^^ File "/root/rocketmq-clients/python/examples/../rocketmq/simple_subscription_settings.py", line 68, in to_protobuf logger.warn(f"[Bug] Unrecognized filter type={value.Type} for simple consumer") ^^^^^^^^^^ AttributeError: 'FilterExpression' object has no attribute 'Type'. Did you mean: 'type'? ``` ### Additional Context _No response_ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
