Skip to content

Commit 7c88b34

Browse files
author
richard
committed
more PEP8 generally
1 parent 42a20b7 commit 7c88b34

File tree

1 file changed

+58
-59
lines changed

1 file changed

+58
-59
lines changed

mega/mega.py

Lines changed: 58 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import random
88
import binascii
99
import requests
10-
import time
1110
import shutil
1211
from .errors import ValidationError, RequestError
1312
from .crypto import *
@@ -29,15 +28,15 @@ def __init__(self, options=None):
2928

3029
def login(self, email=None, password=None):
3130
if email:
32-
self.login_user(email, password)
31+
self._login_user(email, password)
3332
else:
3433
self.login_anonymous()
3534
return self
3635

37-
def login_user(self, email, password):
36+
def _login_user(self, email, password):
3837
password_aes = prepare_key(str_to_a32(password))
3938
uh = stringhash(email, password_aes)
40-
resp = self.api_request({'a': 'us', 'user': email, 'uh': uh})
39+
resp = self._api_request({'a': 'us', 'user': email, 'uh': uh})
4140
#if numeric error code response
4241
if isinstance(resp, int):
4342
raise RequestError(resp)
@@ -48,14 +47,14 @@ def login_anonymous(self):
4847
password_key = [random.randint(0, 0xFFFFFFFF)] * 4
4948
session_self_challenge = [random.randint(0, 0xFFFFFFFF)] * 4
5049

