# -*- coding: utf-8 -*- # Copyright (C) 1998-2015 by the Free Software Foundation, Inc. # # This file is part of Postorius. # # Postorius is free software: you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) # any later version. # # Postorius is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # more details. # # You should have received a copy of the GNU General Public License along with # Postorius. If not, see <http://www.gnu.org/licenses/>. from django.core.management.base import BaseCommand from postorius import utils class Command(BaseCommand): help = """Opens a Python shell with a mailmanclient object named `client`. Usage example: client.lists [<List "foo@example.org">] foo = client.get_list('foo@example.org') foo.members [<Member "les@primus.org">] A complete list of commands can be found in the mailmanclient documentation.""" def handle(self, *args, **options): # choose an interpreter try: import IPython console_fn = IPython.embed except ImportError: import code shell = code.InteractiveConsole(globals()) console_fn = shell.interact # connect to mailmanclient client = utils.get_client() # Putting client back in the global scope globals()['client'] = client # run the interpreter console_fn()