Esempio n. 1
0
def make_create_engine_params(db_url=None, dialect=None, **kwargs):

    if dialect is None:
        dialect = _get_dialect(ASSERT.not_none(db_url))

    if dialect == 'postgresql':
        params = parameters.Namespace(
            'make PostgreSQL database engine',
            db_url=parameters.make_parameter(db_url, str),
            dialect=parameters.ConstParameter(dialect),
        )

    elif dialect == 'sqlite':
        params = parameters.Namespace(
            'make SQLite database engine',
            db_url=parameters.make_parameter(db_url, str),
            dialect=parameters.ConstParameter(dialect),
            check_same_thread=parameters.Parameter(kwargs.get(
                'check_same_thread', True),
                                                   type=bool),
            trace=parameters.Parameter(kwargs.get('trace'),
                                       type=(bool, type(None))),
            pragmas=parameters.Parameter(kwargs.get('pragmas', ()),
                                         type=collections.abc.Iterable),
        )

    else:
        ASSERT.unreachable('unsupported dialect: {}', dialect)

    return params
Esempio n. 2
0
def make_client_params(
    *,
    urls=None,
    validate_urls=bool,  # Merely check non-empty for now.
    send_timeout=2,
    recv_timeout=4,
    resend_time=None,
):
    return parameters.Namespace(
        'configure messaging client',
        urls=parameters.make_parameter(
            urls,
            collections.abc.Iterable,
            'urls that client connects to',
            validate=validate_urls,
        ),
        send_timeout=parameters.Parameter(
            send_timeout,
            type=(type(None), int, float),
            unit='seconds',
        ),
        recv_timeout=parameters.Parameter(
            recv_timeout,
            type=(type(None), int, float),
            unit='seconds',
        ),
        resend_time=parameters.Parameter(
            resend_time,
            type=(type(None), int, float),
            unit='seconds',
        ),
    )
Esempio n. 3
0
def make_publisher_params(url=None, send_timeout=None):
    return parameters.Namespace(
        'configure publisher',
        url=parameters.make_parameter(url, str,
                                      'url that publisher listens on'),
        send_timeout=parameters.Parameter(
            send_timeout,
            type=(type(None), int, float),
            unit='seconds',
        ),
    )
Esempio n. 4
0
def make_server_params(url=None, parallelism=1):
    return parameters.Namespace(
        'configure messaging server',
        url=parameters.make_parameter(url, str, 'url that server listens on'),
        parallelism=parameters.Parameter(
            parallelism,
            'number of server tasks',
            type=int,
            validate=(0).__lt__,
        ),
    )
Esempio n. 5
0
def make_console_params(
    *,
    enable=False,
    socket_dir_path=None,
    socket_file_prefix='console-',
):
    return parameters.Namespace(
        'configure console server',
        enable=parameters.make_parameter(
            enable,
            bool,
        ),
        socket_dir_path=parameters.make_parameter(
            socket_dir_path,
            Path,
            convert=Path,
            validate=Path.is_absolute,
            format=str,
        ),
        socket_file_prefix=parameters.make_parameter(
            socket_file_prefix,
            str,
        ),
    )
Esempio n. 6
0
def make_subscriber_params(
    *,
    urls=None,
    validate_urls=bool,  # Merely check non-empty for now.
    recv_timeout=None,
):
    return parameters.Namespace(
        'configure subscriber',
        urls=parameters.make_parameter(
            urls,
            collections.abc.Iterable,
            'urls that subscriber dials to',
            validate=validate_urls,
        ),
        recv_timeout=parameters.Parameter(
            recv_timeout,
            type=(type(None), int, float),
            unit='seconds',
        ),
    )