code: def __create_table_if_not_exists(self):
          # type: () -> None
          
          if self.create_table:
              try:
                  self.dynamodb.create_table(
                      TableName=self.table_name,
                      KeySchema=[
                          {
                              'AttributeName': self.partition_key_name,
                              'KeyType': 'HASH'
                          }
                      ],
                      AttributeDefinitions=[
                          {
                              'AttributeName': self.partition_key_name,
                              'AttributeType': 'S'
                          }
  
                      ],
                      ProvisionedThroughput={
                          'ReadCapacityUnits': 5,
                          'WriteCapacityUnits': 5
                      }
                  )
              except Exception as e:
                  if e.__class__.__name__ != "ResourceInUseException":
                      raise PersistenceException(
                          "Create table if not exists request "
                          "failed: Exception of type {} "
                          "occurred: {}".format(
                              type(e).__name__, str(e)))
docs: Creates table in Dynamodb resource if it doesn't exist and
          create_table is set as True.
  
          :rtype: None
          :raises: PersistenceException: When `create_table` fails on
              dynamodb resource.