async def get(self, source_, *args, **kwargs):
await self.connect()<EOL>if isinstance(source_, peewee.Query):<EOL><INDENT>query = source_<EOL>model = query.model<EOL><DEDENT>else:<EOL><INDENT>query = source_.select()<EOL>model = source_<EOL><DEDENT>conditions = list(args) + [(getattr(model, k) == v)<EOL>for k, v in kwargs.items()]<EOL>if conditions:<EOL><INDENT>query = query.where(*conditions)<EOL><DEDENT>try:<EOL><INDENT>result = await self.execute(query)<EOL>return list(result)[<NUM_LIT:0>]<EOL><DEDENT>except IndexError:<EOL><INDENT>raise model.DoesNotExist<EOL><DEDENT>
Get the model instance.

        :param source_: model or base query for lookup

        Example::

            async def my_async_func():
                obj1 = await objects.get(MyModel, id=1)
                obj2 = await objects.get(MyModel, MyModel.id==1)
                obj3 = await objects.get(MyModel.select().where(MyModel.id==1))

        All will return `MyModel` instance with `id = 1`