From 0066726bffc8a701e2fdce65adf5ec23b7a03cf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Mendoza=20P=C3=A9rez?= Date: Mon, 17 Jan 2022 22:59:37 +0100 Subject: [PATCH] improve project structure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Antonio Mendoza Pérez --- Pipfile.lock | 2 +- README.md | 16 +++++++--------- .../__init__.py | 0 serverlessworkflow/sdk/__init__.py | 0 .../sdk}/action.py | 0 .../sdk}/inject_state.py | 2 +- .../sdk}/operation_state.py | 4 ++-- .../sdk}/state.py | 0 .../sdk}/workflow.py | 6 +++--- .../sdk}/workflow_validator.py | 3 ++- setup.py | 16 ++++++++++++---- tests/serverlessworkflow/__init__.py | 0 tests/serverlessworkflow/sdk/__init__.py | 0 .../sdk}/test_workflow.json | 0 .../sdk}/test_workflow.py | 4 ++-- .../sdk}/test_workflow.yaml | 0 .../sdk}/test_workflow_validator.py | 8 ++++---- 17 files changed, 34 insertions(+), 27 deletions(-) rename {serverlessworkflow_sdk => serverlessworkflow}/__init__.py (100%) create mode 100644 serverlessworkflow/sdk/__init__.py rename {serverlessworkflow_sdk => serverlessworkflow/sdk}/action.py (100%) rename {serverlessworkflow_sdk => serverlessworkflow/sdk}/inject_state.py (93%) rename {serverlessworkflow_sdk => serverlessworkflow/sdk}/operation_state.py (93%) rename {serverlessworkflow_sdk => serverlessworkflow/sdk}/state.py (100%) rename {serverlessworkflow_sdk => serverlessworkflow/sdk}/workflow.py (94%) rename {serverlessworkflow_sdk => serverlessworkflow/sdk}/workflow_validator.py (92%) create mode 100644 tests/serverlessworkflow/__init__.py create mode 100644 tests/serverlessworkflow/sdk/__init__.py rename tests/{ => serverlessworkflow/sdk}/test_workflow.json (100%) rename tests/{ => serverlessworkflow/sdk}/test_workflow.py (97%) rename tests/{ => serverlessworkflow/sdk}/test_workflow.yaml (100%) rename tests/{ => serverlessworkflow/sdk}/test_workflow_validator.py (79%) diff --git a/Pipfile.lock b/Pipfile.lock index ff76264..8222fc1 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -207,7 +207,7 @@ "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" ], - "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'", + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.10.2" } } diff --git a/README.md b/README.md index 3ac5946..7eb6ae6 100644 --- a/README.md +++ b/README.md @@ -14,16 +14,14 @@ With the SDK you can: - Python 3 required +- pipenv required `pip install pipenv` + ``` pipenv install -python setup.py pytest -``` -If you get issues about missing modules: +pipenv shell -``` -pip3 install jsonschema -pip3 install pyyaml +python setup.py pytest ``` ## **WIP** Programmatically build workflow definitions @@ -69,7 +67,7 @@ functions: workflow = Workflow.from_source(swf_content) ``` -You can see a full example in the [test_workflow.py](./tests/test_workflow.py) file +You can see a full example in the [test_workflow.py](tests/serverlessworkflow/sdk/test_workflow.py) file ### Parse workflow to JSON / YAML @@ -88,7 +86,7 @@ print(workflow.to_json()) print(workflow.to_yaml()) ``` -You can see a full example in the [test_workflow.py](./tests/test_workflow.py) file +You can see a full example in the [test_workflow.py](tests/serverlessworkflow/sdk/test_workflow.py) file ## Validate workflow definitions @@ -108,4 +106,4 @@ WorkflowValidator(Workflow(workflow)).validate() ``` The `validate` method will raise an exception if the provided workflow does not complaint specification. -You can see a full example in the [test_workflow_validator](./tests/test_workflow_validator.py) file \ No newline at end of file +You can see a full example in the [test_workflow_validator](tests/serverlessworkflow/sdk/test_workflow_validator.py) file \ No newline at end of file diff --git a/serverlessworkflow_sdk/__init__.py b/serverlessworkflow/__init__.py similarity index 100% rename from serverlessworkflow_sdk/__init__.py rename to serverlessworkflow/__init__.py diff --git a/serverlessworkflow/sdk/__init__.py b/serverlessworkflow/sdk/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/serverlessworkflow_sdk/action.py b/serverlessworkflow/sdk/action.py similarity index 100% rename from serverlessworkflow_sdk/action.py rename to serverlessworkflow/sdk/action.py diff --git a/serverlessworkflow_sdk/inject_state.py b/serverlessworkflow/sdk/inject_state.py similarity index 93% rename from serverlessworkflow_sdk/inject_state.py rename to serverlessworkflow/sdk/inject_state.py index 9ce0c53..6c23b75 100644 --- a/serverlessworkflow_sdk/inject_state.py +++ b/serverlessworkflow/sdk/inject_state.py @@ -1,4 +1,4 @@ -from serverlessworkflow_sdk.state import State +from serverlessworkflow.sdk.state import State class InjectState(State): diff --git a/serverlessworkflow_sdk/operation_state.py b/serverlessworkflow/sdk/operation_state.py similarity index 93% rename from serverlessworkflow_sdk/operation_state.py rename to serverlessworkflow/sdk/operation_state.py index 7892c82..3868865 100644 --- a/serverlessworkflow_sdk/operation_state.py +++ b/serverlessworkflow/sdk/operation_state.py @@ -1,5 +1,5 @@ -from serverlessworkflow_sdk.action import Action -from serverlessworkflow_sdk.state import State +from serverlessworkflow.sdk.action import Action +from serverlessworkflow.sdk.state import State class OperationState(State): diff --git a/serverlessworkflow_sdk/state.py b/serverlessworkflow/sdk/state.py similarity index 100% rename from serverlessworkflow_sdk/state.py rename to serverlessworkflow/sdk/state.py diff --git a/serverlessworkflow_sdk/workflow.py b/serverlessworkflow/sdk/workflow.py similarity index 94% rename from serverlessworkflow_sdk/workflow.py rename to serverlessworkflow/sdk/workflow.py index 6e22924..2da93a5 100644 --- a/serverlessworkflow_sdk/workflow.py +++ b/serverlessworkflow/sdk/workflow.py @@ -2,9 +2,9 @@ import yaml -from serverlessworkflow_sdk.inject_state import InjectState -from serverlessworkflow_sdk.operation_state import OperationState -from serverlessworkflow_sdk.state import State +from serverlessworkflow.sdk.inject_state import InjectState +from serverlessworkflow.sdk.operation_state import OperationState +from serverlessworkflow.sdk.state import State def is_inject_state(state: State): diff --git a/serverlessworkflow_sdk/workflow_validator.py b/serverlessworkflow/sdk/workflow_validator.py similarity index 92% rename from serverlessworkflow_sdk/workflow_validator.py rename to serverlessworkflow/sdk/workflow_validator.py index e2f37aa..3cbe0a2 100644 --- a/serverlessworkflow_sdk/workflow_validator.py +++ b/serverlessworkflow/sdk/workflow_validator.py @@ -1,7 +1,8 @@ import json import requests from jsonschema.validators import validate -from serverlessworkflow_sdk.workflow import Workflow + +from serverlessworkflow.sdk.workflow import Workflow class WorkflowValidator: diff --git a/setup.py b/setup.py index 4497ced..e76ee73 100644 --- a/setup.py +++ b/setup.py @@ -1,13 +1,21 @@ from setuptools import find_packages, setup + +with open("README.md", "r") as readme_file: + readme = readme_file.read() + setup( - name='serverlessworkflow_sdk', - packages=find_packages(include=['serverlessworkflow_sdk']), + name='serverlessworkflow.sdk', + packages=find_packages(include=['serverlessworkflow', 'serverlessworkflow.sdk']), version='0.1.0', description='Serverless Workflow Specification - Python SDK', + long_description=readme, + long_description_content_type="text/markdown", + url="https://serverlessworkflow.io/", author='Serverless Workflow Contributors', license='http://www.apache.org/licenses/LICENSE-2.0.txt', - install_requires=[], + install_requires=['pyyaml==6.0', "jsonschema==4.4.0", "requests"], setup_requires=['pytest-runner'], tests_require=['pytest'], test_suite='tests', -) \ No newline at end of file + +) diff --git a/tests/serverlessworkflow/__init__.py b/tests/serverlessworkflow/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/serverlessworkflow/sdk/__init__.py b/tests/serverlessworkflow/sdk/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_workflow.json b/tests/serverlessworkflow/sdk/test_workflow.json similarity index 100% rename from tests/test_workflow.json rename to tests/serverlessworkflow/sdk/test_workflow.json diff --git a/tests/test_workflow.py b/tests/serverlessworkflow/sdk/test_workflow.py similarity index 97% rename from tests/test_workflow.py rename to tests/serverlessworkflow/sdk/test_workflow.py index d95c670..5ebdb76 100644 --- a/tests/test_workflow.py +++ b/tests/serverlessworkflow/sdk/test_workflow.py @@ -1,8 +1,8 @@ import os import unittest -from serverlessworkflow_sdk.action import Action -from serverlessworkflow_sdk.workflow import Workflow +from serverlessworkflow.sdk.action import Action +from serverlessworkflow.sdk.workflow import Workflow class TestWorkflow(unittest.TestCase): diff --git a/tests/test_workflow.yaml b/tests/serverlessworkflow/sdk/test_workflow.yaml similarity index 100% rename from tests/test_workflow.yaml rename to tests/serverlessworkflow/sdk/test_workflow.yaml diff --git a/tests/test_workflow_validator.py b/tests/serverlessworkflow/sdk/test_workflow_validator.py similarity index 79% rename from tests/test_workflow_validator.py rename to tests/serverlessworkflow/sdk/test_workflow_validator.py index 166e9db..e18f5c4 100644 --- a/tests/test_workflow_validator.py +++ b/tests/serverlessworkflow/sdk/test_workflow_validator.py @@ -5,14 +5,14 @@ from jsonschema.exceptions import ValidationError -from serverlessworkflow_sdk.workflow import Workflow -from serverlessworkflow_sdk.workflow_validator import WorkflowValidator +from serverlessworkflow.sdk.workflow import Workflow +from serverlessworkflow.sdk.workflow_validator import WorkflowValidator class TestWorkflowValidator(unittest.TestCase): def test_validate_examples(self): - examples_dir = os.path.join(os.path.dirname(__file__), 'examples') + examples_dir = os.path.join(os.path.dirname(__file__), '../../examples') examples = listdir(examples_dir) self.assertEqual(len(examples), 9) @@ -22,7 +22,7 @@ def test_validate_examples(self): WorkflowValidator(Workflow(**swf_file_content)).validate() def test_invalid_wf(self): - wf_file = os.path.join(os.path.dirname(__file__), 'examples', 'applicantrequest.json') + wf_file = os.path.join(os.path.dirname(__file__), '../../examples', 'applicantrequest.json') with open(wf_file, "r") as swf_file: swf_content = swf_file.read() pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy