Metadata-Version: 2.1
Name: pyfldm
Version: 0.0.3
Summary: A library for controlling Fldigi via xmlrpc
Author-email: Phillip Hall <phall131@pm.me>
Project-URL: Homepage, https://github.com/philliphall131/pyfldm
Project-URL: Bug Tracker, https://github.com/philliphall131/pyfldm/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE

# PyFLDM

*** CAUTION: Current Release Notes: v0.x.x are very rough and untested. Version 1.0 still in development, tentative release date Sep2023. All current functionality being actively developed and tested. AppMonitor not compatible with Windows OS ***

## Python Fast Light Digital Modem
A library to be used for interacting with and controlling the Fldigi application. 

Can be used to control the application directly via python library, such as to start, stop, and monitor the running status. But the primary usage is in serving as an api to Fldigi via xmlrpc

## Installation
pip install pyfldm

## Using pyfldm

Example uses:
1. Controlling the Application (start, stop, status)
```
>>> from pyfldm.AppMonitor import AppMonitor
>>> app = AppMonitor()
>>> app.start()
>>> # wait a few seconds for Fldigi to start up
>>> app.is_running() # checks that Fldigi is a currently running process
True
>>> app.is_functional() # verifies that the xmlrpc interface is responsive
True
>>> result = app.stop() # asks fldigi to gracefully shut down, returns a 0 if successfully stopped, 1 if not
>>> if not result:
...     app.kill()  # forcibly kills the process
>>> app.is_running()
False

```

2. Using the XMLRPC API
```
# * assuming that Fldigi is already running
>>> from pyfldm.Client import Client
>>> client = Client()
>>> client.fldigi.version()
4.1.26

```
## Upcoming Features in v.1.0.0
* Fully tested endpoints for every Fldigi xmlrpc call
* Helpers to print or obtain the equivalent python calls for each namespace group
* Better documentation
* Support for Windows OS
