<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse_project_and_dataset( project: str, dataset: Optional[str] = None ) -> Tuple[str, str, Optional[str]]: """Compute the billing project, data project, and dataset if available. This function figure out the project id under which queries will run versus the project of where the data live as well as what dataset to use. Parameters project : str A project name dataset : Optional[str] A ``<project>.<dataset>`` string or just a dataset name Examples -------- 'foo-bar' 'ibis-gbq' 'my_dataset' 'ibis-gbq' 'ibis-gbq' 'my_dataset' 'ibis-gbq' None """

    try:
        data_project, dataset = dataset.split('.')
    except (ValueError, AttributeError):
        billing_project = data_project = project
    else:
        billing_project = project

    return data_project, billing_project, dataset