Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions enviPath_python/enviPath.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@
# DEALINGS IN THE SOFTWARE.
import copy
from collections.abc import Iterable
from typing import Union, List
from typing import List

import requests
from requests import Session
from requests.adapters import HTTPAdapter
from requests.exceptions import *
from urllib3.util.retry import Retry

from enviPath_python.objects import *

Expand Down Expand Up @@ -288,7 +289,7 @@ def get_groups(self):
"""
return self.requester.get_objects(self.BASE_URL, Endpoint.GROUP)

def create_package(self, group: 'Group', name: str = None, description: str = None) -> Package:
def create_package(self, group: 'Group' = None, name: str = None, description: str = None) -> Package:
"""
Function that creates an enviPath package

Expand All @@ -301,7 +302,7 @@ def create_package(self, group: 'Group', name: str = None, description: str = No
:return: The created package
:rtype: enviPath_python.objects.Package
"""
return Package.create(self, group, name=name, description=description)
return Package.create(self, group=group, name=name, description=description)


class enviPathRequester(object):
Expand Down Expand Up @@ -335,7 +336,12 @@ def __init__(self, eP, proxies=None, adapter=None):
"""

if adapter is None:
adapter = HTTPAdapter()
retry = Retry(
total=3,
backoff_factor=1,
status_forcelist=[500, 502, 503, 504],
)
adapter = HTTPAdapter(max_retries=retry)

self.eP = eP
self.session = Session()
Expand Down
8 changes: 6 additions & 2 deletions enviPath_python/objects.py
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,7 @@ def set_access_for_user(self, obj: Union['Group', 'User'], perm: Permission) ->

# TODO typing for ep or being consistent with eP.requester...
@staticmethod
def create(ep, group: 'Group', name: str = None, description: str = None) -> 'Package':
def create(ep, group: 'Group' = None, name: str = None, description: str = None) -> 'Package':
"""
Creates the package

Expand All @@ -519,7 +519,11 @@ def create(ep, group: 'Group', name: str = None, description: str = None) -> 'Pa
"""
# TODO add type hint for ep and get rid of cyclic import
package_payload = dict()
package_payload['groupURI'] = group.get_id()

# Legacy system expects a group
if ep.new_api is None or not ep.new_api:
package_payload['groupURI'] = group.get_id()

if name:
package_payload['packageName'] = name
if description:
Expand Down