class_docstr: Fake for datastore transaction.
  
  See https://cloud.google.com/datastore/docs/concepts/transactions
  for details of how transactions work in Cloud Datastore.
class_docstr_tok: ["Fake","for","datastore","transaction",".","See","https",":","\/\/cloud.google.com\/datastore\/docs\/concepts\/transactions","for","details","of","how","transactions","work","in","Cloud","Datastore","."]
docstr: Init FakeDatastoreClientTransaction.
docstr_tok: ["Init","FakeDatastoreClientTransaction","."]
code: def __init__(self, fake_datastore_client):
      """Init FakeDatastoreClientTransaction."""
      self._client = fake_datastore_client
      # snapshot of the data in the fake datastore
      self._data_snapshot = copy.deepcopy(
          fake_datastore_client.entities
      )
      # transaction stated: 'init', 'started', 'committed', 'rolledback'
      self._state = "init"
      # list of mutations in this transactions in sequential order
      # each mutation is instance of FakeDatastoreEntity
      self._mutations = []
      # set of keys read in this transaction
      self._read_keys = set()
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import copy
  from io import StringIO
  import six
label_desc: Use image node_id 1 to create a new FakeDatastoreClientTransaction object from inherited base classes: object with example: obj = FakeDatastoreClientTransaction(fake_datastore_client)