예제 #1
0
파일: logger.py 프로젝트: alexcepoi/pyscale
def println(line):
	# blank line
	if re.match(r'\s*$', line):
		return puts(line)

	# logfile header
	mobj = re.match(r'==> (.*) <==$', line)
	if mobj:
		return puts(style.bright(fore.black('==> ') + fore.white(mobj.group(1)) + fore.black(' <==')))
	
	# exception line
	if re.match(EXCEPTION_PREFIX, line):
		return puts(fore.red(line))

	# standard log line
	basic = r'(.*?\s+)'

	date = basic*3
	time = basic
	type = basic
	file = '(\[.*?\s+)\])'

	mobj = re.match(basic*6 + r'(.*)', line)
	if not mobj:
		# non-conventional line
		return puts(line)
	else:
		groups = list(mobj.groups())

		groups.insert(0, str(fore.cyan))
		groups.insert(4, str(fore.blue))
		groups.insert(6, str(style.bright))
		groups.insert(8, str(style.reset_all))
		groups.insert(9, str(fore.cyan))
		groups.insert(11, str(style.reset_all))

		for idx, string in enumerate(groups):
			string = re.sub(r'(STATUS)', fore.white(r'\1'), string)
			string = re.sub(r'(DEBUG)', fore.white(r'\1'), string)
			string = re.sub(r'(INFO)', fore.green(r'\1'), string)
			string = re.sub(r'(WARNING)', fore.yellow(r'\1'), string)
			string = re.sub(r'(ERROR)', fore.red(r'\1'), string)
			string = re.sub(r'(EXCEPT)', fore.red(r'\1'), string)

			groups[idx] = string


		groups[-1] = re.sub(r'\[', fore.cyan(r'['), groups[-1])
		groups[-1] = re.sub(r'\]', fore.cyan(r']'), groups[-1])

		groups[-1] = re.sub(r'~>', fore.blue(r'~>'), groups[-1])
		groups[-1] = re.sub(r'<~', fore.yellow(r'<~'), groups[-1])

		groups[-1] = re.sub(r'\(', fore.cyan(r'('), groups[-1])
		groups[-1] = re.sub(r'\)', fore.cyan(r')'), groups[-1])

		groups[-1] = re.sub(r"'", fore.cyan(r"'"), groups[-1])
		groups[-1] = re.sub(r'"', fore.cyan(r'"'), groups[-1])

		return puts(''.join(groups))
예제 #2
0
파일: console.py 프로젝트: palnes/pyscale
def api(modules):
    # ensure iterable
    if isinstance(modules, Socket):
        modules = [modules]

    # iterate list
    for module in modules:
        puts('= ' + fore.green(module.name))
        for obj in module.help():
            if isinstance(obj, list):
                # method
                puts('  * ' + fore.yellow(obj[0]) + ' ' + fore.white(obj[1]))
                if obj[2]:
                    puts('    ' + fore.blue(obj[2]))
예제 #3
0
def api(modules):
	# ensure iterable
	if isinstance(modules, Socket):
		modules = [modules]
	
	# iterate list
	for module in modules:
		puts('= ' + fore.green(module.name))
		for obj in module.help():
			if isinstance(obj, list):
				# method
				puts('  * ' + fore.yellow(obj[0]) + ' ' + fore.white(obj[1]))
				if obj[2]:
					puts('    ' + fore.blue(obj[2]))
예제 #4
0
파일: console.py 프로젝트: palnes/pyscale
def reinit(namespace, info=True):
    # clean sockets
    for sock in namespace.sockets:
        delattr(namespace, sock.name)

    # create sockets
    namespace.all = MultiSocket('*')
    namespace.sockets = namespace.all.objs

    for sock in namespace.sockets:
        setattr(namespace, sock.name, sock)

    # display info
    if info:
        puts('=== ' + fore.blue('PyScale Console') + ' =', padding='=')
        for sock in ['all'] + sorted([x.name for x in namespace.sockets]):
            puts('    ' + fore.green('>>> ') + sock)
        puts('=====================', padding='=')
예제 #5
0
def reinit(namespace, info=True):
	# clean sockets
	for sock in namespace.sockets:
		delattr(namespace, sock.name)

	# create sockets
	namespace.all = MultiSocket('*')
	namespace.sockets = namespace.all.objs

	for sock in namespace.sockets:
		setattr(namespace, sock.name, sock)
	
	# display info
	if info:
		puts('=== ' + fore.blue('PyScale Console') + ' =', padding='=')
		for sock in ['all'] + sorted([x.name for x in namespace.sockets]):
			puts('    ' + fore.green('>>> ') + sock)
		puts('=====================', padding='=')
예제 #6
0
def println(line):
    # blank line
    if re.match(r'\s*$', line):
        return puts(line)

    # logfile header
    mobj = re.match(r'==> (.*) <==$', line)
    if mobj:
        return puts(
            style.bright(
                fore.black('==> ') + fore.white(mobj.group(1)) +
                fore.black(' <==')))

    # exception line
    if re.match(EXCEPTION_PREFIX, line):
        return puts(fore.red(line))

    # standard log line
    basic = r'(.*?\s+)'

    date = basic * 3
    time = basic
    type = basic
    file = '(\[.*?\s+)\])'

    mobj = re.match(basic * 6 + r'(.*)', line)
    if not mobj:
        # non-conventional line
        return puts(line)
    else:
        groups = list(mobj.groups())

        groups.insert(0, str(fore.cyan))
        groups.insert(4, str(fore.blue))
        groups.insert(6, str(style.bright))
        groups.insert(8, str(style.reset_all))
        groups.insert(9, str(fore.cyan))
        groups.insert(11, str(style.reset_all))

        for idx, string in enumerate(groups):
            string = re.sub(r'(STATUS)', fore.white(r'\1'), string)
            string = re.sub(r'(DEBUG)', fore.white(r'\1'), string)
            string = re.sub(r'(INFO)', fore.green(r'\1'), string)
            string = re.sub(r'(WARNING)', fore.yellow(r'\1'), string)
            string = re.sub(r'(ERROR)', fore.red(r'\1'), string)
            string = re.sub(r'(EXCEPT)', fore.red(r'\1'), string)

            groups[idx] = string

        groups[-1] = re.sub(r'\[', fore.cyan(r'['), groups[-1])
        groups[-1] = re.sub(r'\]', fore.cyan(r']'), groups[-1])

        groups[-1] = re.sub(r'~>', fore.blue(r'~>'), groups[-1])
        groups[-1] = re.sub(r'<~', fore.yellow(r'<~'), groups[-1])

        groups[-1] = re.sub(r'\(', fore.cyan(r'('), groups[-1])
        groups[-1] = re.sub(r'\)', fore.cyan(r')'), groups[-1])

        groups[-1] = re.sub(r"'", fore.cyan(r"'"), groups[-1])
        groups[-1] = re.sub(r'"', fore.cyan(r'"'), groups[-1])

        return puts(''.join(groups))