Commandline options
CCDS provides a number of choices that you can use to customize your project. The defaults work well for many projects, but lots of tooling choices are supported. Here are the options for tools that you can use:
Project Name
Type: string
Default value: project_name
A name for the project, for example 'My Project'.
Repo Name
Type: string
Default value: project_name.lower().replace(' ', '_')
Default generated by altering the project_name
. Used for folder and repo name for the project.
Module Name
Type: string
Default value: project_name.lower().replace(' ', '_').replace('-', '_')
Default generated by altering the project_name
to be a compatible Python module name.
Author Name
Type: string
Default value: Your name (or your organization/company/team)
Name of the individual or organization that created the project.
Description
Type: string
Default value: A short description of the project.
A short description that appears in the README.md file by default.
Python Version Number
Type: string
Default value: 3.12
The version of Python that the project will use.
Find more information here: Python version status
Dataset Storage
Type: choice
Default value: none
A cloud storage location for where data should be stored; controls sync_data_up
and sync_data_down
Makefile commands. You will be asked for different additional configuration information depending on your choice.
Choice | Sub-field | Description | More information |
---|---|---|---|
none | No cloud storage configured; Makefile commands to sync data removed. | ||
azure | Store data on Azure Blob Storage. | Docs | |
azure | container | Name of the container on blob storage. | Docs |
s3 | Store data on Amazon S3. | Docs | |
s3 | bucket | The name of the bucket to store data in; can also be a longer S3 path. | Docs |
s3 | aws_profile | The name of the profile to use for the aws CLI. | Docs |
gcs | Store data to Google Cloud Storage | Docs | |
gcs | bucket | The name of the bucket to store data in. | Docs |
Environment Manager
Type: choice
Default value: uv
Tool for managing creating Python environments. Controls make create_environment
Makefile command.
Find more information here: About virtual environments
Choice | Sub-field | Description | More information |
---|---|---|---|
uv | Modern, fast Python package installer and resolver written in Rust. | Docs | |
none | Do not add create_environment commands; env management left to the user. |
||
virtualenv | Simple wrapper on venv with more features. | Docs | |
conda | Data science environments supporting non-Python dependencies as well. | Docs | |
pipenv | Manages dependencies and virual environments. | Docs |
Dependency File
Type: choice
Default value: requirements.txt
Where to track project-specific dependencies; often paired with specific environment manager.
Choice | Sub-field | Description | More information |
---|---|---|---|
requirements.txt | Most general, least feature-rich format for use with pip . |
pip docs | |
environment.yml | Format used by conda . |
Docs | |
Pipfile | Format used by Pipenv | Docs |
Pydata Packages
Type: choice
Default value: basic
Packages automatically added to your requirements file.
Choice | Sub-field | Description | More information |
---|---|---|---|
basic | Basic common data science packages. | ipython, jupyterlab, matplotlib, notebook, numpy, pandas, scikit-learn | |
none | No extra packages. |
Open Source License
Type: choice
Default value: No license file
Whether to include a license file and which one to use.
Choice | Sub-field | Description | More information |
---|---|---|---|
No license file | No license file will be included. | ||
MIT | MIT License | License | |
BSD-3-Clause | 3-Clause BSD License | License |
Docs
Type: choice
Default value: mkdocs
Whether to include a docs
folder and documentation tools.
Choice | Sub-field | Description | More information |
---|---|---|---|
mkdocs | Include docs folder and mkdocs tools. |
Docs | |
none | No docs folder. |
Include Code Scaffold
Type: choice
Default value: data
Whether to include some basic boilerplate code in the Python module.
Choice | Sub-field | Description | More information |
---|---|---|---|
data | Data processing/analysis structure | Includes pipelines/, analysis/, validation/ directories for data workflows | |
No | No scaffolding - just basic project structure | Creates minimal project structure with only essential files | |
paper | Research paper with code structure | Includes notebooks/, paper/, src/ directories with LaTeX setup and research code organization | |
app | Application structure (web, CLI, or GUI) | Sets up src/, api/, cli/ directories with application entrypoints and deployment configs | |
ml | Machine learning project structure | Creates models/, training/, evaluation/ directories with ML pipeline setup | |
lib | Library/package structure | Basic package structure with examples and API documentation setup | |
course | Library/package structure | Basic package structure with examples and API documentation setup |
Version Control
Type: choice
Default value: git (local)
What kind of version control system (vcs) and repository host to use.
Choice | Sub-field | Description | More information |
---|---|---|---|
git (local) | Initialize project as a local git repository. | Git CLI Required | |
none | No version control. | ||
git (github private) | Initialize project and upload to GitHub as a private repo. | Git CLI + GitHub CLI & Auth Required | |
git (github public) | Initialize project and upload to GitHub as a public repo. | Git CLI + GitHub CLI & Auth Required |