Skip to main content

A Python client for the Emarsys API

Project description

# pymarsys: Python client for the Emarsys API

[![CircleCI](https://circleci.com/gh/transcovo/pymarsys.svg?style=svg)](https://circleci.com/gh/transcovo/pymarsys)

pymarsys allows you to choose the type of execution you want for the client: synchronous or asynchronous.

**Warning**: pymarsys is currently under development and on **Pre-Alpha** version. Use with caution!
Currently implemented endpoints are:

* contacts
* contact_fields

If you want to make calls to other endpoints, for now you can use the `make_call` method of the `SyncConnection` or `AsyncConnection` classes.

**Python 2.x compatibility**: If you are using python 2.x, don't, just don't.

### Synchronous example:
```python
>>> from pymarsys import SyncConnection, Emarsys
>>> connection = SyncConnection('username', 'secret')
>>> client = Emarsys(connection)
>>> client.contacts.create({'3': 'squirrel@squirrelmail.com'})
{'data': {'id': 19739576}, 'replyCode': 0, 'replyText': 'OK'}
```

### Asynchronous example:
```python
>>> from pymarsys import AsyncConnection, Emarsys
>>> async def my_async_func():
... connection = AsyncConnection('username', 'secret')
... client = Emarsys(connection)
... return await client.contacts.create({'3': 'squirrel@squirrelmail.com'})
>>> my_async_func()
<coroutine object AsyncConnection.make_call at 0x10c44bd58>
```

#### You will need an event loop to get the result of your coroutine. Here is an example using asyncio's event loop:
```python
>>> import asyncio
>>> coroutine = my_async_func()
>>> loop = asyncio.get_event_loop()
>>> loop.run_until_complete(coroutine)
{'data': {'id': 19739576}, 'replyCode': 0, 'replyText': 'OK'}
```

## Installation

Simply:
```sh
$ pip install pymarsys
🐿
```
## Documentation
Coming soon!

##Contributing

1. Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
2. Fork the repository on GitHub to start making your changes.
3. Write a test which shows that the bug was fixed or that the feature works as expected.
4. Send a pull request and bug the maintainer until it gets merged and published.

Project details


Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page