2. Price calculation
With blackscholes you are able to get a fair value
estimate of a call or 
put option according to the Black-Scholes-Merton model
and Black-76 model.
Parameters
Reference of symbols that are used in the formulas:
$S$ = Asset price
$F$ = Futures price
$K$ = Strike price
$T$ = Time to maturity (in years)
$r$ = Risk-free rate
$\sigma$ = Volatility
$q$ = Annual dividend yield
$\Phi(.)$ = Cumulative Density Function (CDF) of  $\mathcal{N}(0, 1)$
Black-Scholes
$d_1 = \frac{ln(\frac{S}{K}) + (r - q +\frac{1}{2}\sigma^2)T}{\sigma\sqrt{T}}$
$d_2 = d_1 - \sigma\sqrt{T}$
Call
$$ S e^{-qT} \Phi(d_1) - e^{-rT}K\Phi(d_2)$$
from blackscholes import BlackScholesCall
call = BlackScholesCall(S=55, K=50, T=1, r=0.0025, sigma=0.15)
call.price()  ## 6.339408
Fair value of Black-Scholes call option.
Source code in src/blackscholes/call.py
              24 25 26 27 28 29  |  | 
Put
$$e^{-rT}K\Phi(-d_2) - S e^{-qT} \Phi(-d_1)$$
from blackscholes import BlackScholesPut
put = BlackScholesPut(S=55, K=50, T=1, r=0.0025, sigma=0.15)
put.price()  ## 1.214564
Fair value of a Black-Scholes put option.
Source code in src/blackscholes/put.py
              24 25 26 27 28  |  | 
Black-76
$d_1 = \frac{ln(\frac{F}{K}) + \frac{1}{2}\sigma^2T}{\sigma\sqrt{T}}$
$d_2 = d_1 - \sigma\sqrt{T}$
Call
$$e^{-rT} \bigg[F \Phi(d_1) - K\Phi(d_2) \bigg]$$
from blackscholes import Black76Call
call = Black76Call(F=55, K=50, T=1, r=0.0025, sigma=0.15)
call.price()  ## 6.2345
Fair value of a Black-76 call option.
Source code in src/blackscholes/call.py
              104 105 106 107 108  |  | 
Put
$$e^{-rT} \bigg[K \Phi(-d_2) - F\Phi(-d_1) \bigg]$$
from blackscholes import Black76Put
F = 55. # Discounted futures price
put = Black76Put(F=55, K=50, T=1, r=0.0025, sigma=0.15)
put.price()  ## 1.2470
Fair value of a Black-76 put option.
Source code in src/blackscholes/put.py
              94 95 96 97 98  |  | 
Binary options
blackscholes supports calculation of the price and the forward (undiscounted price) of binary options. Also called a digital, exotic or bet option.
Call
$$e^{-rT} \Phi(d_2)$$
Formula for forward then is just $$\Phi(d_2)$$
from blackscholes import BinaryCall
call = BinaryCall(S=55, K=50, T=1, r=0.0025, sigma=0.15)
call.price() # 0.7163
call.forward() # 0.7181
Fair value of binary call option.
Source code in src/blackscholes/call.py
              159 160 161  |  | 
Fair value of binary call option without discounting for interest rates.
Source code in src/blackscholes/call.py
              163 164 165  |  | 
Put
$$e^{-rT} (1 - \Phi(d_2))$$
Formula for forward then is just $$1 - \Phi(d_2)$$
from blackscholes import BinaryPut
put = BinaryPut(S=55, K=50, T=1, r=0.0025, sigma=0.15)
put.price() # 0.2812
put.forward() # 0.2819