title: how to pass a lot of arguments to several functions
body: <p>it's hard to formulate my question exactly as I can't really make a minimal example, because it's a problem on a large scale. The problem considers code organization:</p>
  
  <p>Let's say I have a script which imports my utility functions and creates a lot of variables</p>
  
  <pre><code>import utility
  list_a # list of custom objects
  list_b # list of custom objects
  list_m # list of numpy matrices
  matrix_a
  net # networkx object
  utility.my_main_func(list_a, list_b, list_m, matrix_a, net)
  Then in utility I have
  my_main_func(a, b, m, m_a, network)
  my_func_one(a, b, m, m_a)   # no network
  my_func_two(a, b, m, m_a, network, additional_one)
  
  my_func_three(a, b, m, m_a, network, additional_two)
  </code></pre>
  
  <p>So my question is what is the idiomatic way to do this, regarding readability and extendibility of the code. Should I use a dictionary and the *args and **kwargs, or is there nothing else to it.</p>
  
  <p>Thanks</p>