Skip to content

Commit

Permalink
Merge branch 'feature/cleanup' into 'develop'
Browse files Browse the repository at this point in the history
Feature/cleanup

See merge request core/sevenbridges-python!66
  • Loading branch information
Dejan Knezevic committed Aug 25, 2020
2 parents 5857228 + 10900a5 commit 903d3d3
Show file tree
Hide file tree
Showing 40 changed files with 108 additions and 86 deletions.
3 changes: 0 additions & 3 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
[run]
omit =
sevenbridges/tests/*
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ pip-delete-this-directory.txt
.tox/
.coverage
.coverage.*
coverage_report/
.cache
.pytest_cache
nosetests.xml
Expand Down Expand Up @@ -64,4 +65,3 @@ Thumbs.db
.pydevproject
.python-version
.settings

18 changes: 11 additions & 7 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
image: python:3.7-stretch
image: python:3.8-buster

variables:
REQUIREMENTS: "requirements.txt"
Expand All @@ -16,13 +16,12 @@ stages:
- pip install -U -r $REQUIREMENTS
- export PYTHONPATH=$(pwd):$PYTHONPATH
script:
- flake8 sevenbridges
- py.test -v --cov-config=setup.cfg
- flake8
- pytest -v --cov-config setup.cfg
artifacts:
paths:
- coverage_report/*


# Test with python 2.7
test:2.7:
stage: test
Expand All @@ -32,8 +31,8 @@ test:2.7:
- pip install -U -r $REQUIREMENTS2
- export PYTHONPATH=$(pwd):$PYTHONPATH
script:
- flake8 sevenbridges
- py.test -v --cov=sevenbridges
- flake8
- pytest -v --cov-config setup.cfg
image: python:2.7

# Test with python 3.5
Expand All @@ -51,10 +50,15 @@ test:3.7:
<<: *test
image: python:3.7-stretch

# Test with python 3.8
test:3.8:
<<: *test
image: python:3.8-buster

sonar:
stage: sonar
image: emeraldsquad/sonar-scanner:1.0.0
script: infinity sonar scanner
allow_failure: true
dependencies:
- test:3.7
- test:3.8
7 changes: 4 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,16 @@ matrix:
- python: 3.5
- python: 3.6
- python: 3.7
dist: xenial
- python: 3.8
dist: bionic
sudo: true

install:
- if [[ $TRAVIS_PYTHON_VERSION < 3 ]]; then pip install -r requirements2.txt; else pip install -r requirements.txt; fi

script:
- flake8 sevenbridges
- py.test -v --cov=sevenbridges
- pytest -v --cov-config setup.cfg

before_deploy: echo $TRAVIS_TAG > sevenbridges/VERSION

Expand All @@ -26,7 +27,7 @@ deploy:
on:
tags: true
branch: develop
python: 3.7
python: 3.8
distributions: sdist bdist_wheel
repo: sbg/sevenbridges-python
skip_cleanup: true
13 changes: 6 additions & 7 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
six>=1.10.0
requests>=2.20.0

flake8==3.7.7
pytest==4.3.0
pytest-cov==2.6.1
requests-mock==1.5.2
faker==1.0.2
sphinx==1.5.1
flake8==3.8.3
pytest==6.0.1
pytest-cov==2.10.0
requests-mock==1.8.0
faker==4.1.1
sphinx==3.1.2
sphinx_rtd_theme==0.1.9
tox==3.7.0
13 changes: 11 additions & 2 deletions requirements2.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
-r requirements.txt

futures>=3.0.4

six>=1.10.0
requests>=2.20.0

flake8==3.8.3
pytest==4.6.11
pytest-cov==2.10.0
requests-mock==1.8.0
faker==3.0.1
sphinx==1.8.5
sphinx_rtd_theme==0.1.9
10 changes: 8 additions & 2 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
[bdist_wheel]
universal=1

[metadata]
description-file =
README.md

[flake8]
per-file-ignores =
sevenbridges/__init__.py:E402
exclude =
docs/conf.py
sevenbridges/__init__.py

[tool:pytest]
addopts =
--cov=sevenbridges
--cov-report=xml:coverage_report/coverage.xml
--cov-report=term

[run]
omit =
tests/*
6 changes: 4 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,10 @@
license='Apache Software License 2.0',
include_package_data=True,
packages=find_packages(exclude=["*.tests"]),
keywords=['sevenbridges', 'sbg', 'api', 'cgc', 'cancer', 'genomics',
'cloud'],
keywords=[
'sevenbridges', 'sbg', 'api', 'cgc',
'cancer', 'genomics', 'cloud',
],
classifiers=[
'License :: OSI Approved :: Apache Software License',
'Operating System :: OS Independent',
Expand Down
2 changes: 1 addition & 1 deletion sevenbridges/decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ def deco(*args, **kwargs):
except excs:
if logger:
logger.warning(
'HTTPError caught.Retrying ...'.format(f.__name__),
'HTTPError caught.Retrying ...',
exc_info=True
)
time.sleep(delay)
Expand Down
2 changes: 1 addition & 1 deletion sevenbridges/meta/collection.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,6 @@ def _load(self, url):
def __repr__(self):
return six.text_type(
'<VolumeCollection: items={items}>'.format(
total=self.total, items=len(self._items)
items=len(self._items)
)
)
26 changes: 20 additions & 6 deletions sevenbridges/models/automation.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
StringField,
CompoundField,
DateTimeField,
BooleanField
BooleanField,
IntegerField,
)
from sevenbridges.meta.resource import Resource
from sevenbridges.meta.transformer import Transform
Expand Down Expand Up @@ -45,6 +46,7 @@ class AutomationPackage(Resource):
created_on = DateTimeField(read_only=True)
archived = BooleanField(read_only=True)
custom_url = StringField()
memory_limit = IntegerField(read_only=False)

def __eq__(self, other):
if not hasattr(other, '__class__'):
Expand Down Expand Up @@ -80,13 +82,15 @@ def query(cls, automation, offset=None, limit=None, api=None):
)

@classmethod
def create(cls, automation, version, location, schema, api=None):
def create(cls, automation, version, location, schema, memory_limit=None,
api=None):
"""
Create a code package.
:param automation: Automation id.
:param version: File ID of the uploaded code package.
:param location: The code package version.
:param schema: IO schema for main step of execution.
:param memory_limit: Memory limit in MB.
:param api: Api instance.
:return:
"""
Expand All @@ -106,7 +110,8 @@ def create(cls, automation, version, location, schema, api=None):
data = {
'version': version,
'location': location,
'schema': schema
'schema': schema,
'memory_limit': memory_limit,
}

extra = {
Expand Down Expand Up @@ -355,6 +360,7 @@ class Automation(Resource):
modified_on = DateTimeField(read_only=False)
archived = BooleanField(read_only=True)
secret_settings = DictField(read_only=False)
memory_limit = IntegerField(read_only=False)
project_based = BooleanField(read_only=False)

def __eq__(self, other):
Expand Down Expand Up @@ -402,14 +408,16 @@ def query(

@classmethod
def create(cls, name, description=None, billing_group=None,
secret_settings=None, project_based=None, api=None):
secret_settings=None, project_based=None, memory_limit=None,
api=None):
"""
Create a automation template.
:param name: Automation name.
:param billing_group: Automation billing group.
:param description: Automation description.
:param secret_settings: Automation settings.
:param project_based: create project based automation template
:param project_based: Create project based automation template.
:param memory_limit: Memory limit in MB.
:param api: Api instance.
:return:
"""
Expand All @@ -431,6 +439,8 @@ def create(cls, name, description=None, billing_group=None,
data['secret_settings'] = secret_settings
if project_based:
data['project_based'] = project_based
if memory_limit:
data['memory_limit'] = memory_limit

extra = {
'resource': cls.__name__,
Expand Down Expand Up @@ -679,6 +689,7 @@ class AutomationRun(Resource):
status = StringField(read_only=True)
message = StringField(read_only=True)
execution_details = DictField(read_only=True)
memory_limit = IntegerField(read_only=False)
project_id = StringField(read_only=True)

def __eq__(self, other):
Expand Down Expand Up @@ -742,7 +753,7 @@ def query(cls, automation=None, package=None, status=None, name=None,

@classmethod
def create(cls, package, inputs=None, settings=None, resume_from=None,
name=None, secret_settings=None, api=None):
name=None, secret_settings=None, memory_limit=None, api=None):
"""
Create and start a new run.
:param package: Automation package id
Expand All @@ -752,6 +763,7 @@ def create(cls, package, inputs=None, settings=None, resume_from=None,
:param name: Automation run name
:param secret_settings: dict to override secret_settings from
automation template
:param memory_limit: Memory limit in MB.
:param api: sevenbridges Api instance
:return: AutomationRun object
"""
Expand All @@ -770,6 +782,8 @@ def create(cls, package, inputs=None, settings=None, resume_from=None,
data['name'] = name
if secret_settings:
data['secret_settings'] = secret_settings
if memory_limit:
data['memory_limit'] = memory_limit

api = api or cls._API
automation_run = api.post(
Expand Down
12 changes: 7 additions & 5 deletions sevenbridges/transfer/upload.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ def __init__(self, fp, file_size, part_size, upload, retry_count,
self.pool = api.upload_pool
self.submitted = 0
self.total_submitted = 0
self.total = total_parts(self.file_size, self.part_size)
self.total = total_parts(self.file_size, self.part_size) or 1
self.parts = self.get_parts()

def submit(self):
Expand Down Expand Up @@ -247,13 +247,11 @@ def __init__(self, file_path, project=None, parent=None, file_name=None,
else:
self._file_name = file_name

self._part_size = part_size # or PartSize.UPLOAD_MINIMUM_PART_SIZE
self._part_size = part_size
self._project = project
self._parent = parent
self._file_path = file_path
self._file_size = os.path.getsize(self._file_path)
if self._file_size == 0:
raise SbgError('File size must not be 0.')

self._verify_file_size()

Expand Down Expand Up @@ -356,6 +354,7 @@ def _finalize_upload(self):
response = self._api.post(
self._URL['upload_complete'].format(upload_id=self._upload_id)
).json()
# noinspection PyArgumentList
self._result = File(api=self._api, **response)
self._status = TransferState.COMPLETED

Expand All @@ -381,7 +380,7 @@ def _abort_upload(self):

@property
def progress(self):
return (self._bytes_done / float(self._file_size)) * 100
return self._bytes_done / (float(self._file_size) * 100) or 1

@property
def status(self):
Expand Down Expand Up @@ -573,6 +572,9 @@ def __init__(self, file_path, automation_id, file_name=None,
timeout=timeout,
api=api
)
if self._file_size == 0:
raise SbgError('File size must not be 0.')

self._automation_id = automation_id

def _validate_project_parent(self, parent, project):
Expand Down
7 changes: 4 additions & 3 deletions sonar-project.properties
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
sonar.projectKey=sevenbridges
sonar.projectName=Sevenbridges-python
sonar.projectName=sevenbridges-python

sonar.sources=sevenbridges
sonar.exclusions=sevenbridges/tests/**/*.py,coverage_report/*.xml
sonar.exclusions=tests/**/*.py,coverage_report/*.xml

sonar.test=sevenbridges/tests/**/*.py
sonar.test=tests/**/*.py

sonar.python.coverage.reportPaths=coverage_report/coverage.xml
sonar.coverage.exclusions=tests/*
File renamed without changes.
2 changes: 1 addition & 1 deletion sevenbridges/tests/conftest.py → tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import requests_mock

from sevenbridges import Api
from sevenbridges.tests import providers, verifiers
from tests import providers, verifiers

generator = faker.Factory.create()

Expand Down

0 comments on commit 903d3d3

Please sign in to comment.