Η γραμματική είναι ένα έργο για να δημιουργήσει έναν τρόπο για να δημιουργήσετε κώδικα Python με κώδικα Python & nbsp?. Αντί να κατεξοχήν συμβολοσειρά του κώδικα Python, μπορείτε να χρησιμοποιήσετε literal.py αντικείμενα που θυμάται τις εργασίες αυτές πραγματοποιούνται σε αυτούς, καθώς και η ιστορία των επιχειρήσεων είναι η προκύπτουσα πρόγραμμα Python.
Αυτό είναι απλά ένα πείραμα που ήθελα να παίξω με? Είναι η χρησιμότητα δεν έχει αποδειχθεί, και περισσότερο από πιθανό αυτό θα πρέπει να απορρίπτονται ως ένα αποτυχημένο πείραμα. Έτσι, η χρήση με φροντίδα και προσοχή.
Γρήγορη επισκόπηση
εισαγωγής κυριολεκτική
@ Literal.py
def unpack_octet (x, ωφέλιμο φορτίο, offset, unpack_from):
& Nbsp? X <<= unpack_from («Β», το ωφέλιμο φορτίο, offset)
& Nbsp? Αντισταθμίζεται + 1 =
εκτύπωσης (unpack_octet ())
Δίνει:
x = unpack_from («Β», το ωφέλιμο φορτίο, offset)
αντισταθμίζεται + 1 =
Ή ένα άλλο παράδειγμα που χρησιμοποιείται για τη δημιουργία αποσυσκευαστές επιχείρημα για την AMQP πρωτόκολλο:
def αποσυμπίεσης (μέθοδος):
& Nbsp? @ Literal.py
& Nbsp? Def σώμα (π, ωφέλιμο φορτίο, offset, unpack_from, argtuple, ssize):
& Nbsp? Πεδία = method.fields
& Nbsp? Ονόματα = p.tuple (* self.field_names)
& Nbsp? Για το i, fset στην αποκλειστική απαρίθμηση (πεδία):
& Nbsp? Αν len (fset) == 1:
& Nbsp? Για το πεδίο στο fset:
& Nbsp? Name = p.var (field.name)
& Nbsp? Αν field.format == «*»:
& Nbsp? # Αυτό είναι ένα ωφέλιμο φορτίο των χορδών,
& Nbsp? # Δεν πρέπει να απλήρωτος
& Nbsp? Όνομα <<= ωφέλιμο φορτίο [offset: αντισταθμίζεται + ssize]
& Nbsp? Αντισταθμίζεται + = ssize
& Nbsp? Αλλού:
& Nbsp? # Ένα ενιαίο πεδίο για να απλήρωτος
& Nbsp? Όνομα <<= unpack_from (struct_format (field.format),
& Nbsp? Ωφέλιμο φορτίο, offset) [0]
& Nbsp? Αντισταθμίζεται + = field.size
& Nbsp? Αλλού:
& Nbsp? # Ένας κατάλογος πεδίο για να απλήρωτος
& Nbsp? Αυτές = p.tuple (* fset.names)
& Nbsp? Αυτά <<= unpack_from (struct_format (fset.format),
& Nbsp? Ωφέλιμο φορτίο, offset)
& Nbsp? Αντισταθμίζεται + = άθροισμα (f.size για f στο fset)
& Nbsp? Ονόματα επιστρέφουν
. & Nbsp? Σώμα επιστροφής () as_fun (λάμδα ωφέλιμου φορτίου, offset: 1,
& Nbsp? Method.name)
Θα δημιουργήσει τον ακόλουθο κώδικα για το AMQP μέθοδο basic_deliver:
def παραδώσει (ωφέλιμο φορτίο, offset):
& Nbsp? Ssize = unpack_from («Β», το ωφέλιμο φορτίο, offset) [0]
& Nbsp? Αντισταθμίζεται + 1 =
& Nbsp? Consumer_tag = ωφέλιμο φορτίο [offset: αντισταθμίζεται + ssize]
& Nbsp? Αντισταθμίζεται + = ssize
& Nbsp? Delivery_tag, redelivered, ssize = unpack_from («QBB», ωφέλιμο φορτίο, offset)
& Nbsp? Αντισταθμίζεται + = 10
& Nbsp? Ανταλλαγής = ωφέλιμο φορτίο [offset: αντισταθμίζεται + ssize]
& Nbsp? Αντισταθμίζεται + = ssize
& Nbsp? Ssize = unpack_from («Β», το ωφέλιμο φορτίο, offset) [0]
& Nbsp? Αντισταθμίζεται + 1 =
& Nbsp? Routing_key = ωφέλιμο φορτίο [offset: αντισταθμίζεται + ssize]
& Nbsp? Αντισταθμίζεται + = ssize
& Nbsp? Επιστροφή (consumer_tag, delivery_tag, redelivered,
& Nbsp? Ανταλλαγή, routing_key)
Περισσότερες τεκμηρίωση για να έρθει.
installation
Μπορείτε να εγκαταστήσετε κυριολεκτική είτε μέσω του Δείκτη Python πακέτο (PyPI) ή από την πηγή.
Για να εγκαταστήσετε χρησιμοποιώντας PIP:
Pip εγκαταστήσετε κυριολεκτική
Για να εγκαταστήσετε χρησιμοποιώντας easy_install:
& Nbsp? Easy_install κυριολεκτική
Αν έχετε κατεβάσει ένα tarball πηγή μπορείτε να το εγκαταστήσετε κάνοντας τα εξής:
& Nbsp? Πύθωνα setup.py κατασκευής
# Python setup.py εγκαταστήσετε # ως root
bug tracker
Αν έχετε οποιεσδήποτε προτάσεις, αναφορές σφαλμάτων ή ενοχλήσεις παρακαλούμε ενημερώστε tracker θέμα μας στο http://github.com/ask/literal.py/issues/
Συμβολή
Ανάπτυξη literal.py συμβαίνει στο Github: http://github.com/ask/literal.py
Θα είναι ιδιαίτερα ενθαρρύνονται να συμμετέχουν στην ανάπτυξη. . Αν δεν σας αρέσει Github (για κάποιο λόγο) είστε ευπρόσδεκτοι να στείλετε την τακτική μπαλώματα
Απαιτήσεις :
- Python
Τα σχόλια δεν βρέθηκε