



import json
import os
from datetime import date
from pathlib import Path

from tabulate import DataRow, TableFormat, tabulate


UpperCAmelCase__     = TableFormat(
    lineabove=None,
    linebelowheader=None,
    linebetweenrows=None,
    linebelow=None,
    headerrow=DataRow("", "|", "|"),
    datarow=DataRow("", "|", "|"),
    padding=1,
    with_header_hide=None,
)


UpperCAmelCase__     = []
UpperCAmelCase__     = []

UpperCAmelCase__     = {"type": "section", "text": {"type": "plain_text", "text": "No failed tests! 🤗", "emoji": True}}

UpperCAmelCase__     = [
    {
        "type": "header",
        "text": {
            "type": "plain_text",
            "text": f"""🤗 Accelerate nightly {os.environ.get("TEST_TYPE", "")} test results""",
            "emoji": True,
        },
    }
]

UpperCAmelCase__     = 0
for log in Path().glob("*.log"):
							UpperCAmelCase__     = 0
							with open(log, "r") as f:
														for line in f:
																					UpperCAmelCase__     = json.loads(line)
																					if line.get("nodeid", "") != "":
																												UpperCAmelCase__     = line["nodeid"]
																												if line.get("duration", None) is not None:
																																			UpperCAmelCase__     = f"""{line["duration"]:.4f}"""
																																			if line.get("outcome", "") == "failed":
																																										section_num_failed += 1
																																										failed.append([test, duration, log.name.split("_")[0]])
																																										total_num_failed += 1
							group_info.append([str(log), section_num_failed, failed])
							UpperCAmelCase__     = []
							log.unlink()

UpperCAmelCase__     = ""
UpperCAmelCase__     = []
if total_num_failed > 0:
							for name, num_failed, failed_tests in group_info:
														if num_failed > 0:
																					if num_failed == 1:
																												message += f"*{name[1:]}: {num_failed} failed test*\n"
																					else:
																												message += f"*{name[1:]}: {num_failed} failed tests*\n"
																					UpperCAmelCase__     = []
																					UpperCAmelCase__     = {}
																					for test in failed_tests:
																												UpperCAmelCase__     = test[0].split("::")
																												UpperCAmelCase__     = data[0].split("/")[-1]
																												if data[0] not in filesafailed:
																																			UpperCAmelCase__     = [data[1:]]
																												else:
																																			filesafailed[data[0]] += [data[1:]]
																												failed_table.append(data)

																					UpperCAmelCase__     = [test[0] for test in failed_table]
																					UpperCAmelCase__     = list(set(files))
																					# Count number of instances in failed_tests
																					UpperCAmelCase__     = []
																					for file in individual_files:
																												table.append([file, len(filesafailed[file])])

																					UpperCAmelCase__     = tabulate(
																					    table,
																					    headers=["Test Location", "Num Failed"],
																					    tablefmt=hf_table_format,
																					    stralign="right",
																					)
																					message += f"\n```\n{failed_table}\n```"
																					all_filesafailed.append(filesafailed)
							if len(message) > 3000:
														UpperCAmelCase__     = "Too many failed tests, please see the full report in the Action results."
														UpperCAmelCase__     = len(err) + 10
														UpperCAmelCase__     = message[: 3000 - offset] + f"""\n...\n```\n{err}"""
							print(f"""### {message}""")
else:
							UpperCAmelCase__     = "No failed tests! 🤗"
							print(f"""## {message}""")
							payload.append(no_error_payload)

if os.environ.get("TEST_TYPE", "") != "":
							from slack_sdk import WebClient

							UpperCAmelCase__     = WebClient(token=os.environ["SLACK_API_TOKEN"])
							if message != "No failed tests! 🤗":
														UpperCAmelCase__     = {
														    "type": "section",
														    "text": {
														        "type": "mrkdwn",
														        "text": message,
														    },
														}
														payload.append(md_report)
														UpperCAmelCase__     = {
														    "type": "section",
														    "text": {
														        "type": "mrkdwn",
														        "text": "*For more details:*",
														    },
														    "accessory": {
														        "type": "button",
														        "text": {
														            "type": "plain_text",
														            "text": "Check Action results",
														            "emoji": True,
														        },
														        "url": f"""https://github.com/{os.environ["GITHUB_REPOSITORY"]}/actions/runs/{os.environ["GITHUB_RUN_ID"]}""",
														    },
														}
														payload.append(action_button)
														UpperCAmelCase__     = {
														    "type": "context",
														    "elements": [
														        {
														            "type": "plain_text",
														            "text": f"""Nightly {os.environ.get("TEST_TYPE")} test results for {date.today()}""",
														        }
														    ],
														}
														payload.append(date_report)
							UpperCAmelCase__     = client.chat_postMessage(channel="#accelerate-ci-daily", text=message, blocks=payload)
							UpperCAmelCase__     = response.data["ts"]
							for failed_file in all_filesafailed:
														for test_location, test_failures in failed_file.items():
																					# Keep only the first instance of the test name
																					UpperCAmelCase__     = ""
																					for i, row in enumerate(test_failures):
																												if row[0] != test_class:
																																			UpperCAmelCase__     = row[0]
																												else:
																																			UpperCAmelCase__     = ""

																					UpperCAmelCase__     = {
																					    "type": "section",
																					    "text": {
																					        "type": "mrkdwn",
																					        "text": f"""Test location: {test_location}\n```\n{tabulate(test_failures, headers=["Class", "Test"], tablefmt=hf_table_format, stralign="right")}\n```""",
																					    },
																					}

																					client.chat_postMessage(
																					    channel="#accelerate-ci-daily",
																					    thread_ts=ts,
																					    blocks=[payload],
																					)





import qiskit





def 							A			(  _UpperCAmelCase       :     int							,     _UpperCAmelCase       :     int					)       ->				qiskit.result.counts.Counts:







			'''simple docstring'''
			_UpperCAmelCase	 =     qiskit.Aer.get_backend('aer_simulator'					)

			# Create a Quantum Circuit acting on the q register
			_UpperCAmelCase	 =     qiskit.QuantumCircuit(_UpperCAmelCase							,     _UpperCAmelCase					)

			# Apply X (NOT) Gate to Qubits 0 & 1
			circuit.x(0					)
			circuit.x(1					)

			# Map the quantum measurement to the classical bits
			circuit.measure([0, 1]							,     [0, 1]					)

			# Execute the circuit on the qasm simulator
			_UpperCAmelCase	 =     qiskit.execute(_UpperCAmelCase							,     _UpperCAmelCase							,     shots=1_000					)

			# Return the histogram data of the results of the experiment.
			return job.result().get_counts(_UpperCAmelCase					)


if __name__ == "__main__":
							UpperCAmelCase__     = single_qubit_measure(2, 2)
							print(f"""Total count for various states are: {counts}""")
