Literal

Software skärmdump:
Literal
Mjukvaruinformation:
Version: 1.0.0
Ladda upp dagen: 15 Apr 15
Utvecklare: Ask Solem
Licens: Gratis
Popularitet: 11

Rating: nan/5 (Total Votes: 0)

Literal är ett projekt för att skapa ett sätt att generera Python kod med Python-kod. & Nbsp; Istället för att ha stränglitteraler av Python-kod, använd dig literal.py objekt som minns verksamheten gjort dem, och historien om verksamheten är den resulte Python programmet.
Detta är bara ett experiment som jag ville spela med; Det är användbarhet inte bevisat, och mer än sannolikt kommer att kastas bort som ett misslyckat experiment. Så använd med omsorg och försiktighet.
Snabböversikt
import bokstavlig
@ Literal.py
def unpack_octet (x, nyttolast, offset, unpack_from):
& Nbsp; x <<= unpack_from ("B", nyttolast, offset)
& Nbsp; offset + = 1
print (unpack_octet ())
Ger:
x = unpack_from ("B", nyttolast, offset)
offset + = 1
Eller ett annat exempel används för att skapa argument unpackers för AMQP protokollet:
def packa (metod):
& Nbsp; @ literal.py
& Nbsp; def kroppen (p, nyttolast, offset, unpack_from, argtuple, ssize):
& nbsp; fält = method.fields
& Nbsp; namn = p.tuple (* self.field_names)
& Nbsp; för i FSet i enumerate (fält):
& Nbsp; om len (FSet) == 1:
& Nbsp; för fält i FSet:
& Nbsp; name = p.var (field.name)
& Nbsp; om field.format == '*':
& Nbsp; # Detta är en sträng nyttolast,
& Nbsp; # inte behöver packa
& Nbsp; namn <<= nyttolast [offset: offset + ssize]
& Nbsp; offset + = ssize
& Nbsp; annars:
& Nbsp; # Ett enda fält för att packa upp
& Nbsp; namn <<= unpack_from (struct_format (field.format),
& Nbsp; nyttolast, offset) [0]
& Nbsp; offset + = field.size
& Nbsp; annars:
& Nbsp; # En lista över fältet för att packa upp
& Nbsp; dessa = p.tuple (* fset.names)
& Nbsp; dessa <<= unpack_from (struct_format (fset.format),
& Nbsp; nyttolast, offset)
& Nbsp; offset + = sum (f.size för f i FSet)
& Nbsp; returnera namn
. & Nbsp; returkropp () as_fun (lambda nyttolast, offset: 1,
& Nbsp; method.name)
Skulle generera följande kod för AMQP metoden basic_deliver:
def leverera (nyttolast, offset):
& Nbsp; ssize = unpack_from ("B", nyttolast, offset) [0]
& Nbsp; offset + = 1
& Nbsp; consumer_tag = nyttolast [offset: offset + ssize]
& Nbsp; offset + = ssize
& Nbsp; delivery_tag, redelivered, ssize = unpack_from ('QBB ", nyttolast, offset)
& Nbsp; offset + = 10
& Nbsp; utbyte = nyttolast [offset: offset + ssize]
& Nbsp; offset + = ssize
& Nbsp; ssize = unpack_from ("B", nyttolast, offset) [0]
& Nbsp; offset + = 1
& Nbsp; routing_key = nyttolast [offset: offset + ssize]
& Nbsp; offset + = ssize
& Nbsp; retur (consumer_tag, delivery_tag, redelivered,
& Nbsp; utbyte, routing_key)
Mer dokumentation att komma.
Installation
Du kan installera bokstav antingen via Python Package Index (PyPI) eller från källan.
Så här installerar du använder pip:
Pip installera bokstavlig
Så här installerar du använder easy_install:
& Nbsp; easy_install bokstav
Om du har hämtat en källa arkivet kan du installera det genom att göra följande:
& Nbsp; python setup.py build
# Python setup.py installera # som root
Bug tracker
Om du har några förslag, buggrapporter eller olägenheter vänligen rapportera dem till vår fråga tracker på http://github.com/ask/literal.py/issues/
Bidragande
Utveckling av literal.py händer på Github: http://github.com/ask/literal.py
Du är mycket uppmuntras att delta i utvecklingen. . Om du inte gillar Github (av någon anledning) är du välkommen att skicka regelbundna patchar

Krav :

  • Python

Annan programvara för utvecklare Ask Solem

Github2
Github2

5 Jun 15

Celery
Celery

12 May 15

Kombu
Kombu

12 May 15

celerymon
celerymon

20 Feb 15

Kommentarer till Literal

Kommentarer hittades inte
Kommentar
Slå på bilder!