We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Users are not warned when running poc command


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `nvflare/lighter/poc.py`
Content:
```
1 # Copyright (c) 2021-2022, NVIDIA CORPORATION.  All rights reserved.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #     http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14 
15 import argparse
16 import os
17 import pathlib
18 import shutil
19 
20 
21 def clone_client(num_clients: int):
22     current_path = os.getcwd()
23     poc_folder = os.path.join(current_path, "poc")
24     src_folder = os.path.join(poc_folder, "client")
25     for index in range(1, num_clients + 1):
26         dst_folder = os.path.join(poc_folder, f"site-{index}")
27         shutil.copytree(src_folder, dst_folder)
28         start_sh = open(os.path.join(dst_folder, "startup", "start.sh"), "rt")
29         content = start_sh.read()
30         start_sh.close()
31         content = content.replace("NNN", f"{index}")
32         with open(os.path.join(dst_folder, "startup", "start.sh"), "wt") as f:
33             f.write(content)
34     shutil.rmtree(src_folder)
35 
36 
37 def main():
38     parser = argparse.ArgumentParser()
39     parser.add_argument("-n", "--num_clients", type=int, default=1, help="number of client folders to create")
40 
41     args = parser.parse_args()
42 
43     file_dir_path = pathlib.Path(__file__).parent.absolute()
44     poc_zip_path = file_dir_path.parent / "poc.zip"
45     poc_folder_path = file_dir_path.parent / "poc"
46     answer = input("This will delete poc folder in current directory and create a new one. Is it OK to proceed? (y/N) ")
47     if answer.strip().upper() == "Y":
48         dest_poc_folder = os.path.join(os.getcwd(), "poc")
49         shutil.rmtree(dest_poc_folder, ignore_errors=True)
50         try:
51             shutil.unpack_archive(poc_zip_path)
52         except shutil.ReadError:
53             print(f"poc.zip not found at {poc_zip_path}, try to use template poc folder")
54             try:
55                 shutil.copytree(poc_folder_path, dest_poc_folder)
56             except BaseException:
57                 print(f"Unable to copy poc folder from {poc_folder_path}.  Exit")
58                 exit(1)
59         for root, dirs, files in os.walk(dest_poc_folder):
60             for file in files:
61                 if file.endswith(".sh"):
62                     os.chmod(os.path.join(root, file), 0o755)
63         clone_client(args.num_clients)
64         print("Successfully creating poc folder.  Please read poc/Readme.rst for user guide.")
65 
66 
67 if __name__ == "__main__":
68     main()
69
```
--- 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()

