Абстрактний тип даних, який необхідний для вирішення завдань дослідження
Оскільки завданнм даного проекту є допомога в підборі маршруту для лазіння певної складності, то для полегшення взаємодії з маршрутами створено абстракцію Ascent.
Клас Ascent допомагає отримати наступну інформацію про гірські підйоми:
country - країна гори
location - пповна локація гори, яка містить інформацію про назву маршрута та додаткову інформацію про її місценаходження
style - стиль лазіння
grade - складність маршруту
category - категорія, до якої можна віднести певний маршрут за складністю (Beginner, Intermediate, Expert, Elite)
Методи, які використовуються в абстракції Ascent
category()
Окрім Ascent, також є створений клас Database, для полегшеної роботи з базою даних. Цей клас приймає назву бази даних, в якою в подальшому відбуватиметься робота. Для створення нової табиці в базі даних даних використовується метод create_table(), який додає таблицю наступні колонки: id, location, name, style, difficulty, category, coordinates. Для більш зручної роботи з даними використовується метод merge_columns(), який поєднує назву гори і її локацію в одну колонку в таблиці бази даних. Метод insert_to_table() дістає дані з файлу data.csv, опрацбовує їх, і записує вже об'єкти класу Ascent в таблицю бази даних.
Для зручної роботи з записаними даними є два методи: execute_selection_by_country(country), execute_selection_by_difficulty(county, difficulty), які, відповідно,здійснюють запит в базу даних за країною, та країною і складністю.