Python Modul erweitern
Verfasst: Dienstag 13. Februar 2018, 14:37
Hallo
Schon seit Ewigkeiten versuche ich den Schlüsselbund des Systems mit Python richtig zu verwenden. Nun glaube ich herausgefunden zu haben, dass dieses Modul hier eigentlich genau dafür geschaffen wurde:
https://github.com/jaraco/keyring/tree/ ... g/backends
Nun habe ich damit nur ein Problem, es wird nur ein Benutzername und ein Passwort gespeichert, es sollen aber noch weitere Infos (Attribute) wie z.b. eine URL hinterlegt werden können.
Es muss also die Funktion set_password dieses Scriptes hier angepasst werden: https://github.com/jaraco/keyring/blob/ ... Service.py
Bisher mache ich ja einfach:
Wie gehe ich den nun am besten vor, wenn ich dieses Modul erweitern möchte. Vielen Dank
edit:
vermutlich am beten einfach die Klasse überschreiben, nur wie erhalte ich die default Argumente und für nur ein neues hinzu:
edit2: Meine Lösung sieht bisher so aus, ich übergebe also zusätzlich data:
Aber damit sind nun ja alle anderen Methoden der Klasse weg!?
Schon seit Ewigkeiten versuche ich den Schlüsselbund des Systems mit Python richtig zu verwenden. Nun glaube ich herausgefunden zu haben, dass dieses Modul hier eigentlich genau dafür geschaffen wurde:
https://github.com/jaraco/keyring/tree/ ... g/backends
Nun habe ich damit nur ein Problem, es wird nur ein Benutzername und ein Passwort gespeichert, es sollen aber noch weitere Infos (Attribute) wie z.b. eine URL hinterlegt werden können.
Es muss also die Funktion set_password dieses Scriptes hier angepasst werden: https://github.com/jaraco/keyring/blob/ ... Service.py
Bisher mache ich ja einfach:
Code: Alles auswählen
import keyring
keyring.set_password("system", "username", "password")
edit:
vermutlich am beten einfach die Klasse überschreiben, nur wie erhalte ich die default Argumente und für nur ein neues hinzu:
Code: Alles auswählen
class Keyring(keyring.backends.SecretService.Keyring):
def set_password(self):
print "test"
return
Code: Alles auswählen
def set_password(self, service, username, password, data=None):
"""Set password for the username of the service
"""
collection = self.get_preferred_collection()
attributes = {
"application": self.appid,
"service": service,
"username": username
}
if data:
attributes.update(data)
label = "Password for '%s' on '%s'" % (username, service)
collection.create_item(label, attributes, password, replace=True)
Aber damit sind nun ja alle anderen Methoden der Klasse weg!?