Move checker.py into File class.
This commit is contained in:
parent
f76286da82
commit
360d36fa94
2 changed files with 28 additions and 32 deletions
|
@ -1,32 +0,0 @@
|
||||||
from typing import Generator, List, Tuple, Optional
|
|
||||||
from .file import FILE
|
|
||||||
import re
|
|
||||||
|
|
||||||
|
|
||||||
def checkmark(value: Optional[bool] = None) -> str:
|
|
||||||
"""
|
|
||||||
Takes optional bool and returns colored string.
|
|
||||||
"""
|
|
||||||
return {
|
|
||||||
True: '\033[92m✓\033[0m',
|
|
||||||
False: '\033[91m❌\033[0m',
|
|
||||||
None: '\033[33m?\033[0m'
|
|
||||||
}[value]
|
|
||||||
|
|
||||||
|
|
||||||
def check(f: FILE, largefile: bool = False) -> bool:
|
|
||||||
"""
|
|
||||||
Check given file and return checked file.
|
|
||||||
"""
|
|
||||||
f.csum.reset()
|
|
||||||
try:
|
|
||||||
with open(f.fpath, 'rb') as file:
|
|
||||||
if not largefile:
|
|
||||||
f.csum.gensum(file.read())
|
|
||||||
else:
|
|
||||||
for line in file:
|
|
||||||
f.csum.gensum(line)
|
|
||||||
except FileNotFoundError:
|
|
||||||
print(f"[WARN]: No such file or directory: {f.fpath}")
|
|
||||||
print(f"{checkmark(f.verify())} \t {f.csum} \t {f.esum} \t {f.fname}")
|
|
||||||
return f.verify()
|
|
28
fck/file.py
28
fck/file.py
|
@ -4,6 +4,15 @@ from . import cktype
|
||||||
|
|
||||||
|
|
||||||
class FILE:
|
class FILE:
|
||||||
|
"""
|
||||||
|
Colored checkmark representation.
|
||||||
|
"""
|
||||||
|
CHECKMARK = {
|
||||||
|
True: "\033[92m✓\033[0m",
|
||||||
|
False: "\033[91m❌\033[0m",
|
||||||
|
None: "\033[33m?\033[0m",
|
||||||
|
}
|
||||||
|
|
||||||
def __init__(self, fpath: str, esum: Optional[str] = None):
|
def __init__(self, fpath: str, esum: Optional[str] = None):
|
||||||
self.fpath = fpath
|
self.fpath = fpath
|
||||||
self.fname = path.basename(fpath)
|
self.fname = path.basename(fpath)
|
||||||
|
@ -16,3 +25,22 @@ class FILE:
|
||||||
if self.esum is None:
|
if self.esum is None:
|
||||||
return None
|
return None
|
||||||
return self.csum.__repr__() == self.esum
|
return self.csum.__repr__() == self.esum
|
||||||
|
|
||||||
|
def check(self, largefile: bool = False) -> Optional[bool]:
|
||||||
|
"""
|
||||||
|
Check given file and return checked file.
|
||||||
|
"""
|
||||||
|
self.csum.reset()
|
||||||
|
try:
|
||||||
|
with open(self.fpath, "rb") as file:
|
||||||
|
if not largefile:
|
||||||
|
self.csum.gensum(file.read())
|
||||||
|
else:
|
||||||
|
for line in file:
|
||||||
|
self.csum.gensum(line)
|
||||||
|
except FileNotFoundError:
|
||||||
|
print(f"[WARN]: No such file or directory: {self.fpath}")
|
||||||
|
print(
|
||||||
|
f"{self.CHECKMARK[self.verify()]} \t {self.csum} \t {self.esum} \t {self.fname}"
|
||||||
|
)
|
||||||
|
return self.verify()
|
||||||
|
|
Loading…
Reference in a new issue