Saved in:
| Main Author: | |
|---|---|
| Format: | Recurso digital |
| Language: | English |
| Published: |
Zenodo
2025
|
| Online Access: | https://doi.org/10.5281/zenodo.17666438 |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Table of Contents:
- <h2>Dataset Overview</h2> <p><strong>projects_discovery.zip</strong><br>Includes all auxiliary files used during dataset construction and during the generation of the CSV files contained in <code>repositories_dataset.zip</code>.</p> <ul> <li> <p><strong>clone_repos.py</strong> – Clones all repositories listed in <code>top_repos.txt</code> into the source directory. The official repository list used in the study is provided in <code>top_repos_official.txt</code>.</p> </li> <li> <p><strong>create_repo_links.py / extract_repo_links.py</strong> – Utility scripts responsible for normalizing, cleaning, and generating correct GitHub repository paths for Python projects.</p> </li> <li> <p><strong>filter_repos_annotations.py</strong> – Filters repositories based on a minimum threshold of type-annotation coverage. Only projects meeting or exceeding the specified annotation percentage are retained.</p> </li> <li> <p><strong>get_about.py</strong> – Extracts the “About” and descriptive metadata from GitHub repositories to support repository categorization.</p> </li> <li> <p><strong>merge_topics.py</strong> – Merges topic metadata from multiple CSV sources into a unified structure.</p> </li> </ul> <p><strong>type_hints.zip</strong><br>Contains all scripts responsible for extracting, aggregating, and processing type-annotation information.</p> <ul> <li> <p><strong>type_extractor.py</strong> – Recursively scans all Python files inside each repository under <code>repos/</code>. For every file, it records all detected type annotations and outputs a CSV located at <code>output/{repository}.csv</code>. Each row contains:<br><code>["file", "member_name", "type", "member_type", "context_code"]</code>.</p> </li> <li> <p><strong>type_extractor_metrics.py</strong> – Generates a per-repository summary from the extractor output. Produces a <code>summary.csv</code> including:<br><code>["repo", "total", "typed_total", "total_typed_%", "variables_total", "variables_typed", "variables_typed_%", "parameters_total", "parameters_typed", "parameters_typed_%", "returns_total", "returns_typed", "returns_typed_%"]</code>.<br>A final <strong>GLOBAL</strong> row aggregates all repositories to provide overall statistics.</p> </li> <li> <p><strong>strip_annotations.py</strong> – Produces multi-level code snippets (local, medium, full scope) for all annotated regions. Each repository receives a CSV containing the extracted snippets. These files are used for evaluating small LLMs on automatic type-inference tasks.</p> </li> <li> <p><strong>delimiter.py / drop_duplicates.py</strong> – Utility scripts for data cleaning, duplicate removal, and consistent CSV formatting.</p> </li> <li><strong>pipeline.py - </strong>Contains a small pipeline where each snippet is inputted into a small size LLM model, deepseek-r1:7b in this case, for automatic type inference performance.</li> <li><strong>type_summary.py - </strong>Type to extract and create a category for each type seem at each repository unique csv file.</li> <li>add_category_column.py - Helper file to append the category column at the summary dataset.</li> </ul> <p><strong>resulting_dataset_sheets/</strong><br>Contains the primary consolidated CSV files used for analysis in the paper.</p> <ul> <li> <p><strong>repos_merged.csv</strong> – Integrates GitHub repository URLs, classification (library vs. non-library), and descriptive metadata such as repository topics and “About” fields.</p> </li> <li> <p><strong>summary.csv</strong> – Merges all computed metrics required to answer each research question.</p> </li> </ul> <p><strong>repositories_dataset/</strong><br>A reduced sample of the full 136-GB dataset. Each file corresponds to the output of <code>type_extractor.py</code> for one repository.<br>Columns are:</p> <ul> <li> <p><strong>file</strong> – File path of the Python source where the annotation was found.</p> </li> <li> <p><strong>member_name</strong> – Identifier of the function, variable, or member containing the annotation.</p> </li> <li> <p><strong>type</strong> – The explicitly declared type annotation.</p> </li> <li> <p><strong>context_code</strong> – The code snippet surrounding the annotation.</p> </li> </ul> <p>The complete dataset (not fully uploaded due to size constraints) contains the full set of extracted annotations across all analyzed repositories.</p>