Skip to content

Commit 72b4423

Browse files
authored
Merge pull request #20 from JaviCerveraIngram/suppress-warnings
Suppress warnings
2 parents 1dd2361 + f05134a commit 72b4423

File tree

14 files changed

+72
-47
lines changed

14 files changed

+72
-47
lines changed

README.md

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
---
66
Connect Python SDK allows an easy and fast integration with Connect fulfillment API. Thanks to it you can automate the fulfillment of orders generated by your products.
77

8-
In order to use this library, please ensure that you have read first the documentation available on Connect knowladge base article located here, this one will provide you a great information on the rest api that this library implements.
8+
In order to use this library, please ensure that you have read first the documentation available on Connect knowledge base article located [here](http://help.vendor.connect.cloud.im/support/solutions/articles/43000030735-fulfillment-management-module), this one will provide you a great information on the rest api that this library implements.
99
### Class Features
1010
---
1111
This library may be consumed in your project in order to automate the fulfillment of requests, this class once imported into your project will allow you to:
@@ -45,8 +45,14 @@ from connect.models.exception import FulfillmentFail, FulfillmentInquire, Skip
4545

4646
class ExampleRequestProcessor(FulfillmentAutomation):
4747
def process_request(self, request):
48-
49-
# custom logic
48+
49+
logger.info('Processing request {} for contract {}, product {}, marketplace {}'
50+
.format(request.id,
51+
request.contract.id,
52+
request.asset.product.name,
53+
request.marketplace.name))
54+
55+
# Custom logic
5056
if request.type == 'purchase':
5157
for item in request.asset.items:
5258
if item.quantity > 100000:
@@ -58,27 +64,27 @@ class ExampleRequestProcessor(FulfillmentAutomation):
5864
param.value_error = 'Email address has not been provided, please provide one'
5965
raise FulfillmentInquire(params=[param])
6066

61-
# approve by ActivationTile
62-
return ActivationTileResponse(tile='\n # Welcome to Fallball!\n\nYes, '
63-
'you decided to have an account in our amazing service!')
64-
# or
67+
# Approve by ActivationTile
68+
return ActivationTileResponse('\n # Welcome to Fallball!\n\nYes, '
69+
'you decided to have an account in our amazing service!')
70+
# Or
6571
# return TemplateResource().render(pk='TEMPLATE_ID', request_id=request.id)
6672

67-
# aprrove by Template
68-
return ActivationTemplateResponse(template_id="TL-497-535-242")
69-
# or
73+
# Approve by Template
74+
return ActivationTemplateResponse('TL-497-535-242')
75+
# Or
7076
# return TemplateResource().get(pk='TEMPLATE_ID')
7177

7278
elif request.type == 'change':
73-
# fail
79+
# Fail
7480
raise FulfillmentFail()
7581
else:
76-
# skip request
82+
# Skip request
7783
raise Skip()
7884

7985

8086
if __name__ == '__main__':
81-
request = ExampleRequestProcessor()
82-
request.process()
87+
request_processor = ExampleRequestProcessor()
88+
request_processor.process()
8389
```
8490

connect/config.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
class Config(object):
1313
_instance = None # Global instance
1414

15+
# noinspection PyShadowingBuiltins
1516
def __init__(
1617
self,
1718
api_url=None,
@@ -37,7 +38,7 @@ def __init__(
3738
# Load config from file name
3839
if file:
3940
if not os.path.exists(file):
40-
raise IOError('Not file `{}` on directory'.format(file))
41+
raise IOError('No file `{}` on directory'.format(file))
4142

4243
with open(file) as config_file:
4344
configs = config_file.read()

connect/models/activation_response.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
class ActivationTileResponse(object):
1212
tile = 'Activation succeeded'
1313

14-
def __init__(self, markdown=None, *args, **kwargs):
14+
def __init__(self, markdown=None):
1515
if markdown:
1616
try:
1717
self.tile = json.loads(markdown)

connect/models/asset.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717
class Asset(BaseModel):
1818
def get_param_by_id(self, id_):
1919
try:
20+
# noinspection PyUnresolvedReferences
2021
return list(filter(lambda param: param.id == id_, self.params))[0]
2122
except IndexError:
2223
return None
2324

2425
def get_item_by_mpn(self, mpn):
2526
try:
27+
# noinspection PyUnresolvedReferences
2628
return list(filter(lambda item: item.mpn == mpn, self.items))[0]
2729
except IndexError:
2830
return None

connect/models/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010

1111
class BaseModel:
12-
def __init__(self, *args, **kwargs):
12+
def __init__(self, **kwargs):
1313
self.id = kwargs.get('id')
1414
if kwargs:
1515
for attr, val in kwargs.items():

connect/models/exception.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,22 @@ def __init__(self, message='', code='', obj=None):
1818
class FulfillmentFail(Message):
1919
def __init__(self, *args, **kwargs):
2020
super(FulfillmentFail, self).__init__(*args, **kwargs)
21-
self.code = 'fail'
2221
self.message = self.message or 'Request failed'
22+
self.code = 'fail'
2323

2424

2525
class FulfillmentInquire(Message):
2626
def __init__(self, *args, **kwargs):
2727
super(FulfillmentInquire, self).__init__(*args, **kwargs)
2828
self.message = self.message or 'Correct user input required'
29-
self.params = kwargs.get('params', [])
3029
self.code = 'inquire'
30+
self.params = kwargs.get('params', [])
3131

3232

3333
class Skip(Message):
3434
def __init__(self, *args, **kwargs):
35+
super(Skip, self).__init__(*args, **kwargs)
36+
self.message = self.message or 'Request skipped'
3537
self.code = 'skip'
3638

3739

@@ -40,11 +42,11 @@ class ServerErrorException(Exception):
4042

4143
def __init__(self, error=None, *args, **kwargs):
4244
if error and isinstance(error, ServerError):
45+
# noinspection PyUnresolvedReferences
4346
self.message = str({
4447
"error_code": error.error_code,
4548
"params": kwargs.get('params', []),
4649
"errors": error.errors,
4750
})
4851

49-
super(ServerErrorException, self).__init__(
50-
self.message, *args, **kwargs)
52+
super(ServerErrorException, self).__init__(self.message, *args)

connect/models/fulfillment.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,21 @@
1515
class Fulfillment(BaseModel):
1616
@property
1717
def new_items(self):
18+
# noinspection PyUnresolvedReferences
1819
return list(filter(
1920
lambda item: item.quantity > 0 and item.old_quantity == 0,
2021
self.asset.items))
2122

2223
@property
2324
def changed_items(self):
25+
# noinspection PyUnresolvedReferences
2426
return list(filter(
2527
lambda item: item.quantity > 0 and item.old_quantity > 0,
2628
self.asset.items))
2729

2830
@property
2931
def removed_items(self):
32+
# noinspection PyUnresolvedReferences
3033
return list(filter(
3134
lambda item: item.quantity == 0 and item.old_quantity > 0,
3235
self.asset.items))

connect/resource/base.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from connect.logger import function_log, logger
1212
from connect.models import BaseSchema, ServerErrorSchema
1313
from connect.models.exception import ServerErrorException
14-
from .utils import joinurl
14+
from .utils import join_url
1515

1616

1717
class ApiClient(object):
@@ -71,7 +71,7 @@ class BaseResource(object):
7171
api = None
7272
schema = BaseSchema()
7373

74-
def __init__(self, config=None, *args, **kwargs):
74+
def __init__(self, config=None):
7575
# Assign passed config or globally configured instance
7676
self.config = config or Config.get_instance()
7777

@@ -94,10 +94,10 @@ def build_filter(self):
9494

9595
@property
9696
def _list_url(self):
97-
return joinurl(self.config.api_url, self.__class__.resource)
97+
return join_url(self.config.api_url, self.__class__.resource)
9898

9999
def _obj_url(self, pk):
100-
return joinurl(self._list_url, pk)
100+
return join_url(self._list_url, pk)
101101

102102
def __loads_schema(self, response):
103103
objects, error = self.schema.loads(response, many=True)

connect/resource/fulfillment.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from connect.models import FulfillmentSchema, Param
1212
from .base import BaseResource
1313
from .template import TemplateResource
14-
from .utils import joinurl
14+
from .utils import join_url
1515

1616

1717
class FulfillmentResource(BaseResource):
@@ -29,16 +29,16 @@ def build_filter(self):
2929

3030
@function_log
3131
def approve(self, pk, data):
32-
url = joinurl(self._obj_url(pk), 'approve/')
32+
url = join_url(self._obj_url(pk), 'approve/')
3333
return self.api.post(url=url, data=json.dumps(data if data else {}))
3434

3535
@function_log
3636
def inquire(self, pk):
37-
return self.api.post(url=joinurl(self._obj_url(pk), 'inquire/'), data=json.dumps({}))
37+
return self.api.post(url=join_url(self._obj_url(pk), 'inquire/'), data=json.dumps({}))
3838

3939
@function_log
4040
def fail(self, pk, reason):
41-
url = joinurl(self._obj_url(pk), 'fail/')
41+
url = join_url(self._obj_url(pk), 'fail/')
4242
return self.api.post(url=url, data=json.dumps({'reason': reason}))
4343

4444
@function_log

connect/resource/template.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from connect.models import ActivationTemplateResponse, ActivationTileResponse
99
from .base import BaseResource
10-
from .utils import joinurl
10+
from .utils import join_url
1111

1212

1313
class TemplateResource(BaseResource):
@@ -19,9 +19,9 @@ class TemplateResource(BaseResource):
1919

2020
def render(self, pk, request_id):
2121
if not all([pk, request_id]):
22-
raise ValueError('Invalid ids for render temlpate')
22+
raise ValueError('Invalid ids for render template')
2323

24-
url = joinurl(self._obj_url(pk), 'render')
24+
url = join_url(self._obj_url(pk), 'render')
2525
response = self.api.get(url, params={'request_id': request_id})
2626

2727
return ActivationTileResponse(response)

0 commit comments

Comments
 (0)