Metadata-Version: 2.1
Name: MqttLibPy
Version: 1.3.1
Summary: A small example package
Project-URL: Homepage, https://github.com/xmarts/mqtt-common
Project-URL: Bug Tracker, https://github.com/xmarts/mqtt-common/issues
Author-email: juan pablo allende - xmarts <juan.allende@xmarts.com>
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.9
Requires-Dist: paho-mqtt
Description-Content-Type: text/markdown

# Mqtt common library

### Usage

```py
from MqttLibPy.client import MqttClient
# from MqttLibPy.serializer import Serializer

# Both prefix and postfix are optional
client = MqttClient('myhost.com', 1883, prefix="myprefix")

# This function will be  called when a message is received in the myprefix/myendpoint topic  
@client.endpoint("myendpoint", force_json=True)
def myendpoint(mqtt_client, _, json_body):
    print(json_body)
    my_field = json_body["some_field"]
    # Do stuff with my_field
    # ..
    # Return a response
    my_response = {"another_field": "Ok!"}
    # Sends message to topic "myendpoint"
    client.send_message_serialized(my_response, "myendpoint", valid_json=True)
```

#### Send file
Sender
```py
from MqttLibPy.client import MqttClient

client = MqttClient("myhost.com", 1883)
client.send_file("test_bytes", "/path/to/my/file/myfile.")
```

listener
```py
from MqttLibPy.client import MqttClient

client = MqttClient("myhost.com", 1883)

@client.endpoint("test_bytes", is_file=True)
def get_file(client, user_data, file):
    with open(f"/path/to/save/file/{file['data'][0]['filename']}", 'wb+') as f:
        f.write(file['bytes'])
        f.close()

threading.Thread(target=client.listen).start()
```


### Changelog

1.1.6
* Fix bug where the same file couldnt be received multiple times

1.1.0
* Add optional metadata to file transfers

1.0.3
* Fix bug where file metadata would get overwritten if metadata arrived after the file

1.0.2
* Fix bug that caused bytes to be empty if metadata arrived after the file

1.0.1
* Fix serializer crash with json objects

1.0.0
* Adds send file method