From aedebb3ebab464aaf4930c5dda373f8e9a9b96d0 Mon Sep 17 00:00:00 2001 From: Crai-cry Date: Tue, 24 Mar 2026 22:00:55 +0300 Subject: [PATCH] delet all what dont need --- vacancy_analyzer.py | 39 +++++++++------------------------------ 1 file changed, 9 insertions(+), 30 deletions(-) diff --git a/vacancy_analyzer.py b/vacancy_analyzer.py index 6be103e..375d6f8 100644 --- a/vacancy_analyzer.py +++ b/vacancy_analyzer.py @@ -9,7 +9,6 @@ def load_vacancies(filepath: str) -> list[dict]: except: print() return [] - def filter_by_city(vacancies: list[dict], city: str) -> list[dict]: return [i for i in vacancies if i.get('city','').lower() == city.lower()] def filter_by_skills(vacancies: list[dict], required_skills: list[str]) -> list[dict]: @@ -21,8 +20,7 @@ def extract_unique_companies(vacancies: list[dict]) -> list[str]: def extract_top_skills(vacancies: list[dict], top_n: int) -> list[tuple[str, int]]: all_skills = [] for v in vacancies: - all_skills.extend(v.get('skills', [])) - + all_skills.extend(v.get('skills', [])) skill_counts = Counter(all_skills) return skill_counts.most_common(top_n) def calculate_average_salary(vacancies: list[dict]) -> float: @@ -32,18 +30,15 @@ def calculate_average_salary(vacancies: list[dict]) -> float: salaries = [] for v in vacancies: salary_from = v.get('salary_from') - salary_to = v.get('salary_to') - + salary_to = v.get('salary_to') if salary_from is not None and salary_to is not None: salaries.append((salary_from + salary_to) / 2) elif salary_from is not None: salaries.append(salary_from) elif salary_to is not None: - salaries.append(salary_to) - + salaries.append(salary_to) if not salaries: - return 0.0 - + return 0.0 return sum(salaries) / len(salaries) def group_by_company(vacancies: list[dict]) -> dict[str, int]: all_company = [] @@ -53,8 +48,7 @@ def group_by_company(vacancies: list[dict]) -> dict[str, int]: return company_count def format_vacancy_short(vacancy: dict) -> str: salary_from = vacancy.get('salary_from') - salary_to = vacancy.get('salary_to') - + salary_to = vacancy.get('salary_to') if salary_from is not None and salary_to is not None: salary_str = f"от {salary_from} до {salary_to}" elif salary_from is not None: @@ -63,31 +57,16 @@ def format_vacancy_short(vacancy: dict) -> str: salary_str = f"до {salary_to}" else: salary_str = "зарплата не указана" - return (f"ID {vacancy.get('id')}: {vacancy.get('title')} в {vacancy.get('company')}, " f"{vacancy.get('city')} — {salary_str}") def save_filtered_results(vacancies: list[dict], filename: str) -> bool: return -def interface(): - os.system('cls' if os.name == 'nt' else 'clear') - print ("Your command:") - print ("1. Load form json\n2. Filter by city\n3. Filter by skils\n4. Filter by salary") - print ("5. Extract unique companies\n6. Extract top skills\n7. Calculate average salary") - print ("8. Group by company\n9. Format vacancy short\n10. Save filtred results\n11. Exit") -def user_chouse(user_input:int): - match user_input: - case 1: - return load_vacancies(input("Path for json: ")) - case 11: - return - case _: - print ("Error uncorrecteble number") def main(): - while (user_input != 11): - interface() - user_input = int(input("Chouse command: ")) - user_chouse(user_input) + main_list=load_vacancies(input("Print path for json:")) + + + if __name__ =="__main__": #вход проги