Esempio n. 1
0
def is_processed(input_txns, errors, config, input_txn_text, setup_txns_text, output_txns):
    input_txns[:], _, _ = load_string(setup_txns_text + input_txn_text)
    prefix_plugin_text = 'plugin "beancount_plugin_utils.example_plugin" "' + config.strip('\n') + '"\n'
    full_text = prefix_plugin_text + setup_txns_text + input_txn_text
    print('\nInput (full & raw):\n------------------------------------------------')
    print(full_text + '\n')
    output_txns[:], errors[:], _ = load_string(full_text)
    print('\nOutput (Transactions):\n------------------------------------------------\n')
    for txn in output_txns:
        print(printer.format_entry(txn))
    print('\nOutput (Errors):\n------------------------------------------------\n')
    for error in errors:
        print(printer.format_error(error))
Esempio n. 2
0
    def test_format_and_print_error(self):
        entry = data.Open(META, date(2014, 1, 15), 'Assets:Bank:Checking', [], None)
        error = interpolate.BalanceError(META, "Example balance error", entry)
        error_str = printer.format_error(error)
        self.assertTrue(isinstance(error_str, str))

        oss = io.StringIO()
        printer.print_error(error, oss)
        self.assertTrue(isinstance(oss.getvalue(), str))

        oss = io.StringIO()
        printer.print_errors([error], oss)
        self.assertTrue(isinstance(oss.getvalue(), str))
Esempio n. 3
0
    def check_syntax(self):
        """Check the syntax of the account file."""
        from beancount import loader
        from beancount.ops import validation

        _, errors, _ = loader.load_file(
            str(self.accounts_file),
            # Force slow and hardcore validations, just for check.
            extra_validations=validation.HARDCORE_VALIDATIONS,
        )

        if errors:
            errorlist = [
                printer.format_error(error).strip() for error in errors
            ]
            raise ValueError("\n".join(errorlist))
Esempio n. 4
0
def is_processed(input_txns, errors, config, input_txn_text, setup_txns_text,
                 output_txns):
    text = 'plugin "beancount_share.share" "' + config.strip(
        '\n') + '"\n' + setup_txns_text + input_txn_text
    print(
        '\nInput (full & raw):\n------------------------------------------------\n'
        + text + '\n')
    output_txns[:], errors[:], _ = load_string(text)
    print(
        '\nOutput (Transactions):\n------------------------------------------------\n'
    )
    for txn in output_txns:
        print(printer.format_entry(txn))
    print(
        '\nOutput (Errors):\n------------------------------------------------\n'
    )
    for error in errors:
        print(printer.format_error(error))
Esempio n. 5
0
def is_processed(variant, input_txns, errors, config, input_txn_text,
                 setup_txns_text, output_txns):
    input_txns[:], _, _ = load_string(setup_txns_text + input_txn_text)

    if variant == 'depr':
        prefix_plugin_text = 'plugin "beancount_interpolate.depreciate" "' + config.strip(
            '\n') + '"\n'
    elif variant == 'recur':
        prefix_plugin_text = 'plugin "beancount_interpolate.recur" "' + config.strip(
            '\n') + '"\n'
    elif variant == 'split':
        prefix_plugin_text = 'plugin "beancount_interpolate.split" "' + config.strip(
            '\n') + '"\n'
    elif variant == 'spread':
        prefix_plugin_text = 'plugin "beancount_interpolate.spread" "' + config.strip(
            '\n') + '"\n'
    elif variant == 'all':
        prefix_plugin_text = 'plugin "beancount_interpolate.depreciate" "' + config.strip(
            '\n') + '"\n'
        prefix_plugin_text = prefix_plugin_text + 'plugin "beancount_interpolate.recur" "' + config.strip(
            '\n') + '"\n'
        prefix_plugin_text = prefix_plugin_text + 'plugin "beancount_interpolate.split" "' + config.strip(
            '\n') + '"\n'
        prefix_plugin_text = prefix_plugin_text + 'plugin "beancount_interpolate.spread" "' + config.strip(
            '\n') + '"\n'
    else:
        raise RuntimeError('Unknown variant: "{}".'.format(variant))

    full_text = prefix_plugin_text + setup_txns_text + input_txn_text
    print(
        '\nInput (full & raw):\n------------------------------------------------'
    )
    print(full_text + '\n')
    output_txns[:], errors[:], _ = load_string(full_text)
    print(
        '\nOutput (Transactions):\n------------------------------------------------\n'
    )
    for txn in output_txns:
        print(printer.format_entry(txn))
    print(
        '\nOutput (Errors):\n------------------------------------------------\n'
    )
    for error in errors:
        print(printer.format_error(error))
 def __str__(self):
     return printer.format_error(self.to_named_tuple())