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

Queryset – Queryset with 0 or 1 match.

search_dbref(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)[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 are of the specified typeclass.

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

Raises

ImportError – If the provided typeclass is not a valid typeclass or the path to an existing typeclass.