Adds create_reader/create_writer, more expliciteness in root module to avoid loosing IDEs (like jetbrains) in imports.
This commit is contained in:
@ -9,9 +9,12 @@ import sys
|
|||||||
|
|
||||||
assert (sys.version_info >= (3, 5)), 'Python 3.5+ is required to use Bonobo.'
|
assert (sys.version_info >= (3, 5)), 'Python 3.5+ is required to use Bonobo.'
|
||||||
|
|
||||||
from bonobo._api import *
|
from bonobo._api import (
|
||||||
from bonobo._api import __all__
|
run, inspect, Graph, create_strategy, open_fs, CsvReader, CsvWriter, FileReader, FileWriter, Filter, FixedWindow,
|
||||||
from bonobo._api import __doc__
|
Format, JsonReader, JsonWriter, LdjsonReader, LdjsonWriter, Limit, OrderFields, PickleReader, PickleWriter,
|
||||||
|
PrettyPrinter, RateLimited, Rename, SetFields, Tee, UnpackItems, count, identity, noop, create_reader,
|
||||||
|
create_writer, get_examples_path, open_examples_fs, get_argument_parser, parse_args, __all__, __doc__
|
||||||
|
)
|
||||||
from bonobo._version import __version__
|
from bonobo._version import __version__
|
||||||
|
|
||||||
__all__ = ['__version__'] + __all__
|
__all__ = ['__version__'] + __all__
|
||||||
|
|||||||
@ -8,11 +8,12 @@ to another is maximal.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from bonobo.execution.strategies import create_strategy
|
from bonobo.execution.strategies import create_strategy
|
||||||
from bonobo.nodes import __all__ as _all_nodes
|
|
||||||
from bonobo.nodes import *
|
from bonobo.nodes import *
|
||||||
|
from bonobo.nodes import __all__ as _all_nodes
|
||||||
from bonobo.structs import Graph
|
from bonobo.structs import Graph
|
||||||
from bonobo.util.api import ApiHelper
|
from bonobo.util.api import ApiHelper
|
||||||
from bonobo.util.environ import parse_args, get_argument_parser
|
from bonobo.util.environ import parse_args, get_argument_parser
|
||||||
|
from bonobo.registry import create_reader, create_writer
|
||||||
|
|
||||||
__all__ = []
|
__all__ = []
|
||||||
|
|
||||||
@ -155,6 +156,12 @@ api.register_group(
|
|||||||
check=_all_nodes,
|
check=_all_nodes,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# registry
|
||||||
|
api.register_group(
|
||||||
|
create_reader,
|
||||||
|
create_writer,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def _is_interactive_console():
|
def _is_interactive_console():
|
||||||
import sys
|
import sys
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import mimetypes
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from bonobo import JsonReader, CsvReader, PickleReader, FileReader, FileWriter, PickleWriter, CsvWriter, JsonWriter
|
from bonobo.nodes import JsonReader, CsvReader, PickleReader, FileReader, FileWriter, PickleWriter, CsvWriter, JsonWriter
|
||||||
|
|
||||||
FILETYPE_CSV = 'text/csv'
|
FILETYPE_CSV = 'text/csv'
|
||||||
FILETYPE_JSON = 'application/json'
|
FILETYPE_JSON = 'application/json'
|
||||||
@ -88,3 +88,31 @@ class Registry:
|
|||||||
|
|
||||||
|
|
||||||
default_registry = Registry()
|
default_registry = Registry()
|
||||||
|
|
||||||
|
def create_reader(name, *args, format=None, registry=default_registry, **kwargs):
|
||||||
|
"""
|
||||||
|
Create a reader instance, guessing its factory using filename (and eventually format).
|
||||||
|
|
||||||
|
:param name:
|
||||||
|
:param args:
|
||||||
|
:param format:
|
||||||
|
:param registry:
|
||||||
|
:param kwargs:
|
||||||
|
|
||||||
|
:return: mixed
|
||||||
|
"""
|
||||||
|
return registry.get_reader_factory_for(name, format=format)(name, *args, **kwargs)
|
||||||
|
|
||||||
|
def create_writer(name, *args, format=None, registry=default_registry, **kwargs):
|
||||||
|
"""
|
||||||
|
Create a writer instance, guessing its factory using filename (and eventually format).
|
||||||
|
|
||||||
|
:param name:
|
||||||
|
:param args:
|
||||||
|
:param format:
|
||||||
|
:param registry:
|
||||||
|
:param kwargs:
|
||||||
|
|
||||||
|
:return: mixed
|
||||||
|
"""
|
||||||
|
return registry.get_writer_factory_for(name, format=format)(name, *args, **kwargs)
|
||||||
|
|||||||
Reference in New Issue
Block a user