Merge pull request #30 from ltworf/fixes

CLI fix
master
Salvo 'LtWorf' Tomaselli 2020-08-15 21:36:34 +07:00 committed by GitHub
commit 7a43071faf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 14 deletions

@ -17,7 +17,7 @@ relational_gui/resources.py:
.PHONY: mypy
mypy:
mypy relational
mypy relational relational_readline
.PHONY: test
test:

@ -134,7 +134,7 @@ class Relation(NamedTuple):
try:
c_expr = compile(expr, 'selection', 'eval')
except:
raise Exception('Failed to compile expression: %s' % expr)
raise Exception(f'Failed to compile expression: {expr}')
content = []
for i in self.content:
@ -147,8 +147,7 @@ class Relation(NamedTuple):
if eval(c_expr, attributes):
content.append(i)
except Exception as e:
raise Exception(
"Failed to evaluate %s\n%s" % (expr, e.__str__()))
raise Exception(f'Failed to evaluate {expr}\n{e}')
return Relation(header, frozenset(content))
def product(self, other: 'Relation') -> 'Relation':
@ -403,7 +402,7 @@ class Header(tuple):
for i in self:
if not is_valid_relation_name(i):
raise Exception('"%s" is not a valid attribute name' % i)
raise Exception(f'"{i}" is not a valid attribute name')
if len(self) != len(set(self)):
raise Exception('Attribute names must be unique')
@ -419,12 +418,12 @@ class Header(tuple):
attrs = list(self)
for old, new in params.items():
if not is_valid_relation_name(new):
raise Exception('%s is not a valid attribute name' % new)
raise Exception(f'{new} is not a valid attribute name')
try:
id_ = attrs.index(old)
attrs[id_] = new
except:
raise Exception('Field not found: %s' % old)
raise Exception(f'Field not found: {old}')
return Header(attrs)
def sharedAttributes(self, other: 'Header') -> int:

@ -27,7 +27,7 @@ from typing import Optional
from relational import relation, parser, rtypes
from relational import maintenance
from xtermcolor import colorize
from xtermcolor import colorize # type: ignore
PROMPT_COLOR = 0xffff00
ERROR_COLOR = 0xff0000
@ -113,7 +113,7 @@ completer = SimpleCompleter(
'_DIFFERENCE ', '_JOIN ', '_LJOIN ', '_RJOIN ', '_FJOIN ', '_PROJECTION ', '_RENAME_TO ', '_SELECTION ', '_RENAME ', '_DIVISION '])
def load_relation(filename: str, defname:Optional[str]=None) -> Optional[str]:
def load_relation(filename: str, defname: Optional[str]) -> Optional[str]:
'''
Loads a relation into the set. Defname is the given name
to the relation.
@ -123,7 +123,7 @@ def load_relation(filename: str, defname:Optional[str]=None) -> Optional[str]:
'''
if not os.path.isfile(filename):
print(colorize(
"%s is not a file" % filename, ERROR_COLOR), file=sys.stderr)
f'{filename} is not a file', ERROR_COLOR), file=sys.stderr)
return None
if defname is None:
@ -137,7 +137,7 @@ def load_relation(filename: str, defname:Optional[str]=None) -> Optional[str]:
"%s is not a valid relation name" % defname, ERROR_COLOR), file=sys.stderr)
return None
try:
relations[defname] = relation.Relation(filename)
relations[defname] = relation.Relation.load(filename)
completer.add_completion(defname)
printtty(colorize("Loaded relation %s" % defname, COLOR_GREEN))
@ -216,10 +216,9 @@ def exec_line(command: str) -> None:
return
filename = pars[1]
defname = None
if len(pars) > 2:
defname = pars[2]
else:
defname = None
load_relation(filename, defname)
elif command.startswith('UNLOAD '):
@ -320,7 +319,7 @@ def main(files=[]):
"; Completion is activated using the tab (if supported by the terminal)")
for i in files:
load_relation(i)
load_relation(i, None)
readline.set_completer(completer.complete)