Literal

Skjermbilde programvare:
Literal
Prog.varedetaljer:
Versjon: 1.0.0
Last opp dato: 15 Apr 15
Utvikler: Ask Solem
Lisens: Gratis
Popularitet: 41

Rating: nan/5 (Total Votes: 0)

Literal er et prosjekt for å lage en måte å generere Python kode med Python-kode. & Nbsp; I stedet for å ha strenger av Python-kode, bruker du literal.py gjenstander som husker operasjoner gjøres til dem, og historien om operasjoner er den resulterende Python-programmet.
Dette er bare et eksperiment som jeg ønsket å spille med; Det er nytten er ikke bevist, og mer enn sannsynlig vil dette bli kastet bort som et mislykket eksperiment. Så bruk med forsiktighet og varsomhet.
Rask oversikt
import bokstavelig
@ Literal.py
def unpack_octet (x, nyttelast, offset, unpack_from):
& Nbsp; x <<= unpack_from ('B', nyttelast, offset)
& Nbsp; offset + = 1
print (unpack_octet ())
Gir:
x = unpack_from ('B', nyttelast, offset)
offset + = 1
Eller et annet eksempel brukes til å lage argument utpakkere for AMQP protokollen:
def pakk (metode):
& Nbsp; @ literal.py
& Nbsp; def kroppen (p, nyttelast, offset, unpack_from, argtuple, ssize):
& nbsp; felt = method.fields
& Nbsp; navn = p.tuple (* self.field_names)
& Nbsp; for jeg, FSET i nummerere (felt):
& Nbsp; hvis Len (FSET) == 1:
& Nbsp; for felt i FSET:
& Nbsp; name = p.var (field.name)
& Nbsp; hvis field.format == '*':
& Nbsp; # Dette er en streng nyttelast,
& Nbsp; # ikke trenger å pakke ut
& Nbsp; navn <<= nyttelast [offset: offset + ssize]
& Nbsp; offset + = ssize
& Nbsp; annet:
& Nbsp; # Et enkelt felt å pakke
& Nbsp; navn <<= unpack_from (struct_format (field.format),
& Nbsp; nyttelast, offset) [0]
& Nbsp; offset + = field.size
& Nbsp; annet:
& Nbsp; # En liste over feltet for å pakke ut
& Nbsp; disse = p.tuple (* fset.names)
& Nbsp; disse <<= unpack_from (struct_format (fset.format),
& Nbsp; nyttelast, offset)
& Nbsp; offset + = sum (f.size for f i FSET)
& Nbsp; returnere navn
. & Nbsp; retur kroppen () as_fun (lambda nyttelast, offset: 1,
& Nbsp; method.name)
Gir følgende kode for AMQP metode basic_deliver:
def levere (nyttelast, offset):
& Nbsp; ssize = unpack_from ('B', nyttelast, offset) [0]
& Nbsp; offset + = 1
& Nbsp; consumer_tag = nyttelast [offset: offset + ssize]
& Nbsp; offset + = ssize
& Nbsp; delivery_tag, tilbakelevert, ssize = unpack_from ('QBB', nyttelast, offset)
& Nbsp; offset + = 10
& Nbsp; utveksling = nyttelast [offset: offset + ssize]
& Nbsp; offset + = ssize
& Nbsp; ssize = unpack_from ('B', nyttelast, offset) [0]
& Nbsp; offset + = 1
& Nbsp; routing_key = nyttelast [offset: offset + ssize]
& Nbsp; offset + = ssize
& Nbsp; avkastning (consumer_tag, delivery_tag, tilbakelevert,
& Nbsp; utveksling, routing_key)
Mer dokumentasjon for å komme.
Installasjon
Du kan installere bokstavelig enten via Python Package Index (PyPI) eller fra kilden.
Installere ved hjelp av pip:
PIP installere bokstavelig
Installere ved hjelp easy_install:
& Nbsp; easy_install bokstavelig
Hvis du har lastet ned en kilde tarball kan du installere det ved å gjøre følgende:
& Nbsp; python setup.py build
# Python setup.py installere # som root
Bug tracker
Hvis du har noen forslag, feilrapporter eller irritasjonsmomenter vennligst meld fra til vår saksporeren på http://github.com/ask/literal.py/issues/
Bidra
Utvikling av literal.py skjer på Github: http://github.com/ask/literal.py
Du er sterkt oppfordret til å delta i utviklingen. . Hvis du ikke liker Github (for noen grunn) du er velkommen til å sende regelmessige patcher

Krav :

  • Python

Annen programvare fra utvikleren Ask Solem

Kombu
Kombu

12 May 15

celerymon
celerymon

20 Feb 15

Celery
Celery

12 May 15

Kommentarer til Literal

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!