diff options
author | Hans-Christoph Steiner <hans@eds.org> | 2013-09-16 19:46:53 -0400 |
---|---|---|
committer | Hans-Christoph Steiner <hans@eds.org> | 2013-09-16 19:46:53 -0400 |
commit | bff5a63b8eb0d3212225e0716877c23144e46fdb (patch) | |
tree | ab18f3552b26a7f99cdba32af456b38c505ed43f /PKG-INFO | |
parent | d1570e1793adcca75a0990f6d613928c880fcb9a (diff) |
Imported Upstream version 0.1.0
Diffstat (limited to 'PKG-INFO')
-rw-r--r-- | PKG-INFO | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/PKG-INFO b/PKG-INFO new file mode 100644 index 0000000..673ab22 --- /dev/null +++ b/PKG-INFO @@ -0,0 +1,159 @@ +Metadata-Version: 1.0 +Name: pynzb +Version: 0.1.0 +Summary: pynzb is a unified API for parsing NZB files, with several concrete implementations included +Home-page: http://github.com/ericflo/pynzb/tree/master +Author: Eric Florenzano +Author-email: floguy@gmail.com +License: BSD +Description: + Introduction + ------------ + + NZB is an XML-based file format for retrieving posts from NNTP (Usenet) servers. + Since NZB is XML-based, it's relatively easy to build one-off parsers to parse + NZB files. This project is an attempt to consolidate those many one-off NZB + parsers into one simple interface. + + This package includes three implementations: one based on expat, another based + on ElementTree, and a final implementation based on lxml. The order in which + they were listed is in order of compatibility. The expat version should work on + all versions of Python > 2.0, the lxml one will work on all versions > 2.5, and + lxml will only work if you have lxml installed. + + + A Note on Installing lxml + ------------------------- + + While lxml is not a requirement, I have had a hard time installing lxml in the + past. I have found this set of commands to work perfectly: + + .. sourcecode:: bash + + STATIC_DEPS=true easy_install 'lxml>=2.2beta4' + STATIC_DEPS=true sudo easy_install 'lxml>=2.2beta4' + + + API Documentation + ----------------- + + + Accessing the Default Parser + ============================ + + Simply import nzb_parser from the pynzb package. It's an instantiated version + of the fastest available parser that your system can support. + + + Other Parser Locations + ====================== + + ``ExpatNZBParser``: + Available in the ``pynzb.expat_nzb`` namespace. + + ``ETreeNZBParser``: + Available in the ``pynzb.etree_nzb`` namespace. + + ``LXMLNZBParser``: + Available in the ``pynzb.lxml_nzb`` namespace. + + + Using the NZB Parser + ==================== + + If you're using a specific parser, like the ``ETreeNZBParser``, you will first + have to instantiate it: + + .. sourcecode:: python + + nzb_parser = ETreeNZBParser() + + + Otherwise, you can just import the default parser for your system: + + .. sourcecode:: python + + from pynzb import nzb_parser + + + Then, simply call the ``parse`` method, giving it the xml string as the only + argument: + + .. sourcecode:: python + + files = nzb_parser.parse('<?xml ... my nzb file here ... </nzb>') + + + This will return a list of ``NZBFiles`` for you to use. + + + NZBFile Objects + =============== + + All of the parsers return ``NZBFile`` objects, which are objects with the + following properties: + + ``poster``: + The name of the user who posted the file to the newsgroup. + + ``date``: + A ``datetime.date`` representation of when the server first saw the file. + + ``subject``: + The subject used when the user posted the file to the newsgroup. + + ``groups``: + A list of strings representing the newsgroups in which this file may be + found. + + ``segments``: + A list of ``NZBSegment`` objects talking about where to get the contents + of this file. + + + NZBSegment Objects + ================== + + Each ``NZBFile`` has a list of ``NZBSegment`` objects, which include information + on how to retrieve a part of a file. Here's what you can find on an + ``NZBSegment`` object: + + ``number``: + The number of the segment in the list of files. + + ``bytes``: + The size of the segment, in bytes. + + ``message_id``: + The Message-ID of the segment (useful for retrieving the full contents) + + + Example + -------- + + In this example, we will grab an Ubuntu NZB and parse the file, printing out + some information about each file and its segments. + + .. sourcecode:: python + + from pynzb import nzb_parser + from urllib2 import urlopen + + # Grab a sample Ubuntu NZB + ubuntu_nzb = urlopen('http://media.eflorenzano.com/misc/sample-ubuntu-nzb.nzb').read() + + # Parse the NZB into files + files = nzb_parser.parse(ubuntu_nzb) + + # Print out each file's subject and the first two segment message ids + for nzb_file in files: + print nzb_file.subject + for segment in nzb_file.segments[:2]: + print ' ' + segment.message_id + if len(nzb_file.segments) > 2: + print ' ...' + +Keywords: nzb,parser,xml +Platform: UNKNOWN +Classifier: Programming Language :: Python +Classifier: Topic :: Software Development :: Libraries :: Python Modules |