swh.lister.dlang.lister module#

class swh.lister.dlang.lister.DlangLister(scheduler: SchedulerInterface, url: str = 'https://code.dlang.org', instance: str = 'dlang', credentials: Dict[str, Dict[str, List[Dict[str, str]]]] | None = None, max_origins_per_page: int | None = None, max_pages: int | None = None, enable_origins: bool = True)[source]#

Bases: StatelessLister[List[Dict[str, Any]]]

List D lang origins.

LISTER_NAME: str = 'dlang'#
VISIT_TYPE = 'git'#
INSTANCE = 'dlang'#
BASE_URL = 'https://code.dlang.org'#
PACKAGES_DUMP_URL_PATTERN = '{url}/api/packages/dump'#
KINDS = {'bitbucket': 'https://bitbucket.com', 'github': 'https://github.com', 'gitlab': 'https://gitlab.com'}#
KIND_URL_PATTERN = '{url}/{owner}/{project}'#
get_pages() Iterator[List[Dict[str, Any]]][source]#

Yield an iterator which returns ‘page’

It uses the api endpoint provided by https://registry.dlang.io/packages to get a list of package names with an origin url that corresponds to Git repository.

There is only one page that list all origins urls.

get_origins_from_page(page: List[Dict[str, Any]]) Iterator[ListedOrigin][source]#

Iterate on all pages and yield ListedOrigin instances