Files
kadastr14/cadastral_record.py

46 lines
2.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
Модуль для работы с кадастровыми записями.
Содержит класс 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__()