diff options
| -rw-r--r-- | src/args_worklogger.py | 11 | ||||
| -rw-r--r-- | src/funcs_worklogger.py | 46 | ||||
| -rwxr-xr-x | src/worklog | 4 |
3 files changed, 35 insertions, 26 deletions
diff --git a/src/args_worklogger.py b/src/args_worklogger.py index 77ac0a2..c2bf923 100644 --- a/src/args_worklogger.py +++ b/src/args_worklogger.py @@ -47,11 +47,17 @@ parser.add_argument( help='Turn on a verbose program when run', ) +parser.add_argument( + '--version', + action='version', + version='%(prog)s 1.0' +) + parser.add_argument( 'job', action='store', - help='(required) Add a job for the work done, to be logged with your insertion', + help='(required)Add a job for the work done, to be logged with your insertion, merged, or emailed', ) parser.add_argument( @@ -109,8 +115,7 @@ parser_merge.add_argument( 'extension', action='store', choices=['csv', 'text', 'json'], - default='csv', - help='(required) Output file type, as a result of merge' + help='(Required)Output file type, as a result of merge. Default is csv' ) parser_merge.add_argument( diff --git a/src/funcs_worklogger.py b/src/funcs_worklogger.py index 4388ad4..8ffabfa 100644 --- a/src/funcs_worklogger.py +++ b/src/funcs_worklogger.py @@ -15,7 +15,7 @@ import csv import os -TIME_FORMAT = "%Y-%m-%dT%H:%M:%S%z" +TIME_FORMAT = "%Y-%m-%dT%H:%M:%S%Z" def _prep_write(format, s_log, p_settings, _dt, k_args): @@ -23,31 +23,31 @@ def _prep_write(format, s_log, p_settings, _dt, k_args): if format == '.txt' or format == None: for key, val in k_args.items(): if key == 'job' and val is not None: - s_log += f"{key}:'{val}'" + s_log += f"{key}:{val}," elif key == 'time' and val is not None: - s_log += f"{key}:{val}hrs " + s_log += f"{key}:{val}hrs," elif key == 'message' and val is not None: - s_log += f"{'desc'}:'{val}' " + s_log += f"{'desc'}:'{val}'," elif key == 'proj' and val is not None and p_settings is not None: job_projects = p_settings[str(k_args['job']).upper()] if str(val).upper() in job_projects.keys(): - s_log += f"{key}:{job_projects[str(val).upper()]} " + s_log += f"{key}:{job_projects[str(val).upper()]}," logger.debug( f"Job: {k_args['job']}; Projects: {job_projects}") else: - s_log += f"{key}:{val} " + s_log += f"{key}:{val}," logger.debug( f"Couldn't get specified projects for {k_args['job']} in config.") elif key == 'start' and val == 'now': - s_log += f"{key}:{dt.strftime("'%H:%M'")} " + s_log += f"{key}:{dt.strftime("'%H:%M'")}," elif key == 'start' and val is not None: - s_log += f"{key}:'{val}' " + s_log += f"{key}:'{val}'," elif key == 'end' and val == 'now': - s_log += f"{key}:{dt.strftime("'%H:%M'")} " + s_log += f"{key}:{dt.strftime("'%H:%M'")}," elif key == 'end' and val is not None: - s_log += f"{key}:'{val}' " + s_log += f"{key}:'{val}'," elif val is not None: - s_log += f"{key}:{val} " + s_log += f"{key}:{val}," return s_log, None, None @@ -151,11 +151,11 @@ def parse(filepath): csv_log = '' for key, val in row.items(): if key == 'timestamp': - csv_log += f"{val} " + csv_log += f"{val}," elif key == 'job': - csv_log += f"{key}:'{val}' " + csv_log += f"{key}:{val}," elif val: - csv_log += f"{key}:{val} " + csv_log += f"{key}:{val}," lines.append(csv_log) @@ -166,8 +166,8 @@ def parse(filepath): def add_log(file_format=None, proj_settings=None, savepath=None, backuppath=None, **kwargs): - dt = datetime.datetime.now(timezone.utc) - log_str = f"{dt.strftime(TIME_FORMAT)} " + dt = datetime.now(timezone.utc) + log_str = f"{dt.strftime(TIME_FORMAT)}," job_upper = str(kwargs['job']).upper() if file_format != None: @@ -179,7 +179,7 @@ def add_log(file_format=None, proj_settings=None, savepath=None, backuppath=None flag_start = False flag_end = False if len(parsed_file) > 1: - last_entry = str(parsed_file[-1]).split(' ') + last_entry = str(parsed_file[-1]).split(',') for param in last_entry: param_split = param.split(':') var, val = param_split[0], param_split[1] if len( @@ -201,10 +201,10 @@ def add_log(file_format=None, proj_settings=None, savepath=None, backuppath=None if file_format == '.txt': if insert_time.lower() == 'now': fd.write( - f"{log_str}job:{kwargs['job']} end:{dt.strftime("'%H:%M'")}\n") + f"{log_str}job:{kwargs['job']},end:{dt.strftime("'%H:%M'")}\n") else: fd.write( - f"{log_str}job:{kwargs['job']} end:{insert_time}\n") + f"{log_str}job:{kwargs['job']},end:{insert_time}\n") elif file_format == '.csv': csv_writer = csv.DictWriter( fd, fieldnames=['timestamp'] + [x if x != 'message' else 'desc' for x in kwargs.keys()]) @@ -247,7 +247,8 @@ def combine_log(target_job, specified_ext, target_extension=None, savepath=None, buffer[index] = [index, line] for content in buffer: - _entry = content[1].split(' ') + # putting dt stamp in list + _entry = content[1].split(',') buffer[content[0]].append(_entry[0]) try: @@ -258,11 +259,12 @@ def combine_log(target_job, specified_ext, target_extension=None, savepath=None, f"Details: {str(e)}") return None - csv_logs = [] if specified_ext == '.csv': + csv_logs = [] for log in buffer: + # buffer contains index, log line, dt stamp _log = {} - split_log = log[1].split(' ') + split_log = log[1].split(',') for index, param in enumerate(split_log): if index == 0: _log['timestamp'] = param diff --git a/src/worklog b/src/worklog index c43cca1..848f418 100755 --- a/src/worklog +++ b/src/worklog @@ -31,6 +31,8 @@ formats: dict = { # creates a NameSpace of arguments that were made args = parser.parse_args() +print(type(args)) +pprint(args) numeric_loglevel = getattr(logging, str(args.log).upper()) if isinstance(numeric_loglevel, int): @@ -81,7 +83,7 @@ else: BACKUPPATH = Path(osp.join(osp.expanduser("~"), "Documents", "worklogger")) -if args.extension is not None: +if 'extension' in vars(args).keys(): combine_log(target_job=args.job, specified_ext=formats[str(args.extension).upper( )], delete=args.delete, savepath=SAVEPATH, backuppath=BACKUPPATH) sys.exit() |
