


'''simple docstring'''
# Copyright 2021 The HuggingFace Team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import argparse

from .config import config_command_parser
from .config_args import default_config_file, load_config_from_file  # noqa: F401
from .default import default_command_parser
from .update import update_command_parser

def 					lowerCamelCase_ ( __UpperCamelCase					:       List[str]=None		)					->	Any:







     """simple docstring"""
     _A				=							argparse.ArgumentParser(add_help=__UpperCamelCase							,    allow_abbrev=__UpperCamelCase		)
     # The main config parser
     _A				=							config_command_parser(__UpperCamelCase		)
     # The subparser to add commands to
     _A				=							config_parser.add_subparsers(title='subcommands'							,    dest='subcommand'		)

     # Then add other parsers with the parent parser
     default_command_parser(__UpperCamelCase							,    parents=[parent_parser]		)
     update_command_parser(__UpperCamelCase							,    parents=[parent_parser]		)

     return config_parser

def 					lowerCamelCase_ ( )					->	Dict:







     """simple docstring"""
     _A				=							get_config_parser()
     _A				=							config_parser.parse_args()

     if not hasattr(__UpperCamelCase							,    'func'		):
          config_parser.print_help()
          exit(1		)

     # Run
     args.func(__UpperCamelCase		)


if __name__ == "__main__":
    main()









'''simple docstring'''
import math

import qiskit

def 					lowerCamelCase_ ( __UpperCamelCase					:       int = 1							,    __UpperCamelCase					:       int = 1							,    __UpperCamelCase					:       int = 1		)					->	qiskit.result.counts.Counts:







     """simple docstring"""
     if (
         isinstance(__UpperCamelCase							,    __UpperCamelCase		)
         or isinstance(__UpperCamelCase							,    __UpperCamelCase		)
         or isinstance(__UpperCamelCase							,    __UpperCamelCase		)
     ):
          raise TypeError('inputs must be integers.'		)

     if (input_a < 0) or (input_a < 0) or (carry_in < 0):
          raise ValueError('inputs must be positive.'		)

     if (
         (math.floor(__UpperCamelCase		) != input_a)
         or (math.floor(__UpperCamelCase		) != input_a)
         or (math.floor(__UpperCamelCase		) != carry_in)
     ):
          raise ValueError('inputs must be exact integers.'		)

     if (input_a > 2) or (input_a > 2) or (carry_in > 2):
          raise ValueError('inputs must be less or equal to 2.'		)

     # build registers
     _A				=							qiskit.QuantumRegister(4							,    'qr'		)
     _A				=							qiskit.ClassicalRegister(2							,    'cr'		)
     # list the entries
     _A				=							[input_a, input_a, carry_in]

     _A				=							qiskit.QuantumCircuit(__UpperCamelCase							,    __UpperCamelCase		)

     for i in range(0							,    3		):
          if entry[i] == 2:
               quantum_circuit.h(__UpperCamelCase		)  # for hadamard entries
          elif entry[i] == 1:
               quantum_circuit.x(__UpperCamelCase		)  # for 1 entries
          elif entry[i] == 0:
               quantum_circuit.i(__UpperCamelCase		)  # for 0 entries

    # build the circuit
     quantum_circuit.ccx(0							,    1							,    3		)  # ccx = toffoli gate
     quantum_circuit.cx(0							,    1		)
     quantum_circuit.ccx(1							,    2							,    3		)
     quantum_circuit.cx(1							,    2		)
     quantum_circuit.cx(0							,    1		)

     quantum_circuit.measure([2, 3]							,    __UpperCamelCase		)  # measure the last two qbits

     _A				=							qiskit.Aer.get_backend('aer_simulator'		)
     _A				=							qiskit.execute(__UpperCamelCase							,    __UpperCamelCase							,    shots=1_0_0_0		)

     return job.result().get_counts(__UpperCamelCase		)


if __name__ == "__main__":
    print(F'Total sum count for state is: {quantum_full_adder(1, 1, 1)}')





