Modul für Bildinfo's

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
RicmanX
User
Beiträge: 69
Registriert: Donnerstag 29. August 2002, 17:10
Wohnort: Erfurt
Kontaktdaten:

Sonntag 8. Dezember 2002, 17:58

Wir bräuchten das halt Scriptfähig! Egal ob Linux oder Win, Console nützt da nichts... :shock: :)
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Sonntag 8. Dezember 2002, 22:20

Ich verstehe Deine Antwort nicht :?:

- Was zeichnet ein scriptfähiges Modul aus?
- Warum darf die Demo (bzw. schlicht der Funktionstest) von dem Modul nicht in einer Console laufen?
- Wie sollte Deiner Meinung nach eine Demo für ein solches Modul aussehen?

cu beyond
RicmanX
User
Beiträge: 69
Registriert: Donnerstag 29. August 2002, 17:10
Wohnort: Erfurt
Kontaktdaten:

Montag 9. Dezember 2002, 06:00

Naja, ich persönlich bevorzuge ne Demo mit bspw. IDLE oder in HTML Umgebung.
Jedenfalls möcht ich nur wissen, wie ich per Script die Informationen abfrage, also das sie nicht in ner Konsole erscheinen, sondern sowas we n return Wert sind. Also was müsste man dazu in dieser Demodatei ändern?
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Montag 9. Dezember 2002, 20:23

HTML-Umgebung :?: Verwendest Pylets mit Grail oder erwartest Du Dir einen http-Demo-Server?
Ich kenne kein Python-Modul das soetwas macht (abgesehen von Medusa :) ...)

Aber schau doch einfach mal in die Demo-Datei rein. Dafür sollte eine Demo nämlich eigentlich gut sein.

Dort gibt es folgende Zeile

Code: Alles auswählen

data,info = _contentinfo.getContentinfo(file, hard=1, relaxed=0, returnData=1)
Das ist doch ein schöner return-Wert. data enthält den Inhalt der Datei, wenn returnData=1 ist und info enthält die Informationen. Das und der Rest sollte eigentlich selbsterklärend sein.

Code: Alles auswählen

info[2]
ist schließlich noch ein Dictionary mit weiteren Werten z.B. gibt es da (sofern die Werte ermittelt werden können, das ist ja nicht immer gegeben z.B. haben Audiodateien keine Breite und Höhe)

Code: Alles auswählen

info[2]['width']

Code: Alles auswählen

info[2]['height']
cu beyond

PS: Eine passend abgeänderte Demo-Datei interessiert mich jetzt schon.
RicmanX
User
Beiträge: 69
Registriert: Donnerstag 29. August 2002, 17:10
Wohnort: Erfurt
Kontaktdaten:

Montag 9. Dezember 2002, 22:11

So, nach 20-30min Arbeit und über den Umweg einer Ausgabe in IDLE ;):

http://www.pythonarea.net/module/contentinfo/

Nachtrag von Milan: hab das edidiert, weil ich das Verzeichnis mal verschoben habe...
RicmanX
User
Beiträge: 69
Registriert: Donnerstag 29. August 2002, 17:10
Wohnort: Erfurt
Kontaktdaten:

Mittwoch 11. Dezember 2002, 14:05

@Beyond: es wäre schön wenn du das Script weiterentwickeln würdest! :)

Ich habe bemerkt, das der die ...__image__jpeg.py usw. zwar importiert, aber nicht benutzt? Jedenfalls wären auch weitere Mimetypes noch gut. Und er sollte auch die Extension der Datei (Am Bsp. Python.jpg) anstatt ".jpeg" zurückgeben.

Ansonsten echt Klasse gemacht und super nützlich! 8)
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Mittwoch 11. Dezember 2002, 23:47

Danke. :D

Ich werde mich mal am Wochenende daran machen etwas weiter zu coden.

Ich habe z.Z. nur ziemlich viel zu tun. Das Physikstudium an der TUM ist kein Kinderspiel und dann habe ich noch so einige andere Verpflichtungen ...

Über Mithilfe beim Programmieren für dieses Modul wäre ich sehr dankbar. Vorallem beim Implementieren von Mime-Types sollte sich die Arbeit auch gut aufteilen lassen.

U.U. werde ich auch am Wochenende ein neues Konzept für content_info einführen: Ich will das dictionary, daß jetzt ja irgendwelche Daten enthält durch ein spezielles Objekt ersetzen, daß für jeden Mime-Type spezifisch ist, aber eben allgemeine Parents hat (mittels Multiple Inheritance) z.B. können das gif- und das jpeg-Objekt beide von einem Picture-Objekt abgeleitet werden. Ist etwas eines Instanz eine Picture-Objekts hat es z.B. Höhe und Breite.

Außerdem möchte ich die Lizenz ändern z.B. LGPL oder BSD.

Vorschläge?

cu beyond
Zuletzt geändert von Beyond am Mittwoch 11. Dezember 2002, 23:54, insgesamt 1-mal geändert.
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Samstag 14. Dezember 2002, 21:11

(Ich war vorhin wieder mal ausgeloggt worden :?: )

