Created
October 13, 2012 22:22
-
-
Save vsajip/3886402 to your computer and use it in GitHub Desktop.
Example use of locators module
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import optparse # >= 2.6 | |
import logging | |
from pprint import pprint | |
import sys | |
from distlib.locators import (SimpleScrapingLocator, PyPIRPCLocator, | |
DirectoryLocator) | |
def main(): | |
# Note that project names are case-sensitive for the XML-RPC locator. | |
parser = optparse.OptionParser(description='Locate distributions') | |
parser.add_option('-d', '--dir', dest='dir', default=None, | |
help='Use the directory locator') | |
parser.add_option('-r', '--rpc', dest='rpc', default=False, | |
help='Use the XML-RPC locator', action='store_true') | |
parser.add_option('-s', '--simple', dest='simple', default=None, | |
help='Use the "simple" scraping locator', | |
action='store_true') | |
parser.add_option('-u', '--url', dest='url', default=None, | |
help='Specify a URL to use for --rpc or --simple') | |
options, args = parser.parse_args() | |
if options.rpc: | |
locator = PyPIRPCLocator(options.url or 'http://python.org/pypi') | |
elif options.dir: | |
locator = DirectoryLocator(options.dir) | |
elif options.simple: | |
locator = SimpleScrapingLocator(options.url or | |
'http://pypi.python.org/simple/') | |
else: | |
raise ValueError("Don't know which locator to use.") | |
d = locator.get_project(args[0]) | |
pprint(d) | |
if __name__ == '__main__': | |
logging.basicConfig(format='%(name)s %(message)s', | |
#level=logging.DEBUG | |
) | |
logging.getLogger().addHandler(logging.FileHandler('locate.log', 'w')) | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment