Was wünscht ihr euch in die Standardlib?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
rafael
User
Beiträge: 189
Registriert: Mittwoch 26. Juli 2006, 16:13

Hoi,

mich würde mal gerne interessieren was ihr in der stdlib an Modulen vermisst und was euch stört.

Folgende Module wären in der stdlib IMHO schön: Und, was vermisst ihr? :D
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Ascii Pr0n!

SimpleJSON wäre sicherlich einweiterer Kandidat ;)
lunar

configobj... der ConfigParser kommt da nicht ran. BeautifulSoup und Pyparsing wären sicherlich auch nicht schlecht.
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

[meinSenfdenichauchgradnichtsoversteh]
Hi!
rafael hat geschrieben: [*]Ein systemunabhängiges Modul zur Soundverarbeitung
Das fänd ich auch gut, wobei es schon toll wäre, wenn es sowas überhaupt gäbe. Also so was einfaches wie zB winsound, um auf jedem rechner "tondata" abspielen zu können. Es gibt da zwar ein paar, aber die sind alle komplieziert und glaub ich auch nicht so verbreitet/es gibt kein Spitzenmodul...
mfg, jj
[/meinSenfdenichauchgradnichtsoversteh]
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Eignet sich Python überhaupt für Audio? Von den Latenzen her etc.
pythonist
User
Beiträge: 40
Registriert: Sonntag 14. Mai 2006, 17:28

Abend,

auf jeden Fall BeautifulSoup
das mit dem Soundmodul wär allerdings genial
vieleicht noch wxPython
und n Modul zum Dynamischen nachladen von Modulen :D ich mach sowas im Moment damit:

Code: Alles auswählen

try:
        import [Modul]
except:
        print "Lade das Modul [Modul] nach"
        from urllib import urlretrieve
        try:
            urlretrieve("[Url zum Modul]", "[Modul].py")
            import [Modul]
        except:
            print "Konnte [Modul] nicht laden, beende"
            exit(1)
Wär doch besser wenns was wie folgendes gäbe:

Code: Alles auswählen

import modulload

modulload.modulload("[Modul]", "[Url zum Modul]")
Schöne Nacht noch

pythonist
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Öhm das halte ich für sehr mutig. Da kann ja jeder mit entsprechender Kontrolle beliebigen Code einschleusen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

pythonist hat geschrieben:und n Modul zum Dynamischen nachladen von Modulen :D
Bitteschön, hat birkenfeld schon implementiert.
pythonist hat geschrieben:Wär doch besser wenns was wie folgendes gäbe:

Code: Alles auswählen

import modulload

modulload.modulload("[Modul]", "[Url zum Modul]")
Die Syntax ist sogar noch besser, da du keine zusätzlichen Funktionen aufrufen musst - es funktioniert einfach transparent.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

veers hat geschrieben:Öhm das halte ich für sehr mutig. Da kann ja jeder mit entsprechender Kontrolle beliebigen Code einschleusen.
It's not a bug, its a feature! ;)
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

lunar hat geschrieben:
veers hat geschrieben:Öhm das halte ich für sehr mutig. Da kann ja jeder mit entsprechender Kontrolle beliebigen Code einschleusen.
It's not a bug, its a feature! ;)
Schnittstelle für den Bundestrojaner? :lol:
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

veers hat geschrieben:
lunar hat geschrieben:
veers hat geschrieben:Öhm das halte ich für sehr mutig. Da kann ja jeder mit entsprechender Kontrolle beliebigen Code einschleusen.
It's not a bug, its a feature! ;)
Schnittstelle für den Bundestrojaner? :lol:
So oder so ist es schwierig, Pythoncode richtig "sicher" zu machen, selbst wenn's "kompiliert" ist, kann man's ja wieder dekompilieren und verändern, irgendeinen eigenen Code reinschreiben und wieder kompilieren.

Und als Programmierer möcht' ich ja Code in meinen Quellcode einfließen lassen, oder nicht?... Versteh das "Sicherheitsproblem" dahinter nicht... vielleicht kann's mir jemand erklären.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

BlackVivi hat geschrieben:So oder so ist es schwierig, Pythoncode richtig "sicher" zu machen, selbst wenn's "kompiliert" ist, kann man's ja wieder dekompilieren und verändern, irgendeinen eigenen Code reinschreiben und wieder kompilieren.
Ja. Die Kritik war auch nicht das der Code nicht kompiliert sondern das er nicht signiert ist.
BlackVivi hat geschrieben: Und als Programmierer möcht' ich ja Code in meinen Quellcode einfließen lassen, oder nicht?... Versteh das "Sicherheitsproblem" dahinter nicht... vielleicht kann's mir jemand erklären.
Gut mal ein Beispiel, du sitzt... in der Schule und verwendest eine Applikation welche unsichere imports verwendet. Ich sitz auch da und mag dich nicht. Alles was ich jetzt brauche um Code auf deinem Rechner auszuführen ist Zugriff auf das Netzwerk. Davon ausgegangen das die Schule keine teuren Managedswitches oder ähnliches verfügen kann ich per Arp poisoning problemlos alle Verbindungen übernehmen. Dann warte ich bis du Python Code lädst und tausche dann diesen aus.

