memphis.py icon indicating copy to clipboard operation
memphis.py copied to clipboard

Bug: Improve error description

Open yanivbh1 opened this issue 1 year ago • 6 comments

Describe the bug

Hey, I was trying to produce a protobuf dict to a station without schema attached and received the following error:

$ python3 producer-protobuf.py
memphis: Unsupported message type

That error should be something like:

$ python3 producer-protobuf.py
memphis: Unsupported message type.
Potential issues:
- Memphis requires an array of bytes to produce a binary format into the broker.
- If you want to use protobuf and other supported formats within Schemaverse, please attach a schema to the station.

Steps to reproduce

from __future__ import annotations
import asyncio
from memphis import Memphis, Headers, MemphisError, MemphisConnectError, MemphisHeaderError, MemphisSchemaError
import entity_pb2 as ENTITY

async def main():
    try:
        memphis = Memphis()
        await memphis.connect(host="localhost", username="root", password="memphis")
        
        producer = await memphis.producer(station_name="benchmark", producer_name="protobuf-producer") # you can send the message parameter as dict as well
        
        obj = ENTITY.Entity()
        obj.identifier = 1
        obj.description = "Amazing"

        for i in range(5):
            await producer.produce(obj)
        
    except (MemphisError, MemphisConnectError, MemphisHeaderError, MemphisSchemaError) as e:
        print(e)
        
    finally:
        await memphis.close()
        
if __name__ == "__main__":
    asyncio.run(main())

Affected services

Broker, SDKs

Platforms

No response

If UI - Browsers

No response

Environment

No response

Additional context

No response

Code of Conduct

  • [X] I agree to follow this project's Code of Conduct

yanivbh1 avatar Apr 28 '23 10:04 yanivbh1