Repository: great-expectations/great_expectations

Issue:
`checkpoint` CLI command spews a bunch of unwanted docstrings
**Describe the bug**
When I run `great_expectations checkpoint`, the output is ugly and confusing.

**To Reproduce**
Run `great_expectations checkpoint` at the command line:

Outputs:
```
$ great_expectations checkpoint
Usage: great_expectations checkpoint [OPTIONS] COMMAND [ARGS]...

  Checkpoint operations

  A checkpoint is a bundle of one or more batches of data with one or more
  Expectation Suites.

  A checkpoint can be as simple as one batch of data paired with one
  Expectation Suite.

  A checkpoint can be as complex as many batches of data across different
  datasources paired with one or more Expectation Suites each.

  --ge-feature-maturity-info--

      id: checkpoint_notebook     title: Checkpoint - Notebook     icon:
      short_description: Run a configured checkpoint from a notebook.
      description: Run a configured checkpoint from a notebook.
      how_to_guide_url: https://docs.greatexpectations.io/en/latest/guides/h
      ow_to_guides/validation/how_to_run_a_checkpoint_in_python.html
      maturity: Experimental     maturity_details:         api_stability:
      Unstable (expect changes to batch definition; "assets to validate" is
      still totally untyped)         implementation_completeness: Complete
      unit_test_coverage: Partial ("golden path"-focused tests; error
      checking tests need to be improved)
      integration_infrastructure_test_coverage: N/A
      documentation_completeness: Complete         bug_risk: Low

      id: checkpoint_command_line     title: Checkpoint - Command Line
      icon:     short_description: Run a configured checkpoint from a
      command line.     description: Run a configured checkpoint from a
      command line in a Terminal shell.     how_to_guide_url: https://docs.g
      reatexpectations.io/en/latest/guides/how_to_guides/validation/how_to_r
      un_a_checkpoint_in_terminal.html     maturity: Experimental
      maturity_details:         api_stability: Unstable (expect changes to
      batch definition; no checkpoint store)
      implementation_completeness: Complete         unit_test_coverage:
      Complete         integration_infrastructure_test_coverage: N/A
      documentation_completeness: Complete         bug_risk: Low

      id: checkpoint_cron_job     title: Checkpoint - Cron     icon:
      short_description: Deploy a configured checkpoint as a scheduled task
      with cron.     description: Use the Unix crontab command to edit the
      cron file and add a line that will run checkpoint as a scheduled task.
      how_to_guide_url: https://docs.greatexpectations.io/en/latest/guides/h
      ow_to_guides/validation/how_to_deploy_a_scheduled_checkpoint_with_cron
      .html     maturity: Experimental     maturity_details:
      api_stability: Unstable (expect changes to batch validation; no
      checkpoint store)         implementation_completeness: Complete
      unit_test_coverage: Complete
      integration_infrastructure_test_coverage: N/A
      documentation_completeness: Complete         bug_risk: Low

      id: checkpoint_airflow_dag     title: Checkpoint - Airflow DAG
      icon:     short_description: Run a configured checkpoint in Apache
      Airflow     description: Running a configured checkpoint in Apache
      Airflow enables the triggering of data validation using an Expectation
      Suite directly within an Airflow DAG.     how_to_guide_url: https://do
      cs.greatexpectations.io/en/latest/guides/how_to_guides/validation/how_
      to_run_a_checkpoint_in_airflow.html     maturity: Beta
      maturity_details:         api_stability: Unstable
      implementation_completeness: Partial (no operator, but probably don't
      need one)         unit_test_coverage: N/A
      integration_infrastructure_test_coverage: Minimal
      documentation_completeness: Complete (pending how-to)
      bug_risk: Low

      id: checkpoint_kedro     title: Checkpoint - Kedro     icon:
      short_description:     description:     how_to_guide_url:
      maturity: Experimental     maturity_details:         api_stability:
      Unknown (implemented by Kedro team)
      implementation_completeness: Unknown         unit_test_coverage:
      Unknown         integration_infrastructure_test_coverage: Unknown
      documentation_completeness:  Minimal (none)         bug_risk: Unknown

      id: checkpoint_prefect     title: Checkpoint - Prefect     icon:
      short_description:     description:     how_to_guide_url:
      maturity: Experimental     maturity_details:         api_stability:
      Unknown (implemented by Prefect team)
      implementation_completeness: Unknown         unit_test_coverage:
      Unknown         integration_infrastructure_test_coverage: Unknown
      documentation_completeness: Minimal (none)         bug_risk: Unknown

      id: checkpoint_dbt     title: Checkpoint - DBT     icon:
      short_description:     description:     how_to_guide_url:
      maturity: Beta     maturity_details:         api_stability: Mostly
      Stable (SQLAlchemy)         implementation_completeness: Minimal
      unit_test_coverage: Minimal (none)
      integration_infrastructure_test_coverage: Minimal (none)
      documentation_completeness: Minimal (none)         bug_risk: Low

  --ge-feature-maturity-info--

Options:
  --help  Show this message and exit.

Commands:
  list    List configured checkpoints.
  new     Create a new checkpoint for easy deployments.
  run     Run a checkpoint.
  script  Create a python script to run a checkpoint.
```


