Regarding the inter/deinterleaver addition you have to:
instantiate an interleaver object of size K
where K is the length of the data you want to interleave.
There are different ways to do this. The simplest is a random
int_object=trellis.interleaver(K,666) # last parameter is a seed
then you have to instantiate the interleaver and deinterleaver
blocks and put them before and after the CC encoder, Viterbi decoder,
the last argument is the input/output signature size.
the second to last argument says how many of these i/o items you want
to consider as a block that will be permuted according to the
permutation described in the inter_object.