Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[python] Refactor structure to avoid cycle import #11167

Merged
merged 1 commit into from
Jul 28, 2022
Merged
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
2 changes: 1 addition & 1 deletion dolphinscheduler-python/pydolphinscheduler/DEVELOP.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Now, we should install all dependence to make sure we could run test or check co

```shell
cd dolphinscheduler/dolphinscheduler-python/pydolphinscheduler
python -m pip install .[dev]
python -m pip install -e '.[dev]'
```

Next, we have to open pydolphinscheduler project in you editor. We recommend you use [pycharm][pycharm]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Core
Sides
-----

.. automodule:: pydolphinscheduler.side
.. automodule:: pydolphinscheduler.models
:inherited-members:

Tasks
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ All Configurations in File

Here are all our configurations for pydolphinscheduler.

.. literalinclude:: ../../src/pydolphinscheduler/core/default_config.yaml
.. literalinclude:: ../../src/pydolphinscheduler/default_config.yaml
:language: yaml
:lines: 18-

Expand Down
2 changes: 1 addition & 1 deletion dolphinscheduler-python/pydolphinscheduler/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ def run(self) -> None:
package_dir={"": "src"},
include_package_data=True,
package_data={
"pydolphinscheduler": ["core/default_config.yaml"],
"pydolphinscheduler": ["default_config.yaml"],
},
platforms=["any"],
classifiers=[
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
from click import echo

from pydolphinscheduler import __version__
from pydolphinscheduler.core.configuration import (
from pydolphinscheduler.configuration import (
get_single_config,
init_config_file,
set_single_config,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
from pydolphinscheduler.core.task import Task

__all__ = [
"Database",
"Engine",
"ProcessDefinition",
"Task",
"Database",
]
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,11 @@
from datetime import datetime
from typing import Any, Dict, List, Optional, Set

from pydolphinscheduler import configuration
from pydolphinscheduler.constants import TaskType
from pydolphinscheduler.core import configuration
from pydolphinscheduler.core.base import Base
from pydolphinscheduler.exceptions import PyDSParamException, PyDSTaskNoFoundException
from pydolphinscheduler.java_gateway import launch_gateway
from pydolphinscheduler.side import Project, Tenant, User
from pydolphinscheduler.models import Base, Project, Tenant, User
from pydolphinscheduler.utils.date import MAX_DATETIME, conv_from_str, conv_to_schedule


Expand Down Expand Up @@ -170,7 +169,7 @@ def project(self, project: Project) -> None:
def user(self) -> User:
"""Get user object.

For now we just get from python side but not from java gateway side, so it may not correct.
For now we just get from python models but not from java gateway models, so it may not correct.
"""
return User(name=self._user, tenant=self._tenant)

Expand Down Expand Up @@ -358,10 +357,10 @@ def run(self):
self.start()

def _ensure_side_model_exists(self):
"""Ensure process definition side model exists.
"""Ensure process definition models model exists.

For now, side object including :class:`pydolphinscheduler.side.project.Project`,
:class:`pydolphinscheduler.side.tenant.Tenant`, :class:`pydolphinscheduler.side.user.User`.
For now, models object including :class:`pydolphinscheduler.models.project.Project`,
:class:`pydolphinscheduler.models.tenant.Tenant`, :class:`pydolphinscheduler.models.user.User`.
If these model not exists, would create default value in
:class:`pydolphinscheduler.constants.ProcessDefinitionDefault`.
"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

from typing import Optional

from pydolphinscheduler.core.base import Base
from pydolphinscheduler.models import Base


class Resource(Base):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,20 @@
from logging import getLogger
from typing import Dict, List, Optional, Sequence, Set, Tuple, Union

from pydolphinscheduler import configuration
from pydolphinscheduler.constants import (
Delimiter,
ResourceKey,
TaskFlag,
TaskPriority,
TaskTimeoutFlag,
)
from pydolphinscheduler.core import configuration
from pydolphinscheduler.core.base import Base
from pydolphinscheduler.core.process_definition import (
ProcessDefinition,
ProcessDefinitionContext,
)
from pydolphinscheduler.java_gateway import launch_gateway
from pydolphinscheduler.models import Base

logger = getLogger(__name__)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ java_gateway:
address: 127.0.0.1

# The port of Python gateway server start. Define which port you could connect to Python gateway server from
# Python API side.
# Python API models.
port: 25333

# Whether automatically convert Python objects to Java Objects. Default value is ``True``. There is some
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@

task_dependent(this task dependent on task_dependent_external.task_1 and task_dependent_external.task_2).
"""
from pydolphinscheduler.core import configuration
from pydolphinscheduler import configuration
from pydolphinscheduler.core.process_definition import ProcessDefinition
from pydolphinscheduler.tasks.dependent import And, Dependent, DependentItem, Or
from pydolphinscheduler.tasks.shell import Shell
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
from py4j.java_collections import JavaMap
from py4j.java_gateway import GatewayParameters, JavaGateway

from pydolphinscheduler import configuration
from pydolphinscheduler.constants import JavaGatewayDefault
from pydolphinscheduler.core import configuration
from pydolphinscheduler.exceptions import PyDSJavaGatewayException


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,17 @@

"""Init Side package, Side package keep object related to DolphinScheduler but not in the Core part."""

from pydolphinscheduler.side.project import Project
from pydolphinscheduler.side.queue import Queue
from pydolphinscheduler.side.tenant import Tenant
from pydolphinscheduler.side.user import User
from pydolphinscheduler.side.worker_group import WorkerGroup
from pydolphinscheduler.models.base import Base
from pydolphinscheduler.models.base_side import BaseSide
from pydolphinscheduler.models.project import Project
from pydolphinscheduler.models.queue import Queue
from pydolphinscheduler.models.tenant import Tenant
from pydolphinscheduler.models.user import User
from pydolphinscheduler.models.worker_group import WorkerGroup

__all__ = [
"Base",
"BaseSide",
"Project",
"Tenant",
"User",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

from typing import Dict, Optional

# from pydolphinscheduler.side.user import User
# from pydolphinscheduler.models.user import User
from pydolphinscheduler.utils.string import attr2camel


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,16 @@
# specific language governing permissions and limitations
# under the License.

"""Module for side object."""
"""Module for models object."""

from typing import Optional

from pydolphinscheduler.core import configuration
from pydolphinscheduler.core.base import Base
from pydolphinscheduler import configuration
from pydolphinscheduler.models import Base


class BaseSide(Base):
"""Base class for side object, it declare base behavior for them."""
"""Base class for models object, it declare base behavior for them."""

def __init__(self, name: str, description: Optional[str] = None):
super().__init__(name, description)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@

from typing import Optional

from pydolphinscheduler.core import configuration
from pydolphinscheduler.core.base_side import BaseSide
from pydolphinscheduler import configuration
from pydolphinscheduler.java_gateway import launch_gateway
from pydolphinscheduler.models import BaseSide


class Project(BaseSide):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@

from typing import Optional

from pydolphinscheduler.core import configuration
from pydolphinscheduler.core.base_side import BaseSide
from pydolphinscheduler import configuration
from pydolphinscheduler.java_gateway import gateway_result_checker, launch_gateway
from pydolphinscheduler.models import BaseSide


class Queue(BaseSide):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@

from typing import Optional

from pydolphinscheduler.core import configuration
from pydolphinscheduler.core.base_side import BaseSide
from pydolphinscheduler import configuration
from pydolphinscheduler.java_gateway import launch_gateway
from pydolphinscheduler.models import BaseSide


class Tenant(BaseSide):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,9 @@

from typing import Optional

from pydolphinscheduler.core import configuration
from pydolphinscheduler.core.base_side import BaseSide
from pydolphinscheduler import configuration
from pydolphinscheduler.java_gateway import launch_gateway
from pydolphinscheduler.side.tenant import Tenant
from pydolphinscheduler.models import BaseSide, Tenant


class User(BaseSide):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

from typing import Optional

from pydolphinscheduler.core.base_side import BaseSide
from pydolphinscheduler.models import BaseSide


class WorkerGroup(BaseSide):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
from typing import Dict, List

from pydolphinscheduler.constants import TaskType
from pydolphinscheduler.core.base import Base
from pydolphinscheduler.core.task import Task
from pydolphinscheduler.exceptions import PyDSParamException
from pydolphinscheduler.models.base import Base


class Status(Base):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,19 @@
from typing import Dict, Optional, Tuple

from pydolphinscheduler.constants import TaskType
from pydolphinscheduler.core.base import Base
from pydolphinscheduler.core.task import Task
from pydolphinscheduler.exceptions import PyDSJavaGatewayException, PyDSParamException
from pydolphinscheduler.java_gateway import launch_gateway
from pydolphinscheduler.models.base import Base

DEPENDENT_ALL_TASK_IN_WORKFLOW = "0"


class DependentDate(str):
"""Constant of Dependent date value.

These values set according to Java server side, if you want to add and change it,
please change Java server side first.
These values set according to Java server models, if you want to add and change it,
please change Java server models first.
"""

# TODO Maybe we should add parent level to DependentDate for easy to use, such as
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
from typing import Dict, Optional

from pydolphinscheduler.constants import TaskType
from pydolphinscheduler.core.base import Base
from pydolphinscheduler.core.task import Task
from pydolphinscheduler.exceptions import PyDSParamException
from pydolphinscheduler.models.base import Base


class SwitchBranch(Base):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import pytest

from pydolphinscheduler.cli.commands import cli
from pydolphinscheduler.core.configuration import BUILD_IN_CONFIG_PATH, config_path
from pydolphinscheduler.configuration import BUILD_IN_CONFIG_PATH, config_path
from tests.testing.cli import CliTestWrapper
from tests.testing.constants import DEV_MODE, ENV_PYDS_HOME
from tests.testing.file import get_file_content
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@

import pytest

from pydolphinscheduler.core import configuration
from pydolphinscheduler.core.configuration import (
from pydolphinscheduler import configuration
from pydolphinscheduler.configuration import (
BUILD_IN_CONFIG_PATH,
config_path,
get_single_config,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@
import pytest
from freezegun import freeze_time

from pydolphinscheduler.core import configuration
from pydolphinscheduler import configuration
from pydolphinscheduler.core.process_definition import ProcessDefinition
from pydolphinscheduler.core.resource import Resource
from pydolphinscheduler.exceptions import PyDSParamException
from pydolphinscheduler.side import Project, Tenant, User
from pydolphinscheduler.models import Project, Tenant, User
from pydolphinscheduler.tasks.switch import Branch, Default, Switch, SwitchCondition
from pydolphinscheduler.utils.date import conv_to_schedule
from tests.testing.task import Task
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
path_example = project_root.joinpath("src", "pydolphinscheduler", "examples")
path_doc_tasks = project_root.joinpath("docs", "source", "tasks")
path_default_config_yaml = project_root.joinpath(
"src", "pydolphinscheduler", "core", "default_config.yaml"
"src", "pydolphinscheduler", "default_config.yaml"
)


Expand Down