setup.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. from setuptools import setup
  2. import distutils.command.check
  3. class TestCommand(distutils.command.check.check):
  4. """Custom test command."""
  5. def run(self):
  6. # run tests using doctest
  7. import doctest
  8. # set specific seed for pseudo-random process
  9. import random
  10. import numpy as np
  11. # discrete and continuous solutions module
  12. from macop.solutions import discrete
  13. from macop.solutions import continuous
  14. # operators module
  15. from macop.operators.discrete import mutators as discrete_mutators
  16. from macop.operators.discrete import crossovers as discrete_crossovers
  17. # policies module
  18. from macop.policies import classicals
  19. from macop.policies import reinforcement
  20. # run all doctest
  21. print("==============================")
  22. print("Runs test command...")
  23. random.seed(42)
  24. np.random.seed(42)
  25. # discrete solutions module
  26. doctest.testmod(discrete)
  27. doctest.testmod(continuous)
  28. random.seed(42)
  29. np.random.seed(42)
  30. # operators module
  31. doctest.testmod(discrete_mutators)
  32. doctest.testmod(discrete_crossovers)
  33. random.seed(42)
  34. np.random.seed(42)
  35. # policies module
  36. doctest.testmod(classicals)
  37. doctest.testmod(reinforcement)
  38. # pass test using doctest
  39. distutils.command.check.check.run(self)
  40. setup(
  41. name='macop',
  42. version='1.0.5',
  43. description='Minimalist And Customisable Optimisation Package',
  44. long_description=open('README.md').read(),
  45. long_description_content_type='text/markdown',
  46. classifiers=[
  47. 'Development Status :: 4 - Beta',
  48. 'License :: OSI Approved :: MIT License',
  49. 'Programming Language :: Python :: 3.7',
  50. 'Topic :: Scientific/Engineering',
  51. 'Topic :: Utilities'
  52. ],
  53. url='https://github.com/prise-3d/macop',
  54. author='Jérôme BUISINE',
  55. author_email='jerome.buisine@univ-littoral.fr',
  56. license='MIT',
  57. packages=['macop',
  58. 'macop.algorithms',
  59. 'macop.callbacks',
  60. 'macop.evaluators',
  61. 'macop.operators',
  62. 'macop.operators.discrete',
  63. 'macop.operators.continuous',
  64. 'macop.policies',
  65. 'macop.solutions',
  66. 'macop.utils'],
  67. install_requires=[
  68. 'numpy',
  69. ],
  70. cmdclass={
  71. 'test': TestCommand,
  72. },
  73. zip_safe=False)