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)[source]

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)[source]

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)[source]

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)[source]

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')[source]

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)[source]

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)[source]

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)[source]

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)[source]

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)[source]

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)[source]

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)[source]

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)[source]

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)[source]

Find object with given dbref.

Parameters

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

Returns

object (TypedObject) – The matched object.

Alias to get_id.

Parameters

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

Returns

object (TypedObject) – The matched object.

get_dbref_range(min_dbref=None, max_dbref=None)[source]

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[source]

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()[source]

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).

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.