Skip to content

Commit 0f5b6cd

Browse files
v1.0.3
- enhancements related to #4 - enhancements related to #9 - enhancements related to notice and license files
1 parent 71c979f commit 0f5b6cd

4 files changed

Lines changed: 36 additions & 8 deletions

File tree

sendsafely/Package.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,15 @@
22
import math
33
import os
44
import requests
5+
import cryptography
6+
major, minor, patch = [int(x, 10) for x in cryptography.__version__.split('.')]
7+
if major < 41:
8+
from cryptography import CryptographyDeprecationWarning
9+
else:
10+
from cryptography.utils import CryptographyDeprecationWarning
511
from pgpy import PGPMessage
612
from sendsafely.Progress import Progress
13+
import warnings
714

815
from sendsafely.exceptions import CreatePackageFailedException, FinalizePackageFailedException, DownloadFileException, \
916
UploadFileException, DeletePackageException, KeycodeRequiredException, GetPackageInformationFailedException, \
@@ -27,6 +34,7 @@ def __init__(self, sendsafely_instance, package_variables=None):
2734
:param package_variables:
2835
"""
2936
super().__init__()
37+
warnings.filterwarnings('ignore', category=CryptographyDeprecationWarning)
3038
self.initialized_via_keycode = True
3139
if package_variables is None:
3240
self.client_secret = _generate_keycode()
@@ -283,11 +291,14 @@ def delete_file_from_package(self, file_id):
283291
raise DeleteFileException(details=response["message"])
284292
return response
285293

286-
def get_file_information(self, file_id):
294+
def get_file_information(self, file_id, directory_id=None):
287295
"""
288296
Return the file information for a specified fileId
289297
"""
290-
endpoint = "/package/" + self.package_id + "/file/" + file_id
298+
if directory_id:
299+
endpoint = "/package/" + self.package_id + "/directory/" + directory_id + "/file/" + file_id
300+
else:
301+
endpoint = "/package/" + self.package_id + "/file/" + file_id
291302
url = self.sendsafely.BASE_URL + endpoint
292303
headers = make_headers(self.sendsafely.API_SECRET, self.sendsafely.API_KEY, endpoint)
293304
response = requests.get(url=url, headers=headers).json()
@@ -300,7 +311,7 @@ def download_and_decrypt_file(self, file_id, directory_id=None, download_directo
300311
Downloads & decrypts the specified file to the path specified
301312
"""
302313
self._block_operation_without_keycode()
303-
file_info = self.get_file_information(file_id)
314+
file_info = self.get_file_information(file_id, directory_id)
304315
if not file_name:
305316
file_name = file_info["fileName"]
306317
total = file_info["fileParts"]

sendsafely/SendSafely.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
import json
22
import re
3+
import warnings
4+
35
import requests
46
import pgpy
7+
import cryptography
8+
major, minor, patch = [int(x, 10) for x in cryptography.__version__.split('.')]
9+
if major < 41:
10+
from cryptography import CryptographyDeprecationWarning
11+
else:
12+
from cryptography.utils import CryptographyDeprecationWarning
513
from pgpy import PGPMessage
614
from pgpy.constants import KeyFlags, HashAlgorithm, SymmetricKeyAlgorithm, CompressionAlgorithm
715
from sendsafely.Package import Package
@@ -24,6 +32,7 @@ class SendSafely:
2432

2533
def __init__(self, url, api_key, api_secret):
2634
super().__init__()
35+
warnings.filterwarnings('ignore', category=CryptographyDeprecationWarning)
2736
self.BASE_URL = url + self.API_URL
2837
self.API_KEY = api_key
2938
self.API_SECRET = api_secret
@@ -124,7 +133,11 @@ def get_package_keycode(self, package_id, public_key_id=None, private_key=None):
124133
url = self.BASE_URL + endpoint
125134
headers = make_headers(self.API_SECRET, self.API_KEY, endpoint)
126135
try:
127-
keycode = requests.get(url, headers=headers).json()["message"]
136+
keycode_json = requests.get(url, headers=headers).json();
137+
keycode = keycode_json['message'];
138+
if keycode_json['response'] == 'FAIL':
139+
raise GetKeycodeFailedException(details=str(keycode))
140+
128141
key_pair = pgpy.PGPKey.from_blob(str(private_key))[0]
129142
keycode_message = PGPMessage.from_blob(keycode)
130143
decrypted_keycode = key_pair.decrypt(keycode_message).message

setup.cfg

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
[metadata]
2-
description-file = README.md
2+
description-file = README.md
3+
license_files = LICENSE.txt, NOTICE.txt

setup.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
from distutils.core import setup
1+
from setuptools import setup
22

33
setup(
44
name='sendsafely',
5-
version='1.0.1',
5+
version='1.0.3',
66
packages=['sendsafely'],
77
description='The SendSafely Client API allows programmatic access to SendSafely and provides a layer of abstraction from our REST API, which requires developers to perform several complex tasks in a correct manner.',
8+
long_description_content_type="text/markdown",
89
author='SendSafely',
910
author_email='support@sendsafely.com',
1011
url='https://github.com/SendSafely/Python-Client-API',
@@ -13,10 +14,12 @@
1314
'PGPy'
1415
],
1516
python_requires='>=3',
17+
license='Apache License Version 2.0',
1618
classifiers=[
1719
'Development Status :: 5 - Production/Stable',
1820
'Intended Audience :: Developers',
1921
'Topic :: Software Development :: Libraries :: Application Frameworks',
20-
'Programming Language :: Python :: 3'
22+
'Programming Language :: Python :: 3',
23+
'License :: OSI Approved :: Apache Software License'
2124
],
2225
)

0 commit comments

Comments
 (0)