Mother ORM is a Python software module that facilitates database communication by replacing the SQL language with smart classes and techniques. It streamlines the process of concealing SQL intricacies.
Mother is released under the BSD License and is already being used in production environments. The philosophy behind the creation of Mother was to develop a light, fast and simple ORM that can handle foreign keys, relations and children automatically, thanks to its ability to understand the database structure. There is no need to write models, XML or configuration files, as the mothermapper tool takes care of everything you need.
Mother is not intended to be the definitive ORM, but rather a powerful and flexible framework that is free and easy to use. The Mother module offers a variety of classes to handle different situations, and it's possible to represent a table with just one class. The class knows tables relationships, making it easy to handle children and relationships that would otherwise require foreign keys and other information.
The Mother classes can be easily extended, and the ORM comes with some pre-built plugins, such as Triggers. It's easy to build your own extensions thanks to the Mother framework. The database connection is comfortable, with credentials specified in a configuration file, and Mother implements a connection pool to be used in a threaded environment. Transactions are handled in a special way, allowing you to call nested transactions without worrying about the commit or rollback statements.
Mother also comes with a logger called Speaker, which supports standard output, a log file with rotation capability, syslog, and SMTP. And, best of all, Mother is fast: the knowledge it gains is persisted to just two files, meaning there is no slow computation model.
The latest release of Mother includes the ability to use the mothermapper -d option on complex PostgreSQL schemes. If you're looking for a powerful ORM that can handle anything you throw at it, then look no further than Mother.
Version 0.6.4-r5: N/A