diff --git a/README.md b/README.md --- a/README.md +++ b/README.md @@ -86,17 +86,24 @@ ## Local run -PyPI loader expects as input: -- project: a pypi project name (ex: arrow) -- project_url: uri to the pypi project (html page) -- project_metadata_url: uri to the pypi metadata information (json page) - +The built-in command-line will run the loader for a project in the main PyPI archive. +For instance, to load arrow: ``` sh -$ python3 -Python 3.6.6 (default, Jun 27 2018, 14:44:17) -[GCC 8.1.0] on linux -Type "help", "copyright", "credits" or "license" for more information. ->>> import logging; logging.basicConfig(level=logging.DEBUG ->>> project='arrow; from swh.loader.pypi.tasks import LoadPyPI; ->>> LoadPyPI().run(project, 'https://pypi.org/pypi/%s/' % project, 'https://pypi.org/pypi/%s/json' % project) +python3 -m swh.loader.pypi arrow +``` + +If you need more control, you can use the loader directly. It expects three arguments: +- project: a PyPI project name (f.e.: arrow) +- project_url: URL of the PyPI project (human-readable html page) +- project_metadata_url: URL of the PyPI metadata information (machine-parsable json document) + +``` python +import logging +logging.basicConfig(level=logging.DEBUG) + +from swh.loader.pypi.tasks import LoadPyPI + +project='arrow' + +LoadPyPI().run(project, 'https://pypi.org/pypi/%s/' % project, 'https://pypi.org/pypi/%s/json' % project) ``` diff --git a/swh/loader/pypi/loader.py b/swh/loader/pypi/loader.py --- a/swh/loader/pypi/loader.py +++ b/swh/loader/pypi/loader.py @@ -242,3 +242,19 @@ if self.done: self.generate_and_load_snapshot() self.flush() + + +if __name__ == '__main__': + import logging + import sys + logging.basicConfig(level=logging.DEBUG) + if len(sys.argv) != 2: + logging.error('Usage: %s ' % sys.argv[0]) + sys.exit(1) + module_name = sys.argv[1] + loader = PyPILoader() + loader.load( + module_name, + 'https://pypi.org/projects/%s/' % module_name, + 'https://pypi.org/pypi/%s/json' % module_name, + )