51-
user = self.api_request({
52-
'a': 'up',
53-
'k': a32_to_base64(encrypt_key(master_key, password_key)),
54-
'ts': base64_url_encode(a32_to_str(session_self_challenge) +
55-
a32_to_str(encrypt_key(session_self_challenge, master_key)))
50+
user = self._api_request({
51+
'a': 'up',
52+
'k': a32_to_base64(encrypt_key(master_key, password_key)),
53+
'ts': base64_url_encode(a32_to_str(session_self_challenge) +
54+
a32_to_str(encrypt_key(session_self_challenge, master_key)))
5655
})
5756

58-
resp = self.api_request({'a': 'us', 'user': user})
57+
resp = self._api_request({'a': 'us', 'user': user})
5958
#if numeric error code response
6059
if isinstance(resp, int):
6160
raise RequestError(resp)
@@ -93,7 +92,7 @@ def _login_process(self, resp, password):
9392
sid = binascii.unhexlify('0' + sid if len(sid) % 2 else sid)
9493
self.sid = base64_url_encode(sid[:43])
9594

96-
def api_request(self, data):
95+
def _api_request(self, data):
9796
params = {'id': self.sequence_num}
9897
self.sequence_num += 1
9998

@@ -116,16 +115,16 @@ def api_request(self, data):
116115
raise RequestError(json_resp)
117116
return json_resp[0]
118117

119-
def parse_url(self, url):
118+
def _parse_url(self, url):
120119
#parse file id and key from url
121-
if ('!' in url):
120+
if '!' in url:
122121
match = re.findall(r'/#!(.*)', url)
123122
path = match[0]
124123
return path
125124
else:
126125
raise RequestError('Url key missing')
127126

128-
def process_file(self, file, shared_keys):
127+
def _process_file(self, file, shared_keys):
129128
"""
130129
Process a file
131130
"""
@@ -180,7 +179,7 @@ def process_file(self, file, shared_keys):
180179
file['a'] = {'n': 'Rubbish Bin'}
181180
return file
182181

183-
def init_shared_keys(self, files, shared_keys):
182+
def _init_shared_keys(self, files, shared_keys):
184183
"""
185184
Init shared key not associated with a user.
186185
Seems to happen when a folder is shared,
@@ -213,12 +212,12 @@ def get_files(self):
213212
"""
214213
Get all files in account
215214
"""
216-
files = self.api_request({'a': 'f', 'c': 1})
215+
files = self._api_request({'a': 'f', 'c': 1})
217216
files_dict = {}
218217
shared_keys = {}
219-
self.init_shared_keys(files, shared_keys)
218+
self._init_shared_keys(files, shared_keys)
220219
for file in files['f']:
221-
processed_file = self.process_file(file, shared_keys)
220+
processed_file = self._process_file(file, shared_keys)
222221
#ensure each file has a name before returning
223222
if processed_file['a']:
224223
files_dict[file['h']] = processed_file
@@ -231,7 +230,7 @@ def get_upload_link(self, file):
231230
"""
232231
if 'f' in file:
233232
file = file['f'][0]
234-
public_handle = self.api_request({'a': 'l', 'n': file['h']})
233+
public_handle = self._api_request({'a': 'l', 'n': file['h']})
235234
file_key = file['k'][file['k'].index(':') + 1:]
236235
decrypted_key = a32_to_base64(decrypt_key(base64_to_a32(file_key),
237236
self.master_key))
@@ -249,7 +248,7 @@ def get_link(self, file):
249248
"""
250249
file = file[1]
251250
if 'h' in file and 'k' in file:
252-
public_handle = self.api_request({'a': 'l', 'n': file['h']})
251+
public_handle = self._api_request({'a': 'l', 'n': file['h']})
253252
if public_handle == -11:
254253
raise RequestError("Can't get a public link from that file (is this a shared file?)")
255254
decrypted_key = a32_to_base64(file['key'])
@@ -261,7 +260,7 @@ def get_link(self, file):
261260
raise ValidationError('File id and key must be present')
262261

263262
def get_user(self):
264-
user_data = self.api_request({'a': 'ug'})
263+
user_data = self._api_request({'a': 'ug'})
265264
return user_data
266265

267266
def get_node_by_type(self, type):
@@ -275,7 +274,7 @@ def get_node_by_type(self, type):
275274
"""
276275
nodes = self.get_files()
277276
for node in nodes.items():
278-
if (node[1]['t'] == type):
277+
if node[1]['t'] == type:
279278
return node
280279

281280
def get_files_in_node(self, target):
@@ -288,19 +287,19 @@ def get_files_in_node(self, target):
288287
else:
289288
node_id = [target]
290289

291-
files = self.api_request({'a': 'f', 'c': 1})
290+
files = self._api_request({'a': 'f', 'c': 1})
292291
files_dict = {}
293292
shared_keys = {}
294-
self.init_shared_keys(files, shared_keys)
293+
self._init_shared_keys(files, shared_keys)
295294
for file in files['f']:
296-
processed_file = self.process_file(file, shared_keys)
295+
processed_file = self._process_file(file, shared_keys)
297296
if processed_file['a'] and processed_file['p'] == node_id[0]:
298297
files_dict[file['h']] = processed_file
299298
return files_dict
300299

301300
def get_id_from_public_handle(self, public_handle):
302301
#get node data
303-
node_data = self.api_request({'a': 'f', 'f': 1, 'p': public_handle})
302+
node_data = self._api_request({'a': 'f', 'f': 1, 'p': public_handle})
304303
node_id = self.get_id_from_obj(node_data)
305304
return node_id
306305

@@ -319,7 +318,7 @@ def get_quota(self):
319318
"""
320319
Get current remaining disk quota in MegaBytes
321320
"""
322-
json_resp = self.api_request({'a': 'uq', 'xfer': 1})
321+
json_resp = self._api_request({'a': 'uq', 'xfer': 1})
323322
#convert bytes to megabyes
324323
return json_resp['mstrg'] / 1048576
325324

@@ -340,7 +339,7 @@ def get_storage_space(self, giga=False, mega=False, kilo=False):
340339
unit_coef = 1048576
341340
if giga:
342341
unit_coef = 1073741824
343-
json_resp = self.api_request({'a': 'uq', 'xfer': 1, 'strg': 1})
342+
json_resp = self._api_request({'a': 'uq', 'xfer': 1, 'strg': 1})
344343
return {
345344
'used': json_resp['cstrg'] / unit_coef,
346345
'total': json_resp['mstrg'] / unit_coef,
@@ -350,7 +349,7 @@ def get_balance(self):
350349
"""
351350
Get account monetary balance, Pro accounts only
352351
"""
353-
user_data = self.api_request({"a": "uq", "pro": 1})
352+
user_data = self._api_request({"a": "uq", "pro": 1})
354353
if 'balance' in user_data:
355354
return user_data['balance']
356355

@@ -366,7 +365,7 @@ def delete_url(self, url):
366365
"""
367366
Delete a file by its url
368367
"""
369-
path = self.parse_url(url).split('!')
368+
path = self._parse_url(url).split('!')
370369
public_handle = path[0]
371370
file_id = self.get_id_from_public_handle(public_handle)
372371
return self.move(file_id, 4)
@@ -375,15 +374,15 @@ def destroy(self, file_id):
375374
"""
376375
Destroy a file by its private id
377376
"""
378-
return self.api_request({'a': 'd',
377+
return self._api_request({'a': 'd',
379378
'n': file_id,
380379
'i': self.request_id})
381380

382381
def destroy_url(self, url):
383382
"""
384383
Destroy a file by its url
385384
"""
386-
path = self.parse_url(url).split('!')
385+
path = self._parse_url(url).split('!')
387386
public_handle = path[0]
388387
file_id = self.get_id_from_public_handle(public_handle)
389388
return self.destroy(file_id)
@@ -399,39 +398,39 @@ def empty_trash(self):
399398
post_list.append({"a": "d",
400399
"n": file,
401400
"i": self.request_id})
402-
return self.api_request(post_list)
401+
return self._api_request(post_list)
403402

404403
##########################################################################
405404
# DOWNLOAD
406405
def download(self, file, dest_path=None, dest_filename=None):
407406
"""
408407
Download a file by it's file object
409408
"""
410-
self.download_file(None, None, file=file[1], dest_path=dest_path, dest_filename=dest_filename, is_public=False)
409+
self._download_file(None, None, file=file[1], dest_path=dest_path, dest_filename=dest_filename, is_public=False)
411410

412411
def download_url(self, url, dest_path=None, dest_filename=None):
413412
"""
414413
Download a file by it's public url
415414
"""
416-
path = self.parse_url(url).split('!')
415+
path = self._parse_url(url).split('!')
417416
file_id = path[0]
418417
file_key = path[1]
419-
self.download_file(file_id, file_key, dest_path, dest_filename, is_public=True)
418+
self._download_file(file_id, file_key, dest_path, dest_filename, is_public=True)
420419

421-
def download_file(self, file_handle, file_key, dest_path=None, dest_filename=None, is_public=False, file=None):
422-
if file is None :
420+
def _download_file(self, file_handle, file_key, dest_path=None, dest_filename=None, is_public=False, file=None):
421+
if file is None:
423422
if is_public:
424423
file_key = base64_to_a32(file_key)
425-
file_data = self.api_request({'a': 'g', 'g': 1, 'p': file_handle})
424+
file_data = self._api_request({'a': 'g', 'g': 1, 'p': file_handle})
426425
else:
427-
file_data = self.api_request({'a': 'g', 'g': 1, 'n': file_handle})
426+
file_data = self._api_request({'a': 'g', 'g': 1, 'n': file_handle})
428427

429428
k = (file_key[0] ^ file_key[4], file_key[1] ^ file_key[5],
430429
file_key[2] ^ file_key[6], file_key[3] ^ file_key[7])
431430
iv = file_key[4:6] + (0, 0)
432431
meta_mac = file_key[6:8]
433432
else:
434-
file_data = self.api_request({'a': 'g', 'g': 1, 'n': file['h']})
433+
file_data = self._api_request({'a': 'g', 'g': 1, 'n': file['h']})
435434
k = file['k']
436435
iv = file['iv']
437436
meta_mac = file['meta_mac']
@@ -518,7 +517,7 @@ def upload(self, filename, dest=None, dest_filename=None):
518517
#request upload url, call 'u' method
519518
input_file = open(filename, 'rb')
520519
file_size = os.path.getsize(filename)
521-
ul_url = self.api_request({'a': 'u', 's': file_size})['p']
520+
ul_url = self._api_request({'a': 'u', 's': file_size})['p']
522521

523522
#generate random aes key (128) for file
524523
ul_key = [random.randint(0, 0xFFFFFFFF) for _ in range(6)]
@@ -579,11 +578,11 @@ def upload(self, filename, dest=None, dest_filename=None):
579578
ul_key[4], ul_key[5], meta_mac[0], meta_mac[1]]
580579
encrypted_key = a32_to_base64(encrypt_key(key, self.master_key))
581580
#update attributes
582-
data = self.api_request({'a': 'p', 't': dest, 'n': [{
583-
'h': completion_file_handle,
584-
't': 0,
585-
'a': encrypt_attribs,
586-
'k': encrypted_key}]})
581+
data = self._api_request({'a': 'p', 't': dest, 'n': [{
582+
'h': completion_file_handle,
583+
't': 0,
584+
'a': encrypt_attribs,
585+
'k': encrypted_key}]})
587586
#close input file and return API msg
588587
input_file.close()
589588
return data
@@ -607,7 +606,7 @@ def create_folder(self, name, dest=None):
607606
encrypted_key = a32_to_base64(encrypt_key(ul_key[:4], self.master_key))
608607

609608
#update attributes
610-
data = self.api_request({'a': 'p',
609+
data = self._api_request({'a': 'p',
611610
't': dest,
612611
'n': [{
613612
'h': 'xxxxxxxx',
@@ -628,7 +627,7 @@ def rename(self, file, new_name):
628627
encrypted_key = a32_to_base64(encrypt_key(file['key'], self.master_key))
629628

630629
#update attributes
631-
data = self.api_request([{
630+
data = self._api_request([{
632631
'a': 'a',
633632
'attr': encrypt_attribs,
634633
'key': encrypted_key,
@@ -666,7 +665,7 @@ def move(self, file_id, target):
666665
else:
667666
file = target[1]
668667
target_node_id = file['h']
669-
return self.api_request({'a': 'm',
668+
return self._api_request({'a': 'm',
670669
'n': file_id,
671670
't': target_node_id,
672671
'i': self.request_id})
@@ -697,10 +696,10 @@ def _edit_contact(self, email, add):
697696
if not re.match(r"[^@]+@[^@]+\.[^@]+", email):
698697
ValidationError('add_contact requires a valid email address')
699698
else:
700-
return self.api_request({'a': 'ur',
701-
'u': email,
702-
'l': l,
703-
'i': self.request_id})
699+
return self._api_request({'a': 'ur',
700+
'u': email,
701+
'l': l,
702+
'i': self.request_id})
704703

705704
def get_contacts(self):
706705
raise NotImplementedError()
@@ -722,21 +721,21 @@ def get_public_url_info(self, url):
722721
"""
723722
Get size and name from a public url, dict returned
724723
"""
725-
file_handle, file_key = self.parse_url(url).split('!')
724+
file_handle, file_key = self._parse_url(url).split('!')
726725
return self.get_public_file_info(file_handle, file_key)
727726

728727
def import_public_url(self, url, dest_node=None, dest_name=None):
729728
"""
730729
Import the public url into user account
731730
"""
732-
file_handle, file_key = self.parse_url(url).split('!')
731+
file_handle, file_key = self._parse_url(url).split('!')
733732
return self.import_public_file(file_handle, file_key, dest_node=dest_node, dest_name=dest_name)
734733

735734
def get_public_file_info(self, file_handle, file_key):
736735
"""
737736
Get size and name of a public file
738737
"""
739-
data = self.api_request({
738+
data = self._api_request({
740739
'a': 'g',
741740
'p': file_handle,
742741
'ssm': 1})
@@ -753,7 +752,7 @@ def get_public_file_info(self, file_handle, file_key):
753752

754753
size = data['s']
755754
unencrypted_attrs = decrypt_attr(base64_url_decode(data['at']), k)
756-
if not(unencrypted_attrs):
755+
if not unencrypted_attrs:
757756
return None
758757

759758
result = {
@@ -783,7 +782,7 @@ def import_public_file(self, file_handle, file_key, dest_node=None, dest_name=No
783782
encrypted_key = a32_to_base64(encrypt_key(key, self.master_key))
784783
encrypted_name = base64_url_encode(encrypt_attr({'n': dest_name}, k))
785784

786-
data = self.api_request({
785+
data = self._api_request({
787786
'a': 'p',
788787
't': dest_node['h'],
789788
'n': [{

0 commit comments

Comments
 (0)