Невозможно установить точку останова при инициализации класса
Я использую пользовательский тег YAML для определения секретов в конфигурации. Путь к конфигурационному ключу определяет путь к секрету в хранилище ключей.
import yaml
import pdb
yaml_str="""
databases:
master:
user: 'admin'
pass: !KMS
"""
class KMSSecret(yaml.YAMLObject):
def __repr__(self):
pdb.set_trace()
secret_path = '/' + '/'.join(self._find_key(config))
return secret_path
def _find_key(self, data):
pdb.set_trace()
for key, value in data.items():
if isinstance(value, dict) or isinstance(value, list):
path_item = self._find_key(value)
if path_item:
return [key] + path_item
elif value is self:
return [key]
@classmethod
def from_yaml(self, loader, node):
return KMSSecret()
yaml.add_constructor(u'!KMS', KMSSecret.from_yaml)
config = yaml.load(yaml_str)
Установка точки останова в пределах __repr__
или же _find_key
не имеет никакого эффекта
Код должен быть выполнен в какой-то момент после проверки config
Переменная после загрузки показывает ожидаемые представления.
При добавлении print(config)
до конца приведенного фрагмента точки останова работают.
Я хотел бы больше узнать о том, что происходит, и о чем я должен прочитать.