Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@fschulze
Created February 19, 2019 13:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fschulze/60c0671fbde2230347897f45c6584e4d to your computer and use it in GitHub Desktop.
Save fschulze/60c0671fbde2230347897f45c6584e4d to your computer and use it in GitHub Desktop.
from devpi_common.types import ensure_unicode
from devpi_server.log import threadlog as log
from devpi_server.main import get_pluginmanager
from devpi_server.main import _main
from devpi_web.indexing import preprocess_project
from devpi_web.main import get_indexer
import sys
import time
def main():
pm = get_pluginmanager()
pm.register(Plugin())
_main(pm, sys.argv)
def iter_projects(xom, user, index):
timestamp = time.time()
stage = xom.model.getstage(ensure_unicode(user), ensure_unicode(index))
names = stage.list_projects_perstage()
for count, name in enumerate(names, start=1):
name = ensure_unicode(name)
current_time = time.time()
if current_time - timestamp > 3:
log.debug("currently search-indexed %s", count)
timestamp = current_time
yield preprocess_project(stage, name)
class Plugin:
def devpiserver_cmdline_run(self, xom):
user = 'root'
index = 'pypi'
log.info("indexing %s/%s" % (user, index))
indexer = get_indexer(xom.config)
indexer.update_projects(iter_projects(xom, user, index), clear=True)
log.info("finished indexing")
return 0
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment