Skip to content

Commit

Permalink
Add commandline options table (#350)
Browse files Browse the repository at this point in the history
* Add commandline options table

* wack isort ordering

* Make sections

* Format
  • Loading branch information
pjbull committed Apr 1, 2024
1 parent aa6e529 commit 4f9038d
Show file tree
Hide file tree
Showing 4 changed files with 462 additions and 1 deletion.
281 changes: 281 additions & 0 deletions ccds-help.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,281 @@
[
{
"field": "project_name",
"help": {
"description": "A name for the project, for example 'My Project'.",
"more_information": ""
}
},
{
"field": "repo_name",
"help": {
"description": "Default generated by altering the `project_name`. Used for folder and repo name for the project.",
"more_information": ""
}
},
{
"field": "module_name",
"help": {
"description": "Default generated by altering the `project_name` to be a compatible Python module name.",
"more_information": ""
}
},
{
"field": "author_name",
"help": {
"description": "Name of the individual or organization that created the project.",
"more_information": ""
}
},
{
"field": "description",
"help": {
"description": "A short description that appears in the README.md file by default.",
"more_information": ""
}
},
{
"field": "python_version_number",
"help": {
"description": "The version of Python that the project will use.",
"more_information": "[Python version status](https://devguide.python.org/versions/)"
}
},
{
"field": "dataset_storage",
"help": {
"description": "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.",
"more_information": ""
},
"choices": [
{
"choice": "none",
"help": {
"description": "No cloud storage configured; Makefile commands to sync data removed.",
"more_information": ""
}
},
{
"choice": "azure",
"help": {
"description": "Store data on Azure Blob Storage.",
"more_information": "[Docs](https://learn.microsoft.com/en-us/azure/storage/blobs/)"
},
"subfields": [
{
"field": "container",
"help": {
"description": "Name of the container on blob storage.",
"more_information": "[Docs](https://learn.microsoft.com/en-us/azure/storage/blobs/blob-containers-portal)"
}
}
]
},
{
"choice": "s3",
"help": {
"description": "Store data on Amazon S3.",
"more_information": "[Docs](https://docs.aws.amazon.com/s3/)"
},
"subfields": [
{
"field": "bucket",
"help": {
"description": "The name of the bucket to store data in; can also be a longer S3 path.",
"more_information": "[Docs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html#BasicsBucket)"
}
},
{
"field": "aws_profile",
"help": {
"description": "The name of the profile to use for the aws CLI.",
"more_information": "[Docs](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)"
}
}
]
},
{
"choice": "gcs",
"help": {
"description": "Store data to Google Cloud Storage",
"more_information": "[Docs](https://cloud.google.com/storage/docs)"
},
"subfields": [
{
"field": "bucket",
"help": {
"description": "The name of the bucket to store data in.",
"more_information": "[Docs](https://cloud.google.com/storage/docs/buckets)"
}
}
]
}
]
},
{
"field": "environment_manager",
"help": {
"description": "Tool for managing creating Python environments. Controls `make create_environment` Makefile command.",
"more_information": "[About virtual environments](https://www.dataquest.io/blog/a-complete-guide-to-python-virtual-environments/)"
},
"choices": [
{
"choice": "virtualenv",
"help": {
"description": "Simple wrapper on venv with more features.",
"more_information": "[Docs](https://virtualenv.pypa.io/en/latest/)"
}
},
{
"choice": "conda",
"help": {
"description": "Data science environments supporting non-Python dependencies as well.",
"more_information": "[Docs](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)"
}
},
{
"choice": "pipenv",
"help": {
"description": "Manages dependencies and virual environments.",
"more_information": "[Docs](https://pipenv.pypa.io/en/latest/)"
}
},
{
"choice": "none",
"help": {
"description": "Do not add `create_environment` commands; env management left to the user.",
"more_information": ""
}
}
]
},
{
"field": "dependency_file",
"help": {
"description": "Where to track project-specific dependencies; often paired with specific environment manager.",
"more_information": ""
},
"choices": [
{
"choice": "requirements.txt",
"help": {
"description": "Most general, least feature-rich format for use with `pip`.",
"more_information": "[pip docs](https://pip.pypa.io/en/stable/reference/requirements-file-format/)"
}
},
{
"choice": "environment.yml",
"help": {
"description": "Format used by `conda`.",
"more_information": "[Docs](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#sharing-an-environment)"
}
},
{
"choice": "Pipfile",
"help": {
"description": "Format used by Pipenv",
"more_information": "[Docs](https://pipenv.pypa.io/en/latest/pipfile.html)"
}
}
]
},
{
"field": "pydata_packages",
"help": {
"description": "Packages automatically added to your requirements file.",
"more_information": ""
},
"choices": [
{
"choice": "none",
"help": {
"description": "No extra packages.",
"more_information": ""
}
},
{
"choice": "basic",
"help": {
"description": "Basic common data science packages.",
"more_information": ""
}
}
]
},
{
"field": "open_source_license",
"help": {
"description": "Whether to include a license file and which one to use.",
"more_information": ""
},
"choices": [
{
"choice": "No license file",
"help": {
"description": "No license file will be included.",
"more_information": ""
}
},
{
"choice": "MIT",
"help": {
"description": "MIT License",
"more_information": "[License](https://opensource.org/license/mit)"
}
},
{
"choice": "BSD-3-Clause",
"help": {
"description": "3-Clause BSD License",
"more_information": "[License](https://opensource.org/license/bsd-3-clause)"
}
}
]
},
{
"field": "docs",
"help": {
"description": "Whether to include a `docs` folder and documentation tools.",
"more_information": ""
},
"choices": [
{
"choice": "none",
"help": {
"description": "No `docs` folder.",
"more_information": ""
}
},
{
"choice": "mkdocs",
"help": {
"description": "Include `docs` folder and `mkdocs` tools.",
"more_information": "[Docs](https://www.mkdocs.org/)"
}
}
]
},
{
"field": "include_code_scaffold",
"help": {
"description": "Whether to include some basic boilerplate code in the Python module.",
"more_information": ""
},
"choices": [
{
"choice": "Yes",
"help": {
"description": "Includes common data submodules.",
"more_information": ""
}
},
{
"choice": "No",
"help": {
"description": "Empty Python module to start with.",
"more_information": ""
}
}
]
}
]
6 changes: 6 additions & 0 deletions docs/docs/all-options.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# 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:


<!-- configuration-table.py output -->
4 changes: 3 additions & 1 deletion docs/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ nav:
- Why ccds?: why.md
- Opinions: opinions.md
- Using the template: using-the-template.md
- All options: all-options.md
- Contributing: contributing.md
- Related projects: related.md
- v1 Template: v1.md
Expand All @@ -43,6 +44,7 @@ markdown_extensions:
slugify: !!python/object/apply:pymdownx.slugs.slugify
kwds:
case: lower
- tables
- toc:
toc_depth: 2
plugins:
Expand All @@ -55,4 +57,4 @@ plugins:
- gen-files:
scripts:
- scripts/generate-termynal.py

- scripts/configuration-table.py

0 comments on commit 4f9038d

Please sign in to comment.