U
    ÑtœdH	  ã                   @   sè   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lm	Z	 dd
lm
Z
 ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlT dS )aû   This package implements the Leiden algorithm in ``C++`` and exposes it to
python.  It relies on ``(python-)igraph`` for it to function. Besides the
relative flexibility of the implementation, it also scales well, and can be run
on graphs of millions of nodes (as long as they can fit in memory). Each method
is represented by a different class, all of whom derive from
:class:`~leidenalg.VertexPartition.MutableVertexPartition`. In addition,
multiplex graphs are supported as layers, which also supports multislice
representations.

Examples
--------

The simplest example just finds a partition using modularity

  >>> G = ig.Graph.Tree(100, 3)
  >>> partition = la.find_partition(G, la.ModularityVertexPartition)

Alternatively, one can access the different optimisation routines individually
and construct partitions oneself. These partitions can then be optimised by
constructing an :class:`Optimiser` object and running
:func:`~Optimiser.optimise_partition`.

  >>> G = ig.Graph.Tree(100, 3)
  >>> partition = la.CPMVertexPartition(G, resolution_parameter = 0.1)
  >>> optimiser = la.Optimiser()
  >>> diff = optimiser.optimise_partition(partition)

The :class:`Optimiser` class contains also the different subroutines that are
used internally by :func:`~Optimiser.optimise_partition`. In addition, through
the Optimiser class there are various options available for changing some of
the optimisation procedure which can affect both speed and quality, which are
not immediately available in :func:`leidenalg.find_partition`.
é   )Ú	ALL_COMMS)ÚALL_NEIGH_COMMS)Ú	RAND_COMM)ÚRAND_NEIGH_COMM)Ú
MOVE_NODES)ÚMERGE_NODES)Úfind_partition)Úfind_partition_multiplex)Úfind_partition_temporal)Úslices_to_layers)Útime_slices_to_layers)Ú	Optimiser)ÚModularityVertexPartition)ÚSurpriseVertexPartition)ÚSignificanceVertexPartition)ÚRBERVertexPartition)ÚRBConfigurationVertexPartition)ÚCPMVertexPartition)Ú*N)Ú__doc__Z	functionsr   r   r   r   r   r   r   r	   r
   r   r   r   ZVertexPartitionr   r   r   r   r   r   Úversion© r   r   úK/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/leidenalg/__init__.pyÚ<module>   s&   !