docs: def iter_sections(neurites,
                    iterator_type=Tree.ipreorder,
                    neurite_filter=None,
                    neurite_order=NeuriteIter.FileOrder):
      '''Iterator to the sections in a neurite, neuron or neuron population.
  
      Parameters:
          neurites: neuron, population, neurite, or iterable containing neurite objects
          iterator_type: section iteration order within a given neurite. Must be one of:
              Tree.ipreorder: Depth-first pre-order iteration of tree nodes
              Tree.ipreorder: Depth-first post-order iteration of tree nodes
              Tree.iupstream: Iterate from a tree node to the root nodes
              Tree.ibifurcation_point: Iterator to bifurcation points
              Tree.ileaf: Iterator to all leaves of a tree
  
          neurite_filter: optional top level filter on properties of neurite neurite objects.
          neurite_order (NeuriteIter): order upon which neurites should be iterated
              - NeuriteIter.FileOrder: order of appearance in the file
              - NeuriteIter.NRN: NRN simulator order: soma -> axon -> basal -> apical
  
  
      Examples:
  
          Get the number of points in each section of all the axons in a neuron population
  
          >>> import neurom as nm
          >>> from neurom.core import ites_sections
          >>> filter = lambda n : n.type == nm.AXON
          >>> n_points = [len(s.points) for s in iter_sections(pop,  neurite_filter=filter)]
  
      '''
      return chain.from_iterable(
          iterator_type(neurite.root_node) for neurite in
          iter_neurites(neurites, filt=neurite_filter, neurite_order=neurite_order))