-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
123 lines (103 loc) · 4.03 KB
/
setup.py
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
116
117
118
119
120
121
122
123
from pathlib import Path
from typing import List
from setuptools import find_packages, setup
BASE = Path(__file__).parent
REQUIREMENTS_DIR = BASE / 'requirements'
def get_requirements(filename: str) -> List[str]:
with open(REQUIREMENTS_DIR / filename) as file:
return [ln.strip() for ln in file.readlines()]
def get_long_description() -> str:
long_description = readme_file.read_text(encoding='utf-8') if (readme_file := BASE / 'README.md').exists() else ''
return long_description.replace('../assets/preview_animation.gif?raw=true',
'https://github.com/alex-snd/TRecover/blob/assets/preview_animation.gif?raw=true')
essential_packages = get_requirements('essential.txt')
api_service_packages = get_requirements('docker/api.txt')
dashboard_service_packages = get_requirements('docker/dashboard.txt')
standalone_service_packages = get_requirements('docker/standalone.txt')
worker_service_packages = get_requirements('docker/worker.txt')
demo_packages = get_requirements('demo.txt')
dev_packages = get_requirements('dev.txt')
docs_packages = get_requirements('docs.txt')
train_packages = get_requirements('train.txt')
collab_packages = get_requirements('collab.txt')
setup(
name='trecover',
version='1.0.3',
license='Apache License 2.0',
author='Alexander Shulga',
url='https://alex-snd.github.io/TRecover',
project_urls={
'Source Code': 'https://github.com/alex-snd/TRecover',
'Bug Tracker': 'https://github.com/alex-snd/TRecover/issues',
},
description='A python library for training a Transformer neural network to solve the'
' Running Key Cipher, widely known in the field of cryptography.',
long_description=get_long_description(),
long_description_content_type='text/markdown',
keywords=[
'Deep Learning',
'Machine Learning',
'Transformers',
'NLP',
'Cryptography',
'Keyless Reading',
'TRecover',
'Text Recovery',
'PyTorch',
],
python_requires='>=3.8',
packages=find_packages(
where='src'
),
package_dir={'': 'src'},
install_requires=[essential_packages],
extras_require={
'api': api_service_packages,
'dashboard': dashboard_service_packages,
'standalone': standalone_service_packages,
'worker': worker_service_packages,
'demo': demo_packages,
'dev': dev_packages,
'docs': docs_packages,
'train': train_packages,
'collab': train_packages + collab_packages,
},
entry_points={
'console_scripts': [
'trecover = trecover.app.cli.trecovercli:cli',
],
},
classifiers=[
'Development Status :: 4 - Beta',
'Environment :: Console',
'Environment :: GPU :: NVIDIA CUDA',
'Environment :: Web Environment',
'Framework :: AsyncIO',
'Framework :: Celery',
'Framework :: FastAPI',
'Framework :: Jupyter',
'Intended Audience :: Developers',
'Intended Audience :: Education',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: Apache Software License',
'Natural Language :: English',
'Operating System :: MacOS',
'Operating System :: Microsoft :: Windows',
'Operating System :: Unix',
'Programming Language :: Python',
'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 :: Education',
'Topic :: Scientific/Engineering',
'Topic :: Scientific/Engineering :: Artificial Intelligence',
'Topic :: Scientific/Engineering :: Mathematics',
'Topic :: Security',
'Topic :: Security :: Cryptography',
'Topic :: Software Development',
'Topic :: Software Development :: Libraries :: Python Modules',
],
)