artifinder¶
src.scrapers.artifinder
¶
Loader for ArtiFinder-Data (https://github.com/DistriNet/ArtiFinder-Data).
ArtiFinder scrapes conference papers directly and identifies links to their artifacts. The published data set is organised as::
data/<venue>/<year>.yaml
where <venue> is one of ccs, ndss, sp, usenix and each YAML
file is a list of entries::
- title: "Paper title."
authors: ["Jane Doe", "John Roe 0001"]
page_link: "https://doi.org/..."
discovered_artifact: "https://github.com/org/repo" # or null
Only entries whose discovered_artifact is non-null carry a usable link, but
the total number of scanned papers per conference-year is also reported so that
a discovery rate can be computed.
Public API
load_artifinder(conf_regex=None) -> ArtiFinderData load_artifinder_data(conf_regex=None) -> list[dict] # entries only
ArtiFinderData
¶
Bases: NamedTuple
Parsed ArtiFinder data set.
Attributes:
| Name | Type | Description |
|---|---|---|
entries |
list[dict]
|
One dict per paper that has a discovered artifact link, with
keys |
counts |
list[dict]
|
One dict per conference-year with keys |
source_updated |
str | None
|
|
Source code in src/scrapers/artifinder.py
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | |
normalize_artifact_url(url: str) -> str
¶
Return url with an explicit scheme and no trailing slash.
ArtiFinder sometimes records bare hosts (github.com/org/repo); prefix
those with https://. Values that already carry a scheme are returned
unchanged apart from trailing-slash trimming.
Source code in src/scrapers/artifinder.py
90 91 92 93 94 95 96 97 98 99 100 101 102 | |
load_artifinder(conf_regex: str | None = None, min_year: int | None = DEFAULT_MIN_YEAR, local_dir: str | Path | None = None) -> ArtiFinderData
¶
Download and parse the ArtiFinder data set.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
conf_regex
|
str | None
|
Optional regex applied to |
None
|
min_year
|
int | None
|
Earliest conference edition year to include (inclusive).
Defaults to :data: |
DEFAULT_MIN_YEAR
|
local_dir
|
str | Path | None
|
Optional path to a local ArtiFinder-Data checkout (repo root
or its |
None
|
Source code in src/scrapers/artifinder.py
236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 | |
load_artifinder_data(conf_regex: str | None = None, min_year: int | None = DEFAULT_MIN_YEAR, local_dir: str | Path | None = None) -> list[dict]
¶
Convenience wrapper returning only the entries with discovered artifacts.
Source code in src/scrapers/artifinder.py
318 319 320 321 322 323 324 | |