Metadata-Version: 2.1
Name: fixclient
Version: 2.0.0
Summary: Fix Python client library
Home-page: https://github.com/someengineering/fixclient-python
License: Apache-2.0
Author: Some Engineering Inc.
Requires-Python: >=3.9,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Security
Classifier: Topic :: Utilities
Provides-Extra: extras
Requires-Dist: PyJWT (>=2.3.0)
Requires-Dist: aiohttp (>=3.8.1)
Requires-Dist: certifi (>=2017.4.17)
Requires-Dist: cryptography (>=36.0.2)
Requires-Dist: graphviz (>=0.20) ; extra == "extras"
Requires-Dist: jsons (>=1.6.1)
Requires-Dist: pandas (>=1.4.2) ; extra == "extras"
Project-URL: Changelog, https://github.com/someengineering/fixclient-python/releases
Project-URL: Repository, https://github.com/someengineering/fixclient-python
Description-Content-Type: text/markdown

# fixclient-python
Python client for Fix

## Installation
```bash
pip install fixclient
```

For GraphVis and Pandas support:

```bash
pip install fixclient[extras]
```

## Usage

```python
from fixclient import FixClient

client = FixClient(url="https://localhost:8900", psk="changeme")
instances_csv = client.cli_execute("search is(instance) | tail 5 | list --csv")

for instance in instances_csv:
    print(instance)
```

### Pandas Dataframes
```python
df = client.dataframe("is(instance)")
```

### GraphViz Digraph
```python
graph = client.graphviz("is(graph_root) -->")
```

## Test
The tests expect a FixCore on localhost with the default PSK `changeme`.
You can start it locally via:

```bash
$> fixcore --graphdb-database fixclient_test --psk changeme
```

A local test environment is required. See the [contribution guide](https://fix.com/docs/contributing/components) for instructions.
When the virtual environment is available, use those commands to set up the project and run the tests:

```bash
$> pip install --upgrade pip poetry nox nox-poetry
$> nox
```

For more examples see the examples directory.

## Publish
- bump the version number in pyproject.toml
- `poetry build`
- `poetry publish`

