-
Notifications
You must be signed in to change notification settings - Fork 86
Expand file tree
/
Copy pathsetup.py
More file actions
115 lines (106 loc) · 3.74 KB
/
setup.py
File metadata and controls
115 lines (106 loc) · 3.74 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
from __future__ import annotations
import re
from pathlib import Path
from setuptools import find_packages, setup
def read(*names: str, encoding: str = "utf8") -> str:
"""Read and return the contents of a text file located by path segments
relative to this file's directory.
Parameters
----------
*names : str
Sequence of path components under the project root.
encoding : str, default "utf8"
File encoding to use when reading.
Returns
-------
str
The full text content of the file.
"""
base_dir = Path(__file__).parent
file_path = base_dir.joinpath(*names)
return file_path.read_text(encoding=encoding)
setup(
name="pythermalcomfort",
version="3.9.2",
license="MIT",
description=(
"pythermalcomfort is a comprehensive toolkit for calculating "
"thermal comfort indices, heat/cold stress metrics, and thermophysiological responses. "
"It supports multiple models, including PMV, PPD, adaptive comfort, SET, "
"UTCI, Heat Index, Wind Chill Index, and Humidex. "
"The package also includes thermophysiological models like the two-node (Gagge) and multinode (JOS-3) models "
"to estimate physiological responses such as core temperature, skin temperature, and skin wettedness. "
),
long_description="{}\n{}".format(
re.compile("^.. start-badges.*^.. end-badges", re.MULTILINE | re.DOTALL).sub(
"",
read("README.rst"),
),
re.sub(":[a-z]+:`~?(.*?)`", r"``\1``", read("CHANGELOG.rst")),
),
long_description_content_type="text/x-rst",
author="Federico Tartarini",
author_email="cbecomforttool@gmail.com",
url="https://github.com/CenterForTheBuiltEnvironment/pythermalcomfort",
packages=find_packages(),
include_package_data=True,
zip_safe=False,
classifiers=[
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Intended Audience :: Education",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Operating System :: Unix",
"Operating System :: POSIX",
"Operating System :: Microsoft :: Windows",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Education",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Atmospheric Science",
"Topic :: Utilities",
],
project_urls={
"Documentation": "https://pythermalcomfort.readthedocs.io/",
"Changelog": "https://pythermalcomfort.readthedocs.io/en/latest/changelog.html",
"Issue Tracker": (
"https://github.com/CenterForTheBuiltEnvironment/pythermalcomfort/issues"
),
},
keywords=[
"thermal comfort",
"pmv",
"heat stress",
"cold stress",
"thermal sensation",
"thermal physiology",
"meteorology",
"climate analysis",
"discomfort",
"comfort",
"thermal environment",
"built environment",
],
python_requires=">=3.10.0",
install_requires=[
"scipy",
"numba",
"numpy>=1.21,<2.3",
"setuptools",
],
extras_require={
"dev": ["pytest", "sphinx"],
},
entry_points={
"console_scripts": [
"pythermalcomfort = pythermalcomfort.cli:main",
],
},
)