1+ import sys
12import requests
2- from .upload import FrameioUploader
33from requests .adapters import HTTPAdapter
44from requests .packages .urllib3 .util .retry import Retry
55from .download import FrameioDownloader
66
7+ if sys .version_info .major >= 3 :
8+ from .py3_uploader import FrameioUploader
9+ else :
10+ from .py2_uploader import FrameioUploader
11+
712class PaginatedResponse (object ):
813 def __init__ (self , results = [], page = 0 , page_size = 0 , total = 0 , total_pages = 0 ):
914 super (PaginatedResponse , self ).__init__ ()
@@ -26,12 +31,23 @@ def __init__(self, token, host='https://api.frame.io'):
2631 status_forcelist = [429 ],
2732 method_whitelist = ["POST" , "OPTIONS" , "GET" ]
2833 )
34+ self .client_version = self ._get_version ()
35+
36+ def _get_version (self ):
37+ try :
38+ from importlib import metadata
39+ except ImportError :
40+ # Running on pre-3.8 Python; use importlib-metadata package
41+ import importlib_metadata as metadata
42+
43+ return metadata .version ('frameioclient' )
2944
3045 def _api_call (self , method , endpoint , payload = {}):
3146 url = '{}/v2{}' .format (self .host , endpoint )
3247
3348 headers = {
34- 'Authorization' : 'Bearer {}' .format (self .token )
49+ 'Authorization' : 'Bearer {}' .format (self .token ),
50+ 'x-frameio-client' : 'python/{}' .format (self .client_version )
3551 }
3652
3753 adapter = HTTPAdapter (max_retries = self .retry_strategy )
@@ -48,13 +64,14 @@ def _api_call(self, method, endpoint, payload={}):
4864
4965 if r .ok :
5066 if r .headers .get ('page-number' ):
51- return PaginatedResponse (
52- results = r .json (),
53- page = r .headers ['page-number' ],
54- page_size = r .headers ['per-page' ],
55- total_pages = r .headers ['total-pages' ],
56- total = r .headers ['total' ]
57- )
67+ if int (r .headers .get ('total-pages' )) > 1 :
68+ return PaginatedResponse (
69+ results = r .json (),
70+ page = r .headers ['page-number' ],
71+ page_size = r .headers ['per-page' ],
72+ total_pages = r .headers ['total-pages' ],
73+ total = r .headers ['total' ]
74+ )
5875
5976 return r .json ()
6077
@@ -220,7 +237,7 @@ def update_asset(self, asset_id, **kwargs):
220237 Example::
221238 client.update_asset("adeffee123342", name="updated_filename.mp4")
222239 """
223- endpoint = '/assets/{}/children ' .format (asset_id )
240+ endpoint = '/assets/{}' .format (asset_id )
224241 return self ._api_call ('put' , endpoint , kwargs )
225242
226243 def upload (self , asset , file ):
@@ -260,7 +277,7 @@ def get_comment(self, comment_id, **kwargs):
260277 :Args:
261278 comment_id (string): The comment id.
262279 """
263- endpoint = '/comments/{id }' .format (comment_id )
280+ endpoint = '/comments/{}' .format (comment_id )
264281 return self ._api_call ('get' , endpoint , ** kwargs )
265282
266283 def get_comments (self , asset_id , ** kwargs ):
0 commit comments