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.'
|
||||
|
||||
from bonobo._api import *
|
||||
from bonobo._api import __all__
|
||||
from bonobo._api import __doc__
|
||||
from bonobo._api import (
|
||||
run, inspect, Graph, create_strategy, open_fs, CsvReader, CsvWriter, FileReader, FileWriter, Filter, FixedWindow,
|
||||
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__
|
||||
|
||||
__all__ = ['__version__'] + __all__
|
||||
|
||||
@ -8,11 +8,12 @@ to another is maximal.
|
||||
"""
|
||||
|
||||
from bonobo.execution.strategies import create_strategy
|
||||
from bonobo.nodes import __all__ as _all_nodes
|
||||
from bonobo.nodes import *
|
||||
from bonobo.nodes import __all__ as _all_nodes
|
||||
from bonobo.structs import Graph
|
||||
from bonobo.util.api import ApiHelper
|
||||
from bonobo.util.environ import parse_args, get_argument_parser
|
||||
from bonobo.registry import create_reader, create_writer
|
||||
|
||||
__all__ = []
|
||||
|
||||
@ -155,6 +156,12 @@ api.register_group(
|
||||
check=_all_nodes,
|
||||
)
|
||||
|
||||
# registry
|
||||
api.register_group(
|
||||
create_reader,
|
||||
create_writer,
|
||||
)
|
||||
|
||||
|
||||
def _is_interactive_console():
|
||||
import sys
|
||||
|
||||
@ -2,7 +2,7 @@ import mimetypes
|
||||
|
||||
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_JSON = 'application/json'
|
||||
@ -88,3 +88,31 @@ class 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