-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.py
More file actions
115 lines (101 loc) · 3.48 KB
/
setup.py
File metadata and controls
115 lines (101 loc) · 3.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/usr/bin/env python3
"""
Neural Dust Network - Setup Configuration
==========================================
Installation script for the Neural Dust Network package.
Enables decentralized AI learning across devices without data sharing.
"""
from setuptools import setup, find_packages
import os
# Read the README file for long description
def read_readme():
try:
with open("README.md", "r", encoding="utf-8") as f:
return f.read()
except FileNotFoundError:
return "Neural Dust Network - Decentralized AI Learning Platform"
# Read requirements from requirements.txt
def read_requirements():
try:
with open("requirements.txt", "r", encoding="utf-8") as f:
return [line.strip() for line in f if line.strip() and not line.startswith("#")]
except FileNotFoundError:
return [
"torch>=2.0.0",
"numpy>=1.24.0",
"lz4>=4.0.0",
"PyNaCl>=1.5.0"
]
setup(
# Package metadata
name="neural-dust-network",
version="1.0.0",
author="Neural Dust Network Contributors",
author_email="contributors@neural-dust-network.org",
description="Decentralized AI learning platform with privacy-preserving weight sharing",
long_description=read_readme(),
long_description_content_type="text/markdown",
url="https://github.com/your-username/neural-dust-network",
project_urls={
"Bug Reports": "https://github.com/your-username/neural-dust-network/issues",
"Source": "https://github.com/your-username/neural-dust-network",
"Documentation": "https://neural-dust-network.readthedocs.io/",
},
# Package discovery
package_dir={"": "src"},
packages=find_packages(where="src"),
# Dependencies
install_requires=read_requirements(),
# Optional dependencies
extras_require={
"dev": [
"pytest>=7.0.0",
"black>=23.0.0",
"flake8>=6.0.0",
"mypy>=1.0.0",
],
"mnist": [
"torchvision>=0.15.0",
],
"networking": [
"netifaces>=0.11.0",
"zeroconf>=0.47.0",
],
"mobile": [
"kivy>=2.1.0",
"kivymd>=1.1.0",
]
},
# Python version requirement
python_requires=">=3.8",
# Package classification
classifiers=[
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: System :: Distributed Computing",
"Topic :: Security :: Cryptography",
],
# Keywords for discovery
keywords="AI, machine learning, federated learning, decentralized, privacy, neural networks, gossip protocol",
# Entry points for command-line tools
entry_points={
"console_scripts": [
"neural-dust-demo=neural_dust.examples.basic_demo:main",
"neural-dust-node=neural_dust.tools.node_cli:main",
],
},
# Include additional files
include_package_data=True,
zip_safe=False,
# License
license="MIT",
)