-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1673 from Avaiga/fix/pyproject-install
Add back setup.py to enable custom dynamic builds
- Loading branch information
Showing
21 changed files
with
419 additions
and
474 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,14 +4,13 @@ build-backend = "setuptools.build_meta" | |
|
||
[project] | ||
name = "taipy" | ||
version = "0.0.0" # will be dynamically set | ||
description = "A 360° open-source platform from Python pilots to production-ready web apps." | ||
readme = "package_desc.md" | ||
requires-python = ">=3.8" | ||
license = {text = "Apache License 2.0"} | ||
authors = [{name = "Avaiga", email = "[email protected]"}] | ||
keywords = ["taipy"] | ||
classifiers = [ | ||
"Development Status :: 5 - Production/Stable", | ||
"Intended Audience :: Developers", | ||
"License :: OSI Approved :: Apache Software License", | ||
"Natural Language :: English", | ||
|
@@ -21,46 +20,29 @@ classifiers = [ | |
"Programming Language :: Python :: 3.10", | ||
"Programming Language :: Python :: 3.11", | ||
"Programming Language :: Python :: 3.12", | ||
"Topic :: Software Development", | ||
"Topic :: Scientific/Engineering", | ||
"Operating System :: Microsoft :: Windows", | ||
"Operating System :: POSIX", | ||
"Operating System :: Unix", | ||
"Operating System :: MacOS", | ||
] | ||
dependencies = [] # will be dynamically set | ||
dynamic = ["version", "dependencies"] | ||
|
||
[project.optional-dependencies] | ||
test = ["pytest>=3.8"] | ||
ngrok = ["pyngrok>=5.1,<6.0"] | ||
image = [ | ||
"python-magic>=0.4.24,<0.5; platform_system!='Windows'", | ||
"python-magic-bin>=0.4.14,<0.5; platform_system=='Windows'" | ||
"python-magic>=0.4.24,<0.5", | ||
"python-magic-bin>=0.4.14,<0.5", | ||
] | ||
rdp = ["rdp>=0.8"] | ||
arrow = ["pyarrow>=14.0.2,<15.0"] | ||
mssql = ["pyodbc>=4"] | ||
|
||
[project.scripts] | ||
taipy = "taipy._entrypoint:_entrypoint" | ||
|
||
[project.urls] | ||
Homepage = "https://www.taipy.io" | ||
Documentation = "https://docs.taipy.io" | ||
Source = "https://github.com/Avaiga/taipy" | ||
Download = "https://pypi.org/project/taipy/#files" | ||
Tracker = "https://github.com/Avaiga/taipy/issues" | ||
Security = "https://github.com/Avaiga/taipy?tab=security-ov-file#readme" | ||
"Release notes" = "https://docs.taipy.io/en/release-0.0.0/relnotes/" # version will be dynamically set | ||
|
||
[tool.setuptools.packages.find] | ||
include = ["taipy", "taipy.*"] | ||
|
||
[tool.setuptools.package-data] | ||
"taipy" = ["version.json"] | ||
|
||
[tool.setuptools] | ||
zip-safe = false | ||
|
||
[project.scripts] | ||
taipy = "taipy._entrypoint:_entrypoint" | ||
|
||
[tool.ruff] | ||
exclude = [ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
# Copyright 2021-2024 Avaiga Private Limited | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with | ||
# the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on | ||
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations under the License. | ||
|
||
import os | ||
import json | ||
import platform | ||
import subprocess | ||
from pathlib import Path | ||
from setuptools import setup, find_packages | ||
from setuptools.command.build_py import build_py | ||
|
||
root_folder = Path(__file__).parent | ||
|
||
# get current version | ||
with open(os.path.join("taipy", "version.json")) as version_file: | ||
version = json.load(version_file) | ||
version_string = f'{version.get("major", 0)}.{version.get("minor", 0)}.{version.get("patch", 0)}' | ||
if vext := version.get("ext"): | ||
version_string = f"{version_string}.{vext}" | ||
|
||
def get_requirements(): | ||
reqs = set() | ||
for pkg in (root_folder / "tools" / "packages").iterdir(): | ||
requirements_file = pkg / "setup.requirements.txt" | ||
if requirements_file.exists(): | ||
reqs.update(requirements_file.read_text("UTF-8").splitlines()) | ||
|
||
return [r for r in reqs if r and not r.startswith("taipy")] | ||
|
||
class NPMInstall(build_py): | ||
def run(self): | ||
subprocess.run( | ||
["python", "bundle_build.py"], | ||
cwd=root_folder / "tools" / "frontend", | ||
check=True, | ||
shell=platform.system() == "Windows", | ||
) | ||
build_py.run(self) | ||
|
||
setup( | ||
version=version_string, | ||
install_requires=get_requirements(), | ||
packages=find_packages(include=["taipy", "taipy.*"]), | ||
extras_require={ | ||
"ngrok": ["pyngrok>=5.1,<6.0"], | ||
"image": [ | ||
"python-magic>=0.4.24,<0.5;platform_system!='Windows'", | ||
"python-magic-bin>=0.4.14,<0.5;platform_system=='Windows'", | ||
], | ||
"rdp": ["rdp>=0.8"], | ||
"arrow": ["pyarrow>=14.0.2,<15.0"], | ||
"mssql": ["pyodbc>=4"], | ||
}, | ||
cmdclass={"build_py": NPMInstall}, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,14 +4,13 @@ build-backend = "setuptools.build_meta" | |
|
||
[project] | ||
name = "taipy-config" | ||
version = "0.0.0" # will be dynamically set | ||
description = "A Taipy package dedicated to easily configure a Taipy application." | ||
readme = "package_desc.md" | ||
requires-python = ">=3.8" | ||
license = {text = "Apache License 2.0"} | ||
authors = [{name = "Avaiga", email = "[email protected]"}] | ||
keywords = ["taipy-config"] | ||
classifiers = [ | ||
"Development Status :: 5 - Production/Stable", | ||
"Intended Audience :: Developers", | ||
"License :: OSI Approved :: Apache Software License", | ||
"Natural Language :: English", | ||
|
@@ -21,38 +20,17 @@ classifiers = [ | |
"Programming Language :: Python :: 3.10", | ||
"Programming Language :: Python :: 3.11", | ||
"Programming Language :: Python :: 3.12", | ||
"Topic :: Software Development", | ||
"Topic :: Scientific/Engineering", | ||
"Operating System :: Microsoft :: Windows", | ||
"Operating System :: POSIX", | ||
"Operating System :: Unix", | ||
"Operating System :: MacOS", | ||
] | ||
|
||
dependencies = [ | ||
"toml>=0.10,<0.11", | ||
"deepdiff>=6.7,<6.8" | ||
] | ||
dynamic = ["version", "dependencies"] | ||
|
||
[project.optional-dependencies] | ||
test = [ | ||
"pytest>=3.8" | ||
] | ||
|
||
[project.urls] | ||
Homepage = "https://www.taipy.io" | ||
Documentation = "https://docs.taipy.io" | ||
Source = "https://github.com/Avaiga/taipy" | ||
Download = "https://pypi.org/project/taipy/#files" | ||
Tracker = "https://github.com/Avaiga/taipy/issues" | ||
Security = "https://github.com/Avaiga/taipy?tab=security-ov-file#readme" | ||
"Release notes" = "https://docs.taipy.io/en/release-0.0.0/relnotes/" # version will be dynamically set | ||
testing = ["pytest>=3.8"] | ||
|
||
[tool.setuptools.packages] | ||
find = {where = ["."], include = ["taipy", "taipy.config", "taipy.config.*", "taipy.logger", "taipy.logger.*"]} | ||
find = {include = ["taipy", "taipy.config", "taipy.config.*", "taipy.logger", "taipy.logger.*"]} | ||
|
||
[tool.setuptools.package-data] | ||
"version" = ["version.json"] | ||
[project.urls] | ||
homepage = "https://github.com/avaiga/taipy" | ||
|
||
[tool.setuptools] | ||
zip-safe = false | ||
[tool.setuptools.data-files] | ||
"version" = ["version.json"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Copyright 2021-2024 Avaiga Private Limited | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with | ||
# the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on | ||
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations under the License. | ||
|
||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on | ||
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations under the License. | ||
|
||
"""The setup script.""" | ||
import json | ||
import os | ||
from setuptools import find_namespace_packages, find_packages, setup | ||
|
||
with open("README.md") as readme_file: | ||
readme = readme_file.read() | ||
|
||
version_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "version.json") | ||
|
||
with open(version_path) as version_file: | ||
version = json.load(version_file) | ||
version_string = f'{version.get("major", 0)}.{version.get("minor", 0)}.{version.get("patch", 0)}' | ||
if vext := version.get("ext"): | ||
version_string = f"{version_string}.{vext}" | ||
|
||
requirements = ["toml>=0.10,<0.11", "deepdiff>=6.2,<6.3"] | ||
|
||
test_requirements = ["pytest>=3.8"] | ||
|
||
setup( | ||
version=version_string, | ||
install_requires=requirements, | ||
packages=find_namespace_packages(where=".") + find_packages(include=["taipy", "taipy.config", "taipy.config.*", "taipy.logger", "taipy.logger.*"]), | ||
include_package_data=True, | ||
data_files=[('version', ['version.json'])], | ||
tests_require=test_requirements, | ||
) |
Oops, something went wrong.