doapfiend.plugins.ohloh

Package doapfiend :: Package plugins :: Module ohloh |
[hide private]
[frames] | no frames]

# Source Code for Module doapfiend.plugins.ohloh

     1  #!/usr/bin/env python
     2
     3  # pylint: disable-msg=W0221,R0201
     4
     5  """
     6
     7  ohloh
     8  =====
     9
    10  This plugin uses http://rdfohloh.wikier.org/ to fetch DOAP for
    11  projects listed on Ohlohh.
    12
    13
    14  """
    15
    16  __docformat__ = 'epytext'
    17
    18
    19  from doapfiend.utils import NotFoundError
    20  from doapfiend.plugins.base import Plugin
    21  from doapfiend.plugins.pkg_index import get_by_pkg_index
    22
    23
    24 -class OhlohPlugin(Plugin):
    25
    26      """Get DOAP from Ohloh package index"""
    27
    28      #This will be the opt_parser option (--oh) in the output group
    29      name = "oh"
    30      enabled = False
    31      enable_opt = name
    32
    33 -    def __init__(self):
    34          '''Setup RDF/XML OutputPlugin class'''
    35          super(OhlohPlugin, self).__init__()
    36          self.options = None
    37          self.query = None
    38
    39 -    def add_options(self, parser, output, search):
    40          """Add plugin's options to doapfiend's opt parser"""
    41          search.add_option('--%s' % self.name,
    42                  action='store',
    43                  dest=self.enable_opt,
    44                  help='Get DOAP by its Ohloh project name or id #.',
    45                  metavar='PROJECT_NAME')
    46          return parser, output, search
    47
    48 -    def search(self, proxy=None):
    49          '''
    50          Get Ohloh DOAP
    51
    52          @param proxy: Option HTTP proxy URL
    53          @type proxy: string
    54
    55          @rtype: unicode
    56          @returns: Single DOAP
    57
    58          '''
    59          if hasattr(self.options, self.name):
    60              self.query = getattr(self.options, self.name)
    61          #Else self.query was set directly, someone not using the CLI
    62          try:
    63              return get_by_pkg_index(self.name, self.query, proxy)
    64          except NotFoundError:
    65              print "Not found: %s" % self.query
    66