Skip to content

Commit

Permalink
Improve console driver
Browse files Browse the repository at this point in the history
  • Loading branch information
stewartpark committed Feb 17, 2017
1 parent 5939ef1 commit 41f904a
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 24 deletions.
2 changes: 1 addition & 1 deletion fdep/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__VERSION__ = '0.2.3'
__VERSION__ = '0.2.4'
14 changes: 11 additions & 3 deletions fdep/commands/install.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
fdep install [<files...>]
"""
from __future__ import print_function

import os
import sys
import time
Expand Down Expand Up @@ -47,7 +49,7 @@ def _parallelized_install(self, to_install):
queue = Queue()
line_filler = lambda: sys.stdout.write('\n' * (len(to_install) - 1)) # noqa
line_filler()
print('\x1b[A' * len(to_install))
print('\x1b[A' * len(to_install), file=sys.stderr)
TqdmProgressBar.set_number_of_progressbars(len(to_install))
threads = [
Thread(
Expand Down Expand Up @@ -95,9 +97,15 @@ def run(self, *args, **kwargs):
if sha1sum is not None:
actual_sha1sum = HashHelper.calculate_sha1sum(path)
if sha1sum != actual_sha1sum:
print(self.messages.FILE_CHANGED.format(entry_name))
print(
self.messages.FILE_CHANGED.format(entry_name),
file=sys.stderr
)
return False
print(self.messages.ALREADY_INSTALLED.format(entry_name))
print(
self.messages.ALREADY_INSTALLED.format(entry_name),
file=sys.stderr
)
continue

to_install.append((entry_name, path, source_to_use, sha1sum))
Expand Down
5 changes: 3 additions & 2 deletions fdep/commands/serve.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ def resolve_module(self, module_name):
for name in names_to_resolve:
module = getattr(module, name)
except ImportError:
sys.stderr.write(self.messages.ERROR_NO_SUCH_MODULE.format(module_name))
sys.stderr.write(
self.messages.ERROR_NO_SUCH_MODULE.format(module_name))
return None
return module

Expand Down Expand Up @@ -107,7 +108,7 @@ def run(self, *args, **kwargs):
try:
# Ensure everything is installed safe and sound.
if not self.root_runner.commands['install'].run():
return False
raise Exception("fdep install failed")

func_pairs = self.get_func_pairs(python_module_name)
if server_driver_name in self.__class__.KNOWN_DRIVERS:
Expand Down
4 changes: 3 additions & 1 deletion fdep/runner.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
"""Interpret configuration files and execute."""
from __future__ import print_function

import sys

from fdep import messages
Expand Down Expand Up @@ -62,7 +64,7 @@ def __init__(self, env, config):
def run(self, *args, **kwargs):
"""Interpret the argv and run appropriate methods."""
args = list(args)
print(self.messages.CURRENT_ENVIRONMENT.format(self.env))
print(self.messages.CURRENT_ENVIRONMENT.format(self.env), file=sys.stderr)
if not len(args):
cmd = command = None
else:
Expand Down
42 changes: 25 additions & 17 deletions fdep/servers/console.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# -*- coding: utf-8 -*-

from __future__ import print_function

import sys
from inspect import signature

from fdep.servers import RPCServer

Expand All @@ -12,21 +15,26 @@ def register_functions(self, func_pairs):
self.funcs = dict(func_pairs)

def serve_forever(self, **kwargs):
print("🌝 Try things out!")

try:
if not kwargs.get('func'):
print('We have: {}'.format(', '.join(self.funcs.keys())))
sys.stdout.write('Which function? ')
sys.stdout.flush()
func_name = sys.stdin.readline().strip()
if not kwargs.get('func'):
print(
'Missing --func. Available functions: {}'.format(
', '.join(self.funcs.keys())
),
file=sys.stderr
)
return

func_name = kwargs['func']
func = self.funcs[func_name]
params = list(signature(func).parameters)

args = []
for param in params:
if kwargs.get(param):
arg = kwargs[param]
else:
func_name = kwargs['func']

while True:
sys.stdout.write("? ")
sys.stdout.flush()
value = sys.stdin.readline().strip()
print(self.funcs[func_name](value))
except KeyboardInterrupt:
print('')
sys.stderr.write("{}: ".format(param))
sys.stderr.flush()
arg = sys.stdin.readline().strip()
args.append(arg)
print(self.funcs[func_name](*args))

0 comments on commit 41f904a

Please sign in to comment.