

"""simple docstring"""




import numpy as np
import qiskit
def   lowerCAmelCase						(					__UpperCamelCase = 8							,    __UpperCamelCase = None      ):
 '''simple docstring'''





 UpperCAmelCase__					:  Optional[int]					   =					np.random.default_rng(seed=__UpperCamelCase      )

 # Roughly 25% of the qubits will contribute to the key.
 # So we take more than we need.
 UpperCAmelCase__					:  Union[str, Any]					   =					6 * key_len
 # Measurement basis for Alice's qubits.
 UpperCAmelCase__					:  List[str]					   =					rng.integers(2							,    size=__UpperCamelCase      )
 # The set of states Alice will prepare.
 UpperCAmelCase__					:  List[Any]					   =					rng.integers(2							,    size=__UpperCamelCase      )
 # Measurement basis for Bob's qubits.
 UpperCAmelCase__					:  List[str]					   =					rng.integers(2							,    size=__UpperCamelCase      )

 # Quantum Circuit to simulate BB84
 UpperCAmelCase__					:  List[str]					   =					qiskit.QuantumCircuit(__UpperCamelCase							,    name="""BB84"""      )

 # Alice prepares her qubits according to rules above.
 for index, _ in enumerate(__UpperCamelCase      ):
  if alice_state[index] == 1:
   bbaa_circ.x(__UpperCamelCase      )
  if alice_basis[index] == 1:
   bbaa_circ.h(__UpperCamelCase      )
 bbaa_circ.barrier()

 # Bob measures the received qubits according to rules above.
 for index, _ in enumerate(__UpperCamelCase      ):
  if bob_basis[index] == 1:
   bbaa_circ.h(__UpperCamelCase      )

 bbaa_circ.barrier()
 bbaa_circ.measure_all()

 # Simulate the quantum circuit.
 UpperCAmelCase__					:  List[Any]					   =					qiskit.Aer.get_backend("""aer_simulator"""      )
 # We only need to run one shot because the key is unique.
 # Multiple shots will produce the same key.
 UpperCAmelCase__					:  Tuple					   =					qiskit.execute(__UpperCamelCase							,    __UpperCamelCase							,    shots=1							,    seed_simulator=__UpperCamelCase      )
 # Returns the result of measurement.
 UpperCAmelCase__					:  int					   =					job.result().get_counts(__UpperCamelCase      ).most_frequent()

 # Extracting the generated key from the simulation results.
 # Only keep measurement results where Alice and Bob chose the same basis.
 UpperCAmelCase__					:  Dict					   =					"""""".join(
     [
         result_bit
         for alice_basis_bit, bob_basis_bit, result_bit in zip(
             __UpperCamelCase							,    __UpperCamelCase							,    __UpperCamelCase      )
         if alice_basis_bit == bob_basis_bit
     ]      )

 # Get final key. Pad with 0 if too short, otherwise truncate.
 UpperCAmelCase__					:  str					   =					gen_key[:key_len] if len(__UpperCamelCase      ) >= key_len else gen_key.ljust(__UpperCamelCase							,    """0"""      )
 return key


if __name__ == "__main__":
      print(F"The generated key is : {bbaa(8, seed=0)}")
      from doctest import testmod

      testmod()








"""simple docstring"""




from datetime import datetime as dt
import os

from github import Github


__UpperCAmelCase =				[
    'good first issue',
    'good second issue',
    'good difficult issue',
    'feature request',
    'new model',
    'wip',
]
def   lowerCAmelCase						(					):
 '''simple docstring'''





 UpperCAmelCase__					:  str					   =					Github(os.environ["""GITHUB_TOKEN"""]      )
 UpperCAmelCase__					:  int					   =					g.get_repo("""huggingface/transformers"""      )
 UpperCAmelCase__					:  Optional[int]					   =					repo.get_issues(state="""open"""      )

 for issue in open_issues:
  UpperCAmelCase__					:  Any					   =					sorted([comment for comment in issue.get_comments()]							,    key=lambda __UpperCamelCase      : i.created_at							,    reverse=__UpperCamelCase      )
  UpperCAmelCase__					:  Union[str, Any]					   =					comments[0] if len(__UpperCamelCase      ) > 0 else None
  if (
      last_comment is not None
      and last_comment.user.login == "github-actions[bot]"
      and (dt.utcnow() - issue.updated_at).days > 7
      and (dt.utcnow() - issue.created_at).days >= 30
      and not any(label.name.lower() in LABELS_TO_EXEMPT for label in issue.get_labels()      )
  ):
   # print(f"Would close issue {issue.number} since it has been 7 days of inactivity since bot mention.")
   issue.edit(state="""closed"""      )
  elif (
      (dt.utcnow() - issue.updated_at).days > 23
      and (dt.utcnow() - issue.created_at).days >= 30
      and not any(label.name.lower() in LABELS_TO_EXEMPT for label in issue.get_labels()      )
  ):
   # print(f"Would add stale comment to {issue.number}")
   issue.create_comment(
       """This issue has been automatically marked as stale because it has not had """
       """recent activity. If you think this still needs to be addressed """
       """please comment on this thread.\n\nPlease note that issues that do not follow the """
       """[contributing guidelines](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md) """
       """are likely to be ignored."""      )


if __name__ == "__main__":
      main()





