======
README
======

Trove Classifiers
-----------------

The trove classifiers builder knows how to build the python classifiers.
We can list them as we need in the ?:action=list_classifiers method.
The original data are taken from the pypi page at:
http://pypi.python.org/pypi?%3Aaction=list_classifiers.

  >>> from pprint import pprint

  >>> import mypypi.api
  >>> classifierBuilder = mypypi.api.ClassifierBuilder()
  >>> print '\n'.join(classifierBuilder.list())
  Development Status :: 1 - Planning
  Development Status :: 2 - Pre-Alpha
  Development Status :: 3 - Alpha
  Development Status :: 4 - Beta
  Development Status :: 5 - Production/Stable
  Development Status :: 6 - Mature
  Development Status :: 7 - Inactive
  Environment :: Console
  Environment :: Console :: Curses
  Environment :: Console :: Framebuffer
  Environment :: Console :: Newt
  Environment :: Console :: svgalib
  Environment :: Handhelds/PDA's
  Environment :: MacOS X
  Environment :: MacOS X :: Aqua
  Environment :: MacOS X :: Carbon
  Environment :: MacOS X :: Cocoa
  Environment :: No Input/Output (Daemon)
  Environment :: Other Environment
  Environment :: Plugins
  Environment :: Web Environment
  Environment :: Web Environment :: Buffet
  Environment :: Web Environment :: Mozilla
  Environment :: Web Environment :: ToscaWidgets
  Environment :: Win32 (MS Windows)
  Environment :: X11 Applications
  Environment :: X11 Applications :: GTK
  Environment :: X11 Applications :: Gnome
  Environment :: X11 Applications :: KDE
  Environment :: X11 Applications :: Qt
  Framework :: Buildout
  Framework :: Chandler
  Framework :: Django
  Framework :: IDLE
  Framework :: Paste
  Framework :: Plone
  Framework :: Pylons
  Framework :: Setuptools Plugin
  Framework :: Trac
  Framework :: TurboGears
  Framework :: TurboGears :: Applications
  Framework :: TurboGears :: Widgets
  Framework :: Twisted
  Framework :: ZODB
  Framework :: Zope2
  Framework :: Zope3
  Intended Audience :: Customer Service
  Intended Audience :: Developers
  Intended Audience :: Education
  Intended Audience :: End Users/Desktop
  Intended Audience :: Financial and Insurance Industry
  Intended Audience :: Healthcare Industry
  Intended Audience :: Information Technology
  Intended Audience :: Legal Industry
  Intended Audience :: Manufacturing
  Intended Audience :: Other Audience
  Intended Audience :: Religion
  Intended Audience :: Science/Research
  Intended Audience :: System Administrators
  Intended Audience :: Telecommunications Industry
  License :: Aladdin Free Public License (AFPL)
  License :: DFSG approved
  License :: Eiffel Forum License (EFL)
  License :: Free For Educational Use
  License :: Free For Home Use
  License :: Free To Use But Restricted
  License :: Free for non-commercial use
  License :: Freely Distributable
  License :: Freeware
  License :: Netscape Public License (NPL)
  License :: Nokia Open Source License (NOKOS)
  License :: OSI Approved
  License :: OSI Approved :: Academic Free License (AFL)
  License :: OSI Approved :: Apache Software License
  License :: OSI Approved :: Apple Public Source License
  License :: OSI Approved :: Artistic License
  License :: OSI Approved :: Attribution Assurance License
  License :: OSI Approved :: BSD License
  License :: OSI Approved :: Common Public License
  License :: OSI Approved :: Eiffel Forum License
  License :: OSI Approved :: GNU Affero General Public License v3
  License :: OSI Approved :: GNU Free Documentation License (FDL)
  License :: OSI Approved :: GNU General Public License (GPL)
  License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
  License :: OSI Approved :: IBM Public License
  License :: OSI Approved :: Intel Open Source License
  License :: OSI Approved :: Jabber Open Source License
  License :: OSI Approved :: MIT License
  License :: OSI Approved :: MITRE Collaborative Virtual Workspace License (CVW)
  License :: OSI Approved :: Motosoto License
  License :: OSI Approved :: Mozilla Public License 1.0 (MPL)
  License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)
  License :: OSI Approved :: Nethack General Public License
  License :: OSI Approved :: Nokia Open Source License
  License :: OSI Approved :: Open Group Test Suite License
  License :: OSI Approved :: Python License (CNRI Python License)
  License :: OSI Approved :: Python Software Foundation License
  License :: OSI Approved :: Qt Public License (QPL)
  License :: OSI Approved :: Ricoh Source Code Public License
  License :: OSI Approved :: Sleepycat License
  License :: OSI Approved :: Sun Industry Standards Source License (SISSL)
  License :: OSI Approved :: Sun Public License
  License :: OSI Approved :: University of Illinois/NCSA Open Source License
  License :: OSI Approved :: Vovida Software License 1.0
  License :: OSI Approved :: W3C License
  License :: OSI Approved :: X.Net License
  License :: OSI Approved :: Zope Public License
  License :: OSI Approved :: zlib/libpng License
  License :: Other/Proprietary License
  License :: Public Domain
  Natural Language :: Afrikaans
  Natural Language :: Arabic
  Natural Language :: Bengali
  Natural Language :: Bosnian
  Natural Language :: Bulgarian
  Natural Language :: Catalan
  Natural Language :: Chinese (Simplified)
  Natural Language :: Chinese (Traditional)
  Natural Language :: Croatian
  Natural Language :: Czech
  Natural Language :: Danish
  Natural Language :: Dutch
  Natural Language :: English
  Natural Language :: Esperanto
  Natural Language :: Finnish
  Natural Language :: French
  Natural Language :: German
  Natural Language :: Greek
  Natural Language :: Hebrew
  Natural Language :: Hindi
  Natural Language :: Hungarian
  Natural Language :: Icelandic
  Natural Language :: Indonesian
  Natural Language :: Italian
  Natural Language :: Japanese
  Natural Language :: Javanese
  Natural Language :: Korean
  Natural Language :: Latin
  Natural Language :: Latvian
  Natural Language :: Macedonian
  Natural Language :: Malay
  Natural Language :: Marathi
  Natural Language :: Norwegian
  Natural Language :: Panjabi
  Natural Language :: Persian
  Natural Language :: Polish
  Natural Language :: Portuguese
  Natural Language :: Portuguese (Brazilian)
  Natural Language :: Romanian
  Natural Language :: Russian
  Natural Language :: Serbian
  Natural Language :: Slovak
  Natural Language :: Slovenian
  Natural Language :: Spanish
  Natural Language :: Swedish
  Natural Language :: Tamil
  Natural Language :: Telugu
  Natural Language :: Thai
  Natural Language :: Turkish
  Natural Language :: Ukranian
  Natural Language :: Urdu
  Natural Language :: Vietnamese
  Operating System :: BeOS
  Operating System :: MacOS
  Operating System :: MacOS :: MacOS 9
  Operating System :: MacOS :: MacOS X
  Operating System :: Microsoft
  Operating System :: Microsoft :: MS-DOS
  Operating System :: Microsoft :: Windows
  Operating System :: Microsoft :: Windows :: Windows 3.1 or Earlier
  Operating System :: Microsoft :: Windows :: Windows 95/98/2000
  Operating System :: Microsoft :: Windows :: Windows CE
  Operating System :: Microsoft :: Windows :: Windows NT/2000
  Operating System :: OS Independent
  Operating System :: OS/2
  Operating System :: Other OS
  Operating System :: PDA Systems
  Operating System :: POSIX
  Operating System :: POSIX :: AIX
  Operating System :: POSIX :: BSD
  Operating System :: POSIX :: BSD :: BSD/OS
  Operating System :: POSIX :: BSD :: FreeBSD
  Operating System :: POSIX :: BSD :: NetBSD
  Operating System :: POSIX :: BSD :: OpenBSD
  Operating System :: POSIX :: GNU Hurd
  Operating System :: POSIX :: HP-UX
  Operating System :: POSIX :: IRIX
  Operating System :: POSIX :: Linux
  Operating System :: POSIX :: Other
  Operating System :: POSIX :: SCO
  Operating System :: POSIX :: SunOS/Solaris
  Operating System :: PalmOS
  Operating System :: Unix
  Programming Language :: APL
  Programming Language :: ASP
  Programming Language :: Ada
  Programming Language :: Assembly
  Programming Language :: Awk
  Programming Language :: Basic
  Programming Language :: C
  Programming Language :: C#
  Programming Language :: C++
  Programming Language :: Cold Fusion
  Programming Language :: Delphi/Kylix
  Programming Language :: Dylan
  Programming Language :: Eiffel
  Programming Language :: Emacs-Lisp
  Programming Language :: Erlang
  Programming Language :: Euler
  Programming Language :: Euphoria
  Programming Language :: Forth
  Programming Language :: Fortran
  Programming Language :: Haskell
  Programming Language :: Java
  Programming Language :: JavaScript
  Programming Language :: Lisp
  Programming Language :: Logo
  Programming Language :: ML
  Programming Language :: Modula
  Programming Language :: OCaml
  Programming Language :: Object Pascal
  Programming Language :: Objective C
  Programming Language :: Other
  Programming Language :: Other Scripting Engines
  Programming Language :: PHP
  Programming Language :: PL/SQL
  Programming Language :: PROGRESS
  Programming Language :: Pascal
  Programming Language :: Perl
  Programming Language :: Pike
  Programming Language :: Pliant
  Programming Language :: Prolog
  Programming Language :: Python
  Programming Language :: Python :: 2
  Programming Language :: Python :: 2.3
  Programming Language :: Python :: 2.4
  Programming Language :: Python :: 2.5
  Programming Language :: Python :: 2.6
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3
  Programming Language :: Python :: 3.0
  Programming Language :: Python :: 3.1
  Programming Language :: REBOL
  Programming Language :: Rexx
  Programming Language :: Ruby
  Programming Language :: SQL
  Programming Language :: Scheme
  Programming Language :: Simula
  Programming Language :: Smalltalk
  Programming Language :: Tcl
  Programming Language :: Unix Shell
  Programming Language :: Visual Basic
  Programming Language :: XBasic
  Programming Language :: YACC
  Programming Language :: Zope
  Topic :: Adaptive Technologies
  Topic :: Artistic Software
  Topic :: Communications
  Topic :: Communications :: BBS
  Topic :: Communications :: Chat
  Topic :: Communications :: Chat :: AOL Instant Messenger
  Topic :: Communications :: Chat :: ICQ
  Topic :: Communications :: Chat :: Internet Relay Chat
  Topic :: Communications :: Chat :: Unix Talk
  Topic :: Communications :: Conferencing
  Topic :: Communications :: Email
  Topic :: Communications :: Email :: Address Book
  Topic :: Communications :: Email :: Email Clients (MUA)
  Topic :: Communications :: Email :: Filters
  Topic :: Communications :: Email :: Mail Transport Agents
  Topic :: Communications :: Email :: Mailing List Servers
  Topic :: Communications :: Email :: Post-Office
  Topic :: Communications :: Email :: Post-Office :: IMAP
  Topic :: Communications :: Email :: Post-Office :: POP3
  Topic :: Communications :: FIDO
  Topic :: Communications :: Fax
  Topic :: Communications :: File Sharing
  Topic :: Communications :: File Sharing :: Gnutella
  Topic :: Communications :: File Sharing :: Napster
  Topic :: Communications :: Ham Radio
  Topic :: Communications :: Internet Phone
  Topic :: Communications :: Telephony
  Topic :: Communications :: Usenet News
  Topic :: Database
  Topic :: Database :: Database Engines/Servers
  Topic :: Database :: Front-Ends
  Topic :: Desktop Environment
  Topic :: Desktop Environment :: File Managers
  Topic :: Desktop Environment :: GNUstep
  Topic :: Desktop Environment :: Gnome
  Topic :: Desktop Environment :: K Desktop Environment (KDE)
  Topic :: Desktop Environment :: K Desktop Environment (KDE) :: Themes
  Topic :: Desktop Environment :: PicoGUI
  Topic :: Desktop Environment :: PicoGUI :: Applications
  Topic :: Desktop Environment :: PicoGUI :: Themes
  Topic :: Desktop Environment :: Screen Savers
  Topic :: Desktop Environment :: Window Managers
  Topic :: Desktop Environment :: Window Managers :: Afterstep
  Topic :: Desktop Environment :: Window Managers :: Afterstep :: Themes
  Topic :: Desktop Environment :: Window Managers :: Applets
  Topic :: Desktop Environment :: Window Managers :: Blackbox
  Topic :: Desktop Environment :: Window Managers :: Blackbox :: Themes
  Topic :: Desktop Environment :: Window Managers :: CTWM
  Topic :: Desktop Environment :: Window Managers :: CTWM :: Themes
  Topic :: Desktop Environment :: Window Managers :: Enlightenment
  Topic :: Desktop Environment :: Window Managers :: Enlightenment :: Epplets
  Topic :: Desktop Environment :: Window Managers :: Enlightenment :: Themes DR15
  Topic :: Desktop Environment :: Window Managers :: Enlightenment :: Themes DR16
  Topic :: Desktop Environment :: Window Managers :: Enlightenment :: Themes DR17
  Topic :: Desktop Environment :: Window Managers :: FVWM
  Topic :: Desktop Environment :: Window Managers :: FVWM :: Themes
  Topic :: Desktop Environment :: Window Managers :: Fluxbox
  Topic :: Desktop Environment :: Window Managers :: Fluxbox :: Themes
  Topic :: Desktop Environment :: Window Managers :: IceWM
  Topic :: Desktop Environment :: Window Managers :: IceWM :: Themes
  Topic :: Desktop Environment :: Window Managers :: MetaCity
  Topic :: Desktop Environment :: Window Managers :: MetaCity :: Themes
  Topic :: Desktop Environment :: Window Managers :: Oroborus
  Topic :: Desktop Environment :: Window Managers :: Oroborus :: Themes
  Topic :: Desktop Environment :: Window Managers :: Sawfish
  Topic :: Desktop Environment :: Window Managers :: Sawfish :: Themes 0.30
  Topic :: Desktop Environment :: Window Managers :: Sawfish :: Themes pre-0.30
  Topic :: Desktop Environment :: Window Managers :: Waimea
  Topic :: Desktop Environment :: Window Managers :: Waimea :: Themes
  Topic :: Desktop Environment :: Window Managers :: Window Maker
  Topic :: Desktop Environment :: Window Managers :: Window Maker :: Applets
  Topic :: Desktop Environment :: Window Managers :: Window Maker :: Themes
  Topic :: Desktop Environment :: Window Managers :: XFCE
  Topic :: Desktop Environment :: Window Managers :: XFCE :: Themes
  Topic :: Documentation
  Topic :: Education
  Topic :: Education :: Computer Aided Instruction (CAI)
  Topic :: Education :: Testing
  Topic :: Games/Entertainment
  Topic :: Games/Entertainment :: Arcade
  Topic :: Games/Entertainment :: Board Games
  Topic :: Games/Entertainment :: First Person Shooters
  Topic :: Games/Entertainment :: Fortune Cookies
  Topic :: Games/Entertainment :: Multi-User Dungeons (MUD)
  Topic :: Games/Entertainment :: Puzzle Games
  Topic :: Games/Entertainment :: Real Time Strategy
  Topic :: Games/Entertainment :: Role-Playing
  Topic :: Games/Entertainment :: Side-Scrolling/Arcade Games
  Topic :: Games/Entertainment :: Simulation
  Topic :: Games/Entertainment :: Turn Based Strategy
  Topic :: Home Automation
  Topic :: Internet
  Topic :: Internet :: File Transfer Protocol (FTP)
  Topic :: Internet :: Finger
  Topic :: Internet :: Log Analysis
  Topic :: Internet :: Name Service (DNS)
  Topic :: Internet :: Proxy Servers
  Topic :: Internet :: WAP
  Topic :: Internet :: WWW/HTTP
  Topic :: Internet :: WWW/HTTP :: Browsers
  Topic :: Internet :: WWW/HTTP :: Dynamic Content
  Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries
  Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Message Boards
  Topic :: Internet :: WWW/HTTP :: Dynamic Content :: News/Diary
  Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Page Counters
  Topic :: Internet :: WWW/HTTP :: HTTP Servers
  Topic :: Internet :: WWW/HTTP :: Indexing/Search
  Topic :: Internet :: WWW/HTTP :: Site Management
  Topic :: Internet :: WWW/HTTP :: Site Management :: Link Checking
  Topic :: Internet :: WWW/HTTP :: WSGI
  Topic :: Internet :: WWW/HTTP :: WSGI :: Application
  Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware
  Topic :: Internet :: WWW/HTTP :: WSGI :: Server
  Topic :: Internet :: Z39.50
  Topic :: Multimedia
  Topic :: Multimedia :: Graphics
  Topic :: Multimedia :: Graphics :: 3D Modeling
  Topic :: Multimedia :: Graphics :: 3D Rendering
  Topic :: Multimedia :: Graphics :: Capture
  Topic :: Multimedia :: Graphics :: Capture :: Digital Camera
  Topic :: Multimedia :: Graphics :: Capture :: Scanners
  Topic :: Multimedia :: Graphics :: Capture :: Screen Capture
  Topic :: Multimedia :: Graphics :: Editors
  Topic :: Multimedia :: Graphics :: Editors :: Raster-Based
  Topic :: Multimedia :: Graphics :: Editors :: Vector-Based
  Topic :: Multimedia :: Graphics :: Graphics Conversion
  Topic :: Multimedia :: Graphics :: Presentation
  Topic :: Multimedia :: Graphics :: Viewers
  Topic :: Multimedia :: Sound/Audio
  Topic :: Multimedia :: Sound/Audio :: Analysis
  Topic :: Multimedia :: Sound/Audio :: CD Audio
  Topic :: Multimedia :: Sound/Audio :: CD Audio :: CD Playing
  Topic :: Multimedia :: Sound/Audio :: CD Audio :: CD Ripping
  Topic :: Multimedia :: Sound/Audio :: CD Audio :: CD Writing
  Topic :: Multimedia :: Sound/Audio :: Capture/Recording
  Topic :: Multimedia :: Sound/Audio :: Conversion
  Topic :: Multimedia :: Sound/Audio :: Editors
  Topic :: Multimedia :: Sound/Audio :: MIDI
  Topic :: Multimedia :: Sound/Audio :: Mixers
  Topic :: Multimedia :: Sound/Audio :: Players
  Topic :: Multimedia :: Sound/Audio :: Players :: MP3
  Topic :: Multimedia :: Sound/Audio :: Sound Synthesis
  Topic :: Multimedia :: Sound/Audio :: Speech
  Topic :: Multimedia :: Video
  Topic :: Multimedia :: Video :: Capture
  Topic :: Multimedia :: Video :: Conversion
  Topic :: Multimedia :: Video :: Display
  Topic :: Multimedia :: Video :: Non-Linear Editor
  Topic :: Office/Business
  Topic :: Office/Business :: Financial
  Topic :: Office/Business :: Financial :: Accounting
  Topic :: Office/Business :: Financial :: Investment
  Topic :: Office/Business :: Financial :: Point-Of-Sale
  Topic :: Office/Business :: Financial :: Spreadsheet
  Topic :: Office/Business :: Groupware
  Topic :: Office/Business :: News/Diary
  Topic :: Office/Business :: Office Suites
  Topic :: Office/Business :: Scheduling
  Topic :: Other/Nonlisted Topic
  Topic :: Printing
  Topic :: Religion
  Topic :: Scientific/Engineering
  Topic :: Scientific/Engineering :: Artificial Intelligence
  Topic :: Scientific/Engineering :: Astronomy
  Topic :: Scientific/Engineering :: Atmospheric Science
  Topic :: Scientific/Engineering :: Bio-Informatics
  Topic :: Scientific/Engineering :: Chemistry
  Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
  Topic :: Scientific/Engineering :: GIS
  Topic :: Scientific/Engineering :: Human Machine Interfaces
  Topic :: Scientific/Engineering :: Image Recognition
  Topic :: Scientific/Engineering :: Information Analysis
  Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator
  Topic :: Scientific/Engineering :: Mathematics
  Topic :: Scientific/Engineering :: Medical Science Apps.
  Topic :: Scientific/Engineering :: Physics
  Topic :: Scientific/Engineering :: Visualization
  Topic :: Security
  Topic :: Security :: Cryptography
  Topic :: Sociology
  Topic :: Sociology :: Genealogy
  Topic :: Sociology :: History
  Topic :: Software Development
  Topic :: Software Development :: Assemblers
  Topic :: Software Development :: Bug Tracking
  Topic :: Software Development :: Build Tools
  Topic :: Software Development :: Code Generators
  Topic :: Software Development :: Compilers
  Topic :: Software Development :: Debuggers
  Topic :: Software Development :: Disassemblers
  Topic :: Software Development :: Documentation
  Topic :: Software Development :: Embedded Systems
  Topic :: Software Development :: Internationalization
  Topic :: Software Development :: Interpreters
  Topic :: Software Development :: Libraries
  Topic :: Software Development :: Libraries :: Application Frameworks
  Topic :: Software Development :: Libraries :: Java Libraries
  Topic :: Software Development :: Libraries :: PHP Classes
  Topic :: Software Development :: Libraries :: Perl Modules
  Topic :: Software Development :: Libraries :: Pike Modules
  Topic :: Software Development :: Libraries :: Python Modules
  Topic :: Software Development :: Libraries :: Ruby Modules
  Topic :: Software Development :: Libraries :: Tcl Extensions
  Topic :: Software Development :: Localization
  Topic :: Software Development :: Object Brokering
  Topic :: Software Development :: Object Brokering :: CORBA
  Topic :: Software Development :: Pre-processors
  Topic :: Software Development :: Quality Assurance
  Topic :: Software Development :: Testing
  Topic :: Software Development :: Testing :: Traffic Generation
  Topic :: Software Development :: User Interfaces
  Topic :: Software Development :: Version Control
  Topic :: Software Development :: Version Control :: CVS
  Topic :: Software Development :: Version Control :: RCS
  Topic :: Software Development :: Version Control :: SCCS
  Topic :: Software Development :: Widget Sets
  Topic :: System
  Topic :: System :: Archiving
  Topic :: System :: Archiving :: Backup
  Topic :: System :: Archiving :: Compression
  Topic :: System :: Archiving :: Mirroring
  Topic :: System :: Archiving :: Packaging
  Topic :: System :: Benchmark
  Topic :: System :: Boot
  Topic :: System :: Boot :: Init
  Topic :: System :: Clustering
  Topic :: System :: Console Fonts
  Topic :: System :: Distributed Computing
  Topic :: System :: Emulators
  Topic :: System :: Filesystems
  Topic :: System :: Hardware
  Topic :: System :: Hardware :: Hardware Drivers
  Topic :: System :: Hardware :: Mainframes
  Topic :: System :: Hardware :: Symmetric Multi-processing
  Topic :: System :: Installation/Setup
  Topic :: System :: Logging
  Topic :: System :: Monitoring
  Topic :: System :: Networking
  Topic :: System :: Networking :: Firewalls
  Topic :: System :: Networking :: Monitoring
  Topic :: System :: Networking :: Monitoring :: Hardware Watchdog
  Topic :: System :: Networking :: Time Synchronization
  Topic :: System :: Operating System
  Topic :: System :: Operating System Kernels
  Topic :: System :: Operating System Kernels :: BSD
  Topic :: System :: Operating System Kernels :: GNU Hurd
  Topic :: System :: Operating System Kernels :: Linux
  Topic :: System :: Power (UPS)
  Topic :: System :: Recovery Tools
  Topic :: System :: Shells
  Topic :: System :: Software Distribution
  Topic :: System :: System Shells
  Topic :: System :: Systems Administration
  Topic :: System :: Systems Administration :: Authentication/Directory
  Topic :: System :: Systems Administration :: Authentication/Directory :: LDAP
  Topic :: System :: Systems Administration :: Authentication/Directory :: NIS
  Topic :: Terminals
  Topic :: Terminals :: Serial
  Topic :: Terminals :: Telnet
  Topic :: Terminals :: Terminal Emulators/X Terminals
  Topic :: Text Editors
  Topic :: Text Editors :: Documentation
  Topic :: Text Editors :: Emacs
  Topic :: Text Editors :: Integrated Development Environments (IDE)
  Topic :: Text Editors :: Text Processing
  Topic :: Text Editors :: Word Processors
  Topic :: Text Processing
  Topic :: Text Processing :: Filters
  Topic :: Text Processing :: Fonts
  Topic :: Text Processing :: General
  Topic :: Text Processing :: Indexing
  Topic :: Text Processing :: Linguistic
  Topic :: Text Processing :: Markup
  Topic :: Text Processing :: Markup :: HTML
  Topic :: Text Processing :: Markup :: LaTeX
  Topic :: Text Processing :: Markup :: SGML
  Topic :: Text Processing :: Markup :: VRML
  Topic :: Text Processing :: Markup :: XML
  Topic :: Utilities


