From d06052c4096b0d212a249edfc5586cf758d67597 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 00:28:55 +0330 Subject: [PATCH 01/68] doc : PROGRAM_DESCRIPTION template added #19 --- nafas/functions.py | 2 ++ nafas/params.py | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/nafas/functions.py b/nafas/functions.py index 6f5f48f..5a3e988 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -74,6 +74,8 @@ def description_print(): print("\n".join(justify(DESCRIPTION.split(), 100))) print("\n") +def program_description_print(): + pass def input_filter(input_dict): """ diff --git a/nafas/params.py b/nafas/params.py index 4a5d72a..ae64900 100644 --- a/nafas/params.py +++ b/nafas/params.py @@ -10,6 +10,15 @@ NAFAS_VERSION = "0.1" +PROGRAM_DESCRIPTION = """ +Program Name : {0} + +Number of Cycles : {1} + +Total Time : {2} + +Sequence : {3} +""" STANDARD_MENU = { "program": { 1: "Clear Mind", From 88e9e59a7f6a616f0903faee389e7ba5b31cac7d Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 00:31:58 +0330 Subject: [PATCH 02/68] fix : get_program_dict function renamed to get_program_data #19 --- nafas/__main__.py | 4 ++-- nafas/functions.py | 8 ++++---- nafas/params.py | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/nafas/__main__.py b/nafas/__main__.py index d820021..0bab3aa 100644 --- a/nafas/__main__.py +++ b/nafas/__main__.py @@ -2,7 +2,7 @@ """nafas main.""" import sys -from nafas.functions import description_print, get_input_standard, input_filter, get_program_dict, run +from nafas.functions import description_print, get_input_standard, input_filter, get_program_data, run from nafas.params import NAFAS_VERSION from art import tprint @@ -14,5 +14,5 @@ if len(args) < 2: input_data = get_input_standard() filtered_data = input_filter(input_data) - program_data = get_program_dict(filtered_data) + program_name, level, program_data = get_program_data(filtered_data) run(program_data) diff --git a/nafas/functions.py b/nafas/functions.py index 5a3e988..19f8ec3 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -117,17 +117,17 @@ def get_input_standard(input_func=input): return input_dict -def get_program_dict(input_dict): +def get_program_data(input_dict): """ - Get program dictionary. + Get program data. :param input_dict: input data :type input_dict: dict - :return: program data as dict + :return: program name, level and program data as tuple """ program_name = STANDARD_MENU["program"][input_dict["program"]] level = STANDARD_MENU["level"][input_dict["level"]] - return PROGRAMS[program_name][level] + return program_name,level,PROGRAMS[program_name][level] def graphic_counter(delay_time): diff --git a/nafas/params.py b/nafas/params.py index ae64900..e9033c9 100644 --- a/nafas/params.py +++ b/nafas/params.py @@ -19,6 +19,7 @@ Sequence : {3} """ + STANDARD_MENU = { "program": { 1: "Clear Mind", From 5ebf1e00b51be7dd53365ce64433fb207cc2269c Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 00:53:15 +0330 Subject: [PATCH 03/68] feat : time_convert and program_description_print function added #19 --- nafas/__main__.py | 3 ++- nafas/functions.py | 36 +++++++++++++++++++++++++++++++++--- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/nafas/__main__.py b/nafas/__main__.py index 0bab3aa..c0ed308 100644 --- a/nafas/__main__.py +++ b/nafas/__main__.py @@ -2,7 +2,7 @@ """nafas main.""" import sys -from nafas.functions import description_print, get_input_standard, input_filter, get_program_data, run +from nafas.functions import description_print, get_input_standard, input_filter, get_program_data, program_description_print, run from nafas.params import NAFAS_VERSION from art import tprint @@ -15,4 +15,5 @@ input_data = get_input_standard() filtered_data = input_filter(input_data) program_name, level, program_data = get_program_data(filtered_data) + program_description_print(program_name, level, program_data) run(program_data) diff --git a/nafas/functions.py b/nafas/functions.py index 19f8ec3..6aa7d33 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -2,7 +2,7 @@ """nafas functions.""" import time -from nafas.params import DESCRIPTION, STANDARD_MENU, STEP_MAP, PROGRAMS +from nafas.params import DESCRIPTION, STANDARD_MENU, STEP_MAP, PROGRAMS, PROGRAM_DESCRIPTION def line(num=70, char="#"): @@ -18,6 +18,24 @@ def line(num=70, char="#"): print(num * char) +def time_convert(input_string): + """ + Convert input_string from sec to DD,HH,MM,SS format. + :param input_string: input time string in sec + :type input_string: str + :return: converted time as str + """ + sec = float(input_string) + days, sec = divmod(sec, 24 * 3600) + hours, sec = divmod(sec, 3600) + minutes, sec = divmod(sec, 60) + return ", ".join([ + "{:02.0f} days".format(days), + "{:02.0f} hour".format(hours), + "{:02.0f} minutes".format(minutes), + "{:02.0f} seconds".format(sec), + ]) + def left_justify(words, width): """ Left justify words. @@ -74,8 +92,20 @@ def description_print(): print("\n".join(justify(DESCRIPTION.split(), 100))) print("\n") -def program_description_print(): - pass +def program_description_print(program_name, level, program_data): + cycle = program_data["cycle"] + ratio = program_data["ratio"] + unit = program_data["unit"] + pre = program_data["pre"] + unit_time = 0 + sequence = [] + for index,item in enumerate(ratio): + unit_time += item * unit + if item!=0: + sequence.append(STEP_MAP[index]) + sequence = ",".join(sequence) + total_time = (unit_time * cycle) + pre + print(PROGRAM_DESCRIPTION.format(program_name,str(cycle),time_convert(str(total_time)),sequence)) def input_filter(input_dict): """ From cba01b884b6593af19b2704393ec90dec83f49df Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 00:54:37 +0330 Subject: [PATCH 04/68] fix : minor edit in program_description_print function #19 --- nafas/functions.py | 2 +- nafas/params.py | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/nafas/functions.py b/nafas/functions.py index 6aa7d33..03c2f70 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -105,7 +105,7 @@ def program_description_print(program_name, level, program_data): sequence.append(STEP_MAP[index]) sequence = ",".join(sequence) total_time = (unit_time * cycle) + pre - print(PROGRAM_DESCRIPTION.format(program_name,str(cycle),time_convert(str(total_time)),sequence)) + print(PROGRAM_DESCRIPTION.format(program_name,level,str(cycle),time_convert(str(total_time)),sequence)) def input_filter(input_dict): """ diff --git a/nafas/params.py b/nafas/params.py index e9033c9..2dc1273 100644 --- a/nafas/params.py +++ b/nafas/params.py @@ -13,11 +13,13 @@ PROGRAM_DESCRIPTION = """ Program Name : {0} -Number of Cycles : {1} +Level : {1} -Total Time : {2} +Number of Cycles : {2} -Sequence : {3} +Total Time : {3} + +Sequence : {4} """ STANDARD_MENU = { From 499c1a19fce78d509a1f41799787dbf9be32e72a Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 00:56:02 +0330 Subject: [PATCH 05/68] doc : program_description_print function docstring updated #19 --- nafas/functions.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/nafas/functions.py b/nafas/functions.py index 03c2f70..fbd9b1e 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -93,6 +93,17 @@ def description_print(): print("\n") def program_description_print(program_name, level, program_data): + """ + Print program description. + + :param program_name: program name + :type program_name: str + :param level: program level + :type level: str + :param program_data: program data + :type program_data: dict + :return: None + """ cycle = program_data["cycle"] ratio = program_data["ratio"] unit = program_data["unit"] @@ -106,6 +117,7 @@ def program_description_print(program_name, level, program_data): sequence = ",".join(sequence) total_time = (unit_time * cycle) + pre print(PROGRAM_DESCRIPTION.format(program_name,level,str(cycle),time_convert(str(total_time)),sequence)) + time.sleep(1) def input_filter(input_dict): """ From a55d0a76bb9766b8261d39f38d3f89c5b8412202 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 00:58:16 +0330 Subject: [PATCH 06/68] fix : input_dict renamed to input_data --- nafas/functions.py___jb_tmp___ | 227 +++++++++++++++++++++++++++++++++ 1 file changed, 227 insertions(+) create mode 100644 nafas/functions.py___jb_tmp___ diff --git a/nafas/functions.py___jb_tmp___ b/nafas/functions.py___jb_tmp___ new file mode 100644 index 0000000..b397781 --- /dev/null +++ b/nafas/functions.py___jb_tmp___ @@ -0,0 +1,227 @@ +# -*- coding: utf-8 -*- +"""nafas functions.""" + +import time +from nafas.params import DESCRIPTION, STANDARD_MENU, STEP_MAP, PROGRAMS, PROGRAM_DESCRIPTION + + +def line(num=70, char="#"): + """ + Print line. + + :param num: number of characters + :type num: int + :param char: character + :type char: str + :return: None + """ + print(num * char) + + +def time_convert(input_string): + """ + Convert input_string from sec to DD,HH,MM,SS format. + :param input_string: input time string in sec + :type input_string: str + :return: converted time as str + """ + sec = float(input_string) + days, sec = divmod(sec, 24 * 3600) + hours, sec = divmod(sec, 3600) + minutes, sec = divmod(sec, 60) + return ", ".join([ + "{:02.0f} days".format(days), + "{:02.0f} hour".format(hours), + "{:02.0f} minutes".format(minutes), + "{:02.0f} seconds".format(sec), + ]) + +def left_justify(words, width): + """ + Left justify words. + + :param words: list of words + :type words : list + :param width: width of each line + :type width: int + :return: left justified words as list + """ + return ' '.join(words).ljust(width) + + +def justify(words, width): + """ + Justify input words. + + :param words: list of words + :type words : list + :param width: width of each line + :type width : int + :return: list of justified words as list + """ + line = [] + col = 0 + for word in words: + if line and col + len(word) > width: + if len(line) == 1: + yield left_justify(line, width) + else: + # After n + 1 spaces are placed between each pair of + # words, there are r spaces left over; these result in + # wider spaces at the left. + n, r = divmod(width - col + 1, len(line) - 1) + narrow = ' ' * (n + 1) + if r == 0: + yield narrow.join(line) + else: + wide = ' ' * (n + 2) + yield wide.join(line[:r] + [narrow.join(line[r:])]) + line, col = [], 0 + line.append(word) + col += len(word) + 1 + if line: + yield left_justify(line, width) + + +def description_print(): + """ + Print description. + + :return: None + """ + print("\n".join(justify(DESCRIPTION.split(), 100))) + print("\n") + +def program_description_print(program_name, level, program_data): + """ + Print program description. + + :param program_name: program name + :type program_name: str + :param level: program level + :type level: str + :param program_data: program data + :type program_data: dict + :return: None + """ + cycle = program_data["cycle"] + ratio = program_data["ratio"] + unit = program_data["unit"] + pre = program_data["pre"] + unit_time = 0 + sequence = [] + for index,item in enumerate(ratio): + unit_time += item * unit + if item!=0: + sequence.append(STEP_MAP[index]) + sequence = ",".join(sequence) + total_time = (unit_time * cycle) + pre + print(PROGRAM_DESCRIPTION.format(program_name,level,str(cycle),time_convert(str(total_time)),sequence)) + time.sleep(1) + +def input_filter(input_data): + """ + Filter input data. + + :param input_data: input data + :type input_data: dict + :return: filtered data as dict + """ + filtered_dict = input_data.copy() + if filtered_dict["program"] not in STANDARD_MENU["program"].keys(): + filtered_dict["program"] = 1 + if filtered_dict["level"] not in STANDARD_MENU["level"].keys(): + filtered_dict["level"] = 1 + return filtered_dict + + +def get_input_standard(input_func=input): + """ + Get inputs from user. + + :param input_func : input function + :type input_func : function object + :return: input data as dict + """ + input_data = {"program": 1, "level": 1} + for item in sorted(STANDARD_MENU.keys()): + exit_flag = False + sorted_list = sorted(list(STANDARD_MENU[item].keys())) + print("- Please choose a {0} : ".format(item)) + for i in sorted_list: + print(str(i) + "- " + STANDARD_MENU[item][i]) + while not exit_flag: + try: + input_data[item] = int(input_func("")) + exit_flag = True + except Exception: + print("[Error] Bad Input!") + return input_data + + +def get_program_data(input_data): + """ + Get program data. + + :param input_data: input data + :type input_data: dict + :return: program name, level and program data as tuple + """ + program_name = STANDARD_MENU["program"][input_data["program"]] + level = STANDARD_MENU["level"][input_data["level"]] + return program_name,level,PROGRAMS[program_name][level] + + +def graphic_counter(delay_time): + """ + Print dots during cycles. + + :param delay_time: delay time + :type delay_time: float + :return: None + """ + for _ in range(int(delay_time)): + time.sleep(1) + print('.', end=' ', flush=True) + remain_time = delay_time - int(delay_time) + time.sleep(remain_time) + if remain_time != 0: + print('.', end=' ', flush=True) + print() + + +def run(program_dict): + """ + Run program. + + :param program_dict: program data + :type program_dict: dict + :return: None + """ + cycle = program_dict["cycle"] + ratio = program_dict["ratio"] + unit = program_dict["unit"] + pre = program_dict["pre"] + print("Preparing ", end="") + graphic_counter(pre) + line() + time.sleep(unit / 2) + print("Start") + time.sleep(unit / 2) + line() + time.sleep(unit / 2) + for i in range(cycle): + print("Cycle : " + str(i + 1)) + time.sleep(unit / 2) + for index, item in enumerate(ratio): + if item != 0: + print( + "- " + + STEP_MAP[index] + + " for {0} sec".format( + unit * + item)) + graphic_counter(item * unit) + time.sleep(1) + line() + print("End!") From a78ed97b0d1072bb8f71d5fca168f485d98ef6c9 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 00:59:56 +0330 Subject: [PATCH 07/68] fix : minor edits in names --- nafas/functions.py | 48 +++---- nafas/functions.py___jb_tmp___ | 227 --------------------------------- 2 files changed, 24 insertions(+), 251 deletions(-) delete mode 100644 nafas/functions.py___jb_tmp___ diff --git a/nafas/functions.py b/nafas/functions.py index fbd9b1e..7164857 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -119,20 +119,20 @@ def program_description_print(program_name, level, program_data): print(PROGRAM_DESCRIPTION.format(program_name,level,str(cycle),time_convert(str(total_time)),sequence)) time.sleep(1) -def input_filter(input_dict): +def input_filter(input_data): """ Filter input data. - :param input_dict: input data - :type input_dict: dict + :param input_data: input data + :type input_data: dict :return: filtered data as dict """ - filtered_dict = input_dict.copy() - if filtered_dict["program"] not in STANDARD_MENU["program"].keys(): - filtered_dict["program"] = 1 - if filtered_dict["level"] not in STANDARD_MENU["level"].keys(): - filtered_dict["level"] = 1 - return filtered_dict + filtered_data = input_data.copy() + if filtered_data["program"] not in STANDARD_MENU["program"].keys(): + filtered_data["program"] = 1 + if filtered_data["level"] not in STANDARD_MENU["level"].keys(): + filtered_data["level"] = 1 + return filtered_data def get_input_standard(input_func=input): @@ -143,7 +143,7 @@ def get_input_standard(input_func=input): :type input_func : function object :return: input data as dict """ - input_dict = {"program": 1, "level": 1} + input_data = {"program": 1, "level": 1} for item in sorted(STANDARD_MENU.keys()): exit_flag = False sorted_list = sorted(list(STANDARD_MENU[item].keys())) @@ -152,23 +152,23 @@ def get_input_standard(input_func=input): print(str(i) + "- " + STANDARD_MENU[item][i]) while not exit_flag: try: - input_dict[item] = int(input_func("")) + input_data[item] = int(input_func("")) exit_flag = True except Exception: print("[Error] Bad Input!") - return input_dict + return input_data -def get_program_data(input_dict): +def get_program_data(input_data): """ Get program data. - :param input_dict: input data - :type input_dict: dict + :param input_data: input data + :type input_data: dict :return: program name, level and program data as tuple """ - program_name = STANDARD_MENU["program"][input_dict["program"]] - level = STANDARD_MENU["level"][input_dict["level"]] + program_name = STANDARD_MENU["program"][input_data["program"]] + level = STANDARD_MENU["level"][input_data["level"]] return program_name,level,PROGRAMS[program_name][level] @@ -190,18 +190,18 @@ def graphic_counter(delay_time): print() -def run(program_dict): +def run(program_data): """ Run program. - :param program_dict: program data - :type program_dict: dict + :param program_data: program data + :type program_data: dict :return: None """ - cycle = program_dict["cycle"] - ratio = program_dict["ratio"] - unit = program_dict["unit"] - pre = program_dict["pre"] + cycle = program_data["cycle"] + ratio = program_data["ratio"] + unit = program_data["unit"] + pre = program_data["pre"] print("Preparing ", end="") graphic_counter(pre) line() diff --git a/nafas/functions.py___jb_tmp___ b/nafas/functions.py___jb_tmp___ deleted file mode 100644 index b397781..0000000 --- a/nafas/functions.py___jb_tmp___ +++ /dev/null @@ -1,227 +0,0 @@ -# -*- coding: utf-8 -*- -"""nafas functions.""" - -import time -from nafas.params import DESCRIPTION, STANDARD_MENU, STEP_MAP, PROGRAMS, PROGRAM_DESCRIPTION - - -def line(num=70, char="#"): - """ - Print line. - - :param num: number of characters - :type num: int - :param char: character - :type char: str - :return: None - """ - print(num * char) - - -def time_convert(input_string): - """ - Convert input_string from sec to DD,HH,MM,SS format. - :param input_string: input time string in sec - :type input_string: str - :return: converted time as str - """ - sec = float(input_string) - days, sec = divmod(sec, 24 * 3600) - hours, sec = divmod(sec, 3600) - minutes, sec = divmod(sec, 60) - return ", ".join([ - "{:02.0f} days".format(days), - "{:02.0f} hour".format(hours), - "{:02.0f} minutes".format(minutes), - "{:02.0f} seconds".format(sec), - ]) - -def left_justify(words, width): - """ - Left justify words. - - :param words: list of words - :type words : list - :param width: width of each line - :type width: int - :return: left justified words as list - """ - return ' '.join(words).ljust(width) - - -def justify(words, width): - """ - Justify input words. - - :param words: list of words - :type words : list - :param width: width of each line - :type width : int - :return: list of justified words as list - """ - line = [] - col = 0 - for word in words: - if line and col + len(word) > width: - if len(line) == 1: - yield left_justify(line, width) - else: - # After n + 1 spaces are placed between each pair of - # words, there are r spaces left over; these result in - # wider spaces at the left. - n, r = divmod(width - col + 1, len(line) - 1) - narrow = ' ' * (n + 1) - if r == 0: - yield narrow.join(line) - else: - wide = ' ' * (n + 2) - yield wide.join(line[:r] + [narrow.join(line[r:])]) - line, col = [], 0 - line.append(word) - col += len(word) + 1 - if line: - yield left_justify(line, width) - - -def description_print(): - """ - Print description. - - :return: None - """ - print("\n".join(justify(DESCRIPTION.split(), 100))) - print("\n") - -def program_description_print(program_name, level, program_data): - """ - Print program description. - - :param program_name: program name - :type program_name: str - :param level: program level - :type level: str - :param program_data: program data - :type program_data: dict - :return: None - """ - cycle = program_data["cycle"] - ratio = program_data["ratio"] - unit = program_data["unit"] - pre = program_data["pre"] - unit_time = 0 - sequence = [] - for index,item in enumerate(ratio): - unit_time += item * unit - if item!=0: - sequence.append(STEP_MAP[index]) - sequence = ",".join(sequence) - total_time = (unit_time * cycle) + pre - print(PROGRAM_DESCRIPTION.format(program_name,level,str(cycle),time_convert(str(total_time)),sequence)) - time.sleep(1) - -def input_filter(input_data): - """ - Filter input data. - - :param input_data: input data - :type input_data: dict - :return: filtered data as dict - """ - filtered_dict = input_data.copy() - if filtered_dict["program"] not in STANDARD_MENU["program"].keys(): - filtered_dict["program"] = 1 - if filtered_dict["level"] not in STANDARD_MENU["level"].keys(): - filtered_dict["level"] = 1 - return filtered_dict - - -def get_input_standard(input_func=input): - """ - Get inputs from user. - - :param input_func : input function - :type input_func : function object - :return: input data as dict - """ - input_data = {"program": 1, "level": 1} - for item in sorted(STANDARD_MENU.keys()): - exit_flag = False - sorted_list = sorted(list(STANDARD_MENU[item].keys())) - print("- Please choose a {0} : ".format(item)) - for i in sorted_list: - print(str(i) + "- " + STANDARD_MENU[item][i]) - while not exit_flag: - try: - input_data[item] = int(input_func("")) - exit_flag = True - except Exception: - print("[Error] Bad Input!") - return input_data - - -def get_program_data(input_data): - """ - Get program data. - - :param input_data: input data - :type input_data: dict - :return: program name, level and program data as tuple - """ - program_name = STANDARD_MENU["program"][input_data["program"]] - level = STANDARD_MENU["level"][input_data["level"]] - return program_name,level,PROGRAMS[program_name][level] - - -def graphic_counter(delay_time): - """ - Print dots during cycles. - - :param delay_time: delay time - :type delay_time: float - :return: None - """ - for _ in range(int(delay_time)): - time.sleep(1) - print('.', end=' ', flush=True) - remain_time = delay_time - int(delay_time) - time.sleep(remain_time) - if remain_time != 0: - print('.', end=' ', flush=True) - print() - - -def run(program_dict): - """ - Run program. - - :param program_dict: program data - :type program_dict: dict - :return: None - """ - cycle = program_dict["cycle"] - ratio = program_dict["ratio"] - unit = program_dict["unit"] - pre = program_dict["pre"] - print("Preparing ", end="") - graphic_counter(pre) - line() - time.sleep(unit / 2) - print("Start") - time.sleep(unit / 2) - line() - time.sleep(unit / 2) - for i in range(cycle): - print("Cycle : " + str(i + 1)) - time.sleep(unit / 2) - for index, item in enumerate(ratio): - if item != 0: - print( - "- " + - STEP_MAP[index] + - " for {0} sec".format( - unit * - item)) - graphic_counter(item * unit) - time.sleep(1) - line() - print("End!") From 3914c871342d7e921599fc5cd89def27cabe41d5 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 01:01:15 +0330 Subject: [PATCH 08/68] fix : minor edit in time_convert function #19 --- nafas/functions.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/nafas/functions.py b/nafas/functions.py index 7164857..d53ae67 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -26,12 +26,10 @@ def time_convert(input_string): :return: converted time as str """ sec = float(input_string) - days, sec = divmod(sec, 24 * 3600) - hours, sec = divmod(sec, 3600) + _days, sec = divmod(sec, 24 * 3600) + _hours, sec = divmod(sec, 3600) minutes, sec = divmod(sec, 60) return ", ".join([ - "{:02.0f} days".format(days), - "{:02.0f} hour".format(hours), "{:02.0f} minutes".format(minutes), "{:02.0f} seconds".format(sec), ]) From f2a2e0572bccfa7b56edb0267320900b09e415bc Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 01:02:29 +0330 Subject: [PATCH 09/68] fix : minor edit in time_convert function #19 --- nafas/functions.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nafas/functions.py b/nafas/functions.py index d53ae67..8c8971c 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -18,14 +18,14 @@ def line(num=70, char="#"): print(num * char) -def time_convert(input_string): +def time_convert(input_time): """ - Convert input_string from sec to DD,HH,MM,SS format. - :param input_string: input time string in sec - :type input_string: str + Convert input time from sec to DD,HH,MM,SS format. + :param input_time: input time in sec + :type input_time: float :return: converted time as str """ - sec = float(input_string) + sec = float(input_time) _days, sec = divmod(sec, 24 * 3600) _hours, sec = divmod(sec, 3600) minutes, sec = divmod(sec, 60) @@ -114,7 +114,7 @@ def program_description_print(program_name, level, program_data): sequence.append(STEP_MAP[index]) sequence = ",".join(sequence) total_time = (unit_time * cycle) + pre - print(PROGRAM_DESCRIPTION.format(program_name,level,str(cycle),time_convert(str(total_time)),sequence)) + print(PROGRAM_DESCRIPTION.format(program_name,level,str(cycle),time_convert(total_time),sequence)) time.sleep(1) def input_filter(input_data): From ff99c22414a2dd2220590ee2f4b10ab9281c2655 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 01:06:02 +0330 Subject: [PATCH 10/68] fix : minor edit in template #19 --- nafas/functions.py | 4 +++- nafas/params.py | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nafas/functions.py b/nafas/functions.py index 8c8971c..e727f44 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -112,9 +112,11 @@ def program_description_print(program_name, level, program_data): unit_time += item * unit if item!=0: sequence.append(STEP_MAP[index]) - sequence = ",".join(sequence) + sequence = ", ".join(sequence) total_time = (unit_time * cycle) + pre + line() print(PROGRAM_DESCRIPTION.format(program_name,level,str(cycle),time_convert(total_time),sequence)) + line() time.sleep(1) def input_filter(input_data): diff --git a/nafas/params.py b/nafas/params.py index 2dc1273..f162a7e 100644 --- a/nafas/params.py +++ b/nafas/params.py @@ -10,8 +10,9 @@ NAFAS_VERSION = "0.1" -PROGRAM_DESCRIPTION = """ -Program Name : {0} +PROGRAM_DESCRIPTION = """Program Details : + +Name : {0} Level : {1} From 6373ad69ddcb01a53b84bcbc9679853973027920 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 01:08:48 +0330 Subject: [PATCH 11/68] fix : tests updated #19 --- test/test.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/test.py b/test/test.py index d7c33d3..b588fd7 100644 --- a/test/test.py +++ b/test/test.py @@ -47,6 +47,21 @@ True >>> program_data["unit"] == 3 True +>>> program_description_print("Clear Mind","Beginner",{"ratio": [1, 0, 3, 0], "unit": 3, "pre": 3, "cycle": 35}) +###################################################################### +Program Details : + +Name : Clear Mind + +Level : Beginner + +Number of Cycles : 35 + +Total Time : 07 minutes, 03 seconds + +Sequence : Inhale, Exhale + +###################################################################### >>> run({'cycle': 2, 'pre': 3, 'unit': 1, 'ratio': [1, 0, 3, 0]}) Preparing . . . ###################################################################### From 39a7f2a15bb16cb6b7ac25d558103fa13f28d2d2 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 01:09:06 +0330 Subject: [PATCH 12/68] fix : autopep8 #19 --- nafas/functions.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/nafas/functions.py b/nafas/functions.py index e727f44..92acedd 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -34,6 +34,7 @@ def time_convert(input_time): "{:02.0f} seconds".format(sec), ]) + def left_justify(words, width): """ Left justify words. @@ -90,6 +91,7 @@ def description_print(): print("\n".join(justify(DESCRIPTION.split(), 100))) print("\n") + def program_description_print(program_name, level, program_data): """ Print program description. @@ -108,17 +110,24 @@ def program_description_print(program_name, level, program_data): pre = program_data["pre"] unit_time = 0 sequence = [] - for index,item in enumerate(ratio): + for index, item in enumerate(ratio): unit_time += item * unit - if item!=0: + if item != 0: sequence.append(STEP_MAP[index]) sequence = ", ".join(sequence) total_time = (unit_time * cycle) + pre line() - print(PROGRAM_DESCRIPTION.format(program_name,level,str(cycle),time_convert(total_time),sequence)) + print( + PROGRAM_DESCRIPTION.format( + program_name, + level, + str(cycle), + time_convert(total_time), + sequence)) line() time.sleep(1) + def input_filter(input_data): """ Filter input data. @@ -169,7 +178,7 @@ def get_program_data(input_data): """ program_name = STANDARD_MENU["program"][input_data["program"]] level = STANDARD_MENU["level"][input_data["level"]] - return program_name,level,PROGRAMS[program_name][level] + return program_name, level, PROGRAMS[program_name][level] def graphic_counter(delay_time): From 1fd1691a033e759bd3eeb6ced53f87d523918a62 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 01:13:43 +0330 Subject: [PATCH 13/68] doc : CHANGELOG updated #19 --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85b703e..0ffb1af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,14 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Added +- `program_description_print` function +- `time_convert` function +### Changed +- Menu optimized +- `get_program_dict` function renamed to `get_program_data` +- `program_dict` parameter renamed to `program_data` +- `input_dict` parameter renamed to `input_data` ## [0.1] - 2020-10-30 ### Added - Clear Mind program From 9e665a13391d49e22a6f00109ba4602a9e09f8c0 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 02:34:28 +0330 Subject: [PATCH 14/68] fix : tests updated #19 --- test/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test.py b/test/test.py index b588fd7..8a279d7 100644 --- a/test/test.py +++ b/test/test.py @@ -42,7 +42,7 @@ True >>> input_data["level"] == 1 True ->>> program_data = get_program_dict({"program":1,"level":1}) +>>> program_data = get_program_data({"program":1,"level":1}) >>> program_data["pre"] == 3 True >>> program_data["unit"] == 3 From e75eb92e481cf9dec32224b80394da890fb79cf5 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 02:37:04 +0330 Subject: [PATCH 15/68] fix : tests updated #19 --- test/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test.py b/test/test.py index 8a279d7..e73265d 100644 --- a/test/test.py +++ b/test/test.py @@ -42,7 +42,7 @@ True >>> input_data["level"] == 1 True ->>> program_data = get_program_data({"program":1,"level":1}) +>>> program_name,level,program_data = get_program_data({"program":1,"level":1}) >>> program_data["pre"] == 3 True >>> program_data["unit"] == 3 From 6ef4cd3c569d9c3ee677120d91185abb8b9c19f5 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 02:44:47 +0330 Subject: [PATCH 16/68] doc : time_convert function docstring updated #19 --- nafas/functions.py | 1 + 1 file changed, 1 insertion(+) diff --git a/nafas/functions.py b/nafas/functions.py index 92acedd..6c4c43c 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -21,6 +21,7 @@ def line(num=70, char="#"): def time_convert(input_time): """ Convert input time from sec to DD,HH,MM,SS format. + :param input_time: input time in sec :type input_time: float :return: converted time as str From 2bbb38fd0d679be3457572edb142650d509f7ebb Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 15:36:56 +0330 Subject: [PATCH 17/68] doc : minor edit in README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c8b78e1..b210738 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,7 @@ Breathing gymnastics is a system of breathing exercises that focuses on the trea Nafas is a collection of breathing gymnastics designed to reduce the exhaustion of long working hours. With multiple breathing patterns, Nafas helps you find your way to a detoxified energetic workday and also improves your concentration by increasing the oxygen level. No need to walk away to take a break, just sit comfortably, run Nafas and let the journey begin. +In Persian, **Nafas** means breath. From 0e67a30fa1675aef6b09a4b7a470a34b18a7a783 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 16:06:56 +0330 Subject: [PATCH 18/68] doc : CHANGELOG updated --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ffb1af..65fbe73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - `get_program_dict` function renamed to `get_program_data` - `program_dict` parameter renamed to `program_data` - `input_dict` parameter renamed to `input_data` +- `README.md` updated ## [0.1] - 2020-10-30 ### Added - Clear Mind program From bd88045dc47749bde13b47a19fef9d662330542a Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 31 Oct 2020 20:19:57 +0330 Subject: [PATCH 19/68] doc : minor edit in time_convert function docstring #19 --- nafas/functions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nafas/functions.py b/nafas/functions.py index 6c4c43c..3603d1c 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -20,7 +20,7 @@ def line(num=70, char="#"): def time_convert(input_time): """ - Convert input time from sec to DD,HH,MM,SS format. + Convert input time from sec to MM,SS format. :param input_time: input time in sec :type input_time: float From 847ad440c3cfe8d45e30bfb6aa14181c4750cb55 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sun, 1 Nov 2020 00:38:11 +0330 Subject: [PATCH 20/68] fix : tests trailing whitespace fixed --- test/test.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/test/test.py b/test/test.py index e73265d..053e6c8 100644 --- a/test/test.py +++ b/test/test.py @@ -63,21 +63,21 @@ ###################################################################### >>> run({'cycle': 2, 'pre': 3, 'unit': 1, 'ratio': [1, 0, 3, 0]}) -Preparing . . . +Preparing . . . ###################################################################### Start ###################################################################### Cycle : 1 - Inhale for 1 sec -. +. - Exhale for 3 sec -. . . +. . . ###################################################################### Cycle : 2 - Inhale for 1 sec -. +. - Exhale for 3 sec -. . . +. . . ###################################################################### End! >>> run({'cycle': 2, 'pre': 3, 'unit': 1, 'ratio': [1, 0, 3.3, 0]}) @@ -87,15 +87,15 @@ ###################################################################### Cycle : 1 - Inhale for 1 sec -. +. - Exhale for 3.3 sec -. . . . +. . . . ###################################################################### Cycle : 2 - Inhale for 1 sec -. +. - Exhale for 3.3 sec -. . . . +. . . . ###################################################################### End! From 5e27c8661d5ebbd5b94e0c3a74a3936d8fde27e0 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sun, 1 Nov 2020 00:42:15 +0330 Subject: [PATCH 21/68] fix : functions.py trailing whitespace fixed --- nafas/functions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nafas/functions.py b/nafas/functions.py index 3603d1c..a08c1cf 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -21,7 +21,7 @@ def line(num=70, char="#"): def time_convert(input_time): """ Convert input time from sec to MM,SS format. - + :param input_time: input time in sec :type input_time: float :return: converted time as str From f8884b665b39612cad644ab8ce0ae8f9d2e26a4b Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sun, 1 Nov 2020 22:05:21 +0330 Subject: [PATCH 22/68] doc : minor edit in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b210738..44d66d8 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Breathing gymnastics is a system of breathing exercises that focuses on the trea Nafas is a collection of breathing gymnastics designed to reduce the exhaustion of long working hours. With multiple breathing patterns, Nafas helps you find your way to a detoxified energetic workday and also improves your concentration by increasing the oxygen level. No need to walk away to take a break, just sit comfortably, run Nafas and let the journey begin. -In Persian, **Nafas** means breath. +**Nafas** means breath in Persian.
From 49e5bdd93766a7f25672e2b7610cf1ae783fc7a7 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Tue, 3 Nov 2020 11:50:49 +0330 Subject: [PATCH 23/68] add : new sounds added. --- nafas/sounds/exhale.wav | Bin 0 -> 39816 bytes nafas/sounds/inhale.wav | Bin 0 -> 51400 bytes nafas/sounds/retain.wav | Bin 0 -> 26022 bytes nafas/sounds/sustain.wav | Bin 0 -> 31818 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 nafas/sounds/exhale.wav create mode 100644 nafas/sounds/inhale.wav create mode 100644 nafas/sounds/retain.wav create mode 100644 nafas/sounds/sustain.wav diff --git a/nafas/sounds/exhale.wav b/nafas/sounds/exhale.wav new file mode 100644 index 0000000000000000000000000000000000000000..f3bfb9b3cd4a718862eb5a024f962fc24160ac70 GIT binary patch literal 39816 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 QEJtxCTY>7oRZ98)0A!`mU;qFB literal 0 HcmV?d00001 diff --git a/nafas/sounds/inhale.wav b/nafas/sounds/inhale.wav new file mode 100644 index 0000000000000000000000000000000000000000..3cf087090fcd833bd9550975589da5f0e35a6452 GIT binary patch literal 51400 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 literal 0 HcmV?d00001 diff --git a/nafas/sounds/retain.wav b/nafas/sounds/retain.wav new file mode 100644 index 0000000000000000000000000000000000000000..fdac516088ef774b9cf87e238c65e215145d92b4 GIT binary patch literal 26022 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%0A)1Q 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 JzB;QA{|9M$qpAP^ literal 0 HcmV?d00001 From 3791a0e5a72204372041a10d6b30182b3e43a71a Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Tue, 3 Nov 2020 12:15:39 +0330 Subject: [PATCH 24/68] add : SOUND_MAP added. --- nafas/params.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nafas/params.py b/nafas/params.py index f162a7e..da00f41 100644 --- a/nafas/params.py +++ b/nafas/params.py @@ -185,3 +185,11 @@ "Harmony": {"Beginner": HARMONY_BEGINNER, "Medium": HARMONY_MEDIUM, "Advanced": HARMONY_ADVANCED}} + + +SOUND_MAP = { + "Inhale": "inhale.wav", + "Exhale": "exhale.wav", + "Retain": "retain.wav", + "Sustain": "sustain.wav" +} From 683b418fba113a383f1488775d0ffc8c110a325b Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Tue, 3 Nov 2020 12:17:15 +0330 Subject: [PATCH 25/68] add : playsound requirement added. --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 9276530..bfb003f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ art>=1.8 - +playsound>=1.0.0 From 57260434e0aaf4f0da1b4ae4b77f9def41abee7e Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Tue, 3 Nov 2020 12:17:58 +0330 Subject: [PATCH 26/68] add : sound effects added. --- nafas/functions.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/nafas/functions.py b/nafas/functions.py index a08c1cf..4802580 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -2,8 +2,9 @@ """nafas functions.""" import time -from nafas.params import DESCRIPTION, STANDARD_MENU, STEP_MAP, PROGRAMS, PROGRAM_DESCRIPTION - +from nafas.params import DESCRIPTION, STANDARD_MENU, STEP_MAP, PROGRAMS, PROGRAM_DESCRIPTION, SOUND_MAP +from playsound import playsound +import os def line(num=70, char="#"): """ @@ -182,6 +183,18 @@ def get_program_data(input_data): return program_name, level, PROGRAMS[program_name][level] +def get_sound_path(sound_name): + """ + Return sound path. + + :param sound_name: .wav sound name + :type sound_name: string + :return: direct path to sound + """ + cd, _ = os.path.split(__file__) + return os.path.join(cd, "sounds", sound_name) + + def graphic_counter(delay_time): """ Print dots during cycles. @@ -225,9 +238,11 @@ def run(program_data): time.sleep(unit / 2) for index, item in enumerate(ratio): if item != 0: + item_name = STEP_MAP[index] + playsound(get_sound_path(SOUND_MAP[item_name])) print( "- " + - STEP_MAP[index] + + item_name + " for {0} sec".format( unit * item)) From f462214ab7b4eb56267ff1b580c390ee8824f059 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Tue, 3 Nov 2020 12:18:28 +0330 Subject: [PATCH 27/68] log : changes logged. (#4) --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65fbe73..7a13fda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] ### Added +- item sound effects +- `SOUND_MAP` parameter +- `inhale.wav` +- `exhale.wav` +- `sustain.wav` +- `retain.wav` +- `get_sound_path` function - `program_description_print` function - `time_convert` function ### Changed From e7473f11ac2ef7b11e369f45a45379cfe83ba483 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Tue, 3 Nov 2020 12:25:51 +0330 Subject: [PATCH 28/68] add : .wav files added to MANIFEST.in --- MANIFEST.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index 7861065..cb97552 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -3,4 +3,5 @@ include *.md include *.spec include *.txt include *.yml -include *.ini \ No newline at end of file +include *.ini +include nafas/sounds/*.wav \ No newline at end of file From 112cd9494241e50dec30d464bd5d58003b96a2da Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Tue, 3 Nov 2020 16:32:16 +0330 Subject: [PATCH 29/68] fix : minor edit in travis config --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 11766d5..df15d1c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,6 +35,7 @@ matrix: python: nightly dist: xenial install: + - export AUDIODEV=null - chmod +x .travis/install.sh - .travis/install.sh before_script: From 3ed5179a9a0880d555c09b963b754d930307cdf4 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Fri, 6 Nov 2020 13:44:48 +0330 Subject: [PATCH 30/68] remove : travis audio test removed. --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index df15d1c..11766d5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,6 @@ matrix: python: nightly dist: xenial install: - - export AUDIODEV=null - chmod +x .travis/install.sh - .travis/install.sh before_script: From d285c974cc343a15be28e0be70e1cf912ad7c54d Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Sat, 5 Dec 2020 00:45:13 +0330 Subject: [PATCH 31/68] add : sound feature added. --- nafas/functions.py | 19 +++++++++++++++++-- nafas/sounds/exhale.wav | Bin 39816 -> 28500 bytes 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/nafas/functions.py b/nafas/functions.py index 4802580..180ff0c 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -3,9 +3,11 @@ import time from nafas.params import DESCRIPTION, STANDARD_MENU, STEP_MAP, PROGRAMS, PROGRAM_DESCRIPTION, SOUND_MAP -from playsound import playsound +import playsound +import threading import os + def line(num=70, char="#"): """ Print line. @@ -213,6 +215,19 @@ def graphic_counter(delay_time): print() +def play_sound(sound_path): + """ + Play inputted sound file async + + :param sound_path: sound to path + :type sound_path: str + :return: None + """ + threading.Thread( + target=playsound.playsound, args=( + sound_path,), daemon=True).start() + + def run(program_data): """ Run program. @@ -239,7 +254,7 @@ def run(program_data): for index, item in enumerate(ratio): if item != 0: item_name = STEP_MAP[index] - playsound(get_sound_path(SOUND_MAP[item_name])) + play_sound(get_sound_path(SOUND_MAP[item_name])) print( "- " + item_name + diff --git a/nafas/sounds/exhale.wav b/nafas/sounds/exhale.wav index f3bfb9b3cd4a718862eb5a024f962fc24160ac70..079c2a636b805043ad122cd0cf065f7c24a4378a 100644 GIT binary patch literal 28500 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 lzW(zuPC0L{B&*E-cD8r#yy7{b literal 39816 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 QEJtxCTY>7oRZ98)0A!`mU;qFB From 6dfb1da4d73888ef11c46a81a72b5fdebf6047ac Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Thu, 31 Dec 2020 15:22:14 +0330 Subject: [PATCH 32/68] fix : . added to end of docstring. --- nafas/functions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nafas/functions.py b/nafas/functions.py index 180ff0c..32de83f 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -217,7 +217,7 @@ def graphic_counter(delay_time): def play_sound(sound_path): """ - Play inputted sound file async + Play inputted sound file async. :param sound_path: sound to path :type sound_path: str From e2cf451e523c3b240213af714d2d0a128803f802 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Thu, 31 Dec 2020 15:27:15 +0330 Subject: [PATCH 33/68] change : inhale.wav changed. --- nafas/sounds/inhale.wav | Bin 51400 -> 46890 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/nafas/sounds/inhale.wav b/nafas/sounds/inhale.wav index 3cf087090fcd833bd9550975589da5f0e35a6452..50c2484e82efd0bfc9dd0d0120d4f49cdec008af 100644 GIT binary patch literal 46890 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 From af8c764666a8c9bb9d9f0dcd7c3c5761cf5aee17 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Thu, 31 Dec 2020 15:34:54 +0330 Subject: [PATCH 34/68] add : sound reference site added. --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 44d66d8..bce3666 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,9 @@ or send an email to [sepand@pyrgg.ir](mailto:sepand@pyrgg.ir "sepand@pyrgg.ir").
7- Martarelli, Daniele, Mario Cocchioni, Stefania Scuri, and Pierluigi Pompei. "Diaphragmatic breathing reduces exercise-induced oxidative stress." Evidence-Based Complementary and Alternative Medicine 2011 (2011).
- +
+ + ## Donate to our project From e16653f8a414b9f6982a4d9f4b2c69b53a37ca66 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Fri, 8 Jan 2021 19:43:40 +0330 Subject: [PATCH 35/68] fix : play_sound error handled. --- nafas/functions.py | 7 +++++-- nafas/params.py | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/nafas/functions.py b/nafas/functions.py index 32de83f..93b5fd8 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -2,7 +2,7 @@ """nafas functions.""" import time -from nafas.params import DESCRIPTION, STANDARD_MENU, STEP_MAP, PROGRAMS, PROGRAM_DESCRIPTION, SOUND_MAP +from nafas.params import DESCRIPTION, STANDARD_MENU, STEP_MAP, PROGRAMS, PROGRAM_DESCRIPTION, SOUND_MAP, SOUND_ERROR_MESSAGE import playsound import threading import os @@ -254,7 +254,10 @@ def run(program_data): for index, item in enumerate(ratio): if item != 0: item_name = STEP_MAP[index] - play_sound(get_sound_path(SOUND_MAP[item_name])) + try: + play_sound(get_sound_path(SOUND_MAP[item_name])) + except: + print(SOUND_ERROR_MESSAGE) print( "- " + item_name + diff --git a/nafas/params.py b/nafas/params.py index da00f41..c06771d 100644 --- a/nafas/params.py +++ b/nafas/params.py @@ -10,6 +10,8 @@ NAFAS_VERSION = "0.1" +SOUND_ERROR_MESSAGE = "[ERROR] Playing sound is not possible now." + PROGRAM_DESCRIPTION = """Program Details : Name : {0} From 4df7ae17639c762fe7d14e062e66928f18140541 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Sat, 9 Jan 2021 23:46:38 +0330 Subject: [PATCH 36/68] fix : code factor issue resolved. --- nafas/functions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nafas/functions.py b/nafas/functions.py index 93b5fd8..f9c3bf6 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -256,8 +256,8 @@ def run(program_data): item_name = STEP_MAP[index] try: play_sound(get_sound_path(SOUND_MAP[item_name])) - except: - print(SOUND_ERROR_MESSAGE) + except Exception: + pass print( "- " + item_name + From e4fdc2804e7678ccac8fda0b412d369990da0cc9 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Tue, 12 Jan 2021 17:13:16 +0330 Subject: [PATCH 37/68] remove : SOUND_ERROR_MESSAGE removed. --- nafas/functions.py | 2 +- nafas/params.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/nafas/functions.py b/nafas/functions.py index f9c3bf6..0374d26 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -2,7 +2,7 @@ """nafas functions.""" import time -from nafas.params import DESCRIPTION, STANDARD_MENU, STEP_MAP, PROGRAMS, PROGRAM_DESCRIPTION, SOUND_MAP, SOUND_ERROR_MESSAGE +from nafas.params import DESCRIPTION, STANDARD_MENU, STEP_MAP, PROGRAMS, PROGRAM_DESCRIPTION, SOUND_MAP import playsound import threading import os diff --git a/nafas/params.py b/nafas/params.py index c06771d..be665e3 100644 --- a/nafas/params.py +++ b/nafas/params.py @@ -10,7 +10,6 @@ NAFAS_VERSION = "0.1" -SOUND_ERROR_MESSAGE = "[ERROR] Playing sound is not possible now." PROGRAM_DESCRIPTION = """Program Details : From 1636ef5a104cee11209bd2e35061292b5a69001d Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Tue, 12 Jan 2021 17:17:39 +0330 Subject: [PATCH 38/68] fix : codefactor issue fixed. --- nafas/functions.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/nafas/functions.py b/nafas/functions.py index 0374d26..f0bca86 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -215,17 +215,23 @@ def graphic_counter(delay_time): print() -def play_sound(sound_path): +def play_sound(sound_path, debug=False): """ Play inputted sound file async. :param sound_path: sound to path :type sound_path: str + :param debug: debug mode flag + :type debug: bool :return: None """ - threading.Thread( - target=playsound.playsound, args=( - sound_path,), daemon=True).start() + try: + threading.Thread( + target=playsound.playsound, args=( + sound_path,), daemon=True).start() + except Exception as e: + if debug: + print(str(e)) def run(program_data): @@ -253,11 +259,7 @@ def run(program_data): time.sleep(unit / 2) for index, item in enumerate(ratio): if item != 0: - item_name = STEP_MAP[index] - try: - play_sound(get_sound_path(SOUND_MAP[item_name])) - except Exception: - pass + play_sound(get_sound_path(SOUND_MAP[item_name])) print( "- " + item_name + From 6ff40e2a3332264bcb428199af675528812f97b0 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Tue, 12 Jan 2021 19:35:00 +0330 Subject: [PATCH 39/68] fix : minor issue fixed. --- nafas/functions.py | 1 + 1 file changed, 1 insertion(+) diff --git a/nafas/functions.py b/nafas/functions.py index f0bca86..92de7ad 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -259,6 +259,7 @@ def run(program_data): time.sleep(unit / 2) for index, item in enumerate(ratio): if item != 0: + item_name = STEP_MAP[index] play_sound(get_sound_path(SOUND_MAP[item_name])) print( "- " + From 1eb3f6bdfab15f797a01f9ec170d911c958e5329 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Mon, 18 Jan 2021 08:41:04 +0330 Subject: [PATCH 40/68] add : async sound play function added. --- nafas/functions.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/nafas/functions.py b/nafas/functions.py index 92de7ad..13ac0fa 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -215,9 +215,9 @@ def graphic_counter(delay_time): print() -def play_sound(sound_path, debug=False): +def _playsound_async(sound_path, debug): """ - Play inputted sound file async. + Play sound asynchronous in a thread. :param sound_path: sound to path :type sound_path: str @@ -226,14 +226,28 @@ def play_sound(sound_path, debug=False): :return: None """ try: - threading.Thread( - target=playsound.playsound, args=( - sound_path,), daemon=True).start() + playsound.playsound(sound_path) except Exception as e: if debug: print(str(e)) +def play_sound(sound_path, debug=False): + """ + Play inputted sound file async. + + :param sound_path: sound to path + :type sound_path: str + :param debug: debug mode flag + :type debug: bool + :return: None + """ + new_thread = threading.Thread( + target=_playsound_async, args=( + sound_path, debug,), daemon=True) + new_thread.start() + + def run(program_data): """ Run program. From 98e45e535b00da1d32b4f97ca6ac63e3a29a5f03 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Mon, 18 Jan 2021 08:42:29 +0330 Subject: [PATCH 41/68] log : changes logged --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a13fda..6379a14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] ### Added +- `_playsound_async` function +- `play_sound` function - item sound effects - `SOUND_MAP` parameter - `inhale.wav` From 78573dc9697993cbba49d2b34e080a408e2d9ea9 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Mon, 18 Jan 2021 08:44:24 +0330 Subject: [PATCH 42/68] test : new tests added. --- test/test.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/test.py b/test/test.py index 053e6c8..d19823c 100644 --- a/test/test.py +++ b/test/test.py @@ -98,5 +98,8 @@ . . . . ###################################################################### End! +>>> play_sound('1', debug=False) +>>> play_sound('1', debug=True) +>>> playbin.set_state returned """ From be37bdb54352de17e0d4c3c544576f2f58b8ce69 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Mon, 18 Jan 2021 17:18:40 +0330 Subject: [PATCH 43/68] change : thread now returns and be joined in main loop. --- nafas/functions.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nafas/functions.py b/nafas/functions.py index 13ac0fa..c6c2a2a 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -246,6 +246,7 @@ def play_sound(sound_path, debug=False): target=_playsound_async, args=( sound_path, debug,), daemon=True) new_thread.start() + return new_thread def run(program_data): @@ -274,7 +275,7 @@ def run(program_data): for index, item in enumerate(ratio): if item != 0: item_name = STEP_MAP[index] - play_sound(get_sound_path(SOUND_MAP[item_name])) + sound_thread = play_sound(get_sound_path(SOUND_MAP[item_name])) print( "- " + item_name + @@ -282,6 +283,7 @@ def run(program_data): unit * item)) graphic_counter(item * unit) + sound_thread.join() time.sleep(1) line() print("End!") From fda5de66e2972de2a5a0bd3eb75893b00dd2cd8b Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Mon, 18 Jan 2021 17:18:56 +0330 Subject: [PATCH 44/68] test : tests fixed. --- test/test.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/test.py b/test/test.py index d19823c..bd9577e 100644 --- a/test/test.py +++ b/test/test.py @@ -98,8 +98,8 @@ . . . . ###################################################################### End! ->>> play_sound('1', debug=False) ->>> play_sound('1', debug=True) ->>> playbin.set_state returned +>>> play_sound(1, debug=False).join() +>>> play_sound(1, debug=True).join() +'int' object has no attribute 'startswith' """ From 35d6aadfc5833d92116d141d5324372616b410a1 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Mon, 18 Jan 2021 23:31:29 +0330 Subject: [PATCH 45/68] add : >>> play_sound(1, debug=True).join() --- nafas/functions.py | 4 ++-- nafas/params.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/nafas/functions.py b/nafas/functions.py index c6c2a2a..a677693 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -2,7 +2,7 @@ """nafas functions.""" import time -from nafas.params import DESCRIPTION, STANDARD_MENU, STEP_MAP, PROGRAMS, PROGRAM_DESCRIPTION, SOUND_MAP +from nafas.params import DESCRIPTION, STANDARD_MENU, STEP_MAP, PROGRAMS, PROGRAM_DESCRIPTION, SOUND_MAP, SOUND_ERROR_MESSAGE import playsound import threading import os @@ -229,7 +229,7 @@ def _playsound_async(sound_path, debug): playsound.playsound(sound_path) except Exception as e: if debug: - print(str(e)) + print(SOUND_ERROR_MESSAGE) def play_sound(sound_path, debug=False): diff --git a/nafas/params.py b/nafas/params.py index be665e3..7688f06 100644 --- a/nafas/params.py +++ b/nafas/params.py @@ -10,6 +10,7 @@ NAFAS_VERSION = "0.1" +SOUND_ERROR_MESSAGE = "ERROR : Unable to play sound." PROGRAM_DESCRIPTION = """Program Details : From b0360a967f6c71b20da633a5a46c80a4f98abd0a Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Mon, 18 Jan 2021 23:32:12 +0330 Subject: [PATCH 46/68] log : changes logged. --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6379a14..bda60e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] ### Added +- `SOUND_ERROR_MESSAGE` parameter - `_playsound_async` function - `play_sound` function - item sound effects From 833e0c0838c3e49454721644ec44d89bc91e3b0e Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Mon, 18 Jan 2021 23:32:29 +0330 Subject: [PATCH 47/68] test : tests added. --- test/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test.py b/test/test.py index bd9577e..8d6ecfd 100644 --- a/test/test.py +++ b/test/test.py @@ -100,6 +100,6 @@ End! >>> play_sound(1, debug=False).join() >>> play_sound(1, debug=True).join() -'int' object has no attribute 'startswith' +ERROR : Unable to play sound. """ From 3c808e75f046ca58498b32e6219867fdc98314d6 Mon Sep 17 00:00:00 2001 From: sadrasabouri Date: Mon, 18 Jan 2021 23:37:07 +0330 Subject: [PATCH 48/68] fix : unused e removed. --- nafas/functions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nafas/functions.py b/nafas/functions.py index a677693..084c1ad 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -227,7 +227,7 @@ def _playsound_async(sound_path, debug): """ try: playsound.playsound(sound_path) - except Exception as e: + except Exception: if debug: print(SOUND_ERROR_MESSAGE) From 20556f43a4178b3366567df97a6aa70544b5070f Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Thu, 21 Jan 2021 03:51:57 +0330 Subject: [PATCH 49/68] feat : python-package.yml added #24 --- .github/workflows/python-package.yml | 41 ++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .github/workflows/python-package.yml diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml new file mode 100644 index 0000000..a735a93 --- /dev/null +++ b/.github/workflows/python-package.yml @@ -0,0 +1,41 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: Python package + +on: [push, pull_request] + +jobs: + build: + + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macOS-latest] + python-version: [3.5, 3.6, 3.7, 3.8, 3.9] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install requirements and first test + run: | + python -m pip install --upgrade pip + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + python setup.py install + python -m nafas test + - name: Install dev-requirements + run: | + pip install --upgrade --upgrade-strategy=only-if-needed -r dev-requirements.txt + - name: Version check + run: | + python otherfiles/version_check.py + - name: Test with pytest + run: | + python -m pytest test --cov=nafas --cov-report=term + - name: Other tests + run: | + python -m vulture nafas/ setup.py --min-confidence 65 --exclude=__init__.py --sort-by-size + python -m bandit -r nafas -s B311 + python -m pydocstyle --match-dir=nafas -v \ No newline at end of file From 869dea7a537f16de33fa28e4e9542ec60e2db9e0 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Thu, 21 Jan 2021 03:56:27 +0330 Subject: [PATCH 50/68] fix : workflow updated #24 --- .github/workflows/{python-package.yml => test.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{python-package.yml => test.yml} (94%) diff --git a/.github/workflows/python-package.yml b/.github/workflows/test.yml similarity index 94% rename from .github/workflows/python-package.yml rename to .github/workflows/test.yml index a735a93..7f5e5e5 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/test.yml @@ -22,7 +22,7 @@ jobs: - name: Install requirements and first test run: | python -m pip install --upgrade pip - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + pip install -r requirements.txt python setup.py install python -m nafas test - name: Install dev-requirements From cce04827517fa045f1a672235c8803f358b85b22 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Thu, 21 Jan 2021 04:02:02 +0330 Subject: [PATCH 51/68] fix : workflow updated #24 --- .github/workflows/test.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7f5e5e5..865edea 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,7 +1,7 @@ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions -name: Python package +name: CI on: [push, pull_request] @@ -19,10 +19,13 @@ jobs: uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - - name: Install requirements and first test + - name: Install requirements run: | python -m pip install --upgrade pip pip install -r requirements.txt + python -m nafas test + - name: First test + run: | python setup.py install python -m nafas test - name: Install dev-requirements From 825091dfa2f7d30cfac3b4afb466f3d952288ed9 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Thu, 21 Jan 2021 04:02:41 +0330 Subject: [PATCH 52/68] fix : pythonpublish renamed to publish #24 --- .github/workflows/{pythonpublish.yml => publish.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{pythonpublish.yml => publish.yml} (100%) diff --git a/.github/workflows/pythonpublish.yml b/.github/workflows/publish.yml similarity index 100% rename from .github/workflows/pythonpublish.yml rename to .github/workflows/publish.yml From 6daaac0dfe730c561a7c0fe25f5ced0c4556bc61 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Thu, 21 Jan 2021 20:51:21 +0330 Subject: [PATCH 53/68] fix : workflow updated #24 --- .github/workflows/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 865edea..5bbb2ba 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,6 @@ jobs: run: | python -m pip install --upgrade pip pip install -r requirements.txt - python -m nafas test - name: First test run: | python setup.py install From 69891545a8eff2ce2a0a6d0dff4d248ff7411b0f Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Thu, 21 Jan 2021 20:52:14 +0330 Subject: [PATCH 54/68] fix : workflow updated #24 --- .github/workflows/test.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5bbb2ba..5afe3bf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,4 +40,7 @@ jobs: run: | python -m vulture nafas/ setup.py --min-confidence 65 --exclude=__init__.py --sort-by-size python -m bandit -r nafas -s B311 - python -m pydocstyle --match-dir=nafas -v \ No newline at end of file + python -m pydocstyle --match-dir=nafas -v + - name: Codecov + run: | + codecov \ No newline at end of file From bd93cde73dbb27f2201528e185f3eb34669df139 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Thu, 21 Jan 2021 20:53:01 +0330 Subject: [PATCH 55/68] fix : dev-requirements.txt updated --- dev-requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/dev-requirements.txt b/dev-requirements.txt index 4fcaff7..72fb573 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -1,4 +1,5 @@ art==4.9 +playsound==1.2.2 codecov>=2.0.15 pytest>=4.3.1 pytest-cov>=2.6.1 From 92110b3f391c7255dcb0e1f32300964275553e44 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Fri, 22 Jan 2021 02:17:10 +0330 Subject: [PATCH 56/68] del : .travis folder removed #24 --- .travis/install.sh | 24 ------------------------ .travis/test.sh | 25 ------------------------- 2 files changed, 49 deletions(-) delete mode 100644 .travis/install.sh delete mode 100644 .travis/test.sh diff --git a/.travis/install.sh b/.travis/install.sh deleted file mode 100644 index 89f741e..0000000 --- a/.travis/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - set -e - set -x - - PYTHON_COMMAND=python - PIP_COMMAND=pip - if [ "$TRAVIS_OS_NAME" == "osx" ] - then - PYTHON_COMMAND=python3 - PIP_COMMAND=pip3 - fi - - $PIP_COMMAND install -r requirements.txt - $PYTHON_COMMAND setup.py install - $PYTHON_COMMAND -m nafas test - - if [ "$TRAVIS_OS_NAME" == "osx" ] - then - $PIP_COMMAND install --upgrade --upgrade-strategy=only-if-needed -r dev-requirements.txt --user - else - $PIP_COMMAND install --upgrade --upgrade-strategy=only-if-needed -r dev-requirements.txt - fi - - diff --git a/.travis/test.sh b/.travis/test.sh deleted file mode 100644 index fe3fd85..0000000 --- a/.travis/test.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - set -e - set -x - IS_IN_TRAVIS=false - PYTHON_COMMAND=python - - if [ "$TRAVIS_OS_NAME" == "osx" ] - then - PYTHON_COMMAND=python3 - fi - $PYTHON_COMMAND -m pytest test --cov=nafas --cov-report=term - $PYTHON_COMMAND otherfiles/version_check.py - - if [ "$CI" = 'true' ] && [ "$TRAVIS" = 'true' ] - then - IS_IN_TRAVIS=true - fi - - if [ "$IS_IN_TRAVIS" = 'false' ] || [ "$TRAVIS_PYTHON_VERSION" = '3.6' ] - then - $PYTHON_COMMAND -m vulture nafas/ setup.py --min-confidence 65 --exclude=__init__.py --sort-by-size - $PYTHON_COMMAND -m bandit -r nafas -s B311 - $PYTHON_COMMAND -m pydocstyle --match-dir=nafas -v - fi - From e94f2de6256f8a45bc4458c2803bf3e14c9348ba Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Fri, 22 Jan 2021 02:17:34 +0330 Subject: [PATCH 57/68] del : travis.yml removed #24 --- .travis.yml | 45 --------------------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 11766d5..0000000 --- a/.travis.yml +++ /dev/null @@ -1,45 +0,0 @@ -language: python - -matrix: - include: - - os: linux - python: 3.8 - dist: xenial - - os: linux - python: 3.7 - dist: xenial - - os: linux - python: 3.6 - - os: linux - python: 3.5 - - os: osx - language: generic - env: TOXENV=py36 - - os: linux - python: 3.7-dev - dist: xenial - - os: linux - python: 3.8-dev - dist: xenial - - os: linux - python: 3.9-dev - dist: xenial - - os: linux - python: nightly - dist: xenial - allow_failures: - - os: linux - python: 3.9-dev - dist: xenial - - os: linux - python: nightly - dist: xenial -install: - - chmod +x .travis/install.sh - - .travis/install.sh -before_script: - - chmod +x .travis/test.sh -script: - - .travis/test.sh -after_success: - - codecov \ No newline at end of file From 2740181372f488cdee31526888565c564e6a459a Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Fri, 22 Jan 2021 02:17:52 +0330 Subject: [PATCH 58/68] del : appveyor.yml removed #24 --- appveyor.yml | 44 -------------------------------------------- 1 file changed, 44 deletions(-) delete mode 100644 appveyor.yml diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 67fcd58..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,44 +0,0 @@ -build: false - -environment: - matrix: - - - PYTHON: "C:\\Python35" - PYTHON_VERSION: "3.5.2" - PYTHON_ARCH: "32" - - PYTHON: "C:\\Python35" - PYTHON_VERSION: "3.5.2" - PYTHON_ARCH: "64" - - PYTHON: "C:\\Python37" - PYTHON_VERSION: "3.7.0" - PYTHON_ARCH: "64" - - PYTHON: "C:\\Python38" - PYTHON_VERSION: "3.8.0" - PYTHON_ARCH: "64" - - PYTHON: "C:\\Python38" - PYTHON_VERSION: "3.8.0" - PYTHON_ARCH: "32" - - PYTHON: "C:\\Python37" - PYTHON_VERSION: "3.7.0" - PYTHON_ARCH: "32" - - PYTHON: "C:\\Python36" - PYTHON_VERSION: "3.6.0" - PYTHON_ARCH: "64" - - PYTHON: "C:\\Python36" - PYTHON_VERSION: "3.6.0" - PYTHON_ARCH: "32" - - - -init: - - "ECHO %PYTHON% %PYTHON_VERSION% %PYTHON_ARCH%" - -install: - - "%PYTHON%/Scripts/pip.exe install -r requirements.txt" - - "%PYTHON%/python.exe setup.py install" - -test_script: - - "%PYTHON%/python.exe -m nafas test" - - "%PYTHON%/Scripts/pip.exe install -r dev-requirements.txt" - - "%PYTHON%/python.exe -m pytest test --cov=nafas --cov-report=term" - - "%PYTHON%/python.exe otherfiles/version_check.py" \ No newline at end of file From a6641b92e04032d03fda08213b4da7d27f5f6e33 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Fri, 22 Jan 2021 02:18:58 +0330 Subject: [PATCH 59/68] doc : CHANGELOG updated #24 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bda60e4..55c2895 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - `time_convert` function ### Changed - Menu optimized +- Test system modified - `get_program_dict` function renamed to `get_program_data` - `program_dict` parameter renamed to `program_data` - `input_dict` parameter renamed to `input_data` From b2c09c24c981d201a4edb2a3978a548bc37c4943 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Fri, 22 Jan 2021 19:47:16 +0330 Subject: [PATCH 60/68] fix : new line added to test.yml #25 --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5afe3bf..12768e2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -43,4 +43,5 @@ jobs: python -m pydocstyle --match-dir=nafas -v - name: Codecov run: | - codecov \ No newline at end of file + codecov + \ No newline at end of file From 5e4c0f44d37b4cdbafdc9200ec1f66ccc591db44 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Fri, 22 Jan 2021 19:48:33 +0330 Subject: [PATCH 61/68] fix : new line added to test.yml #25 --- .github/workflows/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 12768e2..f859a5b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -44,4 +44,3 @@ jobs: - name: Codecov run: | codecov - \ No newline at end of file From 90f15fd7272e29a05e882e17e9457e3682a21fb8 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 22 Jan 2021 19:22:24 +0000 Subject: [PATCH 62/68] Bump art from 4.9 to 5.1 Bumps [art](https://github.com/sepandhaghighi/art) from 4.9 to 5.1. - [Release notes](https://github.com/sepandhaghighi/art/releases) - [Changelog](https://github.com/sepandhaghighi/art/blob/master/CHANGELOG.md) - [Commits](https://github.com/sepandhaghighi/art/compare/v4.9...v5.1) Signed-off-by: dependabot-preview[bot] --- dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-requirements.txt b/dev-requirements.txt index 72fb573..4ffbb1b 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -1,4 +1,4 @@ -art==4.9 +art==5.1 playsound==1.2.2 codecov>=2.0.15 pytest>=4.3.1 From 64dbf58239e12dcb4b46f298cb4fa9fdc633a708 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 23 Jan 2021 15:23:34 +0330 Subject: [PATCH 63/68] doc : CI badge added to README #24 --- README.md | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index bce3666..a3242a4 100644 --- a/README.md +++ b/README.md @@ -56,14 +56,9 @@ No need to walk away to take a break, just sit comfortably, run Nafas and let th
8- Free Text-To-Speech and Text-to-MP3 for US English
- - - - - - - - + + +
dev
Travis
AppVeyorCI
From b78d5d260e68ee94367cf416541473da60a62fa4 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 23 Jan 2021 15:26:53 +0330 Subject: [PATCH 64/68] doc : docstrings updated --- nafas/functions.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nafas/functions.py b/nafas/functions.py index 084c1ad..a2d75a2 100644 --- a/nafas/functions.py +++ b/nafas/functions.py @@ -190,7 +190,7 @@ def get_sound_path(sound_name): Return sound path. :param sound_name: .wav sound name - :type sound_name: string + :type sound_name: str :return: direct path to sound """ cd, _ = os.path.split(__file__) @@ -219,7 +219,7 @@ def _playsound_async(sound_path, debug): """ Play sound asynchronous in a thread. - :param sound_path: sound to path + :param sound_path: sound path :type sound_path: str :param debug: debug mode flag :type debug: bool @@ -234,13 +234,13 @@ def _playsound_async(sound_path, debug): def play_sound(sound_path, debug=False): """ - Play inputted sound file async. + Play inputted sound file. - :param sound_path: sound to path + :param sound_path: sound path :type sound_path: str :param debug: debug mode flag :type debug: bool - :return: None + :return: new thread as threading.Thread object """ new_thread = threading.Thread( target=_playsound_async, args=( From 307f72f993bb2509b57ad15cbe3f4506a88105d0 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Sat, 23 Jan 2021 15:28:19 +0330 Subject: [PATCH 65/68] doc : CHANGELOG updated --- CHANGELOG.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 55c2895..9f8a38f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,11 +6,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] ### Added -- `SOUND_ERROR_MESSAGE` parameter - `_playsound_async` function - `play_sound` function -- item sound effects -- `SOUND_MAP` parameter - `inhale.wav` - `exhale.wav` - `sustain.wav` From 85544013877af5ba5e09a9321529600a7e682a6f Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Mon, 25 Jan 2021 15:28:02 +0330 Subject: [PATCH 66/68] rel : migrate to version 0.2 --- CHANGELOG.md | 4 +++- README.md | 8 ++++---- nafas/params.py | 2 +- otherfiles/Version.rc | 10 +++++----- otherfiles/version_check.py | 2 +- setup.py | 6 +++--- 6 files changed, 17 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f8a38f..046012a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [0.2] - 2021-01-28 ### Added - `_playsound_async` function - `play_sound` function @@ -32,7 +33,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Anti-Appetite program - Cigarette Replace program -[Unreleased]: https://github.com/sepandhaghighi/nafas/compare/v0.1...dev +[Unreleased]: https://github.com/sepandhaghighi/nafas/compare/v0.2...dev +[0.2]: https://github.com/sepandhaghighi/nafas/compare/v0.1...v0.2 [0.1]: https://github.com/sepandhaghighi/nafas/compare/c58087a...v0.1 diff --git a/README.md b/README.md index a3242a4..2c281e6 100644 --- a/README.md +++ b/README.md @@ -76,19 +76,19 @@ No need to walk away to take a break, just sit comfortably, run Nafas and let th ## Installation ### Source Code -- Download [Version 0.1](https://github.com/sepandhaghighi/nafas/archive/v0.1.zip) or [Latest Source ](https://github.com/sepandhaghighi/nafas/archive/dev.zip) +- Download [Version 0.2](https://github.com/sepandhaghighi/nafas/archive/v0.2.zip) or [Latest Source ](https://github.com/sepandhaghighi/nafas/archive/dev.zip) - `pip install -r requirements.txt` or `pip3 install -r requirements.txt` (Need root access) - `python3 setup.py install` or `python setup.py install` (Need root access) ### PyPI - Check [Python Packaging User Guide](https://packaging.python.org/installing/) -- `pip install nafas==0.1` or `pip3 install nafas==0.1` (Need root access) +- `pip install nafas==0.2` or `pip3 install nafas==0.2` (Need root access) ### Exe Version (Only Windows) -- Download [Exe-Version 0.1](https://github.com/sepandhaghighi/nafas/releases/download/v0.1/NAFAS-0.1.exe) -- Run `NAFAS-0.1.exe` +- Download [Exe-Version 0.2](https://github.com/sepandhaghighi/nafas/releases/download/v0.2/NAFAS-0.2.exe) +- Run `NAFAS-0.2.exe` ## Usage diff --git a/nafas/params.py b/nafas/params.py index 7688f06..cb54c47 100644 --- a/nafas/params.py +++ b/nafas/params.py @@ -8,7 +8,7 @@ No need to walk away to take a break, just sit comfortably, run Nafas and let the journey begin. """ -NAFAS_VERSION = "0.1" +NAFAS_VERSION = "0.2" SOUND_ERROR_MESSAGE = "ERROR : Unable to play sound." diff --git a/otherfiles/Version.rc b/otherfiles/Version.rc index 91f31fc..9432a49 100644 --- a/otherfiles/Version.rc +++ b/otherfiles/Version.rc @@ -1,7 +1,7 @@ VSVersionInfo( ffi=FixedFileInfo( - filevers=(0, 1, 0, 0), - prodvers=(0, 1, 0, 0), + filevers=(0, 2, 0, 0), + prodvers=(0, 2, 0, 0), mask=0x3f, flags=0x0, OS=0x40004, @@ -16,12 +16,12 @@ VSVersionInfo( u'040904B0', [StringStruct(u'CompanyName', u'Sepand Haghighi'), StringStruct(u'FileDescription', u'NAFAS.exe'), - StringStruct(u'FileVersion', u'0.1.0.0'), + StringStruct(u'FileVersion', u'0.2.0.0'), StringStruct(u'InternalName', u'NAFAS.exe'), - StringStruct(u'LegalCopyright', u'Copyright (c) 2020 Sepand Haghighi'), + StringStruct(u'LegalCopyright', u'Copyright (c) 2021 Sepand Haghighi'), StringStruct(u'OriginalFilename', u'NAFAS.exe'), StringStruct(u'ProductName', u'NAFAS'), - StringStruct(u'ProductVersion', u'0, 1, 0, 0')]) + StringStruct(u'ProductVersion', u'0, 2, 0, 0')]) ]), VarFileInfo([VarStruct(u'Translation', [1033, 1200])]) ] diff --git a/otherfiles/version_check.py b/otherfiles/version_check.py index 0c2f166..5eea010 100644 --- a/otherfiles/version_check.py +++ b/otherfiles/version_check.py @@ -4,7 +4,7 @@ import sys import codecs Failed = 0 -VERSION = "0.1" +VERSION = "0.2" VERSION_1 = VERSION.split(".")[0] VERSION_2 = str(int(float(VERSION) * 10 - int(VERSION_1) * 10)) diff --git a/setup.py b/setup.py index fd9d904..6f4d6a3 100644 --- a/setup.py +++ b/setup.py @@ -29,14 +29,14 @@ def read_description(): setup( name='nafas', packages=['nafas'], - version='0.1', + version='0.2', description='Breathing gymnastics application', long_description=read_description(), long_description_content_type='text/markdown', author='Sepand Haghighi', author_email='sepand@pyrgg.ir', url='https://github.com/sepandhaghighi/nafas', - download_url='https://github.com/sepandhaghighi/nafas/tarball/v0.1', + download_url='https://github.com/sepandhaghighi/nafas/tarball/v0.2', keywords="python3 python breath breathing meditation", project_urls={ 'Source': 'https://github.com/sepandhaghighi/nafas', @@ -44,7 +44,7 @@ def read_description(): install_requires=get_requires(), python_requires='>=3.5', classifiers=[ - 'Development Status :: 1 - Planning', + 'Development Status :: 3 - Alpha', 'Intended Audience :: Developers', 'Natural Language :: English', 'License :: OSI Approved :: MIT License', From 688f8a71425b241a352e98d37882bd0994c9345a Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Thu, 28 Jan 2021 22:58:37 +0330 Subject: [PATCH 67/68] fix : minor edit in NAFAS.spec --- NAFAS.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NAFAS.spec b/NAFAS.spec index c97a726..be36c6e 100644 --- a/NAFAS.spec +++ b/NAFAS.spec @@ -6,7 +6,7 @@ block_cipher = None a = Analysis(['nafas/__main__.py'], pathex=['nafas'], binaries=[], - datas=[], + datas=[('nafas/sounds/*.wav', 'nafas/sounds')], hiddenimports=[], hookspath=[], runtime_hooks=[], From d877eb0e5f3e4ceecabdd7a855c2585eff97c6c6 Mon Sep 17 00:00:00 2001 From: sepandhaghighi Date: Thu, 28 Jan 2021 22:59:13 +0330 Subject: [PATCH 68/68] doc : CHANGELOG updated --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 046012a..06daa39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## [Unreleased] -## [0.2] - 2021-01-28 +## [0.2] - 2021-01-29 ### Added - `_playsound_async` function - `play_sound` function