Невозможно установить точку останова при инициализации класса

Я использую пользовательский тег 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) до конца приведенного фрагмента точки останова работают.

Я хотел бы больше узнать о том, что происходит, и о чем я должен прочитать.

0 ответов

Другие вопросы по тегам