```

diff --git a/nvflare/lighter/poc.py b/nvflare/lighter/poc.py
--- a/nvflare/lighter/poc.py
+++ b/nvflare/lighter/poc.py
@@ -62,6 +62,7 @@
                     os.chmod(os.path.join(root, file), 0o755)
         clone_client(args.num_clients)
         print("Successfully creating poc folder.  Please read poc/Readme.rst for user guide.")
+        print("\n\nWARNING:\n******* Files generated by this poc command are NOT intended for production environments.")
 
 
 if __name__ == "__main__":

{"golden_diff": "diff --git a/nvflare/lighter/poc.py b/nvflare/lighter/poc.py\n--- a/nvflare/lighter/poc.py\n+++ b/nvflare/lighter/poc.py\n@@ -62,6 +62,7 @@\n                     os.chmod(os.path.join(root, file), 0o755)\n         clone_client(args.num_clients)\n         print(\"Successfully creating poc folder.  Please read poc/Readme.rst for user guide.\")\n+        print(\"\\n\\nWARNING:\\n******* Files generated by this poc command are NOT intended for production environments.\")\n \n \n if __name__ == \"__main__\":\n", "issue": "Users are not warned when running poc command\n\n", "before_files": [{"content": "# Copyright (c) 2021-2022, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport argparse\nimport os\nimport pathlib\nimport shutil\n\n\ndef clone_client(num_clients: int):\n    current_path = os.getcwd()\n    poc_folder = os.path.join(current_path, \"poc\")\n    src_folder = os.path.join(poc_folder, \"client\")\n    for index in range(1, num_clients + 1):\n        dst_folder = os.path.join(poc_folder, f\"site-{index}\")\n        shutil.copytree(src_folder, dst_folder)\n        start_sh = open(os.path.join(dst_folder, \"startup\", \"start.sh\"), \"rt\")\n        content = start_sh.read()\n        start_sh.close()\n        content = content.replace(\"NNN\", f\"{index}\")\n        with open(os.path.join(dst_folder, \"startup\", \"start.sh\"), \"wt\") as f:\n            f.write(content)\n    shutil.rmtree(src_folder)\n\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"-n\", \"--num_clients\", type=int, default=1, help=\"number of client folders to create\")\n\n    args = parser.parse_args()\n\n    file_dir_path = pathlib.Path(__file__).parent.absolute()\n    poc_zip_path = file_dir_path.parent / \"poc.zip\"\n    poc_folder_path = file_dir_path.parent / \"poc\"\n    answer = input(\"This will delete poc folder in current directory and create a new one. Is it OK to proceed? (y/N) \")\n    if answer.strip().upper() == \"Y\":\n        dest_poc_folder = os.path.join(os.getcwd(), \"poc\")\n        shutil.rmtree(dest_poc_folder, ignore_errors=True)\n        try:\n            shutil.unpack_archive(poc_zip_path)\n        except shutil.ReadError:\n            print(f\"poc.zip not found at {poc_zip_path}, try to use template poc folder\")\n            try:\n                shutil.copytree(poc_folder_path, dest_poc_folder)\n            except BaseException:\n                print(f\"Unable to copy poc folder from {poc_folder_path}.  Exit\")\n                exit(1)\n        for root, dirs, files in os.walk(dest_poc_folder):\n            for file in files:\n                if file.endswith(\".sh\"):\n                    os.chmod(os.path.join(root, file), 0o755)\n        clone_client(args.num_clients)\n        print(\"Successfully creating poc folder.  Please read poc/Readme.rst for user guide.\")\n\n\nif __name__ == \"__main__\":\n    main()\n", "path": "nvflare/lighter/poc.py"}], "after_files": [{"content": "# Copyright (c) 2021-2022, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport argparse\nimport os\nimport pathlib\nimport shutil\n\n\ndef clone_client(num_clients: int):\n    current_path = os.getcwd()\n    poc_folder = os.path.join(current_path, \"poc\")\n    src_folder = os.path.join(poc_folder, \"client\")\n    for index in range(1, num_clients + 1):\n        dst_folder = os.path.join(poc_folder, f\"site-{index}\")\n        shutil.copytree(src_folder, dst_folder)\n        start_sh = open(os.path.join(dst_folder, \"startup\", \"start.sh\"), \"rt\")\n        content = start_sh.read()\n        start_sh.close()\n        content = content.replace(\"NNN\", f\"{index}\")\n        with open(os.path.join(dst_folder, \"startup\", \"start.sh\"), \"wt\") as f:\n            f.write(content)\n    shutil.rmtree(src_folder)\n\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"-n\", \"--num_clients\", type=int, default=1, help=\"number of client folders to create\")\n\n    args = parser.parse_args()\n\n    file_dir_path = pathlib.Path(__file__).parent.absolute()\n    poc_zip_path = file_dir_path.parent / \"poc.zip\"\n    poc_folder_path = file_dir_path.parent / \"poc\"\n    answer = input(\"This will delete poc folder in current directory and create a new one. Is it OK to proceed? (y/N) \")\n    if answer.strip().upper() == \"Y\":\n        dest_poc_folder = os.path.join(os.getcwd(), \"poc\")\n        shutil.rmtree(dest_poc_folder, ignore_errors=True)\n        try:\n            shutil.unpack_archive(poc_zip_path)\n        except shutil.ReadError:\n            print(f\"poc.zip not found at {poc_zip_path}, try to use template poc folder\")\n            try:\n                shutil.copytree(poc_folder_path, dest_poc_folder)\n            except BaseException:\n                print(f\"Unable to copy poc folder from {poc_folder_path}.  Exit\")\n                exit(1)\n        for root, dirs, files in os.walk(dest_poc_folder):\n            for file in files:\n                if file.endswith(\".sh\"):\n                    os.chmod(os.path.join(root, file), 0o755)\n        clone_client(args.num_clients)\n        print(\"Successfully creating poc folder.  Please read poc/Readme.rst for user guide.\")\n        print(\"\\n\\nWARNING:\\n******* Files generated by this poc command are NOT intended for production environments.\")\n\n\nif __name__ == \"__main__\":\n    main()\n", "path": "nvflare/lighter/poc.py"}]}