Problem maskowania etykiet nad poziomicami

Witam,

Ostatnio zmagam się z problemem włączenia maski pod poziomicami w sposób programistyczny, tak aby przysłoniła ona linie na wysokości Etykiet, by lepiej widoczna była wartość danej poziomicy.
Stylizacja jest zapisana w dwóch plikach .qml. Pierwszy zawiera same etykiety odnośnie poziomic, druga zaś stylizację poziomic. Stylizacja maski jest zapisana w znaczniku:
<text-mask maskSizeUnits="MM" maskType="0" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskedSymbolLayers="" maskEnabled="1" maskSize="1.5" maskJoinStyle="128" maskOpacity="1" maskSize2="1.5"/>
Mam problem z włączeniem w sposób automatyczny podczas uruchamiania wtyczki checkboxów odpowiedzialnych za symbolizację tj. Dwóch Paneli w zakładce Maska we właściwościach. Górny jest podpisany jako “Maski Symboli warstwy”, który w gmlu z kategoriami stylizacji poziomic zawiera całą litanię rodzajów, zaś w qmlu z samymi etykietami jest on pusty. Dolny zaś to “Maskowanie Symboli Warstwy”, który jak sądzę w obu musi zostać włączony, aby symbolizacja zadziałała.

Próbowałem rozwiązać we współpracy z SI, ale chatGPT proponuje nie istniejące biblioteki zaś odpowiedź z Gemini jest dla mnie nie jasna.

Początek kodu jest taki:

if os.path.exists(path+przestrzen_nazw+'__OT_RTLW_L.'+formatPliku):
                copyfile(qmlPath/Path("OT_RTLW_L [5-6] 0.qml"), path+przestrzen_nazw+'__OT_RTLW_L [5-6] 0.qml')
                OT_RTLW_L = QgsVectorLayer(path+przestrzen_nazw+"__OT_RTLW_L."+formatPliku, przestrzen_nazw+"__OT_RTLW_L (poziom 5 i 6)","ogr")
                if OT_RTLW_L.featureCount()>0:
                    if formatPliku=="xml" and OT_RTLW_L.fields().indexFromName("koniecWersjiObiektu")!=-1:
                        OT_RTLW_L.setSubsetString("koniecWersjiObiektu is null")
                    QgsProject.instance().addMapLayer(OT_RTLW_L, False)
                    group.addLayer(OT_RTLW_L)
                    OT_RTLW_L.loadNamedStyle(path+przestrzen_nazw+'__OT_RTLW_L [5-6] 0.qml')
                    renderer = OT_RTLW_L.renderer()
                    if isinstance(OT_RTLW_L.renderer(), QgsCategorizedSymbolRenderer):
                        for category in renderer.categories():
                            print (f'kategoria: {category}')
                            symbol = category.symbol()
                            print ('przed pętlą',  symbol)
                            
                            for i, symbol_layer in enumerate(symbol.symbolLayers()):
                                print (isinstance(symbol_layer, QgsLineSymbolLayer))
                                print (symbol_layer.width())
                                print (symbol_layer.color().name())
                                print (isinstance(symbol_layer, QgsSymbolLayer))
 

poniżej jest kilka wersji testowych, które nie działają, z czego najbliższa mi to:
Najbliższa mi wersja to:

renderer = poziomica.renderer()
layer_mask_list = [] #górny panel
for symbol_index, symbol in enumerate(renderer.symbols(QgsRenderContext())):
    for layer_index, symbol_layer in enumerate(symbol.symbolLayers()):
         symbol_layer_id = QgsSymbolLayerId(str(symbol_index), layer_index)
         # Tworzymy referencję do maskowania symbolu z tej samej warstwy 'poziomica'
         masked_layer_ref = QgsMaskedSymbolLayer(poziomica.id(), symbol_layer_id)
        layer_mask_list.append(masked_layer_ref)
  if renderer: # dolny panel
                   for symbol_index, symbol in enumerate(renderer.symbols(QgsRenderContext())):
                        for layer_index, symbol_layer in enumerate(symbol.symbolLayers()):
                           symbol_layer_id = QgsSymbolLayerId(str(symbol_index), layer_index)
                            refr = QgsMaskedSymbolLayer(poziomica.id(), symbol_layer_id)
                             masked_symbol_layers.append(ref)

Czy dobrze idę?
Z Góry dziękuje za każdą pomoc!

Zanim możliwa będzie jakakolwiek pomoc poproszę o odpowiedzi na pytania:

  1. Czy chcesz, aby etykiety poziomic maskowały linie tej samej warstwy, czy innych warstw?
  2. Czy możesz wrzucić kawałek .qml, który zawiera ustawienie etykiety z maską?
  3. Czy możesz pokazać zrzut ekranu z zakładki „Maska” z właściwości warstwy, żeby było jasne, które checkboxy chcesz aktywować?
  4. Której wersji QGIS używasz?

Programistycznie to działa dla pojedynczego symbolu. Problem występuje w momencie kiedy jedna warstwa zawiera wartości unikalne dla wielu symboli lub gdy chcemy zamaskować etykietą jednej warstwy, obiekt liniowy z drugiej warstwy. Z rozwiązania powyższego problemu skorzystałem z tego poniższego wątku: https://gis.stackexchange.com/questions/447362/pyqgis-to-set-masked-symbol-layer-and-mask-source