def __init__(self, **kwargs):
self.table_name = kwargs['<STR_LIT>']<EOL>profile_name = kwargs.get('<STR_LIT>')<EOL>region_name = kwargs.get('<STR_LIT>')<EOL>placebo = kwargs.get('<STR_LIT>')<EOL>placebo_dir = kwargs.get('<STR_LIT>')<EOL>placebo_mode = kwargs.get('<STR_LIT>', '<STR_LIT>')<EOL>self.prototype = kwargs.get('<STR_LIT>', dict())<EOL>self._prototype_handler = PrototypeHandler(self.prototype)<EOL>self.supported_ops = kwargs.get('<STR_LIT>', self.SupportedOps)<EOL>self.supported_ops.append('<STR_LIT>')<EOL>self.encrypted_attributes = kwargs.get('<STR_LIT>', list())<EOL>session = boto3.Session(profile_name=profile_name,<EOL>region_name=region_name)<EOL>if placebo and placebo_dir:<EOL><INDENT>self.pill = placebo.attach(session, placebo_dir, debug=True)<EOL>if placebo_mode == '<STR_LIT>':<EOL><INDENT>self.pill.record()<EOL><DEDENT>else:<EOL><INDENT>self.pill.playback()<EOL><DEDENT><DEDENT>else:<EOL><INDENT>self.pill = None<EOL><DEDENT>ddb_resource = session.resource('<STR_LIT>')<EOL>self.table = ddb_resource.Table(self.table_name)<EOL>self._indexes = {}<EOL>self._analyze_table()<EOL>self._debug = kwargs.get('<STR_LIT>', False)<EOL>if self.encrypted_attributes:<EOL><INDENT>self._kms_client = session.client('<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>self._kms_client = None<EOL><DEDENT>
Create a new CRUD handler.  The CRUD handler accepts the following
parameters:

* table_name - name of the backing DynamoDB table (required)
* profile_name - name of the AWS credential profile to use when
  creating the boto3 Session
* region_name - name of the AWS region to use when creating the
  boto3 Session
* prototype - a dictionary of name/value pairs that will be used to
  initialize newly created items
* supported_ops - a list of operations supported by the CRUD handler
  (choices are list, get, create, update, delete, search,
  increment_counter, describe, help, ping)
* encrypted_attributes - a list of tuples where the first item in the
  tuple is the name of the attribute that should be encrypted and the
  second item in the tuple is the KMS master key ID to use for
  encrypting/decrypting the value
* debug - if not False this will cause the raw_response to be left
  in the response dictionary