Example #1
0
def scheme_extend_parameterization(args):
    if len(args) == 0:
        raise SchemeException("extend-parameterization: expected 1 or more arguments")

    config = args[0]
    argc = len(args)

    if argc < 2 or not isinstance(config, values_parameter.W_Parameterization) or argc % 2 != 1:
        return config

    parser = ArgParser("extend-parameterization", args, start_at=1)
    while parser.has_more():
        param  = parser.parameter()
        key    = parser.object()
        config = config.extend([param], [key])

    return config
Example #2
0
def make_logger(args):
    parser = ArgParser("make-logger", args)

    topic           = values.w_false
    parent          = values.w_false
    propagate_level = DEBUG

    try:
        topic = parser.expect(values.W_Symbol, values.w_false)
        parent = parser.expect(values.W_Logger, values.w_false)
        propagate_level = parser.expect(*LOG_LEVEL)
    except EndOfInput:
        pass

    # Any remaining arguments are propagate topics
    propagate_topic = parser.expect_many(values.W_Symbol, values.w_false)

    return values.W_Logger(topic, parent, propagate_level, propagate_topic)
Example #3
0
def scheme_extend_parameterization(args):
    if len(args) == 0:
        raise SchemeException(
            "extend-parameterization: expected 1 or more arguments")

    config = args[0]
    argc = len(args)

    if argc < 2 or argc % 2 != 1:  # or not isinstance(config, values_parameter.W_Parameterization):
        return config

    parser = ArgParser("extend-parameterization", args, start_at=1)
    while parser.has_more():
        param = parser.expect(values_parameter.W_BaseParameter)
        key = parser.expect(values.W_Object)
        config = config.extend([param], [key])

    return config
Example #4
0
def call_with_continuation_prompt(args, env, cont):
    if not args:
        raise SchemeException(
            "call-with-continuation-prompt: not given enough values")
    parser = ArgParser("call-with-continuation-prompt", args)
    tag = values.w_default_continuation_prompt_tag
    handler = values.w_false
    fun = parser.expect(values.W_Object)

    try:
        tag = parser.expect(values.W_ContinuationPromptTag)
        handler = parser.expect(values.W_Object)
    except EndOfInput:
        pass

    args = parser.expect_many(values.W_Object)
    if not fun.iscallable():
        raise SchemeException(
            "call-with-continuation-prompt: not given callable function")
    if handler is not values.w_false and not handler.iscallable():
        raise SchemeException(
            "call-with-continuation-prompt: not given callable handler")
    if handler is values.w_false:
        handler = None
    cont = Prompt(tag, handler, env, cont)
    return fun.call(args, env, cont)
Example #5
0
def make_logger(args):
    parser = ArgParser("make-logger", args)

    topic           = values.w_false
    parent          = values.w_false
    propagate_level = DEBUG # propagate everything

    try:
        topic = parser.expect(values.W_Symbol, values.w_false)
        parent = parser.expect(values.W_Logger, values.w_false)
        propagate_level = parser.expect(*LOG_LEVEL)
    except EndOfInput:
        pass

    # Any remaining arguments are propagate topics
    propagate_topic = parser.expect_many(values.W_Symbol, values.w_false)

    init_syslog_level = w_main_logger.get_syslog_level()
    init_stderr_level = w_main_logger.get_stderr_level()
    init_stdout_level = w_main_logger.get_stdout_level()

    return values.W_Logger(topic, parent, propagate_level, propagate_topic, init_syslog_level, init_stderr_level, init_stdout_level)
Example #6
0
def call_with_continuation_prompt(args, env, cont):
    if not args:
        raise SchemeException("call-with-continuation-prompt: not given enough values")
    parser  = ArgParser("call-with-continuation-prompt", args)
    tag     = values.w_default_continuation_prompt_tag
    handler = values.w_false
    fun     = parser.expect(values.W_Object)

    try:
        tag     = parser.expect(values.W_ContinuationPromptTag)
        handler = parser.expect(values.W_Object)
    except EndOfInput:
        pass

    args = parser.expect_many(values.W_Object)
    if not fun.iscallable():
        raise SchemeException("call-with-continuation-prompt: not given callable function")
    if handler is not values.w_false and not handler.iscallable():
        raise SchemeException("call-with-continuation-prompt: not given callable handler")
    if handler is values.w_false:
        handler = None
    cont = Prompt(tag, handler, env, cont)
    return fun.call(args, env, cont)