So jetzt ist die neue Version fertig. Die gibt's wieder unter
http://www.zope.org/Members/beyond/contentinfo
Es wäre echt toll, wenn Ihr Module z.B. für mp3, mpeg, avi, ... programmieren könntet. Ich kann gerne auch dabei mithelfen.
Für .ogg habe ich schon einen Java-Code gefunden. Er ist aber GPL und ich hätte gerne LGPL, daher habe ich den Autor angeschrieben ...

Übrigens: die extension für JPEG ist wirklich .jpeg.
RicmanX
User
Beiträge: 69
Registriert: Donnerstag 29. August 2002, 17:10
Wohnort: Erfurt
Kontaktdaten:

Samstag 14. Dezember 2002, 21:24

Das mit der Extension mein ich so, wie die Datei halt heißt. Weil im _contentinfo wird das auch ausgelesen, nur je nach Header entsprechend ausgegeben. Ich denk halt an ne "echte" Extension, sprich wie im Dateinamen. Meinetwegen auch 2 Werte, falls sich beides unterscheidet.

Zu allererst könnt ich dir die Infos für Endung/Mimetyp von mehreren Dateiarten schicken.
Gib mal Mailadresse :)
Zuletzt geändert von RicmanX am Samstag 14. Dezember 2002, 21:30, insgesamt 1-mal geändert.
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Samstag 14. Dezember 2002, 21:28

ich hab mal zwecks lesbarkeit die beiden doppelten Posts gelöscht. Ich denk mal, daa eh beide doppelt mit gleichem text waren... :wink: :roll: . Ich mach das dann auch bei anderen topics um Ordnung zu schaffen, wenn ich mal wieder sowas bemerke, solange noch ein anderer Post mit wirklichem Namen da ist, der darauf hinweißt.
RicmanX
User
Beiträge: 69
Registriert: Donnerstag 29. August 2002, 17:10
Wohnort: Erfurt
Kontaktdaten:

Samstag 14. Dezember 2002, 22:19

Also ich hab n ziemliches Problem. "info" ist einfach n String oder so, kein Dictionary mehr. Das heißt man kommt an die Infos nicht mehr ran - bzw. ich bin zu blöd dazu :D
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Sonntag 15. Dezember 2002, 01:23

Postings: Ja gut, daß die doppelten raus sind.

Mimetypes: Wichtig ist vorallem wie die Informationen in den Dateien stehen. Eine reine Zuordnung von Dateiname und Mimetype reicht leider nicht (dafür gibt es ein Python-Modul mimetypes). Aber schick mir einfach mal was Du hast. Email-Adresse -> webmaster@beyond-thoughts.com

Info: info ist jetzt ein Objekt -- sprich eine Instanz einer Klasse. siehe auch CIContentTypes.py
interessante Informationen kann man dann z.B. mit getattr oder einfach mit obj.attribut herausbekommen.

Extension: Aus dem Dateinamen kann man diese natürlich ermitteln. Das geht recht simpel ist aber nicht so verlässlich. Dafür könnte ich eine Extra-Funktion schreiben. Das andere wäre: verschiedene gültige Extensions für einen Mimetype zu defnieren und ggf. die gültige und derzeit verwendete Extension zurückzuliefern.


cu beyond
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Sonntag 15. Dezember 2002, 08:52

ich weiß zwar wie man dann die sachen da rausholt, aber das ist eigentlich nicht userfreundlich, weil du ständig überprüfen müsstest ob die attribute wirklich da sind. Das gleiche wäre es wenn du mit getattr arbeitest, weil man darauf nicht schnelle Dictionaryspeizifische Optionen anwenden kann. Ich fänd es besser wenn du noch in deine Basisklasse ne Methode einbauen könntest die gleich ein Dictionary formt, falls es gefordert wird. Soll heißen, das in deiner Klasse BasicContent eine Methode dict eingebaut werden könnte, die ein Dictionary nach der vorherigen Aufbauweise zurückliefert. Dadurch wäre es ja egal, mit welchem Contenttype du das machst, weil sich das dann vererbt.
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

Sonntag 15. Dezember 2002, 12:54

Ein dictionary gibt's schon: __dict__

Eine solche Vorgehensweise ist aber bad style!

Denn bei einem Dictionary weißt Du zunächst weder, ob es ein Attribut gibt noch, was es bedeutet (schlimmer).

Es ist wesentlich sinvoller mit isinstance zu prüfen ob der Content von der Klasse PictureContent ist. Denn dann weißt Du:
- es gibt width und height
- was das zu bedeuten hat.

Genau deshalb habe ich das ganze neu programmiert.

cu beyond
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Sonntag 15. Dezember 2002, 13:13

ich finde das ist berachtungsweise. :arrow: denn immerhin gibt es bei einem Dict die methoden has_key, items, keys, values. Die kann ich schnell durch for-schleifen laufen lassen, was eigentlich mein Ziel ist. Dann kann ich ähnlich wie mit getattr werte mit get rausholen.

Versteh mich nicht falsch, denn deine Klassen blieben ja erhalten und man könnte ja immer noch mit isinstance abfargen. nur lässt sich der Rest besser handhaben. Es ist ja nur eine nutzbare Option, nicht ein zwang das zu nehmen. das es das mit __dict__ schon gab, wusste ich ja nicht.
Schlechter Stil ist es meiner Meinung nach nicht, weil du ja eben abprüfen kannst was da ist etc.
Antworten