evennia/docs/source/Coding/Flat-API.md
2020-07-12 22:13:47 +02:00

1.5 KiB

Things to remember about the flat API

The flat API is a series of 'shortcuts' on the evennia main library root (defined in evennia/__init__.py). Its componentas are documented as part of the auto-documentation.

To remember when importing from evennia

Properties on the root of the evennia package are not modules in their own right. They are just shortcut properties stored in the evennia/__init__.py module. That means that you cannot use dot- notation to import nested module-names over evennia. The rule of thumb is that you cannot use import for more than one level down. Hence you can do

    import evennia
    print(evennia.default_cmds.CmdLook)

or import one level down

    from evennia import default_cmds
    print(default_cmds.CmdLook)

but you cannot import two levels down

     from evennia.default_cmds import CmdLook # error!

This will give you an ImportError telling you that the module default_cmds cannot be found - this is becasue default_cmds is just a variable stored in evennia.__init__.py; this cannot be imported from. If you really want full control over which level of package you import you can always bypass the root package and import directly from from the real location. For example evennia.DefaultObject is a shortcut to evennia.objects.objects.DefaultObject. Using this full path will have the import mechanism work normally. See evennia/__init__.py to see where the package imports from.