Literal

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

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

django-kombu
django-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!