Extremely nitpicky, but `unique_collections_types` isn't a very descriptive variable name. `nonbasic_collection_types`, maybe? It also may make sense to define it like this:

    nonbasic_collection_types = [k for k in COLLECTION_TYPES.keys() if k != 0]

To make sure it includes future collection types.