{"id":13595469,"url":"https://github.com/drivendataorg/cookiecutter-data-science","last_synced_at":"2025-05-12T05:33:19.040Z","repository":{"id":37335626,"uuid":"45271904","full_name":"drivendataorg/cookiecutter-data-science","owner":"drivendataorg","description":"A logical, reasonably standardized, but flexible project structure for doing and sharing data science work.","archived":false,"fork":false,"pushed_at":"2025-05-06T12:54:25.000Z","size":1301,"stargazers_count":8884,"open_issues_count":27,"forks_count":2521,"subscribers_count":118,"default_branch":"master","last_synced_at":"2025-05-11T23:55:14.249Z","etag":null,"topics":["ai","cookiecutter","cookiecutter-data-science","cookiecutter-template","data-science","machine-learning"],"latest_commit_sha":null,"homepage":"https://cookiecutter-data-science.drivendata.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drivendataorg.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-10-30T19:19:57.000Z","updated_at":"2025-05-11T16:26:22.000Z","dependencies_parsed_at":"2022-08-08T20:01:12.143Z","dependency_job_id":"222dc4d8-f999-44e2-a6de-c2295f7261f5","html_url":"https://github.com/drivendataorg/cookiecutter-data-science","commit_stats":null,"previous_names":["drivendata/cookiecutter-data-science"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drivendataorg%2Fcookiecutter-data-science","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drivendataorg%2Fcookiecutter-data-science/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drivendataorg%2Fcookiecutter-data-science/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drivendataorg%2Fcookiecutter-data-science/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drivendataorg","download_url":"https://codeload.github.com/drivendataorg/cookiecutter-data-science/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253655955,"owners_count":21943081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","cookiecutter","cookiecutter-data-science","cookiecutter-template","data-science","machine-learning"],"created_at":"2024-08-01T16:01:50.572Z","updated_at":"2025-05-12T05:33:18.990Z","avatar_url":"https://github.com/drivendataorg.png","language":"Python","funding_links":[],"categories":["Python","⚡ Productivity","其他_机器学习与深度学习"],"sub_categories":["Resources"],"readme":"# Cookiecutter Data Science\n\n_A logical, reasonably standardized but flexible project structure for doing and sharing data science work._\n\n[![PyPI - Version](https://img.shields.io/pypi/v/cookiecutter-data-science)](https://pypi.org/project/cookiecutter-data-science/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/cookiecutter-data-science)](https://pypi.org/project/cookiecutter-data-science/)\n\u003ca target=\"_blank\" href=\"https://cookiecutter-data-science.drivendata.org/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/CCDS-Project%20template-328F97?logo=cookiecutter\" /\u003e\n\u003c/a\u003e\n[![tests](https://github.com/drivendataorg/cookiecutter-data-science/actions/workflows/tests.yml/badge.svg)](https://github.com/drivendataorg/cookiecutter-data-science/actions/workflows/tests.yml)\n\n**Cookiecutter Data Science (CCDS)** is a tool for setting up a data science project template that incorporates best practices. To learn more about CCDS's philosophy, visit the [project homepage](https://cookiecutter-data-science.drivendata.org/).\n\n\u003e ℹ️ Cookiecutter Data Science v2 has changed from v1. It now requires installing the new cookiecutter-data-science Python package, which extends the functionality of the [cookiecutter](https://cookiecutter.readthedocs.io/en/stable/README.html) templating utility. Use the provided `ccds` command-line program instead of `cookiecutter`.\n\n## Installation\n\nCookiecutter Data Science v2 requires Python 3.9+. Since this is a cross-project utility application, we recommend installing it with [pipx](https://pypa.github.io/pipx/). Installation command options:\n\n```bash\n# With pipx from PyPI (recommended)\npipx install cookiecutter-data-science\n\n# With pip from PyPI\npip install cookiecutter-data-science\n\n# With conda from conda-forge (coming soon)\n# conda install cookiecutter-data-science -c conda-forge\n```\n\n## Starting a new project\n\nTo start a new project, run:\n\n```bash\nccds\n```\n\n### The resulting directory structure\n\nThe directory structure of your new project will look something like this (depending on the settings that you choose):\n\n```\n├── LICENSE            \u003c- Open-source license if one is chosen\n├── Makefile           \u003c- Makefile with convenience commands like `make data` or `make train`\n├── README.md          \u003c- The top-level README for developers using this project.\n├── data\n│   ├── external       \u003c- Data from third party sources.\n│   ├── interim        \u003c- Intermediate data that has been transformed.\n│   ├── processed      \u003c- The final, canonical data sets for modeling.\n│   └── raw            \u003c- The original, immutable data dump.\n│\n├── docs               \u003c- A default mkdocs project; see www.mkdocs.org for details\n│\n├── models             \u003c- Trained and serialized models, model predictions, or model summaries\n│\n├── notebooks          \u003c- Jupyter notebooks. Naming convention is a number (for ordering),\n│                         the creator's initials, and a short `-` delimited description, e.g.\n│                         `1.0-jqp-initial-data-exploration`.\n│\n├── pyproject.toml     \u003c- Project configuration file with package metadata for \n│                         {{ cookiecutter.module_name }} and configuration for tools like black\n│\n├── references         \u003c- Data dictionaries, manuals, and all other explanatory materials.\n│\n├── reports            \u003c- Generated analysis as HTML, PDF, LaTeX, etc.\n│   └── figures        \u003c- Generated graphics and figures to be used in reporting\n│\n├── requirements.txt   \u003c- The requirements file for reproducing the analysis environment, e.g.\n│                         generated with `pip freeze \u003e requirements.txt`\n│\n├── setup.cfg          \u003c- Configuration file for flake8\n│\n└── {{ cookiecutter.module_name }}   \u003c- Source code for use in this project.\n    │\n    ├── __init__.py             \u003c- Makes {{ cookiecutter.module_name }} a Python module\n    │\n    ├── config.py               \u003c- Store useful variables and configuration\n    │\n    ├── dataset.py              \u003c- Scripts to download or generate data\n    │\n    ├── features.py             \u003c- Code to create features for modeling\n    │\n    ├── modeling                \n    │   ├── __init__.py \n    │   ├── predict.py          \u003c- Code to run model inference with trained models          \n    │   └── train.py            \u003c- Code to train models\n    │\n    └── plots.py                \u003c- Code to create visualizations   \n```\n\n## Using unreleased changes\n\nBy default, `ccds` will use the _project template_ version that corresponds to the _installed `ccds` package_ version (e.g., if you have installed `ccds` v2.0.1, you'll use the v2.0.1 version of the project template by default). To use a specific version of the project template, use the `-c/--checkout` flag to provide the branch (or tag or commit hash) of the version you'd like to use. For example to use the project template from the `master` branch:\n\n```bash\nccds -c master\n```\n\n## Using v1\n\nIf you want to use the old v1 project template, you need to have either the cookiecutter-data-science package or cookiecutter package installed. Then, use either command-line program with the `-c v1` option:\n\n```bash\nccds https://github.com/drivendataorg/cookiecutter-data-science -c v1\n# or equivalently\ncookiecutter https://github.com/drivendataorg/cookiecutter-data-science -c v1\n```\n\n## Contributing\n\nWe welcome contributions! [See the docs for guidelines](https://cookiecutter-data-science.drivendata.org/contributing/).\n\n### Installing development requirements\n\n```bash\npip install -r dev-requirements.txt\n```\n\n### Running the tests\n\n```bash\npytest tests\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrivendataorg%2Fcookiecutter-data-science","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrivendataorg%2Fcookiecutter-data-science","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrivendataorg%2Fcookiecutter-data-science/lists"}