setup.py 5.12 KB
Newer Older
1 2 3 4
from setuptools import setup, find_packages
import glob
import os

Łukasz Nowak's avatar
Łukasz Nowak committed
5
version = '0.136'
6
name = 'slapos.toolbox'
7
long_description = open("README.rst").read() + "\n"
8

9
for f in sorted(glob.glob(os.path.join('slapos', 'README.*.rst'))):
10 11
  long_description += '\n' + open(f).read() + '\n'

12 13
long_description += open("CHANGES.txt").read() + "\n"

14
prediction_require = ['statsmodels', 'scipy', 'pandas']
15
test_require = ['mock', 'cryptography', 'websockets; python_version>="3"',] + prediction_require
16

17 18 19 20
setup(name=name,
      version=version,
      description="SlapOS toolbox.",
      long_description=long_description,
21
      long_description_content_type='text/markdown',
22 23 24 25 26 27 28 29
      classifiers=[
          "Programming Language :: Python",
        ],
      keywords='slapos toolbox',
      license='GPLv3',
      namespace_packages=['slapos'],
      packages=find_packages(),
      include_package_data=True,
30 31 32
      maintainer="Nexedi",
      maintainer_email="info@nexedi.com",
      url="https://lab.nexedi.com/nexedi/slapos.toolbox",
Jérome Perrin's avatar
Jérome Perrin committed
33
      python_requires='>=3.8',
Julien Muchembled's avatar
Julien Muchembled committed
34
      install_requires=(
35
        'Flask', # needed by servers
Antoine Catton's avatar
Antoine Catton committed
36 37
        'atomize', # needed by pubsub
        'feedparser', # needed by pubsub
38
        'lockfile', # used by equeue
39 40 41 42 43
        'lxml', # needed for xml parsing
        'psutil', # needed for playing with processes in portable way
        'setuptools', # namespaces
        'slapos.core', # as it provides library for slap
        'xml_marshaller', # needed to dump information
44 45
        'croniter', # needed to know cron schedule
        'pytz', # needed to manipulate timezone
46
        'tzlocal', # needed to manipulate timezone
47
        'backports.lzma',
48
        'netifaces',
49
        'erp5.util',
50
        'PyRSS2Gen',
51
        'dnspython',
52
        'requests',
53
        'jsonschema',
54
        'zc.buildout',
55
        'pycurl',
Julien Muchembled's avatar
Julien Muchembled committed
56
        'six',
57
        'cryptography',
58
        'click',
59
        'websocket-client; python_version>="3"',
60
        'ipaddress; python_version<"3"',
Julien Muchembled's avatar
Julien Muchembled committed
61
      ),
62
      extras_require = {
63
        'lampconfigure':  ["mysqlclient"], #needed for MySQL Database access
64
        'zodbpack': ['ZODB3'], # needed to play with ZODB
65
        'flask_auth' : ["Flask-Auth"],
66 67
        'pandas' : ['pandas'], # needed to monitor_partition_space promise
        'prediction' : prediction_require, # needed to use ARIMA in check_free_disk_space
68
        'test': test_require,
69
      },
70
      tests_require=test_require,
71 72 73 74
      zip_safe=False, # proxy depends on Flask, which has issues with
                      # accessing templates
      entry_points={
        'console_scripts': [
75
          'agent = slapos.agent.agent:main',
76
          'apache-mpm-watchdog = slapos.promise.apache_mpm_watchdog:main',
77
          'check-computer-memory = slapos.promise.check_computer_memory:main',
78
          'check-web-page-http-cache-hit = slapos.promise.check_web_page_http_cache_hit:main',
79
          'check-feed-as-promise = slapos.checkfeedaspromise:main',
80 81
          'check-apachedex-result = slapos.promise.check_apachedex_result:main',
          'check-slow-queries-digest-result = slapos.promise.check_slow_queries_digest_result:main',
Cédric de Saint Martin's avatar
Cédric de Saint Martin committed
82
          'equeue = slapos.equeue:main',
83
          'generatefeed = slapos.generatefeed:main',
84
          'htpasswd = slapos.htpasswd:main',
85
          'is-local-tcp-port-opened = slapos.promise.is_local_tcp_port_opened:main',
86
          'is-process-older-than-dependency-set = slapos.promise.is_process_older_than_dependency_set:main',
87
          'killpidfromfile = slapos.systool:killpidfromfile', # BBB
88 89
          'monitor.bootstrap = slapos.monitor.monitor:main',
          'monitor.collect = slapos.monitor.collect:main',
90
          'monitor.statistic = slapos.monitor.build_statistic:main',
91 92
          'monitor.runpromise = slapos.monitor.runpromise:main',
          'monitor.genstatus = slapos.monitor.globalstate:main',
93
          'monitor.configwrite = slapos.monitor.monitor_config_write:main',
94 95
          'runResiliencyUnitTestTestNode = slapos.resiliencytest:runUnitTest',
          'runResiliencyScalabilityTestNode = slapos.resiliencytest:runResiliencyTest',
Hardik Juneja's avatar
Hardik Juneja committed
96
          'runApacheDex = slapos.apachedex:main',
Cédric de Saint Martin's avatar
Cédric de Saint Martin committed
97
          'lampconfigure = slapos.lamp:run [lampconfigure]',
Nicolas Delaby's avatar
Nicolas Delaby committed
98
          'onetimedownload = slapos.onetimedownload:main',
Cédric de Saint Martin's avatar
Cédric de Saint Martin committed
99 100 101
          'onetimeupload = slapos.onetimeupload:main',
          'pubsubnotifier = slapos.pubsub.notifier:main',
          'pubsubserver = slapos.pubsub:main',
102
          'qemu-qmp-client = slapos.qemuqmpclient:main',
103
          'rdiffbackup.genstatrss = slapos.resilient.rdiffBackupStat2RSS:main',
104
          'runner-exporter = slapos.resilient.runner_exporter:runExport',
105
          'runner-importer-post-notification-run = slapos.resilient.runner_importer:postNotificationRun',
106
          'backup-identity-script-excluding-path = slapos.resilient.identity_script_excluding_path:calculateSignature',
107
          'securedelete = slapos.securedelete:main',
108
          'slapos-kill = slapos.systool:kill',
109
          'zodbpack = slapos.zodbpack:run [zodbpack]',
110
          'networkbench = slapos.networkbench:main',
111 112
          'cachechecker = slapos.cachechecker:web_checker_utility',
          'dnsresolver = slapos.dnsresolver:cli',
113 114
        ]
      },
115
      test_suite='slapos.test',
Rafael Monnerat's avatar
Rafael Monnerat committed
116
    )