Skip to content

Commit c775aff

Browse files
author
Laurynas Butkus
committed
Add configuration, client
1 parent 1d15694 commit c775aff

File tree

7 files changed

+71
-0
lines changed

7 files changed

+71
-0
lines changed

convertapi/__init__.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
__version__ = '0.0.1'
2+
3+
from .exceptions import *
4+
from .configuration import Configuration
5+
from .client import Client
6+
7+
configuration = Configuration()
8+
client = Client(configuration)

convertapi/client.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import requests
2+
3+
from .exceptions import *
4+
5+
class Client:
6+
def __init__(self, configuration):
7+
self.configuration = configuration
8+
9+
def get(self, path, params = {}):
10+
r = requests.get(self.url(path), params=params, headers = self.headers())
11+
return self.handle_response(r)
12+
13+
def post(self, path, payload):
14+
r = requests.post(self.url(path), json=payload, headers = self.headers())
15+
return self.handle_response(r)
16+
17+
def handle_response(self, r):
18+
json = r.json()
19+
20+
if r.status_code >= 400:
21+
raise ConvertApiError(json['Message'])
22+
23+
r.raise_for_status()
24+
25+
return json
26+
27+
def url(self, path):
28+
return "%s/%s?Secret=%s" % (self.configuration.base_uri, path, self.configuration.api_secret)
29+
30+
def headers(self):
31+
return {
32+
'User-Agent': self.configuration.user_agent,
33+
}

convertapi/configuration.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import convertapi
2+
3+
class Configuration:
4+
api_secret = None
5+
base_uri = 'https://v2.convertapi.com/'
6+
user_agent = 'ConvertAPI-Python/' + convertapi.__version__
7+
connect_timeout = 5
8+
read_timeout = 60
9+
conversion_timeout = 180
10+
conversion_timeout_delta = 10
11+
upload_timeout = 600
12+
download_timeout = 600

convertapi/exceptions.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
class ConvertApiError(BaseException):
2+
def __init__(self, *args, **kwargs):
3+
super(ConvertApiError, self).__init__(*args, **kwargs)

tests/__init__.py

Whitespace-only changes.

tests/test_convertapi.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from . import utils
2+
from nose.tools import eq_
3+
import convertapi
4+
5+
class TestConvertapi(utils.TestCase):
6+
def testDefaults(self):
7+
eq_('https://v2.convertapi.com/', convertapi.configuration.base_uri)
8+
9+
def testConfiguration(self):
10+
convertapi.configuration.api_secret = 'TEST'
11+
eq_('TEST', convertapi.client.configuration.api_secret)

tests/utils.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import unittest
2+
3+
class TestCase(unittest.TestCase):
4+
pass

0 commit comments

Comments
 (0)