-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathsetup.py
98 lines (84 loc) · 2.87 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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from pathlib import Path
from setuptools import find_packages, setup
from setuptools.command.install import install
# Package meta-data.
NAME = "stream_topic"
DESCRIPTION = "A python package for expanded topic modeling and metrics"
HOMEPAGE = "https://github.com/AnFreTh/STREAM"
DOCS = "https://stream.readthedocs.io/en/"
EMAIL = "[email protected]"
AUTHOR = "Anton Thielmann"
REQUIRES_PYTHON = ">=3.6"
class PostInstallCommand(install):
"""Post-installation for downloading NLTK resources."""
def run(self):
install.run(self)
try:
import nltk
nltk.download("stopwords")
nltk.download("wordnet")
nltk.download("punkt_tab")
nltk.download("brown")
nltk.download("averaged_perceptron_tagger_eng")
except ImportError:
print(
"NLTK not installed. Ensure it is listed in install_requires or installed separately."
)
# Load the package's verison file and its content.
ROOT_DIR = Path(__file__).resolve().parent
PACKAGE_DIR = ROOT_DIR / "stream_topic"
with open(PACKAGE_DIR / "__version__.py") as f:
VERSION = f.readlines()[-1].split()[-1].strip("\"'")
# ger install_reqs from requirements file, used for setup function later
with open(os.path.join(ROOT_DIR, "requirements.txt")) as f:
# next(f)
install_reqs = [
line.rstrip()
for line in f.readlines()
if not line.startswith("#") and not line.startswith("git+")
]
extras_require = {
"plotting": ["dash", "plotly", "matplotlib", "wordcloud"],
"bertopic": ["hdbscan"],
"dcte": ["pyarrow", "setfit"],
}
# get long description from readme file
with open(os.path.join(ROOT_DIR, "README.md")) as f:
LONG_DESCRIPTION = f.read()
setup(
name=NAME,
version=VERSION,
description=DESCRIPTION,
long_description=LONG_DESCRIPTION,
long_description_content_type="text/markdown",
author=AUTHOR,
author_email=EMAIL,
python_requires=REQUIRES_PYTHON,
install_requires=install_reqs,
extras_require=extras_require,
license="MIT", # adapt based on your needs
packages=find_packages(exclude=["examples", "examples.*", "tests", "tests.*"]),
include_package_data=True,
# package_dir={"stream": "stream"},
package_data={
# Use '**' to include all files within subdirectories recursively
"stream_topic": [
"preprocessed_datasets/**/*",
"pre_embedded_datasets/**/*",
"preprocessor/config/default_preprocessing_steps.json",
],
},
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
project_urls={"Documentation": DOCS},
url=HOMEPAGE,
cmdclass={
"install": PostInstallCommand,
},
)