wmo-im / wis2downloader

The backend Python package for downloading real-time data from the WIS2 network.
Apache License 2.0
0 stars 0 forks source link

Refactor of https://github.com/wmo-im/wis2-downloader-gui/tree/main/backend #1

Closed david-i-berry closed 1 month ago

david-i-berry commented 3 months ago
|
|--- wis2downloader
|    |--- __init__.py
|    |--- app.py
|    |--- subscriber
|    |    |--- __init__.py
|    |--- downloader
|    |    |--- __init__.py
|    |--- queue
|    |    |--- __init__.py

Package all MQTT functions / attributes into single class as part of subscriber, similar for downloader and queue. e.g.

class Subscriber():
    def __init__(self, broker: str = "globalbroker.meteo.fr",
                 port: int = 443, uid: str = "everyone",
                 pwd: str = "everyone", protocol: str = "websockets"):
        pass
    def _on_connect( ... ):
        pass
    def _on_subscribe( ... ):
        pass
    def _on_message( ... ):
        pass
    def add_subscription( ... ):
        pass
    def remove_subscription( ... ):
        pass

Usage (from main app):

    ...
    from wis2downloader.subscriber import Subscriber
    ...
    subscriber = Subscriber( ... )
    mqtt_thread = threading.Thread(target=subscriber.client.loop_forever,
                                   daemon=True).start()
    ...
david-i-berry commented 3 months ago

Split into 4 issues, one per sub-module and one for the main app.

david-i-berry commented 1 month ago

Code refactored.