Weaving elements into a list
The function could be replaced with this line:

return list(chain.from_iterable(zip(values, [element] * len(values))))[:-1]


Essentially,
zipping values with another list of the same size containing element in all values, flattening the zip, and chopping off the end.

About your original implementation, instead of this:


if len(copy_list) &lt;= 1:
    return copy_list



This is more Pythonic:

if not copy_list:
    return copy_list


I'm also wondering if this needs to be a @staticmethod.
Since it's a pure function, I'd just call it weave.
Here's the complete implementation with doctests:

from itertools import chain


def weave(element, values: list) -&gt; list:
    """
    &gt;&gt;&gt; weave('module', [])
    []
    &gt;&gt;&gt; weave('module', ['a'])
    ['a']
    &gt;&gt;&gt; weave('module', ['a', 'b'])
    ['a', 'module', 'b']
    &gt;&gt;&gt; weave('module', ['a', 'b', 'c'])
    ['a', 'module', 'b', 'module', 'c']

    :param element: The element to weave into the list
    :param values: The original list
    :return: The list with element weaved into it.
    """
    return list(chain.from_iterable(zip(values, [element] * len(values))))[:-1]


I see @jonrsharpe beat me to the doctests.
To add something new,
another way to run doctests:

python -m doctest yourfile.py


Update

Originally I proposed this one-liner:

return sum(zip(values, [element] * len(values)), ())[:-1]


But that turns out to be a bad idea.
This other discussion is also illuminating.