How to pass custom key-value pairs in setup()
parameters? I need them for a custom build_scripts
step.
from distutils.core import setup
from somescripts import build_scripts
setup(name='somescripts',
version=__version__,
cmdclass= {
'build_scripts': build_scripts,
},
custom_pairs={
'compile_modules': True,
'use_scons': True,
'modules': [f for f in glob('scripts/[!_]*.spy')],
},
)
This gives "UserWarning: Unknown distribution option" in setup.py install
(which turns into error with --strict
)
c:\python27\Lib\distutils\dist.py:267: UserWarning: Unknown distribution
option: 'custom_pairs'
warnings.warn(msg)
UPDATE:
build_scripts
at all if scripts
kwarg is emptyFound the way myself.
from distutils.command.build_scripts import build_scripts as base
from distutils.core import setup
# patch distutils so that it won't skip "build_scripts"
# step if `scripts` list is empty
from distutils.dist import Distribution
def custom_has_scripts(self):
return True
Distribution.has_scripts = custom_has_scripts
class build_scripts(base):
def initialize_options(self):
self.compile_modules = None
self.use_scons = None
self.modules = None
def run(self):
for module in self.modules:
# generate scripts
pass
setup(name='somescripts',
version=__version__,
cmdclass= {
'build_scripts': build_scripts,
},
options={
'build_scripts':{
'compile_modules': True,
'use_scons': True,
'modules': [f for f in glob('scripts/[!_]*.spy')],
},
},
)