class_docstr: Calculates a commission for a transaction based on a per trade cost.
  
  Parameters
  ----------
  cost : float or dict
      The flat amount of commissions paid per trade, regardless of the number
      of contracts being traded. If given a float, the commission for all
      futures contracts is the same. If given a dictionary, it must map root
      symbols to the commission cost for trading contracts of that symbol.
class_docstr_tok: ["Calculates","a","commission","for","a","transaction","based","on","a","per","trade","cost",".","Parameters","--","--","--","--","--","cost",":","float","or","dict","The","flat","amount","of","commissions","paid","per","trade",",","regardless","of","the","number","of","contracts","being","traded",".","If","given","a","float",",","the","commission","for","all","futures","contracts","is","the","same",".","If","given","a","dictionary",",","it","must","map","root","symbols","to","the","commission","cost","for","trading","contracts","of","that","symbol","."]
code: def __init__(self, cost=DEFAULT_MINIMUM_COST_PER_FUTURE_TRADE):
      # The per-trade cost can be represented as the exchange fee in a
      # per-contract model because the exchange fee is just a one time cost
      # incurred on the first fill.
      super(PerFutureTrade, self).__init__(
          cost=0,
          exchange_fee=cost,
          min_trade_cost=0,
      )
      self._cost_per_trade = self._exchange_fee
  
imports: from abc import abstractmethod
  from collections import defaultdict
  from six import with_metaclass
  from toolz import merge
  from catalyst.assets import Equity, Future
  from catalyst.finance.constants import FUTURE_EXCHANGE_FEES_BY_SYMBOL
  from catalyst.finance.shared import AllowedAssetMarker, FinancialModelMeta
  from catalyst.utils.dummy import DummyMapping
label_desc: Use image node_id 1 to create a new PerFutureTrade object from inherited base classes: PerContract with example: obj = PerFutureTrade(cost)