Skip to content

Commit c318750

Browse files
committed
Switch to v3 api
1 parent 832b426 commit c318750

File tree

6 files changed

+25
-27
lines changed

6 files changed

+25
-27
lines changed

detectlanguage/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from .exceptions import *
44
from .configuration import Configuration
55
from .client import Client
6-
from .api import simple_detect, detect, user_status, languages
6+
from .api import detect, detect_code, detect_batch, account_status, languages
77

88
configuration = Configuration()
99
client = Client(configuration)

detectlanguage/api.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
import detectlanguage
22

33
def detect(data):
4-
result = detectlanguage.client.post('detect', { 'q': data })
5-
return result['data']['detections']
4+
if isinstance(data, list):
5+
raise ValueError('use detect_batch instead for multiple texts')
66

7-
def simple_detect(data):
7+
return detectlanguage.client.post('detect', { 'q': data })
8+
9+
def detect_code(data):
810
result = detect(data)
911
return result[0]['language']
1012

11-
def user_status():
12-
return detectlanguage.client.get('user/status')
13+
def detect_batch(data):
14+
return detectlanguage.client.post('detect-batch', { 'q': data })
15+
16+
def account_status():
17+
return detectlanguage.client.get('account/status')
1318

1419
def languages():
1520
return detectlanguage.client.get('languages')

detectlanguage/client.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,7 @@ def handle_http_error(self, r, err):
4242
raise DetectLanguageError(err)
4343

4444
def url(self, path):
45-
return "%s://%s/%s/%s" % (self.protocol(), self.configuration.host, self.configuration.api_version, path)
46-
47-
def protocol(self):
48-
return 'https' if self.configuration.secure else 'http'
45+
return "https://%s/%s/%s" % (self.configuration.host, self.configuration.api_version, path)
4946

5047
def headers(self):
5148
return {

detectlanguage/configuration.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
class Configuration:
44
api_key = None
5-
api_version = '0.2'
5+
api_version = 'v3'
66
host = 'ws.detectlanguage.com'
77
user_agent = 'Detect Language API Python Client ' + detectlanguage.__version__
8-
secure = False
98
timeout = 5

tests/test_api.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,36 +8,34 @@ class TestApi:
88
def setup_method(self):
99
detectlanguage.configuration.api_key = os.environ['DETECTLANGUAGE_API_KEY']
1010

11-
def test_simple_detect(self):
12-
result = detectlanguage.simple_detect("Hello world")
11+
def test_detect_code(self):
12+
result = detectlanguage.detect_code("Hello world")
1313
assert result == 'en'
1414

1515
def test_detect(self):
1616
result = detectlanguage.detect("Hello world")
1717
assert result[0]['language'] == 'en'
1818

19+
def test_detect_with_array(self):
20+
with pytest.raises(ValueError):
21+
detectlanguage.detect(["Hello world", "Ėjo ežiukas"])
22+
1923
def test_detect_unicode(self):
2024
result = detectlanguage.detect("Ėjo ežiukas")
2125
assert result[0]['language'] == 'lt'
2226

23-
def test_detect_array(self):
24-
result = detectlanguage.detect(["Hello world", "Ėjo ežiukas"])
27+
def test_detect_batch(self):
28+
result = detectlanguage.detect_batch(["Hello world", "Ėjo ežiukas"])
2529
assert result[0][0]['language'] == 'en'
2630
assert result[1][0]['language'] == 'lt'
2731

28-
def test_user_status(self):
29-
result = detectlanguage.user_status()
32+
def test_account_status(self):
33+
result = detectlanguage.account_status()
3034
assert result['status'] == 'ACTIVE'
3135

3236
def test_languages(self):
3337
result = detectlanguage.languages()
34-
assert { 'code': 'en', 'name': 'ENGLISH' } in result
35-
36-
def test_secure(self):
37-
detectlanguage.configuration.secure = True
38-
result = detectlanguage.detect("Hello world")
39-
assert result[0]['language'] == 'en'
40-
detectlanguage.configuration.secure = False
38+
assert { 'code': 'en', 'name': 'English' } in result
4139

4240
class TestApiErrors:
4341
def test_invalid_key(self):

tests/test_detectlanguage.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33

44
class TestDetectlanguage:
55
def testDefaults(self):
6-
assert detectlanguage.configuration.api_version == '0.2'
6+
assert detectlanguage.configuration.api_version == 'v3'
77
assert detectlanguage.configuration.host == 'ws.detectlanguage.com'
8-
assert detectlanguage.configuration.secure == False
98

109
def testConfiguration(self):
1110
detectlanguage.configuration.api_key = 'TEST'

0 commit comments

Comments
 (0)