# ``igraph`.`UniqueIdGenerator``

class documentation

`class UniqueIdGenerator: (source)`

Constructor: `UniqueIdGenerator(id_generator, initial)`

View In Hierarchy

A dictionary-like class that can be used to assign unique IDs to names (say, vertex names).

Usage:

    >>> gen = UniqueIdGenerator()
    >>> gen["A"]
    0
    >>> gen["B"]
    1
    >>> gen["C"]
    2
    >>> gen["A"]      # Retrieving already existing ID
    0
    >>> gen.add("D")  # Synonym of gen["D"]
    3
    >>> len(gen)      # Number of already used IDs
    4
    >>> "C" in gen
    True
    >>> "E" in gen
    False

Method | `__contains__` | Checks whether `item` already has an ID or not.
Method | `__getitem__` | Retrieves the ID corresponding to `item`. Generates a new ID for `item` if it is the first time we request an ID for it.
Method | `__init__` | Creates a new unique ID generator. `id_generator` specifies how do we assign new IDs to elements that do not have an ID yet. If it is `None`, elements will be assigned integer identifiers starting from 0. ...
Method | `__len__` | Returns the number of items.
Method | `__setitem__` | Overrides the ID for `item`.
Method | `reverse_dict` | Returns the reverse mapping, i.e., the one that maps from generated IDs to their corresponding objects
Method | `values` | Returns the values stored so far. If the generator generates items according to the standard sorting order, the values returned will be exactly in the order they were added. This holds for integer IDs for instance (but for many other ID generators as well).
Instance Variable | `_generator` | Undocumented
Instance Variable | `_ids` | Undocumented

def __contains__(self, item): (source)

Checks whether `item` already has an ID or not.

def __getitem__(self, item): (source)

Retrieves the ID corresponding to `item`. Generates a new ID for `item` if it is the first time we request an ID for it.

def __init__(self, id_generator=None, initial=None): (source)

Creates a new unique ID generator. `id_generator` specifies how do we assign new IDs to elements that do not have an ID yet. If it is `None`, elements will be assigned integer identifiers starting from 0. If it is an integer, elements will be assigned identifiers starting from the given integer. If it is an iterator or generator, its `next()` method will be called every time a new ID is needed.

def __len__(self): (source)

Returns the number of items.

def __setitem__(self, item, value): (source)

Overrides the ID for `item`.

def reverse_dict(self): (source)

Returns the reverse mapping, i.e., the one that maps from generated IDs to their corresponding objects

def values(self): (source)

Returns the values stored so far. If the generator generates items according to the standard sorting order, the values returned will be exactly in the order they were added. This holds for integer IDs for instance (but for many other ID generators as well).

_generator = (source)

Undocumented

_ids: `dict` = (source)

Undocumented