<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_report(self, report_type, start_date, end_date, product_id=None, account_id=None, report_format='pdf', email=None):
 """ Create report of historic information about your account. The report will be generated when resources are available. Report status can be queried via `get_report(report_id)`. Args: report_type (str):
 'fills' or 'account' start_date (str):
 Starting date for the report in ISO 8601 end_date (str):
 Ending date for the report in ISO 8601 product_id (Optional[str]):
 ID of the product to generate a fills report for. Required if account_type is 'fills' account_id (Optional[str]):
 ID of the account to generate an account report for. Required if report_type is 'account'. report_format (Optional[str]):
 'pdf' or 'csv'. Default is 'pdf'. email (Optional[str]):
 Email address to send the report to. Returns: dict: Report details. Example:: { "id": "0428b97b-bec1-429e-a94c-59232926778d", "type": "fills", "status": "pending", "created_at": "2015-01-06T10:34:47.000Z", "completed_at": undefined, "expires_at": "2015-01-13T10:35:47.000Z", "file_url": undefined, "params": { "start_date": "2014-11-01T00:00:00.000Z", "end_date": "2014-11-30T23:59:59.000Z" } } """

        params = {'type': report_type,
                  'start_date': start_date,
                  'end_date': end_date,
                  'format': report_format}
        if product_id is not None:
            params['product_id'] = product_id
        if account_id is not None:
            params['account_id'] = account_id
        if email is not None:
            params['email'] = email

        return self._send_message('post', '/reports',
                                  data=json.dumps(params))