Skip to content

Commit 93d5d26

Browse files
authored
Merge pull request #8 from agoravoting/next
version 3.3.0
2 parents 2d73ba5 + 70810b1 commit 93d5d26

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

frestq/app.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,13 @@ def get_json(self, force=False, silent=False, cache=True):
7979

8080
class FrestqApp(Flask):
8181
def __init__(self, *args, **kwargs):
82-
if 'parse_args' in kwargs:
83-
del kwargs['parse_args']
84-
self.parse_args()
8582
super(FrestqApp, self).__init__(*args, **kwargs)
8683

8784
request_class = FrestqRequest
8885

8986
pargs = None
9087

91-
def configure_app(self, config_object=None):
88+
def configure_app(self, scheduler=True, config_object=None):
9289
'''
9390
Configures the application. It's intended to do everything to be able to
9491
run the application except calling app.run, so that it can be reused when
@@ -117,16 +114,13 @@ def configure_app(self, config_object=None):
117114
self.config['SSL_CERT_STRING'] = ''
118115
logging.warning("You are NOT using SSL in this instance")
119116

120-
if self.pargs.createdb or self.pargs.messages or self.pargs.tasks or\
121-
self.pargs.tree or self.pargs.show_task or\
122-
self.pargs.show_message or self.pargs.show_external or\
123-
self.pargs.finish or self.pargs.show_activity:
117+
if not scheduler:
124118
return
125119

126120
logging.info("Launching with ROOT_URL = %s", self.config['ROOT_URL'])
127121
FScheduler.start_all_schedulers()
128-
129-
def parse_args(self):
122+
123+
def parse_args(self, extra_parse_func):
130124
parser = argparse.ArgumentParser()
131125
parser.add_argument("--createdb", help="create the database",
132126
action="store_true")
@@ -155,6 +149,7 @@ def parse_args(self):
155149
parser.add_argument("-ll", "--log-level", default=None,
156150
help="show verbose output. set to ERROR by default",
157151
choices=["debug","info", "error"])
152+
extra_parse_func(self, parser)
158153
self.pargs = parser.parse_args()
159154

160155
if self.pargs.limit < 1:
@@ -173,6 +168,10 @@ def run(self, *args, **kwargs):
173168
'''
174169
Reimplemented the run function.
175170
'''
171+
if 'parse_args' in kwargs and kwargs['parse_args'] == True:
172+
del kwargs['parse_args']
173+
self.parse_args(kwargs.get('extra_parse_func', lambda a,b: None))
174+
176175
if self.pargs is not None:
177176
if self.pargs.createdb:
178177
print "creating the database: ", self.config.get('SQLALCHEMY_DATABASE_URI', '')
@@ -204,6 +203,11 @@ def run(self, *args, **kwargs):
204203
elif self.pargs.console:
205204
import ipdb; ipdb.set_trace()
206205
return
206+
else:
207+
extra_run = kwargs.get('extra_run', lambda a: False)
208+
ret = extra_run(self)
209+
if ret:
210+
return
207211

208212
# ignore these threaded or use_reloader, we force those two
209213
if 'threaded' in kwargs:
@@ -219,7 +223,7 @@ def run(self, *args, **kwargs):
219223
return super(FrestqApp, self).run(threaded=True, use_reloader=False,
220224
*args, **kwargs)
221225

222-
app = FrestqApp(__name__, parse_args=True)
226+
app = FrestqApp(__name__)
223227

224228
### configuration
225229

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
setup(
2626
name='frestq',
27-
version='3.2.0',
27+
version='3.3.0',
2828
author='Agora Voting Team',
2929
author_email='agora@agoravoting.com',
3030
packages=['frestq'],
@@ -36,6 +36,6 @@
3636
install_requires=reqs,
3737
dependency_links = [
3838
'hg+https://edulix@bitbucket.org/edulix/apscheduler#egg=apscheduler',
39-
'git+https://github.com/edulix/requests.git#egg=requests'
39+
'git+https://github.com/agoravoting/requests.git@agora#egg=requests'
4040
]
4141
)

0 commit comments

Comments
 (0)