Twiggy

Screenshot Λογισμικό:
Twiggy
Στοιχεία Λογισμικού:
Εκδοχή: 0.4.4
Ανεβάστε ημερομηνία: 11 May 15
Προγραμματιστής: Peter Fein
Άδεια: Δωρεάν
Δημοτικότητα: 1

Rating: nan/5 (Total Votes: 0)

Twiggy είναι ένα έργο σε πρώιμο στάδιο για την οικοδόμηση μιας πιο Pythonic πακέτο υλοτομία.
Χρήση:
Κάνετε την εργασία απεικόνιση:
>>> SYS εισαγωγής? sys.stderr = sys.stdout
Η εγκατάσταση είναι απλή
Σε main.py σας:
>>> Twiggy εισαγωγής
>>> Twiggy.quick_setup ()
Καταγραφή μηνύματα
>>> Από την εισαγωγή Twiggy *
Κύρια διεπαφή αυτή είναι η μαγεία της καταγραφής:
>>> Συνδεθείτε #doctest: + ελλειπτικό

Λειτουργεί από το κουτί, με τη χρήση τυποποιημένων επίπεδα:
>>> Log.debug («Ίσως δεν με νοιάζει»)
Debug: Μπορεί να μην με νοιάζει
>>> Log.error («OMFG! Παντελόνι φωτιά!»)
ΣΦΑΛΜΑ: OMFG! Παντελόνια στην πυρκαγιά!
Υποστηρίζει μια ποικιλία από χορδές μορφή, αθέτησαν σε νέου τύπου:
>>> Log.info («φοράω {0} στο μου {όπου}», «παντελόνια», όπου = «πόδια»)
INFO: φοράω παντελόνια στα πόδια μου
Παλιά στυλ δουλεύει μια χαρά αν:
>>> Log.options (style = "τοις εκατό"). Πληροφορίες («Μου αρέσει% s '," ποδήλατα ")
INFO: Μου αρέσει ποδήλατα
Όπως κάνουν τα πρότυπα:
>>> Log.options (style = "δολάριο"). Info ($ τι kill », τι = 'Cars')
INFO: Αυτοκίνητα σκοτώσει
Μπορείτε να ονομάσετε τους υλοτόμους σας:
>>> Mylog = log.name («Alfredo»)
>>> Mylog.debug («γεια σου»)
Debug: Alfredo: hello
Αλλά το όνομα δεν έχει καμία σχέση με το αντικείμενο? είναι ακριβώς για ανθρώπινη χρήση:
>>> Mylog είναι log.name («Alfredo»)
Ψευδής
μηνύματα που εκπέμπει
Εκπομπών είναι χαλαρά συνδεδεμένες:
>>> Twiggy.emitters #doctest: + ελλειπτικό
{«*»: }
Μπορείτε να ορίσετε μια min_level σε επίπεδα εκπομπής αερίων:
>>> Twiggy.emitters [«*»]. Min_level = twiggy.Levels.INFO
>>> Log.debug («Βοήθεια, βοήθεια είμαι καταστέλλεται")
>>> Log.info («δεν είμαι αρκετά νεκρός ακόμα»)
INFO: Δεν είμαι νεκρός ακόμη
Μπορείτε να φιλτράρετε regexes, ή με αυθαίρετες λειτουργίες:
>>> Twiggy.emitters [«*»]. Φίλτρο = ". * Παντελόνι. *"
>>> Log.info ("Πήρε μου {0} στο", "παντελόνια")
INFO: Πήρε το παντελόνι μου στο
>>> Log.info ("Πήρε μου {0} στο", "πουκάμισο")
Ας επαναφέρετε όλες ότι:
>>> Twiggy.emitters [«*»]. Φίλτρο = True
>>> Twiggy.emitters [«*»]. Min_level = twiggy.Levels.DEBUG
Καλύτερη απόδοση
Οι νέες γραμμές καταστέλλονται από προεπιλογή? ότι μπορεί να απενεργοποιηθεί ανά μήνυμα:
>>> Log.info («χρήστης ninput nannoys nus»)
INFO: χρήστης ninput nannoys nus
>>> Log.options (suppress_newlines = False) .info («εμείς ndeal»)
INFO: εμείς
συμφωνία
Εξαιρέσεις πρόθεμα. Μπορεί επίσης να περάσει exc_info. Χρησιμοποιήστε ' n' ως πρόθεμα φορές σε μια ενιαία γραμμή:
>>> Δοκιμή:
... 1/0
... Εκτός από:
... Log.trace («λάθος») προειδοποίηση («μα όχι") #doctest.: + Ελλειπτικό
ΠΡΟΣΟΧΗ: oh Δίκτυα Αριστείας
TRACE traceback (πιο πρόσφατη κλήση τελευταία):
TRACE Αρχείο "", γραμμή 2, σε
TRACE 1/0
TRACE ZeroDivisionError: διαίρεσης ή modulo από το μηδέν
Μέθοδος Chaining
Μου αρέσει αυτό το στυλ αλυσοδεμένος πολύ.
>>> Log.name («Μπενίτο»). Info («Γεια σου»)
INFO: Benito: Γεια Σου
Κάνει δομημένη καταγραφή εύκολη:
>>> Log.fields (μονοπάτια = 42) .info («πρόκειται για μια βόλτα»)
INFO: διαδρομές = 42: πρόκειται για μια βόλτα
Κοντό κούρεμα. Μεγάλη για τα στατιστικά στοιχεία εκτέλεσης συγκέντρωση.
>>> Log.struct (μονοπάτια = 42, δελφίνια = «ευγνώμων»)
INFO: δελφίνια = ευγνώμων: διαδρομές = 42:
Μερική δέσμευση μπορεί να είναι χρήσιμη για webapps:
>>> Per_request_log = log.fields (request_id = '12345')
>>> Per_request_log.fields (σειρές = 100, user = «ειλικρινή»). Info («frobnicating βάση δεδομένων»)
INFO: request_id = 12345: σειρές = 100: user = ειλικρινείς: βάση δεδομένων frobnicating
>>> Per_request_log.fields (bytes = 5678) .info («αποστολή σελίδα πάνω από σωλήνες»)
INFO: bytes = 5678: request_id = 12345: αποστολή σελίδα πάνω από σωλήνες
Αλυσοδεμένο στυλ είναι φοβερό:
>>> Log.name («donjuan»). Πεδία (παντελόνι = «σέξι»). Πληροφορίες («γειά σου, {} που θέλουν να {} τι;", ο οποίος = «κυρίες», τι = «χορός»)
INFO: donjuan: παντελόνι = σέξι: Γεια σας, κυρίες θέλουν να χορέψουν;
Δυναμική!
Τυχόν λειτουργίες args / τομείς που ονομάζεται και η αξία υποκατεστημένο:
>>> Os εισαγωγής
>>> Από twiggy.lib thread_name εισαγωγής
>>> Thread_name ()
«MainThread»
>>> Log.fields (pid = os.getpid) .info ("Είμαι σε νήμα {0}", thread_name) #doctest: + ελλειπτικό
INFO: pid = 1076: Είμαι στο νήμα MainThread
Αυτό μπορεί να είναι χρήσιμο με μερικώς συνδεδεμένο υλοτόμοι, το οποίο ας είναι μαζί μας κάνετε κάποια δροσερή ουσία:
>>> Κατηγορία ThreadTracker (αντικείμενο):
... Def __init __ (self, obj):
... Αυτο .__ obj obj =
... # Ένα μερικώς συνδεδεμένο καταγραφικό
... Αυτο .__ log = log.name ("tracker"). Πεδία (obj_id = id (obj), το νήμα = thread_name)
... Αυτο .__ log.debug ("ξεκίνησε παρακολούθηση")
... Def __getattr __ (self, attR):
... Αυτο .__ log.debug ("πρόσβαση {0}", attR)
... Getattr επιστροφής (αυτο .__ obj, attR)
...
>>> Κατηγορία Bunch (αντικείμενο):
... Περάσει
...
>>> Foo = Bunch ()
>>> Foo.bar = 42
>>> Παρακολουθούνται = ThreadTracker (foo)
Debug: tracker: obj_id = 14063980: νήμα = MainThread: άρχισε την παρακολούθηση
>>> Tracked.bar
Debug: tracker: obj_id = 14063980: νήμα = MainThread: προσπελαστεί μπαρ
42
>>> Σπείρωμα εισαγωγής
>>> T = threading.Thread (target = λάμδα: tracked.bar * 2, name = "TheDoubler")
>>> T.start ()
Debug: tracker: obj_id = 14063980: νήμα = TheDoubler: προσπελαστεί μπαρ
Αν πραγματικά θέλετε να συνδεθείτε υπόλοιπο προς καταβολή, τοξική για την αναπαραγωγή () είναι ή τυλίξτε το σε λάμδα.
βελτιστοποιήσεις
Ως βελτιστοποίησης, ένα min_level μπορεί να ρυθμιστεί σε καταγραφείς:
>>> Mylog.min_level = twiggy.Levels.INFO
>>> Mylog.info («Βλέπεις αυτό")
INFO: Alfredo: Έχετε δει αυτό
>>> Mylog.debug ("Αυτή είναι κρυφό")
Παίρνουν επίσης ένα φίλτρο που λειτουργεί σε format_spec. Η περίπτωση χρήσης αποτελεσματικά διακοπή συγκεκριμένα μηνύματα σε μια βιβλιοθήκη η οποία κάνει κάτι ηλίθιο:
>>> Mylog.filter = S λάμδα: "ανοησίες" όχι σε s
>>> Mylog.info ("Starting ανοησία»)
INFO: Alfredo: ανοησία Ξεκινώντας
>>> Για i στο xrange (3): # για μεγάλες τιμές του 3
... Mylog.info («Καλώ ανοησίες!»)
>>> Mylog.info ("End ανοησία»)
INFO: Alfredo: Λήξη ανοησία

Απαιτήσεις :

  • Python

Άλλο λογισμικό του προγραμματιστή Peter Fein

Twiggy
Twiggy

12 Apr 15

Petapass
Petapass

11 May 15

Σχόλια για Twiggy

Τα σχόλια δεν βρέθηκε
προσθήκη σχολίου
Ενεργοποιήστε τις εικόνες!