Пример #1
0
    def get_balances(self):
        available = {
            'STEEM': Amount(self['balance']).amount,
            'SBD': Amount(self['sbd_balance']).amount,
            'VESTS': Amount(self['vesting_shares']).amount,
        }

        savings = {
            'STEEM': Amount(self['savings_balance']).amount,
            'SBD': Amount(self['savings_sbd_balance']).amount,
        }

        rewards = {
            'STEEM': Amount(self['reward_steem_balance']).amount,
            'SBD': Amount(self['reward_sbd_balance']).amount,
            'VESTS': Amount(self['reward_vesting_balance']).amount,
        }

        totals = {
            'STEEM':
            sum([available['STEEM'], savings['STEEM'], rewards['STEEM']]),
            'SBD': sum([available['SBD'], savings['SBD'], rewards['SBD']]),
            'VESTS': sum([available['VESTS'], rewards['VESTS']]),
        }

        total = walk_values(rpartial(round, 3), totals)

        return {
            'available': available,
            'savings': savings,
            'rewards': rewards,
            'total': total,
        }
Пример #2
0
get_correct_meta = lambda o: o.Meta if is_class(o) else o._meta
is_marked = lambda o: (lambda x: hasattr(x, META_IDENTIFIER_NAME) and getattr(x, META_IDENTIFIER_NAME))(get_correct_meta(o))
select_with_identifier = partial(select, is_marked)

to_schema_name = lambda o: (lambda x: getattr(x, META_SCHEMA_NAME, x.resource_name))(get_correct_meta(o))
to_fqns = partial(map, fqn)

commas = partial(str_join, ', ')
str_drop_empty = partial(select, lambda s: s != '')
str_trim = lambda s: s.strip()
str_split = lambda on: (lambda s: s.split(on))
str_split_pattern = lambda pattern: (lambda s: re.split(pattern, s))
str_split_newline = str_split_pattern(r'\r?\n')
char_arr_to_string = partial(str_join, '')

space_out_title_case = compose(lambda s: s.lstrip(), char_arr_to_string, flatten, rpartial(partial(reduce, lambda left, right: left + (' ' + right if right.isupper() else right)), ''))
substitute_char = lambda target, replacement: partial(map, lambda c: replacement if c == target else c)
lowercase = partial(map, lambda c: c.lower())
slugify = compose(char_arr_to_string, substitute_char(' ', '-'), space_out_title_case)

normalize_whitespace = compose(partial(str_join, '\n '), str_drop_empty, partial(map, str_trim), str_split_newline)


class NO_TYPE:
    pass


class FieldDescriptor(object):
    def __init__(self, desc: str, is_array: bool = False, type_override=NO_TYPE):
        self.description = desc
        self.is_array = is_array
Пример #3
0
def jrpc_request_validator():
    return rpartial(jsonschema.validate, REQUEST_SCHEMA)
Пример #4
0
def steemd_jrpc_response_validator():
    return rpartial(jsonschema.validate, STEEMD_RESPONSE_SCHEMA)
Пример #5
0
def jrpc_response_validator():
    return rpartial(jsonschema.validate, RESPONSE_SCHEMA)