2017-07-23 2 views
1

Ich versuche, eine Option zu meiner benutzerdefinierten Markdown-Erweiterung in Python3 hinzuzufügen. Leider erhalte ich den folgenden Fehler:Wie erstelle ich Optionen für die benutzerdefinierte Erweiterung Python Markdown?

File "pymodules/docmarkdown.py", line 232, in get_leaflang_markdown 
    MyFencedCodeExtension(deflang = "leaf"), 
    File "pymodules/docmarkdown.py", line 61, in __init__ 
    super(MyFencedCodeExtension,self).__init__(**kwargs) 
TypeError: __init__() got an unexpected keyword argument 'deflang' 

Der Konstruktor-Code der Erweiterung ist unten. Es folgt dem Muster, das von der docs bereitgestellt wird.

class MyFencedCodeExtension(markdown.extensions.Extension): 

    def __init__(self, **kwargs): 
     self.config = { 'deflang' : [ None, "language if not specified" ] } 

     super(MyFencedCodeExtension,self).__init__(**kwargs) 

Ich Verweis auf die Erweiterung, wenn die Markdown-Instanz Konstruktion:

return markdown.Markdown(
    safe_mode = 'escape', 
    extensions = [ 
     'meta', 
     'toc', 
     MyFencedCodeExtension(deflang = "leaf"), 
     CenterExtension({}), 
    ] 

Antwort

0

Diese Fehlermeldung auf Ihrem super() Anruf geschieht.

Die Oberklasse von MyFencedCodeExtension ist markdown.extensions.Extension.

Gemäß der Fehlermeldung erwartet der Superklassenkonstruktor das Schlüsselwortargument deflang nicht.

Sehen Sie sich die Signatur markdown.extensions.Extension.__init__ an, um herauszufinden, was sie erwartet.

+0

Ja, ich verstehe speziell, was der Fehler bedeutet. Meine Frage ist, wie man das richtig für eine Erweiterung macht. Dieses Setup kommt direkt aus der Dokumentation - ich ging davon aus, dass es mit 'config' etwas Schwieriges tun würde, aber es könnte tatsächlich nur ein Fehler in der Dokumentation sein. –

+0

Deshalb habe ich vorgeschlagen, dass Sie sich die Konstruktorsignatur anschauen. Wenn Sie ein Rezept genau befolgen und diese Art von Ausnahme ausgelöst wird, liegt das Problem wahrscheinlich beim Rezept. Meine Vermutung ist Rechtschreibung oder Großschreibung. – BoarGules

Verwandte Themen