jupyterlite-simple-cors-proxy 0.0.1__py3-none-any.whl → 0.1.2__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  # File: jupyterlite_simple_cors_proxy/__init__.py
2
- from .proxy import cors_proxy, ProxyResponse
2
+ from .proxy import cors_proxy, robust_get_request
3
3
 
4
- __version__ = "0.1.0"
5
- __all__ = ["cors_proxy", "ProxyResponse"]
4
+ __version__ = "0.1.2"
5
+ __all__ = ["cors_proxy_get", "robust_get_request"]
@@ -2,25 +2,8 @@
2
2
  from urllib.parse import urlencode, quote
3
3
  import requests
4
4
 
5
- class ProxyResponse:
6
- def __init__(self, content):
7
- self._content = content
8
5
 
9
- @property
10
- def text(self):
11
- return self._content
12
-
13
- def json(self):
14
- import json
15
-
16
- return json.loads(self._content)
17
-
18
- @property
19
- def content(self):
20
- return self._content.encode()
21
-
22
-
23
- def cors_proxy(url, params=None):
6
+ def cors_proxy_get(url, params=None):
24
7
  """
25
8
  CORS proxy for GET resources with requests-like response.
26
9
 
@@ -29,7 +12,7 @@ def cors_proxy(url, params=None):
29
12
  params (dict, optional): Query parameters to include
30
13
 
31
14
  Returns:
32
- ProxyResponse: A response object with .text, .json(), and .content methods
15
+ A requests response object.
33
16
  """
34
17
  if params:
35
18
  full_url = f"{url}?{urlencode(params)}"
@@ -37,5 +20,17 @@ def cors_proxy(url, params=None):
37
20
  full_url = url
38
21
 
39
22
  proxy_url = f"https://corsproxy.io/?{quote(full_url)}"
40
- response = requests.get(proxy_url).content.decode().strip()
41
- return ProxyResponse(response)
23
+
24
+ # Do a simple requests get and
25
+ # just pass through the entire response object
26
+ return requests.get(proxy_url)
27
+
28
+ def robust_get_request(url, params=None):
29
+ """
30
+ Try to make a simple request else fall back to a proxy.
31
+ """
32
+ try:
33
+ r = requests.get(url, params=params)
34
+ except:
35
+ r = cors_proxy_get(url, params=params)
36
+ return r
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jupyterlite-simple-cors-proxy
3
- Version: 0.0.1
3
+ Version: 0.1.2
4
4
  Summary: A simple CORS proxy utility with requests-like response
5
5
  Home-page: https://github.com/innovationOUtside/jupyterlite-simple-cors-proxy
6
6
  Author: Tony Hirst
@@ -19,13 +19,13 @@ Simple CORS proxy for making http requests from JupyterLite
19
19
  ## Installation
20
20
 
21
21
  ```bash
22
- pip install simple-cors-proxy
22
+ pip install jupyterlite-simple-cors-proxy
23
23
  ```
24
24
 
25
25
  ## Usage
26
26
 
27
27
  ```python
28
- from simple_cors_proxy import cors_proxy
28
+ from simple_cors_proxy import cors_proxy_get, robust_get_request
29
29
 
30
30
  # Make a request
31
31
  url = "https://api.example.com/data"
@@ -38,9 +38,10 @@ data = response.json()
38
38
  raw = response.content
39
39
  ```
40
40
 
41
+ The `robust_get_request()` will first try a simple reuqst, then a proxied request: `robust_get_request(url, params)`
42
+
41
43
  ## Features
42
44
 
43
45
  - Simple CORS proxy wrapper
44
- - Requests-like response object
46
+ - Requests response object
45
47
  - Support for URL parameters
46
- - JSON parsing
@@ -0,0 +1,7 @@
1
+ jupyterlite_simple_cors_proxy/__init__.py,sha256=F1Y3oZFLKGV_q2B90txW9Lvxw8F9EyAEdnuk0WSeNiA,174
2
+ jupyterlite_simple_cors_proxy/proxy.py,sha256=KbJza7WpOq7VUrZtv1jEYSq0PTSyP9KED99k8eGxpHc,891
3
+ jupyterlite_simple_cors_proxy-0.1.2.dist-info/LICENSE,sha256=Ogw7GUmeZIxmDNiKWsu_N07svNoGnPB7lWyiXHX_rMY,1074
4
+ jupyterlite_simple_cors_proxy-0.1.2.dist-info/METADATA,sha256=LetMK15lky-aNJaitPPbByd4FilGFdiaXZqAxXhlpdg,1208
5
+ jupyterlite_simple_cors_proxy-0.1.2.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
6
+ jupyterlite_simple_cors_proxy-0.1.2.dist-info/top_level.txt,sha256=Oh0oQrSmRnBq5u675coiKMbkb2ASg8AGF8ZiZTzUS5Q,30
7
+ jupyterlite_simple_cors_proxy-0.1.2.dist-info/RECORD,,
@@ -1,7 +0,0 @@
1
- jupyterlite_simple_cors_proxy/__init__.py,sha256=wiS7zPJSmqeRn4N3oXw_I6-3fcob3zmHNYPajNzJBC8,160
2
- jupyterlite_simple_cors_proxy/proxy.py,sha256=ccWngd54cCctn84VLRqS1n68CLcAau-m1UMGKzdTDHQ,977
3
- jupyterlite_simple_cors_proxy-0.0.1.dist-info/LICENSE,sha256=Ogw7GUmeZIxmDNiKWsu_N07svNoGnPB7lWyiXHX_rMY,1074
4
- jupyterlite_simple_cors_proxy-0.0.1.dist-info/METADATA,sha256=WHxay6lOzsMur4XI-dd7pLkIXW6QiNqQ5NmSiy2itK8,1074
5
- jupyterlite_simple_cors_proxy-0.0.1.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
6
- jupyterlite_simple_cors_proxy-0.0.1.dist-info/top_level.txt,sha256=Oh0oQrSmRnBq5u675coiKMbkb2ASg8AGF8ZiZTzUS5Q,30
7
- jupyterlite_simple_cors_proxy-0.0.1.dist-info/RECORD,,