PYPIProxy
---------

Our basic component which makes the mirroring possible is the used XML-RPC
connection to the PyPi server. Let's setup such a PYPI proxy connection.

  >>> import mypypi.api
  >>> pypiProxy = mypypi.api.getPYPIProxy()
  >>> pypiProxy
  <FakeXMLRPCPYPI for 'http://pypi.python.org/pypi'>

As you can see we use a testing PyPi server. This Fake XMLRPC PYpi proxy offers
test data and supports the real API. This allows us to run all tests without
to touch the real PyPi server.

PyPi offers different methods for retrive package and release data. Let's show
the different methods:


list_packages
-------------

Retrieve a list of the package names registered with the package index. Returns
a list of name strings.

  >>> pypiProxy.list_packages()
  ['z3c.form', 'z3c.authenticator', 'wsgi_intercept']


package_releases
----------------

Retrieve a list of the releases registered for the given package name. Returns
a list of version strings.

  >>> packageName = 'z3c.form'
  >>> pypiProxy.package_releases(packageName)
  ['1.9.0']

As you can see the above method returns only one singel version. There is an
option called ``show_hidden`` which will allow to show all release versions:

  >>> packageName = 'z3c.form'
  >>> show_hidden = True
  >>> pypiProxy.package_releases(packageName, show_hidden)
  ['1.9.0', '1.8.2', '1.8.1', '1.8.0', '1.7.0', '1.6.0', '1.5.0b1', '1.5.0',
   '1.4.0b1', '1.4.0', '1.3.0', '1.2.0', '1.1.0', '1.0c2', '1.0c1', '1.0.0']


