From 299a1fa9398f6f9a4e97ab08d0d32dce8ac8cea8 Mon Sep 17 00:00:00 2001
From: Melany Estevez Camata
<63152500+Mademoisellefou@users.noreply.github.com>
Date: Sun, 5 Feb 2023 14:51:34 -0400
Subject: [PATCH] changing the function a bit (#314)
* changing the function a bit
using regex
* fixing path
fixing path to get README.md
* os module
removing os module
* Update question_utils.py
running flake8
---
scripts/question_utils.py | 102 ++++++++++++++++++--------------------
1 file changed, 49 insertions(+), 53 deletions(-)
diff --git a/scripts/question_utils.py b/scripts/question_utils.py
index 1c1c4ec..765ad91 100644
--- a/scripts/question_utils.py
+++ b/scripts/question_utils.py
@@ -5,89 +5,85 @@ Question utils functions
import pathlib
from random import choice
from typing import List
+import re
-p = pathlib.Path(__file__).parent.parent.joinpath('README.md')
+p = pathlib.Path(__file__).parent.parent.joinpath("README.md")
def get_file_list():
- with open(p, 'rb') as f:
- file_list = [line.rstrip() for line in f.readlines()]
+ file_list = ""
+ with open(p, "rb") as f:
+ for line in f.readlines():
+ file_list += line.rstrip().decode()
return file_list
-def get_question_list(file_list: List[bytes]) -> list:
-
+def get_question_list(file_list: List[str]) -> list:
+ file_list = re.findall("(.*?) ", file_list)
questions_list = []
- temp = []
- after_summary_tag = False
-
- for line in file_list:
- if line.startswith(b''):
- temp.append(line)
- after_summary_tag = True
-
- elif after_summary_tag and line != b'' and b' ' not in line:
- temp.append(line)
-
- elif after_summary_tag and b'' in line:
- temp.append(line)
- after_summary_tag = False
-
- questions_list.append(temp)
- temp = []
-
+ for i in file_list:
+ q = re.findall(r"(.*?)", i)[0]
+ questions_list.append(q)
return questions_list
-def get_answered_questions(question_list: List[List[bytes]]) -> list:
- """Dont let the type hint confuse you, problem of not using classes.
-
- It takes the result of get_question_list(file_list)
-
- Returns a list of questions that are answered.
- """
-
+def get_answered_questions(question_list: List[str]) -> list:
t = []
-
- for q in question_list:
-
- index = 0
-
- for i in q:
- if b'' in i:
- index = q.index(i)
-
- if q[index+1: len(q) - 1]:
- t.append(q)
-
+ question_list = re.findall("(.*?) ", question_list)
+ for i in question_list:
+ q = re.findall(r"(.*?)", i)
+ if q and q[0] == "":
+ continue
+ a = re.findall(r"(.*?)", i)
+ if a and a[0] == "":
+ continue
+ else:
+ t.append(q[0])
return t
+def get_answers_count() -> List:
+ """
+ Return [answer_questions,all_questions] ,PASS complete. FAIL incomplete.
+ >>> get_answers_count()
+ [463, 463]
+ """
+ ans_questions = get_answered_questions(get_file_list())
+ len_ans_questions = len(ans_questions)
+ all_questions = get_question_list(get_file_list())
+ len_all_questions = len(all_questions)
+ return [len_ans_questions, len_all_questions]
+
+
def get_challenges_count() -> int:
- challenges_path = pathlib.Path(__file__).parent.parent.joinpath('exercises').glob('*.md')
+ challenges_path = (
+ pathlib.Path(__file__).parent.parent.joinpath("exercises").glob("*.md")
+ )
return len(list(challenges_path))
# WIP WAITING FEEDBACK
-def get_random_question(question_list: List[List[bytes]], with_answer=False):
+def get_random_question(question_list: List[str], with_answer=False):
if with_answer:
return choice(get_answered_questions(question_list))
- return choice(question_list)
+ return choice(get_question_list(question_list))
"""Use this question_list. Unless you have already opened/worked/need the file, then don't or
you will end up doing the same thing twice.
-
eg:
-
#my_dir/main.py
-
from scripts import question_utils
-
print(question_utils.get_answered_questions(question_utils.question_list)
-
>> 123
-
+ # noqa: E501
"""
-question_list = get_question_list(get_file_list())
+if __name__ == "__main__":
+ import doctest
+
+ doctest.testmod()
+ # print(get_question_list(get_file_list()))
+ # print(get_answered_questions(get_file_list()))
+ # print(get_random_question(get_file_list(),True))
+ # print(get_random_question(get_file_list(),False))