В случае создания адаптеров к имеющимся отраслевым библиотекам для поддержки Magritte может возникнуть необходимость расширить дескрипторы дополнительными полями (и методами?).
На примере MagritteSQLAlchemy: в дескрипторы MAElementDescription добавлены поля sa_isPrimaryKey и sa_attrName, в MAContainer - sa_tableName.
Чтобы при росте количества возможных интеграций "добавочные" поля не "засоряли" исходные дескрипторы, предлагается такая механика расширения:
у каждого дескриптора предусмотреть атрибут extensions, который будет наполняться необходимыми расширяющими атрибутами при импорте соответствующего интеграционного модуля.
например, в случае с MagritteSQLAlchemy у дескрипторов типа MAContainer появится descriptor.extensions.SqlAlchemy.tableName.
В случае создания адаптеров к имеющимся отраслевым библиотекам для поддержки Magritte может возникнуть необходимость расширить дескрипторы дополнительными полями (и методами?). На примере
MagritteSQLAlchemy
: в дескрипторыMAElementDescription
добавлены поляsa_isPrimaryKey
иsa_attrName
, в MAContainer -sa_tableName
. Чтобы при росте количества возможных интеграций "добавочные" поля не "засоряли" исходные дескрипторы, предлагается такая механика расширения:extensions
, который будет наполняться необходимыми расширяющими атрибутами при импорте соответствующего интеграционного модуля.MagritteSQLAlchemy
у дескрипторов типаMAContainer
появитсяdescriptor.extensions.SqlAlchemy.tableName
.