# evennia.typeclasses.managers

This implements the common managers that are used by the abstract models in dbobjects.py (and which are thus shared by all Attributes and TypedObjects).

class `evennia.typeclasses.managers.``TypedObjectManager`(*args, **kwargs)

  Bases: `evennia.utils.idmapper.manager.SharedMemoryManager`

  Common ObjectManager for all dbobjects.

  `get_attribute`(key=None, category=None, value=None, strvalue=None, obj=None, attrtype=None, **kwargs)

    Return Attribute objects by key, by category, by value, by strvalue, by object (it is stored on) or with a combination of those criteria.

    Parameters

      - key (str, optional) – The attribute’s key to search for

      - category (str, optional) – The category of the attribute(s) to search for.

      - value (str, optional) – The attribute value to search for. Note that this is not a very efficient operation since it will query for a pickled entity. Mutually exclusive to strvalue.

      - strvalue (str, optional) – The str-value to search for. Most Attributes will not have strvalue set. This is mutually exclusive to the value keyword and will take precedence if given.

      - obj (Object, optional) – On which object the Attribute to search for is.

      - attrype (str, optional) – An attribute-type to search for. By default this is either None (normal Attributes) or “nick”.

      - **kwargs (any) – Currently unused. Reserved for future use.

    Returns

      list – The matching Attributes.

  `get_nick`(key=None, category=None, value=None, strvalue=None, obj=None)

    Get a nick, in parallel to get_attribute.

    Parameters

      - key (str, optional) – The nicks’s key to search for

      - category (str, optional) – The category of the nicks(s) to search for.

      - value (str, optional) – The attribute value to search for. Note that this is not a very efficient operation since it will query for a pickled entity. Mutually exclusive to strvalue.

      - strvalue (str, optional) – The str-value to search for. Most Attributes will not have strvalue set. This is mutually exclusive to the value keyword and will take precedence if given.

      - obj (Object, optional) – On which object the Attribute to search for is.

    Returns

      nicks (list) – The matching Nicks.

  `get_by_attribute`(key=None, category=None, value=None, strvalue=None, attrtype=None, **kwargs)

    Return objects having attributes with the given key, category, value, strvalue or combination of those criteria.

    Parameters

      - key (str, optional) – The attribute’s key to search for

      - category (str, optional) – The category of the attribute to search for.

      - value (str, optional) – The attribute value to search for. Note that this is not a very efficient operation since it will query for a pickled entity. Mutually exclusive to strvalue.

      - strvalue (str, optional) – The str-value to search for. Most Attributes will not have strvalue set. This is mutually exclusive to the value keyword and will take precedence if given.

      - attrype (str, optional) – An attribute-type to search for. By default this is either None (normal Attributes) or “nick”.

      - kwargs (any) – Currently unused. Reserved for future use.

    Returns

      obj (list) – Objects having the matching Attributes.

  `get_by_nick`(key=None, nick=None, category='inputline')

    Get object based on its key or nick.

    Parameters

      - key (str, optional) – The attribute’s key to search for

      - nick (str, optional) – The nickname to search for

      - category (str, optional) – The category of the nick to search for.

    Returns

      obj (list) – Objects having the matching Nicks.

  `get_tag`(key=None, category=None, obj=None, tagtype=None, global_search=False)

    Return Tag objects by key, by category, by object (it is stored on) or with a combination of those criteria.

    Parameters

      - key (str, optional) – The Tag’s key to search for

      - category (str, optional) – The Tag of the attribute(s) to search for.

      - obj (Object, optional) – On which object the Tag to search for is.

      - tagtype (str, optional) – One of None (normal tags), “alias” or “permission”

      - global_search (bool, optional) – Include all possible tags, not just tags on this object

    Returns

      tag (list) – The matching Tags.

  `get_permission`(key=None, category=None, obj=None)

    Get a permission from the database.

    Parameters

      - key (str, optional) – The permission’s identifier.

      - category (str, optional) – The permission’s category.

      - obj (object, optional) – The object on which this Tag is set.

    Returns

      permission (list) – Permission objects.

  `get_alias`(key=None, category=None, obj=None)

    Get an alias from the database.

    Parameters

      - key (str, optional) – The permission’s identifier.

      - category (str, optional) – The permission’s category.

      - obj (object, optional) – The object on which this Tag is set.

    Returns

      alias (list) – Alias objects.

  `get_by_tag`(key=None, category=None, tagtype=None, **kwargs)

    Return objects having tags with a given key or category or combination of the two. Also accepts multiple tags/category/tagtype

    Parameters

      - key (str or list, optional) – Tag key or list of keys. Not case sensitive.

      - category (str or list, optional) – Tag category. Not case sensitive. If key is a list, a single category can either apply to all keys in that list or this must be a list matching the key list element by element. If no key is given, all objects with tags of this category are returned.

      - tagtype (str, optional) – ‘type’ of Tag, by default this is either None (a normal Tag), alias or permission. This always apply to all queried tags.

    Keyword Arguments

      match (str) – “all” (default) or “any”; determines whether the target object must be tagged with ALL of the provided tags/categories or ANY single one. ANY will perform a weighted sort, so objects with more tag matches will outrank those with fewer tag matches.

    Returns

      objects (list) – Objects with matching tag.

    Raises

      IndexError – If key and category are both lists and category is shorter than key.

  `get_by_permission`(key=None, category=None)

    Return objects having permissions with a given key or category or combination of the two.

    Parameters

      - key (str, optional) – Permissions key. Not case sensitive.

      - category (str, optional) – Permission category. Not case sensitive.

    Returns

      objects (list) – Objects with matching permission.

  `get_by_alias`(key=None, category=None)

    Return objects having aliases with a given key or category or combination of the two.

    Parameters

      - key (str, optional) – Alias key. Not case sensitive.

      - category (str, optional) – Alias category. Not case sensitive.

    Returns

      objects (list) – Objects with matching alias.

  `create_tag`(key=None, category=None, data=None, tagtype=None)

    Create a new Tag of the base type associated with this object. This makes sure to create case-insensitive tags. If the exact same tag configuration (key+category+tagtype+dbmodel) exists on the model, a new tag will not be created, but an old one returned.

    Parameters

      - key (str, optional) – Tag key. Not case sensitive.

      - category (str, optional) – Tag category. Not case sensitive.

      - data (str, optional) – Extra information about the tag.

      - tagtype (str or None, optional) – ‘type’ of Tag, by default this is either None (a normal Tag), alias or permission.

    Notes

    The data field is not part of the uniqueness of the tag: Setting data on an existing tag will overwrite the old data field. It is intended only as a way to carry information about the tag (like a help text), not to carry any information about the tagged objects themselves.

  `dbref`(dbref, reqhash=True)

    Determing if input is a valid dbref.

    Parameters

      - dbref (str or int) – A possible dbref.

      - reqhash (bool, optional) – If the “#” is required for this to be considered a valid hash.

    Returns

      dbref (int or None) – The integer part of the dbref.

    Notes

    Valid forms of dbref (database reference number) are either a string ‘#N’ or an integer N.

  `get_id`(dbref)

    Find object with given dbref.

    Parameters

      dbref (str or int) – The id to search for.

    Returns

      object (TypedObject) – The matched object.

  `dbref_search`(dbref)

    Alias to get_id.

    Parameters

      dbref (str or int) – The id to search for.

    Returns

      Queryset – Queryset with 0 or 1 match.

  `get_dbref_range`(min_dbref=None, max_dbref=None)

    Get objects within a certain range of dbrefs.

    Parameters

      - min_dbref (int) – Start of dbref range.

      - max_dbref (int) – End of dbref range (inclusive)

    Returns

      objects (list) –

      TypedObjects with dbrefs within

        the given dbref ranges.

  `get_typeclass_totals`(*args, **kwargs) → object

    Returns a queryset of typeclass composition statistics.

    Returns

      qs (Queryset) –

      A queryset of dicts containing the typeclass (name),

        the count of objects with that typeclass and a float representing the percentage of objects associated with the typeclass.

  `object_totals`()

    Get info about database statistics.

    Returns

      census (dict) –

      A dictionary {typeclass_path: number, …} with

        all the typeclasses active in-game as well as the number of such objects defined (i.e. the number of database object having that typeclass set on themselves).

  `typeclass_search`(typeclass, include_children=False, include_parents=False)

    Searches through all objects returning those which has a certain typeclass. If location is set, limit search to objects in that location.

    Parameters

      - typeclass (str or class) – A typeclass class or a python path to a typeclass.

      - include_children (bool, optional) – Return objects with given typeclass and all children inheriting from this typeclass. Mutuall exclusive to include_parents.

      - include_parents (bool, optional) – Return objects with given typeclass and all parents to this typeclass. Mutually exclusive to include_children.

    Returns

      objects (list) – The objects found with the given typeclasses.