ask for a destination if instantiated without a filename #15
1 changed files with 16 additions and 7 deletions
|
@ -4,7 +4,7 @@
|
|||
import npyscreen
|
||||
import json
|
||||
import datetime
|
||||
from sys import argv
|
||||
import sys
|
||||
import pathlib
|
||||
|
||||
from base_data_model import base_data_model
|
||||
|
@ -15,7 +15,7 @@ from membership_data_model import membership_data_model
|
|||
class FormApp(npyscreen.NPSAppManaged):
|
||||
def __init__(self, filename):
|
||||
super().__init__()
|
||||
|
||||
self.is_new_member = self.is_default_file(filename)
|
||||
self.dir_path = pathlib.Path(filename).absolute().parent
|
||||
self.member = json.load(open(filename, 'r'))
|
||||
|
||||
|
@ -47,23 +47,32 @@ class FormApp(npyscreen.NPSAppManaged):
|
|||
name = self.base_data.get_form_values_dict()['fullname']
|
||||
date = datetime.datetime.now().replace(microsecond=0).isoformat()
|
||||
fn = '{}_{}.json'.format('_'.join(name.lower().split()), date.replace(':',''))
|
||||
if self.is_new_member:
|
||||
print('Enter destination directory for new Member data:')
|
||||
self.dir_path = input()
|
||||
file_path = pathlib.Path(self.dir_path, fn)
|
||||
return file_path
|
||||
|
||||
def is_default_file(self, filename):
|
||||
return pathlib.Path(filename).name == 'example.json'
|
||||
|
||||
|
||||
def main(*_args):
|
||||
if len(argv) > 1:
|
||||
filename = argv[1]
|
||||
if len(sys.argv) > 1:
|
||||
file_path = pathlib.Path(sys.argv[1])
|
||||
if not file_path.exists():
|
||||
print("Trying to open nonexistent file. Aborting.")
|
||||
sys.exit(0)
|
||||
else:
|
||||
filename = pathlib.Path(pathlib.Path(__file__).absolute().parent, 'example.json')
|
||||
file_path = pathlib.Path(pathlib.Path(__file__).absolute().parent, 'example.json')
|
||||
|
||||
app = FormApp(filename)
|
||||
app = FormApp(file_path)
|
||||
|
||||
try:
|
||||
app.run()
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return 0
|
||||
sys.exit(0)
|
||||
|
||||
if app.data_has_changed():
|
||||
out_data = app.get_data_from_form()
|
||||
|
|
Loading…
Reference in a new issue