Literal

Software screenshot:
Literal
Software informatie:
Versie: 1.0.0
Upload datum: 15 Apr 15
Ontwikkelaar: Ask Solem
Licentie: Gratis
Populariteit: 11

Rating: nan/5 (Total Votes: 0)

Letterlijke is een project om een ​​manier om Python-code met Python-code genereren van maken & nbsp;. In plaats van letterlijke tekenreeksen van Python-code, literal.py voorwerpen gebruik je dat de operaties gedaan om hen herinnert, en de geschiedenis van de operaties is het resulterende Python programma.
Dit is slechts een experiment dat ik wilde spelen met; Het is het nut is niet bewezen, en meer dan waarschijnlijk zal dit worden weggegooid als een mislukt experiment. Dus gebruik met zorg en voorzichtigheid.
Snel overzicht
import letterlijke
@ Literal.py
def unpack_octet (x, payload, offset, unpack_from):
& Nbsp; x <<= unpack_from ('B', payload, offset)
& Nbsp; offset + = 1
print (unpack_octet ())
Geeft:
x = unpack_from ('B', payload, offset)
offset + = 1
Of een ander voorbeeld gebruikt om argument ontpakkers voor de AMQP protocol te maken:
def uitpakken (methode):
& Nbsp; @ literal.py
& Nbsp; def lichaam (p, payload, offset, unpack_from, argtuple, ssize):
& Nbsp; velden = method.fields
& Nbsp; namen = p.tuple (* self.field_names)
& Nbsp; voor i, fset in enumerate (velden):
& Nbsp; als len (fset) == 1:
& Nbsp; voor in het veld in fset:
& Nbsp; naam = p.var (field.name)
& Nbsp; als field.format == '*':
& Nbsp; # Dit is een string laadvermogen,
& Nbsp; # niet hoeft uit te pakken
& Nbsp; naam <<= laadvermogen [offset: offset + ssize]
& Nbsp; offset + = ssize
& Nbsp; anders:
& Nbsp; # Een enkel veld uit te pakken
& Nbsp; naam <<= unpack_from (struct_format (field.format),
& Nbsp; payload, offset) [0]
& Nbsp; offset + = field.size
& Nbsp; anders:
& Nbsp; # Een lijst van het veld uit te pakken
& Nbsp; deze = p.tuple (* fset.names)
& Nbsp; deze <<= unpack_from (struct_format (fset.format),
& Nbsp; payload, offset)
& Nbsp; offset + = som (f.size for f in fset)
& Nbsp; terug namen
. & Nbsp; return lichaam () as_fun (lambda payload, offset: 1,
& Nbsp; method.name)
Zou de volgende code voor de AMQP methode basic_deliver genereren:
def leveren (payload, offset):
& Nbsp; ssize = unpack_from ('B', payload, offset) [0]
& Nbsp; offset + = 1
& Nbsp; consumer_tag = laadvermogen [offset: offset + ssize]
& Nbsp; offset + = ssize
& Nbsp; delivery_tag, teruggeleverd, ssize = unpack_from ('QBB', payload, offset)
& Nbsp; offset + = 10
& Nbsp; uitwisseling = laadvermogen [offset: offset + ssize]
& Nbsp; offset + = ssize
& Nbsp; ssize = unpack_from ('B', payload, offset) [0]
& Nbsp; offset + = 1
& Nbsp; routing_key = laadvermogen [offset: offset + ssize]
& Nbsp; offset + = ssize
& Nbsp; return (consumer_tag, delivery_tag, redelivered,
& Nbsp; uitwisseling, routing_key)
Meer documentatie te komen.
installatie
U kunt zowel via de Python Package Index (PyPI) of van bron letterlijke installeren.
Te installeren met pip:
pip letterlijke installeren
Te installeren met easy_install:
& Nbsp; easy_install letterlijke
Als u een bron tarball hebt gedownload, kunt u deze installeren door het volgende te doen:
& Nbsp; python setup.py build
# Python setup.py installeren # als root
Bug tracker
Als u suggesties, bug reports of ergernissen hebben meld deze dan naar onze issue tracker op http://github.com/ask/literal.py/issues/
Bijdragen
Ontwikkeling van literal.py gebeurt op Github: http://github.com/ask/literal.py
U wordt sterk aangemoedigd om aan de ontwikkeling. . Als je niet van Github (om wat voor reden) bent u welkom om regelmatig verzenden patches bent

Eisen

  • Python

Andere software van ontwikkelaar Ask Solem

Github2
Github2

5 Jun 15

django-kombu
django-kombu

12 May 15

Kombu
Kombu

12 May 15

Reacties op Literal

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!