prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  AttributeError: 'FileDataContext' object has no attribute 'create_expectation_suite'
  ### Current Behaviour
  
  AttributeError: 'FileDataContext' object has no attribute 'create_expectation_suite'
  
  [Related to this issue](https://docs.greatexpectations.io/docs/changelog/#01549): "[MAINTENANCE] Change all instances of create_expectation_suite to add_expectation_suite in tests, docs, and source code ([#7117](https://github.com/great-expectations/great_expectations/pull/7117))" 
  
  DataContext objects no longer has a method 'create_expectation_suite'.
  
  ### Expected Behaviour
  
  [Great expectation test suite](https://docs.profiling.ydata.ai/4.6/integrations/great_expectations/#creating-expectation-suites-with-ydata-profiling): "ydata-profiling provides a simple to_expectation_suite() method that returns a Great Expectations ExpectationSuite object which contains a set of Expectations."
  
  ### Data Description
  
  [Dataset can be used from the documentation](https://docs.profiling.ydata.ai/4.6/integrations/great_expectations/#about-great-expectations)
  
  ### Code that reproduces the bug
  
  ```Python
  profile = ProfileReport(
      df, 
      title='Pandas Profiling Report', 
      type_schema=type_schema,
      minimal=True, 
      lazy=False
  )
  data_context = ge.data_context.DataContext(
      context_root_dir='./gx/'
  )
  suite = profile.to_expectation_suite(
      data_context=data_context
  )
  ```
  
  
  ### pandas-profiling version
  
  -
  
  ### Dependencies
  
  ```Text
  -
  ```
  
  
  ### OS
  
  _No response_
  
  ### Checklist
  
  - [X] There is not yet another bug report for this issue in the [issue tracker](https://github.com/ydataai/pandas-profiling/issues)
  - [X] The problem is reproducible from this bug report. [This guide](http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports) can help to craft a minimal bug report.
  - [X] The issue has not been resolved by the entries listed under [Common Issues](https://pandas-profiling.ydata.ai/docs/master/pages/support_contrib/common_issues.html).
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `src/ydata_profiling/expectations_report.py`
  Content:
  ```
  1 from typing import Any, Optional
  2 
  3 import pandas as pd
  4 from visions import VisionsTypeset
  5 
  6 from ydata_profiling.config import Settings
  7 from ydata_profiling.model import BaseDescription, expectation_algorithms
  8 from ydata_profiling.model.handler import Handler
  9 from ydata_profiling.utils.dataframe import slugify
  10 
  11 
  12 class ExpectationHandler(Handler):
  13     """Default handler"""
  14 
  15     def __init__(self, typeset: VisionsTypeset, *args, **kwargs):
  16         mapping = {
  17             "Unsupported": [expectation_algorithms.generic_expectations],
  18             "Text": [expectation_algorithms.categorical_expectations],
  19             "Categorical": [expectation_algorithms.categorical_expectations],
  20             "Boolean": [expectation_algorithms.categorical_expectations],
  21             "Numeric": [expectation_algorithms.numeric_expectations],
  22             "URL": [expectation_algorithms.url_expectations],
  23             "File": [expectation_algorithms.file_expectations],
  24             "Path": [expectation_algorithms.path_expectations],
  25             "DateTime": [expectation_algorithms.datetime_expectations],
  26             "Image": [expectation_algorithms.image_expectations],
  27         }
  28         super().__init__(mapping, typeset, *args, **kwargs)
  29 
  30 
  31 class ExpectationsReport:
  32     config: Settings
  33     df: Optional[pd.DataFrame] = None
  34 
  35     @property
  36     def typeset(self) -> Optional[VisionsTypeset]:
  37         return None
  38 
  39     def to_expectation_suite(
  40         self,
  41         suite_name: Optional[str] = None,
  42         data_context: Optional[Any] = None,
  43         save_suite: bool = True,
  44         run_validation: bool = True,
  45         build_data_docs: bool = True,
  46         handler: Optional[Handler] = None,
  47     ) -> Any:
  48         """
  49         All parameters default to True to make it easier to access the full functionality of Great Expectations out of
  50         the box.
  51         Args:
  52             suite_name: The name of your expectation suite
  53             data_context: A user-specified data context
  54             save_suite: Boolean to determine whether to save the suite to .json as part of the method
  55             run_validation: Boolean to determine whether to run validation as part of the method
  56             build_data_docs: Boolean to determine whether to build data docs, save the .html file, and open data docs in
  57                 your browser
  58             handler: The handler to use for building expectation
  59 
  60         Returns:
  61             An ExpectationSuite
  62         """
  63         try:
  64             import great_expectations as ge
  65         except ImportError as ex:
  66             raise ImportError(
  67                 "Please install great expectations before using the expectation functionality"
  68             ) from ex
  69 
  70         # Use report title if suite is empty
  71         if suite_name is None:
  72             suite_name = slugify(self.config.title)
  73 
  74         # Use the default handler if none
  75         if handler is None:
  76             handler = ExpectationHandler(self.typeset)
  77 
  78         # Obtain the ge context and create the expectation suite
  79         if not data_context:
  80             data_context = ge.data_context.DataContext()
  81 
  82         suite = data_context.create_expectation_suite(
  83             suite_name, overwrite_existing=True
  84         )
  85 
  86         # Instantiate an in-memory pandas dataset
  87         batch = ge.dataset.PandasDataset(self.df, expectation_suite=suite)
  88 
  89         # Obtain the profiling summary
  90         summary: BaseDescription = self.get_description()  # type: ignore
  91 
  92         # Dispatch to expectations per semantic variable type
  93         for name, variable_summary in summary.variables.items():
  94             handler.handle(variable_summary["type"], name, variable_summary, batch)
  95 
  96         # We don't actually update the suite object on the batch in place, so need
  97         # to get the populated suite from the batch
  98         suite = batch.get_expectation_suite()
  99 
  100         validation_result_identifier = None
  101         if run_validation:
  102             batch = ge.dataset.PandasDataset(self.df, expectation_suite=suite)
  103 
  104             results = data_context.run_validation_operator(
  105                 "action_list_operator", assets_to_validate=[batch]
  106             )
  107             validation_result_identifier = results.list_validation_result_identifiers()[
  108                 0
  109             ]
  110 
  111         # Write expectations and open data docs
  112         if save_suite or build_data_docs:
  113             data_context.save_expectation_suite(suite)
  114 
  115         if build_data_docs:
  116             data_context.build_data_docs()
  117             data_context.open_data_docs(validation_result_identifier)
  118 
  119         return batch.get_expectation_suite()
  120
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/src/ydata_profiling/expectations_report.py b/src/ydata_profiling/expectations_report.py
  --- a/src/ydata_profiling/expectations_report.py
  +++ b/src/ydata_profiling/expectations_report.py
  @@ -79,7 +79,7 @@
           if not data_context:
               data_context = ge.data_context.DataContext()
   
  -        suite = data_context.create_expectation_suite(
  +        suite = data_context.add_expectation_suite(
               suite_name, overwrite_existing=True
           )
  
verification_info: {"golden_diff": "diff --git a/src/ydata_profiling/expectations_report.py b/src/ydata_profiling/expectations_report.py\n--- a/src/ydata_profiling/expectations_report.py\n+++ b/src/ydata_profiling/expectations_report.py\n@@ -79,7 +79,7 @@\n         if not data_context:\n             data_context = ge.data_context.DataContext()\n \n-        suite = data_context.create_expectation_suite(\n+        suite = data_context.add_expectation_suite(\n             suite_name, overwrite_existing=True\n         )\n", "issue": "AttributeError: 'FileDataContext' object has no attribute 'create_expectation_suite'\n### Current Behaviour\n\nAttributeError: 'FileDataContext' object has no attribute 'create_expectation_suite'\r\n\r\n[Related to this issue](https://docs.greatexpectations.io/docs/changelog/#01549): \"[MAINTENANCE] Change all instances of create_expectation_suite to add_expectation_suite in tests, docs, and source code ([#7117](https://github.com/great-expectations/great_expectations/pull/7117))\" \r\n\r\nDataContext objects no longer has a method 'create_expectation_suite'.\n\n### Expected Behaviour\n\n[Great expectation test suite](https://docs.profiling.ydata.ai/4.6/integrations/great_expectations/#creating-expectation-suites-with-ydata-profiling): \"ydata-profiling provides a simple to_expectation_suite() method that returns a Great Expectations ExpectationSuite object which contains a set of Expectations.\"\n\n### Data Description\n\n[Dataset can be used from the documentation](https://docs.profiling.ydata.ai/4.6/integrations/great_expectations/#about-great-expectations)\n\n### Code that reproduces the bug\n\n```Python\nprofile = ProfileReport(\r\n    df, \r\n    title='Pandas Profiling Report', \r\n    type_schema=type_schema,\r\n    minimal=True, \r\n    lazy=False\r\n)\r\ndata_context = ge.data_context.DataContext(\r\n    context_root_dir='./gx/'\r\n)\r\nsuite = profile.to_expectation_suite(\r\n    data_context=data_context\r\n)\n```\n\n\n### pandas-profiling version\n\n-\n\n### Dependencies\n\n```Text\n-\n```\n\n\n### OS\n\n_No response_\n\n### Checklist\n\n- [X] There is not yet another bug report for this issue in the [issue tracker](https://github.com/ydataai/pandas-profiling/issues)\n- [X] The problem is reproducible from this bug report. [This guide](http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports) can help to craft a minimal bug report.\n- [X] The issue has not been resolved by the entries listed under [Common Issues](https://pandas-profiling.ydata.ai/docs/master/pages/support_contrib/common_issues.html).\n", "before_files": [{"content": "from typing import Any, Optional\n\nimport pandas as pd\nfrom visions import VisionsTypeset\n\nfrom ydata_profiling.config import Settings\nfrom ydata_profiling.model import BaseDescription, expectation_algorithms\nfrom ydata_profiling.model.handler import Handler\nfrom ydata_profiling.utils.dataframe import slugify\n\n\nclass ExpectationHandler(Handler):\n    \"\"\"Default handler\"\"\"\n\n    def __init__(self, typeset: VisionsTypeset, *args, **kwargs):\n        mapping = {\n            \"Unsupported\": [expectation_algorithms.generic_expectations],\n            \"Text\": [expectation_algorithms.categorical_expectations],\n            \"Categorical\": [expectation_algorithms.categorical_expectations],\n            \"Boolean\": [expectation_algorithms.categorical_expectations],\n            \"Numeric\": [expectation_algorithms.numeric_expectations],\n            \"URL\": [expectation_algorithms.url_expectations],\n            \"File\": [expectation_algorithms.file_expectations],\n            \"Path\": [expectation_algorithms.path_expectations],\n            \"DateTime\": [expectation_algorithms.datetime_expectations],\n            \"Image\": [expectation_algorithms.image_expectations],\n        }\n        super().__init__(mapping, typeset, *args, **kwargs)\n\n\nclass ExpectationsReport:\n    config: Settings\n    df: Optional[pd.DataFrame] = None\n\n    @property\n    def typeset(self) -> Optional[VisionsTypeset]:\n        return None\n\n    def to_expectation_suite(\n        self,\n        suite_name: Optional[str] = None,\n        data_context: Optional[Any] = None,\n        save_suite: bool = True,\n        run_validation: bool = True,\n        build_data_docs: bool = True,\n        handler: Optional[Handler] = None,\n    ) -> Any:\n        \"\"\"\n        All parameters default to True to make it easier to access the full functionality of Great Expectations out of\n        the box.\n        Args:\n            suite_name: The name of your expectation suite\n            data_context: A user-specified data context\n            save_suite: Boolean to determine whether to save the suite to .json as part of the method\n            run_validation: Boolean to determine whether to run validation as part of the method\n            build_data_docs: Boolean to determine whether to build data docs, save the .html file, and open data docs in\n                your browser\n            handler: The handler to use for building expectation\n\n        Returns:\n            An ExpectationSuite\n        \"\"\"\n        try:\n            import great_expectations as ge\n        except ImportError as ex:\n            raise ImportError(\n                \"Please install great expectations before using the expectation functionality\"\n            ) from ex\n\n        # Use report title if suite is empty\n        if suite_name is None:\n            suite_name = slugify(self.config.title)\n\n        # Use the default handler if none\n        if handler is None:\n            handler = ExpectationHandler(self.typeset)\n\n        # Obtain the ge context and create the expectation suite\n        if not data_context:\n            data_context = ge.data_context.DataContext()\n\n        suite = data_context.create_expectation_suite(\n            suite_name, overwrite_existing=True\n        )\n\n        # Instantiate an in-memory pandas dataset\n        batch = ge.dataset.PandasDataset(self.df, expectation_suite=suite)\n\n        # Obtain the profiling summary\n        summary: BaseDescription = self.get_description()  # type: ignore\n\n        # Dispatch to expectations per semantic variable type\n        for name, variable_summary in summary.variables.items():\n            handler.handle(variable_summary[\"type\"], name, variable_summary, batch)\n\n        # We don't actually update the suite object on the batch in place, so need\n        # to get the populated suite from the batch\n        suite = batch.get_expectation_suite()\n\n        validation_result_identifier = None\n        if run_validation:\n            batch = ge.dataset.PandasDataset(self.df, expectation_suite=suite)\n\n            results = data_context.run_validation_operator(\n                \"action_list_operator\", assets_to_validate=[batch]\n            )\n            validation_result_identifier = results.list_validation_result_identifiers()[\n                0\n            ]\n\n        # Write expectations and open data docs\n        if save_suite or build_data_docs:\n            data_context.save_expectation_suite(suite)\n\n        if build_data_docs:\n            data_context.build_data_docs()\n            data_context.open_data_docs(validation_result_identifier)\n\n        return batch.get_expectation_suite()\n", "path": "src/ydata_profiling/expectations_report.py"}], "after_files": [{"content": "from typing import Any, Optional\n\nimport pandas as pd\nfrom visions import VisionsTypeset\n\nfrom ydata_profiling.config import Settings\nfrom ydata_profiling.model import BaseDescription, expectation_algorithms\nfrom ydata_profiling.model.handler import Handler\nfrom ydata_profiling.utils.dataframe import slugify\n\n\nclass ExpectationHandler(Handler):\n    \"\"\"Default handler\"\"\"\n\n    def __init__(self, typeset: VisionsTypeset, *args, **kwargs):\n        mapping = {\n            \"Unsupported\": [expectation_algorithms.generic_expectations],\n            \"Text\": [expectation_algorithms.categorical_expectations],\n            \"Categorical\": [expectation_algorithms.categorical_expectations],\n            \"Boolean\": [expectation_algorithms.categorical_expectations],\n            \"Numeric\": [expectation_algorithms.numeric_expectations],\n            \"URL\": [expectation_algorithms.url_expectations],\n            \"File\": [expectation_algorithms.file_expectations],\n            \"Path\": [expectation_algorithms.path_expectations],\n            \"DateTime\": [expectation_algorithms.datetime_expectations],\n            \"Image\": [expectation_algorithms.image_expectations],\n        }\n        super().__init__(mapping, typeset, *args, **kwargs)\n\n\nclass ExpectationsReport:\n    config: Settings\n    df: Optional[pd.DataFrame] = None\n\n    @property\n    def typeset(self) -> Optional[VisionsTypeset]:\n        return None\n\n    def to_expectation_suite(\n        self,\n        suite_name: Optional[str] = None,\n        data_context: Optional[Any] = None,\n        save_suite: bool = True,\n        run_validation: bool = True,\n        build_data_docs: bool = True,\n        handler: Optional[Handler] = None,\n    ) -> Any:\n        \"\"\"\n        All parameters default to True to make it easier to access the full functionality of Great Expectations out of\n        the box.\n        Args:\n            suite_name: The name of your expectation suite\n            data_context: A user-specified data context\n            save_suite: Boolean to determine whether to save the suite to .json as part of the method\n            run_validation: Boolean to determine whether to run validation as part of the method\n            build_data_docs: Boolean to determine whether to build data docs, save the .html file, and open data docs in\n                your browser\n            handler: The handler to use for building expectation\n\n        Returns:\n            An ExpectationSuite\n        \"\"\"\n        try:\n            import great_expectations as ge\n        except ImportError as ex:\n            raise ImportError(\n                \"Please install great expectations before using the expectation functionality\"\n            ) from ex\n\n        # Use report title if suite is empty\n        if suite_name is None:\n            suite_name = slugify(self.config.title)\n\n        # Use the default handler if none\n        if handler is None:\n            handler = ExpectationHandler(self.typeset)\n\n        # Obtain the ge context and create the expectation suite\n        if not data_context:\n            data_context = ge.data_context.DataContext()\n\n        suite = data_context.add_expectation_suite(\n            suite_name, overwrite_existing=True\n        )\n\n        # Instantiate an in-memory pandas dataset\n        batch = ge.dataset.PandasDataset(self.df, expectation_suite=suite)\n\n        # Obtain the profiling summary\n        summary: BaseDescription = self.get_description()  # type: ignore\n\n        # Dispatch to expectations per semantic variable type\n        for name, variable_summary in summary.variables.items():\n            handler.handle(variable_summary[\"type\"], name, variable_summary, batch)\n\n        # We don't actually update the suite object on the batch in place, so need\n        # to get the populated suite from the batch\n        suite = batch.get_expectation_suite()\n\n        validation_result_identifier = None\n        if run_validation:\n            batch = ge.dataset.PandasDataset(self.df, expectation_suite=suite)\n\n            results = data_context.run_validation_operator(\n                \"action_list_operator\", assets_to_validate=[batch]\n            )\n            validation_result_identifier = results.list_validation_result_identifiers()[\n                0\n            ]\n\n        # Write expectations and open data docs\n        if save_suite or build_data_docs:\n            data_context.save_expectation_suite(suite)\n\n        if build_data_docs:\n            data_context.build_data_docs()\n            data_context.open_data_docs(validation_result_identifier)\n\n        return batch.get_expectation_suite()\n", "path": "src/ydata_profiling/expectations_report.py"}]}