Literal

Software screenshot:
Literal
Dettagli del software:
Versione: 1.0.0
Data di caricamento: 15 Apr 15
Sviluppatore: Ask Solem
Licenza: Libero
Popolarità: 41

Rating: nan/5 (Total Votes: 0)

Literal è un progetto per creare un modo per generare il codice Python con il codice Python. & Nbsp; Invece di stringhe di codice Python, si utilizzano oggetti literal.py che ricorda le operazioni effettuate per loro, e la cronologia delle operazioni è il programma Python risultante.
Questo è solo un esperimento che volevo giocare con; E 'utilità non è dimostrata, e più che probabilmente questo sarà gettato via come un esperimento fallito. Quindi, utilizzare con cura e cautela.
Rapida panoramica
import letterale
@ Literal.py
def unpack_octet (x, payload, offset, unpack_from):
& Nbsp; x <<= unpack_from ('B', payload, offset)
& Nbsp; Offset + = 1
stampa (unpack_octet ())
Dà:
x = unpack_from ('B', payload, offset)
Offset + = 1
Oppure un altro esempio utilizzato per creare unpackers argomento per il protocollo AMQP:
def unpack (metodo):
& Nbsp; @ literal.py
& Nbsp; def corpo (p, payload, offset, unpack_from, argtuple, ssize):
& nbsp; campi = method.fields
& Nbsp; nomi = p.tuple (* self.field_names)
& Nbsp; per i, fset in Enumera (campi):
& Nbsp; se len (fset) == 1:
& Nbsp; per il campo in fset:
& Nbsp; name = p.var (field.name)
& Nbsp; se field.format == '*':
& Nbsp; # Si tratta di un carico utile di stringa,
& Nbsp; # non c'è bisogno di decomprimere
& Nbsp; nome <<= payload [Offset: offset + ssize]
& Nbsp; Offset + = ssize
& Nbsp; il resto:
& Nbsp; # Un unico campo per decomprimere
& Nbsp; nome <<= unpack_from (struct_format (field.format),
& Nbsp; payload, offset) [0]
& Nbsp; Offset + = field.size
& Nbsp; il resto:
& Nbsp; # Un elenco di campo per decomprimere
& Nbsp; questi = p.tuple (* fset.names)
& Nbsp; questi <<= unpack_from (struct_format (fset.format),
& Nbsp; payload, offset)
& Nbsp; Offset + = sum (f.size per f in fset)
& Nbsp; ritorno nomi
. & Nbsp; il corpo di ritorno () as_fun (lambda payload, Offset: 1,
& Nbsp; method.name)
Genera il seguente codice per il metodo AMQP basic_deliver:
def consegnare (payload, offset):
& Nbsp; ssize = unpack_from ('B', payload, offset) [0]
& Nbsp; Offset + = 1
& Nbsp; consumer_tag = payload [Offset: offset + ssize]
& Nbsp; Offset + = ssize
& Nbsp; delivery_tag, riconsegnato, ssize = unpack_from ('QBB', payload, offset)
& Nbsp; Offset + = 10
& Nbsp; scambio = payload [Offset: offset + ssize]
& Nbsp; Offset + = ssize
& Nbsp; ssize = unpack_from ('B', payload, offset) [0]
& Nbsp; Offset + = 1
& Nbsp; routing_key = payload [Offset: offset + ssize]
& Nbsp; Offset + = ssize
& Nbsp; di ritorno (consumer_tag, delivery_tag, riconsegnata,
& Nbsp; di scambio, routing_key)
Più di documentazione a venire.
Installazione
È possibile installare letterale sia tramite il Python Package Index (PyPI) o dai sorgenti.
Per installare usando pip:
pip installare letterale
Per installare usando easy_install:
& Nbsp; easy_install letterale
Se avete scaricato un tarball sorgente è possibile installarlo facendo quanto segue:
& Nbsp; python setup.py costruire
# Python setup.py install # come root
Bug Tracker
Se avete suggerimenti, segnalazioni di bug o fastidi pregato di segnalarli al nostro issue tracker a http://github.com/ask/literal.py/issues/
Contribuire
Sviluppo di literal.py avviene a Github: http://github.com/ask/literal.py
Si consiglia vivamente di partecipare allo sviluppo. . Se non ti piace Github (per qualche ragione) siete invitati a inviare patch regolari

Requisiti :

  • Python

Altri software di sviluppo Ask Solem

Kombu
Kombu

12 May 15

Github2
Github2

5 Jun 15

Celery
Celery

12 May 15

Commenti a Literal

I commenti non trovato
Aggiungi commento
Accendere le immagini!