release_urls
------------

Retrieve a list of download URLs for the given package release. Returns a list
of dicts with the following keys:

- url

- packagetype ('sdist', 'bdist', etc)

- filename

- size

- md5_digest

- downloads

- has_sig

- python_version (required version, or 'source', or 'any')

- comment_text

  >>> version = '1.9.0'
  >>> pprint(pypiProxy.release_urls(packageName, version))
  [{'comment_text': '',
    'downloads': 458,
    'filename': 'z3c.form-1.9.0.tar.gz',
    'has_sig': False,
    'md5_digest': '5b1404473489764ea209cd28f0974662',
    'packagetype': 'sdist',
    'python_version': 'source',
    'size': 37,
    'url': 'http://pypi.python.org/packages/source/z/z3c.form/z3c.form-1.9.0.tar.gz'}]

release_data
------------

Retrieve metadata describing a specific package release. Returns a dict with
keys for:

- name

- version

- stable_version

- author

- author_email

- maintainer

- maintainer_email

- home_page

- license

- summary

- description

- keywords

- platform

- download_url

- classifiers (list of classifier strings)

  >>> packageName = 'z3c.authenticator'
  >>> version = '0.5.0'
  >>> pprint(pypiProxy.release_data(packageName, version))
  {'_pypi_hidden': 1,
   '_pypi_ordering': 10,
   'author': 'Roger Ineichen and the Zope Community',
   'author_email': 'zope3-dev@zope.org',
   'cheesecake_code_kwalitee_id': None,
   'cheesecake_documentation_id': None,
   'cheesecake_installability_id': None,
   'classifiers': ['Development Status :: 4 - Beta',
                   'Environment :: Web Environment',
                   'Framework :: Zope3',
                   'Intended Audience :: Developers',
                   'License :: OSI Approved :: Zope Public License',
                   'Natural Language :: English',
                   'Operating System :: OS Independent',
                   'Programming Language :: Python',
                   'Topic :: Internet :: WWW/HTTP'],
   'description': 'This package provides an --- Release',
   'download_url': 'UNKNOWN',
   'home_page': 'http://cheeseshop.python.org/pypi/z3c.authenticator',
   'keywords': 'zope3 z3c json rpc tree',
   'license': 'ZPL 2.1',
   'maintainer': None,
   'maintainer_email': None,
   'name': 'z3c.authenticator',
   'obsoletes': [],
   'platform': 'UNKNOWN',
   'provides': [],
   'requires': [],
   'stable_version': None,
   'summary': 'IAuthentication implementation for for Zope3',
   'version': '0.5.0'}


