From edd97b2895cdbe535f76227bcb8e85d81f379fbe Mon Sep 17 00:00:00 2001 From: Agah Date: Fri, 9 Aug 2024 14:00:44 -0400 Subject: [PATCH] Update release pipeline and solve fake object oriented problem with a solution that it deserves --- .github/workflows/test_release.yml | 8 ++++++-- .github/workflows/workflow.yml | 11 +++++++---- repo2data/repo2data.py | 15 ++++++++------- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/.github/workflows/test_release.yml b/.github/workflows/test_release.yml index 0d84515..89df3c1 100644 --- a/.github/workflows/test_release.yml +++ b/.github/workflows/test_release.yml @@ -1,5 +1,9 @@ -name: Publish Python 🐍 distribution to TestPyPI -on: push +name: Publish TestPyPI + +on: + push: + tags: + - 'v*.*.*' jobs: pypi-test-publish: diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index bb396be..4dc1b68 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -1,12 +1,15 @@ name: publish -on: - push: - tags: - - 'v*.*.*' + +on: + workflow_run: + workflows: ['Publish TestPyPI'] + types: + - completed jobs: pypi-publish: name: upload release to PyPI + if: ${{ github.event.workflow_run.conclusion == 'success' }} runs-on: ubuntu-latest # Specifying a GitHub environment is optional, but strongly encouraged environment: release diff --git a/repo2data/repo2data.py b/repo2data/repo2data.py index 12e3147..1629088 100644 --- a/repo2data/repo2data.py +++ b/repo2data/repo2data.py @@ -31,9 +31,13 @@ def __init__(self, data_requirement=None, server=False): self._data_requirement_path = None self._data_requirement_file = None self._use_server = server + self._server_dst_folder = "./data" self.load_data_requirement(data_requirement) + def set_server_dst_folder(self,directory): + self._server_dst_folder = directory + def _set_data_requirement_path(self, data_requirement_path): """Define path to the requirement file""" if data_requirement_path is None: @@ -99,11 +103,11 @@ def install(self): for key, value in self._data_requirement_file.items(): if isinstance(value, dict): ret += [Repo2DataChild(value, self._use_server, - self._data_requirement_path,key).install()] + self._data_requirement_path,key,self._server_dst_folder).install()] # if not, it is a single assignment else: ret += [Repo2DataChild(self._data_requirement_file, - self._use_server, self._data_requirement_path).install()] + self._use_server, self._data_requirement_path, None, self._server_dst_folder).install()] return ret @@ -111,7 +115,7 @@ def install(self): class Repo2DataChild(): """Repo2data child class which install the dataset""" - def __init__(self, data_requirement_file=None, use_server=False, data_requirement_path=None, download_key = None): + def __init__(self, data_requirement_file=None, use_server=False, data_requirement_path=None, download_key = None, server_dst_folder=None): """Initialize the Repo2Data child class. Parameters ---------- @@ -124,7 +128,7 @@ def __init__(self, data_requirement_file=None, use_server=False, data_requiremen self._dst_path = None self._use_server = use_server self._data_requirement_path = data_requirement_path - self._server_dst_folder = "./data" + self._server_dst_folder = server_dst_folder self._download_key = download_key if self._download_key: self._cache_record = f"{self._download_key}_repo2data_cache_record.json" @@ -133,9 +137,6 @@ def __init__(self, data_requirement_file=None, use_server=False, data_requiremen self.load_data_requirement(data_requirement_file) - def set_server_dst_folder(self,directory): - self._server_dst_folder = directory - def load_data_requirement(self, data_requirement_file): """Load the json data requirement file and set destination folder""" # here we should load just a json data