Coverage for setup.py: 0%
17 statements
« prev ^ index » next coverage.py v7.10.5, created at 2025-08-26 14:36 +0000
« prev ^ index » next coverage.py v7.10.5, created at 2025-08-26 14:36 +0000
1"""Setup.py script for the FiLiP-Library"""
3import re
4import setuptools
6# read the contents of your README file
7from pathlib import Path
9readme_path = Path(__file__).parent.joinpath("README.md")
10LONG_DESCRIPTION = readme_path.read_text(encoding="utf-8")
12INSTALL_REQUIRES = [
13 "aenum~=3.1.15",
14 "datamodel_code_generator[http]~=0.25.0",
15 "paho-mqtt~=2.0.0",
16 "pandas_datapackage_reader~=0.18.0",
17 "pydantic>=2.6.0,<2.9.0",
18 "pydantic-settings>=2.0.0,<2.3.0",
19 "geojson_pydantic~=1.0.2",
20 "stringcase>=1.2.0",
21 "regex~=2023.10.3",
22 "requests~=2.32.0",
23 "rapidfuzz~=3.4.0",
24 "geojson-pydantic~=1.0.2",
25 "wget~=3.2",
26 "PyLD~=2.0.4",
27 "pyjexl~=0.3.0",
28 "packaging~=24.1",
29]
31SETUP_REQUIRES = INSTALL_REQUIRES.copy()
34def get_version():
35 init_py = Path(__file__).parent.joinpath("filip", "__init__.py")
36 with open(init_py, "r") as f:
37 content = f.read()
38 # Using a regular expression to find the version string
39 match = re.search(r"^__version__\s*=\s*['\"]([^'\"]*)['\"]", content, re.M)
40 if match:
41 return match.group(1)
42 raise RuntimeError("Unable to find version string.")
45VERSION = get_version()
47setuptools.setup(
48 name="filip",
49 version=VERSION,
50 author="RWTH Aachen University, E.ON Energy Research Center, Institute\
51 of Energy Efficient Buildings and Indoor Climate",
52 author_email="ebc-tools@eonerc.rwth-aachen.de",
53 description="[FI]WARE [Li]brary for [P]ython",
54 long_description=LONG_DESCRIPTION,
55 long_description_content_type="text/markdown",
56 url="https://github.com/RWTH-EBC/filip",
57 download_url=f"https://github.com/RWTH-EBC/FiLiP/archive/refs/tags/v{VERSION}.tar.gz",
58 project_urls={
59 "Documentation": "https://rwth-ebc.github.io/FiLiP/master/docs/index.html",
60 "Source": "https://github.com/RWTH-EBC/filip",
61 "Download": f"https://github.com/RWTH-EBC/FiLiP/archive/refs/tags/v{VERSION}.tar.gz",
62 },
63 # Specify the Python versions you support here. In particular, ensure
64 # that you indicate whether you support Python 2, Python 3 or both.
65 classifiers=[
66 "Development Status :: 3 - Alpha",
67 "Topic :: Scientific/Engineering",
68 "Intended Audience :: Science/Research",
69 "Programming Language :: Python :: 3.8",
70 "Programming Language :: Python :: 3.9",
71 "Programming Language :: Python :: 3.10",
72 "Programming Language :: Python :: 3.11",
73 "Programming Language :: Python :: 3.12",
74 "License :: OSI Approved :: BSD License",
75 ],
76 keywords=["iot", "fiware", "semantic"],
77 packages=setuptools.find_packages(
78 exclude=["tests", "tests.*", "img", "tutorials.*", "tutorials"]
79 ),
80 package_data={"filip": ["data/unece-units/*.csv"]},
81 setup_requires=SETUP_REQUIRES,
82 # optional modules
83 extras_require={
84 "development": ["pre-commit~=4.0.1"],
85 "semantics": ["igraph~=0.11.2", "rdflib>=6.0.0,<=6.1.1"],
86 "tutorials": ["plotly==5.24.1", "matplotlib~=3.4.3"],
87 ":python_version < '3.9'": ["pandas~=1.3.5"],
88 ":python_version >= '3.9'": ["pandas>=2.1.4,<2.4.0"],
89 },
90 install_requires=INSTALL_REQUIRES,
91 python_requires=">=3.8",
92)