**Expected behavior**
Output that is not confusing.

**Environment (please complete the following information):**
 - GE Version: 0.12.2

**Additional context**
N/A
Use cleaner solution for non-truncating division in python 2
Prefer `from __future__ import division` to `1.*x/y`


Discussion:
This behavior was first introduced in v0.11.8

`pip uninstall great_expectations; pip install great_expectations==0.11.7; great_expectations checkpoint`
`pip uninstall great_expectations; pip install great_expectations==0.11.8; great_expectations checkpoint`
Done inline during improve_partitions push.

Resolving patch:
diff --git a/great_expectations/cli/checkpoint.py b/great_expectations/cli/checkpoint.py
--- a/great_expectations/cli/checkpoint.py
+++ b/great_expectations/cli/checkpoint.py
@@ -1,49 +1,4 @@
-import os
-import sys
-
-import click
-from ruamel.yaml import YAML
-
-from great_expectations import DataContext
-from great_expectations.cli import toolkit
-from great_expectations.cli.mark import Mark as mark
-from great_expectations.cli.util import cli_message, cli_message_list
-from great_expectations.core import ExpectationSuite
-from great_expectations.core.usage_statistics.usage_statistics import send_usage_message
-from great_expectations.data_context.util import file_relative_path
-from great_expectations.exceptions import DataContextError
-from great_expectations.util import lint_code
-from great_expectations.validation_operators.types.validation_operator_result import ValidationOperatorResult
-
-try:
-    from sqlalchemy.exc import SQLAlchemyError
-except ImportError:
-    SQLAlchemyError = RuntimeError
-
-
-try:
-    from sqlalchemy.exc import SQLAlchemyError
-except ImportError:
-    SQLAlchemyError = RuntimeError
-
-yaml = YAML()
-yaml.indent(mapping=2, sequence=4, offset=2)
-
-
-@click.group(short_help="Checkpoint operations")
-def checkpoint():
-    """
-Checkpoint operations
-
-A checkpoint is a bundle of one or more batches of data with one or more
-Expectation Suites.
-
-A checkpoint can be as simple as one batch of data paired with one
-Expectation Suite.
-
-A checkpoint can be as complex as many batches of data across different
-datasources paired with one or more Expectation Suites each.
-
+"""
 --ge-feature-maturity-info--
 
     id: checkpoint_notebook
@@ -152,6 +107,53 @@ def checkpoint():
         bug_risk: Low
 
 --ge-feature-maturity-info--
+"""
+
+import os
+import sys
+
+import click
+from ruamel.yaml import YAML
+
+from great_expectations import DataContext
+from great_expectations.cli import toolkit
+from great_expectations.cli.mark import Mark as mark
+from great_expectations.cli.util import cli_message, cli_message_list
+from great_expectations.core import ExpectationSuite
+from great_expectations.core.usage_statistics.usage_statistics import send_usage_message
+from great_expectations.data_context.util import file_relative_path
+from great_expectations.exceptions import DataContextError
+from great_expectations.util import lint_code
+from great_expectations.validation_operators.types.validation_operator_result import ValidationOperatorResult
+
+try:
+    from sqlalchemy.exc import SQLAlchemyError
+except ImportError:
+    SQLAlchemyError = RuntimeError
+
+
+try:
+    from sqlalchemy.exc import SQLAlchemyError
+except ImportError:
+    SQLAlchemyError = RuntimeError
+
+yaml = YAML()
+yaml.indent(mapping=2, sequence=4, offset=2)
+
+
+@click.group(short_help="Checkpoint operations")
+def checkpoint():
+    """
+Checkpoint operations
+
+A checkpoint is a bundle of one or more batches of data with one or more
+Expectation Suites.
+
+A checkpoint can be as simple as one batch of data paired with one
+Expectation Suite.
+
+A checkpoint can be as complex as many batches of data across different
+datasources paired with one or more Expectation Suites each.
     """
     pass
 


Test patch: