本数据集源自 Google Code Archive,它是 Google Code 托管项目的留存快照。Google Code 是 Google 旗下的开源项目托管服务,运营时间为 2006 年至 2016 年。在其运营期间,Google Code 曾是当时主要的代码托管平台之一,在关闭前托管了数十万个开源项目。该档案提供了现代软件工程形成时期开源开发的独特历史记录。
| 统计量 | 数值 |
|---|---|
| 总文件数 | 65,825,565 |
| 总仓库数 | 488,618 |
| 总大小 | 47 GB(压缩 Parquet 格式) |
| 编程语言 | 454 种 |
| 文件格式 | 采用 Zstd 压缩的 Parquet 格式(71 个文件) |
数据集包含 454 种编程语言。按文件数量排名的前 30 种语言如下:
| 排名 | 语言 | 文件数 |
|---|---|---|
| 1 | Java | 16,331,993 |
| 2 | PHP | 12,764,574 |
| 3 | HTML | 5,705,184 |
| 4 | C++ | 5,090,685 |
| 5 | JavaScript | 4,937,765 |
| 6 | C | 4,179,202 |
| 7 | C# | 3,872,245 |
| 8 | Python | 2,207,240 |
| 9 | CSS | 1,697,385 |
| 10 | Objective-C | 1,186,050 |
| 11 | Shell | 639,183 |
| 12 | Java Server Pages | 541,498 |
| 13 | ActionScript | 540,557 |
| 14 | Makefile | 481,563 |
| 15 | ASP.NET | 381,389 |
| 16 | Smarty | 339,555 |
| 17 | Ruby | 331,743 |
| 18 | Go | 316,427 |
| 19 | Perl | 307,960 |
| 20 | Vim Script | 216,236 |
| 21 | Lua | 215,226 |
| 22 | HTML+PHP | 150,781 |
| 23 | HTML+Razor | 149,131 |
| 24 | MATLAB | 145,686 |
| 25 | Batchfile | 138,523 |
| 26 | Pascal | 135,992 |
| 27 | Visual Basic .NET | 118,732 |
| 28 | TeX | 110,379 |
| 29 | Less | 98,221 |
| 30 | Unix Assembly | 94,758 |
该数据集包含来自 Google Code Archive 中指定的具有各种许可证的代码库文件:
| 许可证 | 文件数量 |
|---|---|
| Apache License 2.0 (asf20) | 21,568,143 |
| GNU GPL v3 (gpl3) | 14,843,470 |
| GNU GPL v2 (gpl2) | 6,824,185 |
| 其他开源许可证 (oos) | 5,433,436 |
| MIT License (mit) | 4,754,567 |
| GNU LGPL (lgpl) | 4,073,137 |
| BSD License (bsd) | 3,787,348 |
| Artistic License (art) | 1,910,047 |
| Eclipse Public License (epl) | 1,587,289 |
| Mozilla Public License 1.1 (mpl11) | 580,102 |
| 多重许可证 (multiple) | 372,457 |
| Google Summer of Code (gsoc) | 63,292 |
| 公共领域 (publicdomain) | 28,092 |
| 字段 | 类型 | 描述 |
|---|---|---|
code | string | 源文件内容(UTF-8 编码) |
repo_name | string | Google Code 项目名称 |
path | string | 文件在代码库中的路径(相对于代码库根目录) |
language | string | 由 go-enry 识别的编程语言 |
license | string | 代码库的许可证(Google Code 许可证标识符) |
size | int64 | 源文件的大小(以字节为单位) |
google_code_0000.parquet 至 google_code_0070.parquet)所有样本均位于训练划分中。没有验证或测试划分。
{
'code': 'public class HundredIntegers {\n\tpublic static void main (String[] args) {\n\t\tfor (int i = 1; i<=100; i++) {\n\t\t\tSystem.out.println(i);\n\t\t}\n\t}\n}',
'repo_name': '100integers',
'path': 'HundredIntegers.java',
'language': 'Java',
'license': 'epl',
'size': 147
}大多数项目 ID 来源于 Archive Team Google Code Wiki。此列表为爬取和提取过程提供了基础。
数据集通过多阶段流程创建:
hasSource: true)编程语言使用 go-enry 进行检测,这是 GitHub Linguist 库的 Go 语言移植版。仅包含被分类为 Programming(编程语言)或 Markup(标记语言)类型的文件(排除 Data(数据)和 Prose(散文)类型)。
许可证直接从 Google Code Archive 项目元数据中获取。该档案保留了项目所有者在 Google Code 上创建仓库时所做的原始许可证选择。
应用了广泛的筛选以确保数据质量:
| 限制项 | 值 |
|---|---|
| 最大仓库档案大小 | 64 MB |
| 最大单个文件大小 | 2 MB |
| 最大行长度 | 1,000 字符 |
.git/、.github/、.gitlab/、.vscode/、.idea/、.vs/、.settings/、.eclipse/、.project/、.metadata/node_modules/、bower_components/、jspm_packages/、vendor/、third_party/、3rdparty/、external/、packages/、deps/、lib/vendor/、target/dependency/、Pods/build/、dist/、out/、bin/、target/、release/、debug/、.next/、.nuxt/、_site/、_build/、__pycache__/、.pytest_cache/、cmake-build-*、.gradle/、.maven/package-lock.json、yarn.lock、pnpm-lock.yaml、Gemfile.lock、Cargo.lock、poetry.lock、Pipfile.lock、composer.lock、go.sum、mix.lock.min. 的任何文件.exe、.dll、.so、.dylib、.a、.lib、.o、.obj、.jar、.war、.ear、.class、.pyc、.pyo、.wasm、.bin、.dat、.pdf、.doc、.docx、.xls、.xlsx、.ppt、.pptx、.zip、.tar、.gz、.bz2、.7z、.rar、.jpg、.jpeg、.png、.gif、.bmp、.ico、.svg、.mp3、.mp4、.avi、.mov、.wav、.flac、.ttf、.otf、.woff、.woff2、.eot.DS_Store、thumbs.dbgenerated by、do not edit、auto-generated、autogenerated、@generated、<auto-generatedIsVendor()、IsImage()、IsDotFile()、IsTest() 和 IsGenerated() 函数进行额外筛选所有数据均来源于 Google Code Archive,该平台保存了 2016 年 1 月 Google Code 关闭前托管的项目。
此数据集包含 2006-2016 年的代码,可能包含:
用户应注意,此代码反映的是历史实践,可能不代表现代最佳实践。
数据集可能包含:
用户在使用此数据时应谨慎行事,并实施适当的过滤。
此数据集是来自具有各种许可证的代码库的源代码集合。对本数据集中收集的全部或部分代码的任何使用,均必须遵守原始许可证的条款,包括相关的归属条款。每个数据点中的许可字段指示源代码库的许可。