Рефакторинг проекта: разделение на модули, улучшенный интерфейс, обработка Excel
This commit is contained in:
45
cadastral_record.py
Normal file
45
cadastral_record.py
Normal file
@@ -0,0 +1,45 @@
|
||||
"""
|
||||
Модуль для работы с кадастровыми записями.
|
||||
Содержит класс CadastralRecord для хранения информации о кадастровых номерах.
|
||||
"""
|
||||
|
||||
class CadastralRecord:
|
||||
"""Класс для хранения информации о кадастровом номере и связанных с ним данных."""
|
||||
|
||||
def __init__(self, cadastral_number, source_xml_info, temp_file_path=None):
|
||||
self.cadastral_number = cadastral_number # Основной кадастровый номер
|
||||
self.source_xml_info = source_xml_info # Ссылка на XMLFileInfo где найден
|
||||
self.temp_file_path = temp_file_path # Путь к файлу во временной папке
|
||||
self.quarter_number = self._extract_quarter_number() # Номер квартала
|
||||
self.related_numbers = [] # Смежные кадастровые номера из того же файла
|
||||
|
||||
def _extract_quarter_number(self):
|
||||
"""Извлекает номер квартала из кадастрового номера."""
|
||||
# Квартал - это первые три части номера (NN:NN:NNNNNNN)
|
||||
parts = self.cadastral_number.split(':')
|
||||
if len(parts) >= 3:
|
||||
return ':'.join(parts[:3])
|
||||
return None
|
||||
|
||||
def set_related_numbers(self, all_numbers_from_file):
|
||||
"""Устанавливает список смежных кадастровых номеров из того же файла."""
|
||||
# Убираем сам номер из списка смежных
|
||||
self.related_numbers = [num for num in all_numbers_from_file if num != self.cadastral_number]
|
||||
|
||||
def get_object_type(self):
|
||||
"""Определяет тип объекта по кадастровому номеру."""
|
||||
parts = self.cadastral_number.split(':')
|
||||
if len(parts) == 4:
|
||||
# Полный кадастровый номер объекта недвижимости
|
||||
return "Объект недвижимости"
|
||||
elif len(parts) == 3:
|
||||
# Номер квартала
|
||||
return "Квартал"
|
||||
else:
|
||||
return "Неизвестный тип"
|
||||
|
||||
def __str__(self):
|
||||
return f"CadastralRecord({self.cadastral_number}, квартал: {self.quarter_number})"
|
||||
|
||||
def __repr__(self):
|
||||
return self.__str__()
|
||||
Reference in New Issue
Block a user