ManuelParser e valutatore del documento | |
Scarica ora |
Manuel Classifica e riepilogo
Annuncio pubblicitario
- Licenza:
- ZPL
- Prezzo:
- FREE
- Nome editore:
- Benji York
- Sito web dell'editore:
- http://pypi.python.org/pypi/manuel
Manuel Tag
Manuel Descrizione
Documento parser e valutatore Manuel è un modulo Python che analizza i documenti, valuta i loro contenuti, quindi formatta il risultato della valutazione. La funzionalità principale è accessibile attraverso un'istanza di un oggetto Manuel. Viene utilizzato per costruire la manipolazione di un tipo di documento. Ogni fase ha uno slot corrispondente a cui sono allegate varie implementazioni. >>> L'importazione ManuelparsingManuel funziona su documenti. Ogni documento viene creato da una stringa contenente una o più linee. >>> Source = "" "... Questo è il nostro documento, ha diverse linee. ... uno: 1, 2, 3 ... Due: 4, 5, 7 ... Tre: 3, 5, 1 ... "" ">>> Document = manuel.document (fonte) Ai fini di esempio creeremo un tipo di test che consiste in una sequenza di numeri, quindi consente di creare un oggetto numberstere per rappresentare l'elenco analizzato. >>> CLASS NUMERSTEST (oggetto): ... def __init __ (sé, descrizione, numeri): ... self.description = Descrizione ... self.numbers = Numbed Il documento è diviso in una o più regioni. Ogni regione è un distinto "blocco" del documento e sarà recitato Uppone nelle fasi successive (post-analizzate). Inizialmente il documento è composto da un singolo elemento, la stringa di origine. >>> Il documento offre un metodo "find_regions" per aiutare a localizzare le porzioni del documento a cui è interessato un particolare parser. Dato un'espressione regolare (sia come stringa, o compilata), restituirà gli oggetti "regione" che contengano oggetti Testo di origine abbinato, il numero di riga (basato su 1) inizia la regione, nonché l'oggetto Re.match associato. >>> Importa re >>> numeri_test_finder = re.compile (... r '^ (? P. *?): (? P (D +,? []?) +) $', re.mulline) >> > Regioni = Document.Find_regions (Numbers_test_Finder) >>> Regioni >>> Regioni .lineno 2 >>> Regioni .source 'One: 1, 2, 3 '>>> regioni .start_match.group (' Descrizione ')' one '>>> regioni .start_match.group (' numeri ')' 1, 2, 3'F Data due espressioni regolari find_regioni Usa il primo a identificare l'inizio di una regione e il secondo per identificare la fine. >>> Regione = document.find_regions (... re.compile ('^ one :. * $', re.multiline), ... re.compile ('^ tre :. * $', re.multiline) , ...) >>> Regione.Lineno 2 >>> Regione di stampa.source one: 1, 2, 3 Due: 4, 5, 7 tre: 3, 5, 1Also, invece di solo a "Start_match "Attributo, la regione avrà gli attributi Start_match e End_Match. >>> Region.Start_Match <_sresre_match object at 0x>>>> Regione.End_Match <_sresre_match object at 0x> Le regioni devono sempre consistono in linee intere. >>> Document.Find_regions ('1, 2, 3') Traceback (ultima chiamata più recente): ... ValisEVror: le regioni devono iniziare dall'inizio di una linea. >>> Document.Find_regions ('tre') Traceback (più recente call last): ... ValisEVror: le regioni devono terminare alla fine di una linea. >>> document.find_regions (... re.compile ('ne :. * $', re.multiline), ... re.compile ('^ one :. * $', re.mulline), .. .) Traceback (più recente chiamata ultima): ... ValisEVror: le regioni devono iniziare dall'inizio di una linea. >>> document.find_regions (... re.compile ('^ one :. * $', re.multiline), ... re.compile ('^ tre:', re.multiline), ...) Traceback (ultima chiamata più recente): ... ValueError: le regioni devono terminare alla fine di una linea. Ora possiamo registrare un parser che identificherà le regioni che ci interessano e crea oggetti numberst dal testo sorgente. >>> DEF Parse (Document): ... per regione in document.find_regions (numbers_test_finder): ... Descrizione = region.start_match.group ('Descrizione') ... numeri = mappa (... int, regione .start_match.group ('numeri'). Split (',')) ... test = numberstest (descrizione, numeri) ... document.replace_region (regione, test) >>> Parse (documento) >>> >>> Requisiti: · Python. Cosa c'è di nuovo in questa versione: · Correggere un bug che ha causato istanze di zope.testin.doctest.esempio (e istanze di sottoclassi della stessa) da ignorare silenziosamente
Manuel Software correlato
Batterie OCAML incluse
Una libreria di fondazione mantenuta comunitaria per i tuoi Projec Ocaml. ...
61