Seite 1 von 1

Python --> JavaScript Konverter

Verfasst: Freitag 18. November 2005, 23:29
von mitsuhiko
So. Meine Neueste Erweiterung zu WSGIarea :-)

ajax middleware mit python2javascript konverter

und eine dazugehörige javascript lib, damit die fehlenden funktionen nachgerüstet werden.

Aktuell noch sehr broken, aber wer Ideen hat, immer her damit ;-)

Verfasst: Freitag 18. November 2005, 23:40
von mitsuhiko
Hier noch beispiele für den erstellen Code:

Original

Code: Alles auswählen

def test(data):
    result = []
    for key in data:
        if not key.startswith('.'):
            result.append(key)
    return result
    
def publish():
    return test(['.datei1', '.datei2', 'datei3', 'datei4'])
    
for item in publish():
    print '<ul>'
    print '<li>' + item + '</li>'
    print '</ul>'
Javascript

Code: Alles auswählen

function test(data)
{
    result = new __py_list();
    var __key_container__ = data;
    __key_container__.__start_iteration__();
    while (true) {
        var key = __key_container__.__iter__();
        if (typeof key == 'undefined') {
            break;
        }
        if (!key.startswith(new __py_string('.'))) {
            result.append(key);
        }
    }
    return result;
}

function publish()
{
    return test(new
                __py_list(new __py_string('.datei1'),
                          new __py_string('.datei2'),
                          new __py_string('datei3'),
                          new __py_string('datei4')));
}

var __item_container__ = publish();
__item_container__.__start_iteration__();
while (true) {
    var item = __item_container__.__iter__();
    if (typeof item == 'undefined') {
        break;
    }
    __py_print(new __py_string('<ul>'));
    __py_print(new __py_string('<li>').__add__(item).
               __add__(new __py_string('</li>')));
    __py_print(new __py_string('</ul>'));
}
Der Javascript Code wurde vorher aber durch "indent -kr" gejagt, damit das was gleischschaut.

Verfasst: Samstag 19. November 2005, 08:40
von Leonidas
Lustig. Aber: der generierte JavaScript-Code sieht nicht besonders gut lesbar aus. Vielleicht kann man da noch Hand anlegen?

Verfasst: Samstag 19. November 2005, 08:48
von mitsuhiko
Leonidas hat geschrieben:Lustig. Aber: der generierte JavaScript-Code sieht nicht besonders gut lesbar aus. Vielleicht kann man da noch Hand anlegen?
Ich hab zuert eine Version gehat, wo wirklich normaler Javascript Code herauskommen ist. Aber das hat einen Nachteil. Dann kann man keine Operatoren überladen, weil javascript das nciht kennt. Also hab ich in der aktuellen Version jeden normalen Operator nochmal per Hand eingebaut, halt auf Kosten der Lesbarkeit.