Was in Schulen jeder Schüler kann kann in Staaten jeder Staat... ;)
lunar

BlackVivi hat geschrieben:Und als Programmierer möcht' ich ja Code in meinen Quellcode einfließen lassen, oder nicht?... Versteh das "Sicherheitsproblem" dahinter nicht... vielleicht kann's mir jemand erklären.
Normalerweise hängt die Sicherheit einer Anwendung ja lediglich von der lokalen Konfiguration ab. Normalerweise hat man über den lokalen Rechner frei verfügen, Sicherheitsupdates zeitnah einspielen, und mittels Firewall und entsprechenden Nutzerrechten Sicherheit schaffen.

Wenn du Module von fremden Computern lädst (und dazu noch unverschlüsselt), dann hängt die Sicherheit aber auch vom fremden Rechner ab, über den du eventuell keine Kontrolle hast: Der Admin dieses Rechners versäumt ein Sicherheitsupdate, der Server wird geknackt, und das Modul ersetzt. Schon ist dein Computer ebenfalls Opfer dieser Attacke geworden, ohne das du als Admin was dafür kannst...

Noch schlimmer ist fast, dass das Modul seine Reise durch das Netz vielleicht sogar unverschlüsselt antritt, dann kann im Prinzip jeder das Modul während der Übertragung manipulieren. Im Prinzip könntest du dann auch gleich einen SSH-Server mit Public Key zum runterladen vertreiben, free for everyone... das wäre in etwa die selbe Sicherheitsstufe.

Sicher ist sowas nur, wenn man eine verschlüsselte Verbindung verwendet, und sowohl Server als auch Client sicher authentifiziert. SSH-Tunnel würden sich hier vielleicht anbieten... aber selbst dann bleibt das Risiko, dass der fremde Server geknackt wird.
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Gut, im Endeffekt hab ich darüber nachgedacht und bin zu einem ähnlichen Entschluss gekommen wie ihr es mir (wesentlich schlüssiger) erklärt habt.

Als Beispiel, damit ich's versteh... ich lern ja noch:

Ich mach'n supertolles Programm das supertolle Sachen kann, beispielsweise automatisch Dateien umbenennen nach das und das und verteil das in meinem Netzwert/Online. In diesem pack ich so einen Online Import dingens (Entschuldigt den Ausdruck) und der macht erstmal gar nüx, also importiert eine leere .py Datei.

Nach einiger Zeit, wenn's verteilt genug ist, pack ich da wunderschönen schadhaften Quellcode rein und tada, alles putt.
lunar

BlackVivi hat geschrieben:Gut, im Endeffekt hab ich darüber nachgedacht und bin zu einem ähnlichen Entschluss gekommen wie ihr es mir (wesentlich schlüssiger) erklärt habt.

Als Beispiel, damit ich's versteh... ich lern ja noch:

Ich mach'n supertolles Programm das supertolle Sachen kann, beispielsweise automatisch Dateien umbenennen nach das und das und verteil das in meinem Netzwert/Online. In diesem pack ich so einen Online Import dingens (Entschuldigt den Ausdruck) und der macht erstmal gar nüx, also importiert eine leere .py Datei.

Nach einiger Zeit, wenn's verteilt genug ist, pack ich da wunderschönen schadhaften Quellcode rein und tada, alles putt.
Zum Beispiel. Du kannst aber auch das Opfer sein: In gutem Glauben importierst du in deiner Anwendung ein Modul über diesem Mechanismus von einem zentralen Server (um z.B. Softwareupdates zu erleichtern). Jetzt bricht jemand in den Server ein, und hat so über den Austausch des Moduls auch automatisch alle Clients unter Kontrolle.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

docutils, simplejson, pyyaml.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

docutils
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Vielleicht sollte man mal ein Voting einführen und es werden dann die externen Module aufgenommen, die von den meisten Leuten gewünscht werden.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

So läuft das sicher nicht...

Erst mal sind Libraries, die sich noch schnell ändern (so wie docutils), keine Kandidaten für Python mit einem (angestrebten) Releasezyklus von 18 Monaten.

Dann braucht es einen Maintainer, der sich aktiv um die Library in der stdlib kümmert und das auch für eine gewisse Zeit kann.

Und schließlich sind Libraries ab einer gewissen Größe (so wie docutils) einfach zu viel für die stdlib.

simplejson oder eine Yaml-Implementierung halte ich dagegen für möglich, wenn auch pyyaml nicht besonders "mature" ist.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Antworten