/ setup.py
setup.py
1 import setuptools 2 import sys 3 4 pure_python = False 5 pure_notice = "\n\n**Warning!** *This package is the zero-dependency version of Reticulum. You should almost certainly use the [normal package](https://pypi.org/project/rns) instead. Do NOT install this package unless you know exactly why you are doing it!*" 6 7 if '--pure' in sys.argv: 8 pure_python = True 9 sys.argv.remove('--pure') 10 print("Building pure-python wheel") 11 12 exec(open("RNS/_version.py", "r").read()) 13 with open("README.md", "r") as fh: 14 long_description = fh.read() 15 16 if pure_python: 17 pkg_name = "rnspure" 18 requirements = [] 19 long_description = long_description.replace("</p>", "</p>"+pure_notice) 20 else: 21 pkg_name = "rns" 22 requirements = ['cryptography>=3.4.7', 'pyserial>=3.5'] 23 24 excluded_modules = ["tests.*", "tests"] 25 packages = setuptools.find_packages(exclude=excluded_modules) 26 27 setuptools.setup( 28 name=pkg_name, 29 version=__version__, 30 author="Mark Qvist", 31 author_email="mark@unsigned.io", 32 description="Self-configuring, encrypted and resilient mesh networking stack for LoRa, packet radio, WiFi and everything in between", 33 long_description=long_description, 34 long_description_content_type="text/markdown", 35 url="https://reticulum.network/", 36 packages=packages, 37 license="Reticulum License", 38 license_files = ("LICENSE"), 39 classifiers=[ 40 "Programming Language :: Python :: 3", 41 "Operating System :: OS Independent", 42 "Development Status :: 5 - Production/Stable", 43 ], 44 entry_points= { 45 'console_scripts': [ 46 'rnsd=RNS.Utilities.rnsd:main', 47 'rnstatus=RNS.Utilities.rnstatus:main', 48 'rnprobe=RNS.Utilities.rnprobe:main', 49 'rnpath=RNS.Utilities.rnpath:main', 50 'rnid=RNS.Utilities.rnid:main', 51 'rncp=RNS.Utilities.rncp:main', 52 'rnx=RNS.Utilities.rnx:main', 53 'rnir=RNS.Utilities.rnir:main', 54 'rnodeconf=RNS.Utilities.rnodeconf:main', 55 ] 56 }, 57 install_requires=requirements, 58 python_requires='>=3.7', 59 )