[core] Moves bonobo.execution context related package to new bonobo.execution.contexts package, also moves bonobo.strategies to new bonobo.execution.strategies package, so everything related to execution is now contained under the bonobo.execution package.

This commit is contained in:
Romain Dorgueil
2017-11-04 13:13:47 +01:00
parent 2c9729c4ca
commit 28884231b3
21 changed files with 33 additions and 37 deletions

View File

@ -1,7 +1,7 @@
from bonobo.execution.strategies import create_strategy
from bonobo.nodes import CsvReader, CsvWriter, FileReader, FileWriter, Filter, JsonReader, JsonWriter, Limit, \ from bonobo.nodes import CsvReader, CsvWriter, FileReader, FileWriter, Filter, JsonReader, JsonWriter, Limit, \
PickleReader, PickleWriter, PrettyPrinter, RateLimited, Tee, arg0_to_kwargs, count, identity, kwargs_to_arg0, noop PickleReader, PickleWriter, PrettyPrinter, RateLimited, Tee, arg0_to_kwargs, count, identity, kwargs_to_arg0, noop
from bonobo.nodes import LdjsonReader, LdjsonWriter from bonobo.nodes import LdjsonReader, LdjsonWriter
from bonobo.strategies import create_strategy
from bonobo.structs import Bag, ErrorBag, Graph, Token from bonobo.structs import Bag, ErrorBag, Graph, Token
from bonobo.util import get_name from bonobo.util import get_name
from bonobo.util.environ import parse_args, get_argument_parser from bonobo.util.environ import parse_args, get_argument_parser
@ -35,7 +35,7 @@ def run(graph, *, plugins=None, services=None, strategy=None):
You'll probably want to provide a services dictionary mapping service names to service instances. You'll probably want to provide a services dictionary mapping service names to service instances.
:param Graph graph: The :class:`Graph` to execute. :param Graph graph: The :class:`Graph` to execute.
:param str strategy: The :class:`bonobo.strategies.base.Strategy` to use. :param str strategy: The :class:`bonobo.execution.strategies.base.Strategy` to use.
:param list plugins: The list of plugins to enhance execution. :param list plugins: The list of plugins to enhance execution.
:param dict services: The implementations of services this graph will use. :param dict services: The implementations of services this graph will use.
:return bonobo.execution.graph.GraphExecutionContext: :return bonobo.execution.graph.GraphExecutionContext:
@ -93,10 +93,10 @@ def inspect(graph, *, format):
print(_inspect_formats[format](graph)) print(_inspect_formats[format](graph))
# bonobo.structs # data structures
register_api_group(Bag, ErrorBag, Graph, Token) register_api_group(Bag, ErrorBag, Graph, Token)
# bonobo.strategies # execution strategies
register_api(create_strategy) register_api(create_strategy)
@ -125,7 +125,7 @@ def open_fs(fs_url=None, *args, **kwargs):
return _open_fs(expanduser(str(fs_url)), *args, **kwargs) return _open_fs(expanduser(str(fs_url)), *args, **kwargs)
# bonobo.nodes # standard transformations
register_api_group( register_api_group(
CsvReader, CsvReader,
CsvWriter, CsvWriter,

View File

View File

@ -1,7 +1,6 @@
import sys import sys
from contextlib import contextmanager from contextlib import contextmanager
from logging import WARNING, ERROR from logging import WARNING, ERROR
from time import sleep
import mondrian import mondrian
from bonobo.config import create_container from bonobo.config import create_container

View File

@ -1,13 +1,12 @@
from functools import partial from functools import partial
from time import sleep from time import sleep
from whistle import EventDispatcher
from bonobo.config import create_container from bonobo.config import create_container
from bonobo.constants import BEGIN, END from bonobo.constants import BEGIN, END
from bonobo.execution import events from bonobo.execution import events
from bonobo.execution.node import NodeExecutionContext from bonobo.execution.contexts.node import NodeExecutionContext
from bonobo.execution.plugin import PluginExecutionContext from bonobo.execution.contexts.plugin import PluginExecutionContext
from whistle import EventDispatcher
class GraphExecutionContext: class GraphExecutionContext:

View File

@ -1,12 +1,11 @@
import sys import sys
import threading
from queue import Empty from queue import Empty
from time import sleep from time import sleep
from types import GeneratorType from types import GeneratorType
from bonobo.constants import NOT_MODIFIED, BEGIN, END from bonobo.constants import NOT_MODIFIED, BEGIN, END
from bonobo.errors import InactiveReadableError, UnrecoverableError from bonobo.errors import InactiveReadableError, UnrecoverableError
from bonobo.execution.base import LoopingExecutionContext from bonobo.execution.contexts.base import LoopingExecutionContext
from bonobo.structs.bags import Bag from bonobo.structs.bags import Bag
from bonobo.structs.inputs import Input from bonobo.structs.inputs import Input
from bonobo.structs.tokens import Token from bonobo.structs.tokens import Token

View File

@ -1,4 +1,4 @@
from bonobo.execution.base import LoopingExecutionContext, recoverable from bonobo.execution.contexts.base import LoopingExecutionContext
class PluginExecutionContext(LoopingExecutionContext): class PluginExecutionContext(LoopingExecutionContext):

View File

@ -1,5 +1,5 @@
from bonobo.strategies.executor import ProcessPoolExecutorStrategy, ThreadPoolExecutorStrategy from bonobo.execution.strategies.executor import ProcessPoolExecutorStrategy, ThreadPoolExecutorStrategy
from bonobo.strategies.naive import NaiveStrategy from bonobo.execution.strategies.naive import NaiveStrategy
__all__ = [ __all__ = [
'create_strategy', 'create_strategy',
@ -21,8 +21,8 @@ def create_strategy(name=None):
:param name: :param name:
:return: Strategy :return: Strategy
""" """
from bonobo.strategies.base import Strategy
import logging import logging
from bonobo.execution.strategies.base import Strategy
if isinstance(name, Strategy): if isinstance(name, Strategy):
return name return name

View File

@ -1,4 +1,4 @@
from bonobo.execution.graph import GraphExecutionContext from bonobo.execution.contexts.graph import GraphExecutionContext
class Strategy: class Strategy:

View File

@ -1,13 +1,12 @@
import functools import functools
import logging import logging
import sys import sys
from concurrent.futures import Executor, ProcessPoolExecutor, ThreadPoolExecutor, wait, FIRST_EXCEPTION from concurrent.futures import Executor, ProcessPoolExecutor, ThreadPoolExecutor
from time import sleep
from bonobo.util import get_name
from bonobo.constants import BEGIN, END
from bonobo.strategies.base import Strategy
from bonobo.structs.bags import Bag from bonobo.structs.bags import Bag
from bonobo.constants import BEGIN, END
from bonobo.execution.strategies.base import Strategy
from bonobo.util import get_name
class ExecutorStrategy(Strategy): class ExecutorStrategy(Strategy):

View File

@ -1,5 +1,5 @@
from bonobo.constants import BEGIN, END from bonobo.constants import BEGIN, END
from bonobo.strategies.base import Strategy from bonobo.execution.strategies.base import Strategy
from bonobo.structs.bags import Bag from bonobo.structs.bags import Bag

View File

@ -170,4 +170,4 @@ class IOBuffer():
def memory_usage(): def memory_usage():
import os, psutil import os, psutil
process = psutil.Process(os.getpid()) process = psutil.Process(os.getpid())
return process.memory_info()[0] / float(2 ** 20) return process.memory_info()[0] / float(2**20)

View File

@ -1,8 +1,8 @@
from contextlib import contextmanager from contextlib import contextmanager
from bonobo import open_fs, Token from bonobo import open_fs, Token
from bonobo.execution.graph import GraphExecutionContext from bonobo.execution.contexts.graph import GraphExecutionContext
from bonobo.execution.node import NodeExecutionContext from bonobo.execution.contexts.node import NodeExecutionContext
@contextmanager @contextmanager

View File

@ -1,5 +1,5 @@
from bonobo import Bag, Graph from bonobo import Bag, Graph
from bonobo.strategies import NaiveStrategy from bonobo.execution.strategies import NaiveStrategy
from bonobo.util.testing import BufferingNodeExecutionContext, BufferingGraphExecutionContext from bonobo.util.testing import BufferingNodeExecutionContext, BufferingGraphExecutionContext

View File

@ -1,7 +1,7 @@
import pytest import pytest
from bonobo import CsvReader, CsvWriter, settings from bonobo import CsvReader, CsvWriter, settings
from bonobo.execution.node import NodeExecutionContext from bonobo.execution.contexts.node import NodeExecutionContext
from bonobo.util.testing import FilesystemTester, BufferingNodeExecutionContext from bonobo.util.testing import FilesystemTester, BufferingNodeExecutionContext
csv_tester = FilesystemTester('csv') csv_tester = FilesystemTester('csv')

View File

@ -2,7 +2,7 @@ import pytest
from bonobo import Bag, FileReader, FileWriter from bonobo import Bag, FileReader, FileWriter
from bonobo.constants import BEGIN, END from bonobo.constants import BEGIN, END
from bonobo.execution.node import NodeExecutionContext from bonobo.execution.contexts.node import NodeExecutionContext
from bonobo.util.testing import BufferingNodeExecutionContext, FilesystemTester from bonobo.util.testing import BufferingNodeExecutionContext, FilesystemTester
txt_tester = FilesystemTester('txt') txt_tester = FilesystemTester('txt')

View File

@ -2,7 +2,7 @@ import pytest
from bonobo import JsonReader, JsonWriter, settings from bonobo import JsonReader, JsonWriter, settings
from bonobo import LdjsonReader, LdjsonWriter from bonobo import LdjsonReader, LdjsonWriter
from bonobo.execution.node import NodeExecutionContext from bonobo.execution.contexts.node import NodeExecutionContext
from bonobo.util.testing import FilesystemTester, BufferingNodeExecutionContext from bonobo.util.testing import FilesystemTester, BufferingNodeExecutionContext
json_tester = FilesystemTester('json') json_tester = FilesystemTester('json')

View File

@ -3,7 +3,7 @@ import pickle
import pytest import pytest
from bonobo import Bag, PickleReader, PickleWriter from bonobo import Bag, PickleReader, PickleWriter
from bonobo.execution.node import NodeExecutionContext from bonobo.execution.contexts.node import NodeExecutionContext
from bonobo.util.testing import BufferingNodeExecutionContext, FilesystemTester from bonobo.util.testing import BufferingNodeExecutionContext, FilesystemTester
pickle_tester = FilesystemTester('pkl', mode='wb') pickle_tester = FilesystemTester('pkl', mode='wb')

View File

@ -2,7 +2,7 @@ from unittest.mock import MagicMock
import bonobo import bonobo
from bonobo.execution import events from bonobo.execution import events
from bonobo.execution.graph import GraphExecutionContext from bonobo.execution.contexts.graph import GraphExecutionContext
from bonobo.plugins.console import ConsoleOutputPlugin from bonobo.plugins.console import ConsoleOutputPlugin
from whistle import EventDispatcher from whistle import EventDispatcher

View File

@ -3,7 +3,7 @@ from unittest.mock import patch
import pytest import pytest
import bonobo import bonobo
from bonobo.execution.graph import GraphExecutionContext from bonobo.execution.contexts.graph import GraphExecutionContext
@pytest.mark.timeout(2) @pytest.mark.timeout(2)

View File

@ -202,7 +202,7 @@ def env2(tmpdir):
all_environ_targets = pytest.mark.parametrize( all_environ_targets = pytest.mark.parametrize(
'target', [ 'target', [
(get_examples_path('environ.py'),), (get_examples_path('environ.py'), ),
( (
'-m', '-m',
'bonobo.examples.environ', 'bonobo.examples.environ',

View File

@ -1,7 +1,7 @@
from bonobo.config.processors import ContextProcessor from bonobo.config.processors import ContextProcessor
from bonobo.constants import BEGIN, END from bonobo.constants import BEGIN, END
from bonobo.execution.graph import GraphExecutionContext from bonobo.execution.contexts.graph import GraphExecutionContext
from bonobo.strategies import NaiveStrategy from bonobo.execution.strategies import NaiveStrategy
from bonobo.structs import Bag, Graph from bonobo.structs import Bag, Graph