46 lines
2.4 KiB
Python
46 lines
2.4 KiB
Python
"""
|
||
Модуль для работы с кадастровыми записями.
|
||
Содержит класс 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__()
|