diff --git a/setup.py b/setup.py index cd3b79cc..1189f990 100644 --- a/setup.py +++ b/setup.py @@ -78,18 +78,26 @@ class LazyBuildExtCommandClass(dict): return build_ext +def window_specialization(typename): + """Make an extension for an AdjustedArrayWindow specialization.""" + return Extension( + 'zipline.lib._{name}window'.format(name=typename), + ['zipline/lib/_{name}window.pyx'.format(name=typename)], + depends=['zipline/lib/_windowtemplate.pxi'], + ) + + ext_modules = [ Extension('zipline.assets._assets', ['zipline/assets/_assets.pyx']), Extension('zipline.assets.continuous_futures', ['zipline/assets/continuous_futures.pyx']), Extension('zipline.lib.adjustment', ['zipline/lib/adjustment.pyx']), Extension('zipline.lib._factorize', ['zipline/lib/_factorize.pyx']), - Extension( - 'zipline.lib._float64window', ['zipline/lib/_float64window.pyx'] - ), - Extension('zipline.lib._int64window', ['zipline/lib/_int64window.pyx']), - Extension('zipline.lib._uint8window', ['zipline/lib/_uint8window.pyx']), - Extension('zipline.lib._labelwindow', ['zipline/lib/_labelwindow.pyx']), + window_specialization('float64'), + window_specialization('int64'), + window_specialization('int64'), + window_specialization('uint8'), + window_specialization('label'), Extension('zipline.lib.rank', ['zipline/lib/rank.pyx']), Extension('zipline.data._equities', ['zipline/data/_equities.pyx']), Extension('zipline.data._adjustments', ['zipline/data/_adjustments.pyx']),