nerveclient 0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,13 @@
1
+ Metadata-Version: 2.1
2
+ Name: nerveclient
3
+ Version: 0.1
4
+ Summary: A small example package
5
+ Author-email: Matthew Prast <mprast@get-nerve.com>
6
+ Project-URL: Homepage, https://github.com/get-nerve/nerve-engine-clients
7
+ Project-URL: Issues, https://github.com/get-nerve/nerve-engine-clients/issues
8
+ Classifier: Programming Language :: Python :: 2
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=2.7
13
+ Description-Content-Type: text/markdown
@@ -0,0 +1 @@
1
+ from .client import NerveEngineClient
@@ -0,0 +1,57 @@
1
+ import requests
2
+ from requests.adapters import HTTPAdapter
3
+ from requests.packages.urllib3.util.retry import Retry
4
+
5
+ import pdb
6
+
7
+ class NerveEngineClient:
8
+ connectionString = None
9
+ apiKey = None
10
+ jwt = None
11
+
12
+ s = requests.Session()
13
+ retries = Retry(total=5, backoff_factor=0.1, status_forcelist=[429, 500, 502, 503, 504])
14
+ s.mount('http://', HTTPAdapter(max_retries=retries))
15
+
16
+ def __refreshJwt(self):
17
+ r = self.s.post(self.connectionString + "/auth", json={
18
+ "data": {
19
+ "apiKey": self.apiKey
20
+ }
21
+ })
22
+ r.raise_for_status()
23
+ json = r.json()
24
+ self.jwt = json["jwt"]
25
+
26
+ def __init__(self, connectionString, apiKey):
27
+ self.connectionString = connectionString
28
+ self.apiKey = apiKey
29
+ self.__refreshJwt()
30
+
31
+ def health(self):
32
+ r = self.s.get(self.connectionString + "/health")
33
+ return r.status_code == 200
34
+
35
+ def authed(self):
36
+ r = self.s.post(self.connectionString + "/auth/ping", json={
37
+ "jwt": self.jwt
38
+ })
39
+
40
+ return r.status_code == 200
41
+
42
+ def query(self, **kwargs):
43
+ retry = False
44
+ while True:
45
+ args = {"jwt": self.jwt};
46
+ args.update(kwargs);
47
+
48
+ r = self.s.post(self.connectionString + "/query", json={"data": args});
49
+
50
+ if not retry and r.status_code == 401:
51
+ self.__refreshJwt()
52
+ retry = True
53
+ continue
54
+
55
+ r.raise_for_status()
56
+
57
+ return r.json()
@@ -0,0 +1,13 @@
1
+ Metadata-Version: 2.1
2
+ Name: nerveclient
3
+ Version: 0.1
4
+ Summary: A small example package
5
+ Author-email: Matthew Prast <mprast@get-nerve.com>
6
+ Project-URL: Homepage, https://github.com/get-nerve/nerve-engine-clients
7
+ Project-URL: Issues, https://github.com/get-nerve/nerve-engine-clients/issues
8
+ Classifier: Programming Language :: Python :: 2
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=2.7
13
+ Description-Content-Type: text/markdown
@@ -0,0 +1,8 @@
1
+ pyproject.toml
2
+ nerveclient/__init__.py
3
+ nerveclient/client.py
4
+ nerveclient.egg-info/PKG-INFO
5
+ nerveclient.egg-info/SOURCES.txt
6
+ nerveclient.egg-info/dependency_links.txt
7
+ nerveclient.egg-info/requires.txt
8
+ nerveclient.egg-info/top_level.txt
@@ -0,0 +1 @@
1
+ requests
@@ -0,0 +1 @@
1
+ nerveclient
@@ -0,0 +1,22 @@
1
+ [project]
2
+ name = "nerveclient"
3
+ version = "0.1"
4
+ dependencies = [
5
+ "requests"
6
+ ]
7
+ authors = [
8
+ { name="Matthew Prast", email="mprast@get-nerve.com" },
9
+ ]
10
+ description = "A small example package"
11
+ readme = "README.md"
12
+ requires-python = ">=2.7"
13
+ classifiers = [
14
+ "Programming Language :: Python :: 2",
15
+ "Programming Language :: Python :: 3",
16
+ "License :: OSI Approved :: MIT License",
17
+ "Operating System :: OS Independent",
18
+ ]
19
+
20
+ [project.urls]
21
+ Homepage = "https://github.com/get-nerve/nerve-engine-clients"
22
+ Issues = "https://github.com/get-nerve/nerve-engine-clients/issues"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+