Example #7
0
def scheme_extend_parameterization(args, env, cont):
    from pycket.interpreter import return_value
    if len(args) == 0:
        raise SchemeException(
            "extend-parameterization: expected 1 or more arguments")

    config = args[0]
    argc = len(args)

    if argc < 2 or argc % 2 != 1:  # or not isinstance(config, values_parameter.W_Parameterization):
        return return_value(config, env, cont)

    parser = ArgParser("extend-parameterization", args, start_at=1)
    params = [None] * ((argc - 1) / 2)
    keys = [None] * ((argc - 1) / 2)
    i = 0
    while parser.has_more():
        params[i] = parser.expect(values_parameter.W_BaseParameter)
        keys[i] = parser.expect(values.W_Object)
        i += 1

    assert isinstance(config, values_parameter.W_Parameterization)
    return config.extend(params, keys, env, cont)
Example #8
0
def scheme_extend_parameterization(args, env, cont):
    from pycket.interpreter import return_value
    if len(args) == 0:
        raise SchemeException("extend-parameterization: expected 1 or more arguments")

    config = args[0]
    argc = len(args)

    if argc < 2 or argc % 2 != 1: # or not isinstance(config, values_parameter.W_Parameterization):
        return return_value(config, env, cont)


    parser = ArgParser("extend-parameterization", args, start_at=1)
    params = [None]*((argc-1)/2)
    keys = [None]*((argc-1)/2)
    i = 0
    while parser.has_more():
        params[i]  = parser.expect(values_parameter.W_BaseParameter)
        keys[i]    = parser.expect(values.W_Object)
        i += 1

    assert isinstance(config, values_parameter.W_Parameterization)
    return config.extend(params, keys, env, cont)
Example #9
0
def log_message(args):
    # currently relying on this information about log-level? :
    # Use this function to avoid work generating an event for
    # log-message if no receiver is interested in the information;
    # this shortcut is built into log-fatal, log-error, log-warning,
    # log-info, log-debug, and forms bound by define-logger

    # The complete solution is to :
    # FIXME : implement log_receivers, create an event and distribute it

    parser = ArgParser("log-message", args)

    # logger : logger?
    logger = parser.expect(values.W_Logger)

    # level : log-level/c
    level = parser.expect(*LOG_LEVEL)

    # topic : (or/c symbol? #f) = (logger-name logger)
    try:
        topic = parser.expect(values.W_Symbol, values.w_false)
    except Exception, e:
        topic = logger.get_name()
Example #10
0
def log_message(args):
    # currently relying on this information about log-level? :
    # Use this function to avoid work generating an event for
    # log-message if no receiver is interested in the information;
    # this shortcut is built into log-fatal, log-error, log-warning,
    # log-info, log-debug, and forms bound by define-logger

    # The complete solution is to :
    # FIXME : implement log_receivers, create an event and distribute it

    parser = ArgParser("log-message", args)


    # logger : logger?
    logger = parser.expect(values.W_Logger)

    # level : log-level/c
    level = parser.expect(*LOG_LEVEL)

    # topic : (or/c symbol? #f) = (logger-name logger)
    try:
        topic = parser.expect(values.W_Symbol, values.w_false)
    except Exception, e:
        topic = logger.get_name()
Example #11
0
def make_logger(args):
    parser = ArgParser("make-logger", args)

    topic = values.w_false
    parent = values.w_false
    propagate_level = DEBUG

    try:
        topic = parser.expect(values.W_Symbol, values.w_false)
        parent = parser.expect(values.W_Logger, values.w_false)
        propagate_level = parser.expect(*LOG_LEVEL)
    except EndOfInput:
        pass

    # Any remaining arguments are propagate topics
    propagate_topic = parser.expect_many(values.W_Symbol, values.w_false)

    return values.W_Logger(topic, parent, propagate_level, propagate_topic)
Example #12
0
def make_logger(args):
    parser = ArgParser("make-logger", args)

    topic = values.w_false
    parent = values.w_false
    propagate_level = DEBUG  # propagate everything

    try:
        topic = parser.expect(values.W_Symbol, values.w_false)
        parent = parser.expect(values.W_Logger, values.w_false)
        propagate_level = parser.expect(*LOG_LEVEL)
    except EndOfInput:
        pass

    # Any remaining arguments are propagate topics
    propagate_topic = parser.expect_many(values.W_Symbol, values.w_false)

    init_syslog_level = w_main_logger.get_syslog_level()
    init_stderr_level = w_main_logger.get_stderr_level()
    init_stdout_level = w_main_logger.get_stdout_level()

    return values.W_Logger(topic, parent, propagate_level, propagate_topic,
                           init_syslog_level, init_stderr_level,
                           init_stdout_level)