Coverage for setup.py: 0%

17 statements  

« prev     ^ index     » next       coverage.py v7.10.5, created at 2025-08-26 14:36 +0000

1"""Setup.py script for the FiLiP-Library""" 

2 

3import re 

4import setuptools 

5 

6# read the contents of your README file 

7from pathlib import Path 

8 

9readme_path = Path(__file__).parent.joinpath("README.md") 

10LONG_DESCRIPTION = readme_path.read_text(encoding="utf-8") 

11 

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] 

30 

31SETUP_REQUIRES = INSTALL_REQUIRES.copy() 

32 

33 

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.") 

43 

44 

45VERSION = get_version() 

46 

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)