search
------

Search the package database using the indicated search spec. The spec may
include any of the keywords described in the above list
(except 'stable_version' and 'classifiers'), for example:

{'description': 'spam'}

will search description fields. Within the spec, a field's value can
be a string or a list of strings (the values within the list are
combined with an OR), for example:

{'name': ['foo', 'bar']}.

Arguments for different fields are combined using either "and"
(the default) or "or". Example:

search({'name': 'foo', 'description': 'bar'}, 'or').

The results are returned as a list of dicts:

  >>> pypiProxy.search({'name': 'z3c.form', 'version': '1.9.0'}, 'and')
  [{'_pypi_ordering': 115, 'version': '1.9.0', 'name': 'z3c.form',
    'summary': 'An advanced form and widget framework for Zope 3'}]


changelog
---------

Retrieve a list of four-tuples (name, version, timestamp, action) since the
given timestamp. All timestamps are UTC values. The argument is a UTC integer
seconds since the epoch.

  >>> from time import time
  >>> since = int(time() - 60)
  >>> pypiProxy.changelog(since)
  [['pypi', '2005-08-01', 1198792881, 'update home_page, classifiers'],
   ['pypi', '2005-08-01', 1198792910, 'update summary, classifiers'],
   ['zope.app.publisher', '3.5.0a4', 1198850101, 'add source file zope.app.publisher-3.5.0a4.tar.gz']]
