Use a dynamic plugin to build dependencies.

This commit is contained in:
Russell Keith-Magee 2023-11-15 10:03:28 +08:00
parent 12d3fd2aba
commit 67f55726b7
No known key found for this signature in database
GPG key ID: 3D2DAB6A37BB5BC3
45 changed files with 748 additions and 897 deletions

View file

@ -1,5 +0,0 @@
include CONTRIBUTING.md
include LICENSE
include README.rst
recursive-include tests *.py
recursive-include tests_backend *.py

View file

@ -1,6 +1,65 @@
[build-system]
requires = ["setuptools==66.1.1", "setuptools_scm[toml]==7.0.5"]
build-backend = "setuptools.build_meta"
requires = [
"setuptools==66.1.1",
"setuptools_scm[toml]==7.0.5",
"setuptools_dynamic_dependencies @ git+https://github.com/beeware/setuptools_dynamic_dependencies",
]
[project]
dynamic = ["version", "dependencies"]
name = "toga-android"
description = "An Android backend for the Toga widget toolkit."
readme = "README.rst"
requires-python = ">= 3.8"
license.file = "LICENSE"
authors = [
{name="Russell Keith-Magee", email="russell@keith-magee.com"},
]
maintainers = [
{name="BeeWare Team", email="team@beeware.org"},
]
keywords = [
"gui",
"widget",
"cross-platform",
"toga",
"mobile",
"android",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development",
"Topic :: Software Development :: User Interfaces",
"Topic :: Software Development :: Widget Sets",
]
[project.urls]
Project = "https://beeware.org/project/projects/libraries/toga/"
Funding = "https://beeware.org/contributing/membership/"
Documentation = "http://toga.readthedocs.io/en/latest/"
Tracker = "https://github.com/beeware/toga/issues"
Source = "https://github.com/beeware/toga"
[project.entry-points."toga.backends"]
android = "toga_android"
[tool.setuptools_scm]
root = ".."
[tool.setuptools_dynamic_dependencies]
dependencies = [
"toga-core == {version}",
]
[tool.coverage.run]
parallel = true

View file

@ -1,54 +0,0 @@
[metadata]
name = toga-android
description = An Android backend for the Toga widget toolkit.
url = https://beeware.org/project/projects/libraries/toga/
project_urls =
Funding = https://beeware.org/contributing/membership/
Documentation = http://toga.readthedocs.io/en/latest/
Tracker = https://github.com/beeware/toga/issues
Source = https://github.com/beeware/toga
author = Russell Keith-Magee
author_email = russell@keith-magee.com
maintainer = BeeWare Team
maintainer_email = team@beeware.org
classifiers =
Development Status :: 4 - Beta
Intended Audience :: Developers
License :: OSI Approved :: BSD License
Operating System :: OS Independent
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3 :: Only
Topic :: Software Development
Topic :: Software Development :: User Interfaces
Topic :: Software Development :: Widget Sets
license = New BSD
license_files =
= LICENSE
long_description = file: README.rst
long_description_content_type = text/x-rst; charset=UTF-8
keywords =
gui
widget
toga
cross-platform
mobile
android
[options]
packages = find:
package_dir =
= src
python_requires = >= 3.8
zip_safe = False
[options.entry_points]
toga.backends =
android = toga_android
[options.packages.find]
where = src

View file

@ -1,11 +0,0 @@
from setuptools import setup
from setuptools_scm import get_version
version = get_version(root="..")
setup(
version=version,
install_requires=[
"toga-core==%s" % version,
],
)

View file

@ -1,5 +0,0 @@
include CONTRIBUTING.md
include LICENSE
include README.rst
recursive-include tests *.py
recursive-include tests_backend *.py

View file

@ -1,6 +1,68 @@
[build-system]
requires = ["setuptools==66.1.1", "setuptools_scm[toml]==7.0.5"]
build-backend = "setuptools.build_meta"
requires = [
"setuptools==66.1.1",
"setuptools_scm[toml]==7.0.5",
"setuptools_dynamic_dependencies @ git+https://github.com/beeware/setuptools_dynamic_dependencies",
]
[project]
dynamic = ["version", "dependencies"]
name = "toga-cocoa"
description = "A Cocoa (macOS) backend for the Toga widget toolkit."
readme = "README.rst"
requires-python = ">= 3.8"
license.file = "LICENSE"
authors = [
{name="Russell Keith-Magee", email="russell@keith-magee.com"},
]
maintainers = [
{name="BeeWare Team", email="team@beeware.org"},
]
keywords = [
"gui",
"widget",
"cross-platform",
"toga",
"desktop",
"macOS",
"cocoa",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development",
"Topic :: Software Development :: User Interfaces",
"Topic :: Software Development :: Widget Sets",
]
[project.urls]
Project = "https://beeware.org/project/projects/libraries/toga/"
Funding = "https://beeware.org/contributing/membership/"
Documentation = "http://toga.readthedocs.io/en/latest/"
Tracker = "https://github.com/beeware/toga/issues"
Source = "https://github.com/beeware/toga"
[project.entry-points."toga.backends"]
macOS = "toga_cocoa"
[tool.setuptools_scm]
root = ".."
[tool.setuptools_dynamic_dependencies]
dependencies = [
"fonttools >= 4.42.1, < 5.0.0",
"rubicon-objc >= 0.4.7, < 0.5.0",
"toga-core == {version}",
]
[tool.coverage.run]
parallel = true

View file

@ -1,55 +0,0 @@
[metadata]
name = toga-cocoa
description = A Cocoa (macOS) backend for the Toga widget toolkit.
url = https://beeware.org/project/projects/libraries/toga/
project_urls =
Funding = https://beeware.org/contributing/membership/
Documentation = http://toga.readthedocs.io/en/latest/
Tracker = https://github.com/beeware/toga/issues
Source = https://github.com/beeware/toga
author = Russell Keith-Magee
author_email = russell@keith-magee.com
maintainer = BeeWare Team
maintainer_email = team@beeware.org
classifiers =
Development Status :: 4 - Beta
Intended Audience :: Developers
License :: OSI Approved :: BSD License
Operating System :: OS Independent
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3 :: Only
Topic :: Software Development
Topic :: Software Development :: User Interfaces
Topic :: Software Development :: Widget Sets
license = New BSD
license_files =
= LICENSE
long_description = file: README.rst
long_description_content_type = text/x-rst; charset=UTF-8
keywords =
gui
widget
cross-platform
toga
desktop
macOS
cocoa
[options]
packages = find:
package_dir =
= src
python_requires = >= 3.8
zip_safe = False
[options.entry_points]
toga.backends =
macOS = toga_cocoa
[options.packages.find]
where = src

View file

@ -1,13 +0,0 @@
from setuptools import setup
from setuptools_scm import get_version
version = get_version(root="..")
setup(
version=version,
install_requires=[
"fonttools >= 4.42.1, < 5.0.0",
"rubicon-objc >= 0.4.7, < 0.5.0",
f"toga-core == {version}",
],
)

View file

@ -1,6 +0,0 @@
include CONTRIBUTING.md
include LICENSE
include README.rst
recursive-include tests *.py
recursive-include tests *.bmp
recursive-include tests *.png

View file

@ -1,6 +1,100 @@
[build-system]
requires = ["setuptools==66.1.1", "setuptools_scm[toml]==7.0.5"]
build-backend = "setuptools.build_meta"
requires = [
"setuptools==66.1.1",
"setuptools_scm[toml]==7.0.5",
"setuptools_dynamic_dependencies @ git+https://github.com/beeware/setuptools_dynamic_dependencies",
]
[project]
dynamic = ["version"]
name = "toga-core"
description = "A Python native, OS native GUI toolkit."
readme = "README.rst"
requires-python = ">= 3.8"
license.file = "LICENSE"
authors = [
{name="Russell Keith-Magee", email="russell@keith-magee.com"},
]
maintainers = [
{name="BeeWare Team", email="team@beeware.org"},
]
keywords = [
"gui",
"widget",
"cross-platform",
"toga",
"desktop",
"mobile",
"web",
"macOS",
"cocoa",
"iOS",
"android",
"windows",
"winforms",
"linux",
"freeBSD",
"gtk",
"console",
"web",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development",
"Topic :: Software Development :: User Interfaces",
"Topic :: Software Development :: Widget Sets",
]
dependencies = [
"travertino >= 0.3.0",
"importlib_metadata >= 4.4.0; python_version <= '3.9'",
]
[project.optional-dependencies]
# Extras used by developers *of* briefcase are pinned to specific versions to
# ensure environment consistency.
dev = [
"coverage[toml] == 7.3.2",
"pre-commit == 3.5.0",
"pytest == 7.4.3",
"pytest-asyncio == 0.21.1",
"pytest-freezer == 0.4.8",
"setuptools-scm[toml] == 8.0.4",
"tox == 4.11.3",
]
docs = [
"furo == 2023.9.10",
"pyenchant == 3.2.2",
# Sphinx 7.2 deprecated support for Python 3.8
"sphinx == 7.1.2 ; python_version < '3.9'",
"sphinx == 7.2.6 ; python_version >= '3.9'",
"sphinx_tabs == 3.4.4",
"sphinx-autobuild == 2021.3.14",
"sphinx-autodoc-typehints == 1.25.2",
"sphinx-csv-filter == 0.4.1",
"sphinx-copybutton == 0.5.2",
"sphinx-toolbox == 3.5.0",
"sphinxcontrib-spelling == 8.0.0",
]
[project.urls]
Project = "https://beeware.org/project/projects/libraries/toga/"
Funding = "https://beeware.org/contributing/membership/"
Documentation = "http://toga.readthedocs.io/en/latest/"
Tracker = "https://github.com/beeware/toga/issues"
Source = "https://github.com/beeware/toga"
[tool.setuptools_scm]
root = ".."
[tool.coverage.run]
parallel = true
@ -19,6 +113,3 @@ source = [
[tool.pytest.ini_options]
asyncio_mode = "auto"
[tool.setuptools_scm]
root = ".."

View file

@ -1,96 +0,0 @@
[metadata]
name = toga-core
description = A Python native, OS native GUI toolkit.
url = https://beeware.org/project/projects/libraries/toga/
project_urls =
Funding = https://beeware.org/contributing/membership/
Documentation = http://toga.readthedocs.io/en/latest/
Tracker = https://github.com/beeware/toga/issues
Source = https://github.com/beeware/toga
author = Russell Keith-Magee
author_email = russell@keith-magee.com
maintainer = BeeWare Team
maintainer_email = team@beeware.org
classifiers =
Development Status :: 4 - Beta
Intended Audience :: Developers
License :: OSI Approved :: BSD License
Operating System :: OS Independent
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3 :: Only
Topic :: Software Development
Topic :: Software Development :: User Interfaces
Topic :: Software Development :: Widget Sets
license = New BSD
license_files =
= LICENSE
long_description = file: README.rst
long_description_content_type = text/x-rst; charset=UTF-8
keywords =
gui
widget
cross-platform
desktop
mobile
web
macOS
cocoa
iOS
android
windows
winforms
linux
freeBSD
gtk
django
[options]
install_requires =
travertino >= 0.3.0
importlib_metadata >= 4.4.0; python_version <= "3.9"
packages = find:
package_dir =
= src
python_requires = >= 3.8
zip_safe = False
[options.extras_require]
# Extras used by developers *of* briefcase are pinned to specific versions to
# ensure environment consistency.
dev =
coverage[toml] == 7.3.2
pre-commit == 3.5.0
pytest == 7.4.3
pytest-asyncio == 0.21.1
pytest-freezer == 0.4.8
setuptools-scm[toml] == 8.0.4
tox == 4.11.3
docs =
furo == 2023.9.10
pyenchant == 3.2.2
# Sphinx 7.2 deprecated support for Python 3.8
sphinx == 7.1.2 ; python_version < '3.9'
sphinx == 7.2.6 ; python_version >= '3.9'
sphinx_tabs == 3.4.4
sphinx-autobuild == 2021.3.14
sphinx-autodoc-typehints == 1.25.2
sphinx-csv-filter == 0.4.1
sphinx-copybutton == 0.5.2
sphinx-toolbox == 3.5.0
sphinxcontrib-spelling == 8.0.0
[options.package_data]
toga.resources =
*.icns
*.ico
*.png
toga =
py.typed
[options.packages.find]
where = src

View file

@ -1,9 +0,0 @@
include CONTRIBUTING.md
include README.rst
include AUTHORS
include LICENSE
include pyproject.toml
recursive-include toga_demo *.py
recursive-include toga_demo/resources *.ico
recursive-include toga_demo/resources *.icns
recursive-include toga_demo/resources *.png

View file

@ -1,6 +1,72 @@
[build-system]
requires = ["setuptools==66.1.1", "setuptools_scm[toml]==7.0.5"]
build-backend = "setuptools.build_meta"
requires = [
"setuptools==66.1.1",
"setuptools_scm[toml]==7.0.5",
"setuptools_dynamic_dependencies @ git+https://github.com/beeware/setuptools_dynamic_dependencies",
]
[project]
dynamic = ["version", "dependencies"]
name = "toga-demo"
description = "A demonstration of the capabilities of the Toga widget toolkit."
readme = "README.rst"
requires-python = ">= 3.8"
license.file = "LICENSE"
authors = [
{name="Russell Keith-Magee", email="russell@keith-magee.com"},
]
maintainers = [
{name="BeeWare Team", email="team@beeware.org"},
]
keywords = [
"gui",
"widget",
"cross-platform",
"desktop",
"mobile",
"macOS",
"cocoa",
"iOS",
"android",
"windows",
"winforms",
"linux",
"gtk",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development",
"Topic :: Software Development :: User Interfaces",
"Topic :: Software Development :: Widget Sets",
]
[project.urls]
Project = "https://beeware.org/project/projects/libraries/toga/"
Funding = "https://beeware.org/contributing/membership/"
Documentation = "http://toga.readthedocs.io/en/latest/"
Tracker = "https://github.com/beeware/toga/issues"
Source = "https://github.com/beeware/toga"
[project.scripts]
toga-demo = "toga_demo.__main__:run"
[tool.setuptools_scm]
root = ".."
[tool.setuptools_dynamic_dependencies]
dependencies = [
"toga == {version}",
]
[tool.briefcase]
project_name = "Toga Demo"

View file

@ -1,78 +0,0 @@
[metadata]
name = toga-demo
description = A demonstration of the capabilities of the Toga widget toolkit.
url = https://beeware.org/project/projects/libraries/toga/
project_urls =
Funding = https://beeware.org/contributing/membership/
Documentation = http://toga.readthedocs.io/en/latest/
Tracker = https://github.com/beeware/toga/issues
Source = https://github.com/beeware/toga
author = Russell Keith-Magee
author_email = russell@keith-magee.com
maintainer = BeeWare Team
maintainer_email = team@beeware.org
classifiers =
Development Status :: 4 - Beta
Intended Audience :: Developers
License :: OSI Approved :: BSD License
Operating System :: OS Independent
Programming Language :: Python :: 3
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3 :: Only
Topic :: Software Development
Topic :: Software Development :: User Interfaces
Topic :: Software Development :: Widget Sets
license = New BSD
license_files =
= LICENSE
long_description = file: README.rst
long_description_content_type = text/x-rst; charset=UTF-8
keywords =
gui
widget
cross-platform
desktop
mobile
macOS
cocoa
iOS
android
windows
winforms
linux
gtk
[options]
packages = find:
python_requires = >= 3.7
zip_safe = False
[options.entry_points]
console_scripts =
toga-demo = toga_demo.__main__:run
[options.packages.find]
include =
toga_demo
toga_demo.*
[options.package_data]
toga_demo.resources =
*.icns
*.png
[flake8]
exclude=\
.eggs/*,\
build/*
max-complexity = 10
max-line-length = 119
ignore = E121,E123,E126,E226,E24,E704,W503,W504,C901
[isort]
multi_line_output = 3

View file

@ -1,11 +0,0 @@
from setuptools import setup
from setuptools_scm import get_version
version = get_version(root="..")
setup(
version=version,
install_requires=[
f"toga=={version}",
],
)

View file

@ -1,3 +0,0 @@
include CONTRIBUTING.md
include LICENSE
include README.rst

View file

@ -1,3 +1,61 @@
[build-system]
requires = ["setuptools==66.1.1", "setuptools_scm[toml]==7.0.5"]
build-backend = "setuptools.build_meta"
requires = [
"setuptools==66.1.1",
"setuptools_scm[toml]==7.0.5",
"setuptools_dynamic_dependencies @ git+https://github.com/beeware/setuptools_dynamic_dependencies",
]
[project]
dynamic = ["version", "dependencies"]
name = "toga-dummy"
description = "A dummy testing backend for the Toga widget toolkit."
readme = "README.rst"
requires-python = ">= 3.8"
license.file = "LICENSE"
authors = [
{name="Russell Keith-Magee", email="russell@keith-magee.com"},
]
maintainers = [
{name="BeeWare Team", email="team@beeware.org"},
]
keywords = [
"gui",
"widget",
"cross-platform",
"toga",
"testing",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development",
"Topic :: Software Development :: User Interfaces",
"Topic :: Software Development :: Widget Sets",
]
[project.urls]
Project = "https://beeware.org/project/projects/libraries/toga/"
Funding = "https://beeware.org/contributing/membership/"
Documentation = "http://toga.readthedocs.io/en/latest/"
Tracker = "https://github.com/beeware/toga/issues"
Source = "https://github.com/beeware/toga"
[project.entry-points."toga.backends"]
dummy = "toga_dummy"
[tool.setuptools_scm]
root = ".."
[tool.setuptools_dynamic_dependencies]
dependencies = [
"toga-core == {version}",
]

View file

@ -1,62 +0,0 @@
[metadata]
name = toga-dummy
description = A dummy testing backend for the Toga widget toolkit.
url = https://beeware.org/project/projects/libraries/toga/
project_urls =
Funding = https://beeware.org/contributing/membership/
Documentation = http://toga.readthedocs.io/en/latest/
Tracker = https://github.com/beeware/toga/issues
Source = https://github.com/beeware/toga
author = Russell Keith-Magee
author_email = russell@keith-magee.com
maintainer = BeeWare Team
maintainer_email = team@beeware.org
classifiers =
Development Status :: 4 - Beta
Intended Audience :: Developers
License :: OSI Approved :: BSD License
Operating System :: OS Independent
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3 :: Only
Topic :: Software Development
Topic :: Software Development :: User Interfaces
Topic :: Software Development :: Widget Sets
license = New BSD
license_files =
= LICENSE
long_description = file: README.rst
long_description_content_type = text/x-rst; charset=UTF-8
keywords =
gui
widget
cross-platform
toga
testing
[options]
packages = find:
package_dir =
= src
python_requires = >= 3.8
zip_safe = False
[options.entry_points]
toga.backends =
dummy = toga_dummy
[options.extras_require]
dev =
pre-commit
tox
test =
pytest
pytest-tldr
coverage[toml]
[options.packages.find]
where = src

View file

@ -1,11 +0,0 @@
from setuptools import setup
from setuptools_scm import get_version
version = get_version(root="..")
setup(
version=version,
install_requires=[
"toga-core==%s" % version,
],
)

View file

@ -1,5 +0,0 @@
include CONTRIBUTING.md
include LICENSE
include README.rst
recursive-include tests *.py
recursive-include tests_backend *.py

View file

@ -1,6 +1,68 @@
[build-system]
requires = ["setuptools==66.1.1", "setuptools_scm[toml]==7.0.5"]
build-backend = "setuptools.build_meta"
requires = [
"setuptools==66.1.1",
"setuptools_scm[toml]==7.0.5",
"setuptools_dynamic_dependencies @ git+https://github.com/beeware/setuptools_dynamic_dependencies",
]
[project]
dynamic = ["version", "dependencies"]
name = "toga-gtk"
description = "A GTK backend for the Toga widget toolkit."
readme = "README.rst"
requires-python = ">= 3.8"
license.file = "LICENSE"
authors = [
{name="Russell Keith-Magee", email="russell@keith-magee.com"},
]
maintainers = [
{name="BeeWare Team", email="team@beeware.org"},
]
keywords = [
"gui",
"widget",
"cross-platform",
"toga",
"desktop",
"linux",
"freeBSD",
"gtk",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development",
"Topic :: Software Development :: User Interfaces",
"Topic :: Software Development :: Widget Sets",
]
[project.urls]
Project = "https://beeware.org/project/projects/libraries/toga/"
Funding = "https://beeware.org/contributing/membership/"
Documentation = "http://toga.readthedocs.io/en/latest/"
Tracker = "https://github.com/beeware/toga/issues"
Source = "https://github.com/beeware/toga"
[project.entry-points."toga.backends"]
linux = "toga_gtk"
freeBSD = "toga_gtk"
[tool.setuptools_scm]
root = ".."
[tool.setuptools_dynamic_dependencies]
dependencies = [
"toga-core == {version}",
]
[tool.coverage.run]
parallel = true

View file

@ -1,57 +0,0 @@
[metadata]
name = toga-gtk
description = A GTK backend for the Toga widget toolkit.
url = https://beeware.org/project/projects/libraries/toga/
project_urls =
Funding = https://beeware.org/contributing/membership/
Documentation = http://toga.readthedocs.io/en/latest/
Tracker = https://github.com/beeware/toga/issues
Source = https://github.com/beeware/toga
author = Russell Keith-Magee
author_email = russell@keith-magee.com
maintainer = BeeWare Team
maintainer_email = team@beeware.org
classifiers =
Development Status :: 4 - Beta
Intended Audience :: Developers
License :: OSI Approved :: BSD License
Operating System :: OS Independent
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3 :: Only
Topic :: Software Development
Topic :: Software Development :: User Interfaces
Topic :: Software Development :: Widget Sets
license = New BSD
license_files =
= LICENSE
long_description = file: README.rst
long_description_content_type = text/x-rst; charset=UTF-8
keywords =
gui
widget
cross-platform
toga
desktop
linux
freeBSD
gtk
[options]
packages = find:
package_dir =
= src
python_requires = >= 3.8
zip_safe = False
[options.entry_points]
toga.backends =
linux = toga_gtk
freeBSD = toga_gtk
[options.packages.find]
where = src

View file

@ -1,14 +0,0 @@
from setuptools import setup
from setuptools_scm import get_version
version = get_version(root="..")
setup(
version=version,
install_requires=[
"toga-core==%s" % version,
"gbulb>=0.5.3",
"pycairo>=1.17.0",
"pygobject>=3.46.0",
],
)

View file

@ -1,5 +0,0 @@
include CONTRIBUTING.md
include LICENSE
include README.rst
recursive-include tests *.py
recursive-include tests_backend *.py

View file

@ -1,6 +1,67 @@
[build-system]
requires = ["setuptools==66.1.1", "setuptools_scm[toml]==7.0.5"]
build-backend = "setuptools.build_meta"
requires = [
"setuptools==66.1.1",
"setuptools_scm[toml]==7.0.5",
"setuptools_dynamic_dependencies @ git+https://github.com/beeware/setuptools_dynamic_dependencies",
]
[project]
dynamic = ["version", "dependencies"]
name = "toga-iOS"
description = "An iOS backend for the Toga widget toolkit."
readme = "README.rst"
requires-python = ">= 3.8"
license.file = "LICENSE"
authors = [
{name="Russell Keith-Magee", email="russell@keith-magee.com"},
]
maintainers = [
{name="BeeWare Team", email="team@beeware.org"},
]
keywords = [
"gui",
"widget",
"cross-platform",
"toga",
"mobile",
"iOS",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development",
"Topic :: Software Development :: User Interfaces",
"Topic :: Software Development :: Widget Sets",
]
[project.urls]
Project = "https://beeware.org/project/projects/libraries/toga/"
Funding = "https://beeware.org/contributing/membership/"
Documentation = "http://toga.readthedocs.io/en/latest/"
Tracker = "https://github.com/beeware/toga/issues"
Source = "https://github.com/beeware/toga"
[project.entry-points."toga.backends"]
iOS = "toga_iOS"
[tool.setuptools_scm]
root = ".."
[tool.setuptools_dynamic_dependencies]
dependencies = [
"fonttools >= 4.42.1, < 5.0.0",
"rubicon-objc >= 0.4.7, < 0.5.0",
"toga-core == {version}",
]
[tool.coverage.run]
parallel = true

View file

@ -1,54 +0,0 @@
[metadata]
name = toga-iOS
description = An iOS backend for the Toga widget toolkit.
url = https://beeware.org/project/projects/libraries/toga/
project_urls =
Funding = https://beeware.org/contributing/membership/
Documentation = http://toga.readthedocs.io/en/latest/
Tracker = https://github.com/beeware/toga/issues
Source = https://github.com/beeware/toga
author = Russell Keith-Magee
author_email = russell@keith-magee.com
maintainer = BeeWare Team
maintainer_email = team@beeware.org
classifiers =
Development Status :: 4 - Beta
Intended Audience :: Developers
License :: OSI Approved :: BSD License
Operating System :: OS Independent
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3 :: Only
Topic :: Software Development
Topic :: Software Development :: User Interfaces
Topic :: Software Development :: Widget Sets
license = New BSD
license_files =
= LICENSE
long_description = file: README.rst
long_description_content_type = text/x-rst; charset=UTF-8
keywords =
gui
widget
toga
cross-platform
mobile
iOS
[options]
packages = find:
package_dir =
= src
python_requires = >= 3.8
zip_safe = False
[options.entry_points]
toga.backends =
iOS = toga_iOS
[options.packages.find]
where = src

View file

@ -1,13 +0,0 @@
from setuptools import setup
from setuptools_scm import get_version
version = get_version(root="..")
setup(
version=version,
install_requires=[
"fonttools >= 4.42.1, < 5.0.0",
"rubicon-objc >= 0.4.7, < 0.5.0",
f"toga-core == {version}",
],
)

View file

@ -1,6 +0,0 @@
[flake8]
max-line-length = 119
extend-ignore =
# whitespace before :
# See https://github.com/PyCQA/pycodestyle/issues/373
E203,

View file

@ -1,6 +0,0 @@
include CONTRIBUTING.md
include LICENSE
include README.rst
recursive-include tests *.py
recursive-include toga_textual *.py
recursive-include tests_backend *.py

View file

@ -1,6 +1,70 @@
[build-system]
requires = ["setuptools==66.1.1", "setuptools_scm[toml]==7.0.5"]
build-backend = "setuptools.build_meta"
requires = [
"setuptools==66.1.1",
"setuptools_scm[toml]==7.0.5",
"setuptools_dynamic_dependencies @ git+https://github.com/beeware/setuptools_dynamic_dependencies",
]
[project]
dynamic = ["version", "dependencies"]
name = "toga-textual"
description = "A Textual backend for the Toga widget toolkit."
readme = "README.rst"
requires-python = ">= 3.8"
license.file = "LICENSE"
authors = [
{name="Russell Keith-Magee", email="russell@keith-magee.com"},
]
maintainers = [
{name="BeeWare Team", email="team@beeware.org"},
]
keywords = [
"gui",
"widget",
"cross-platform",
"toga",
"desktop",
"console",
"textual",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development",
"Topic :: Software Development :: User Interfaces",
"Topic :: Software Development :: Widget Sets",
]
[project.urls]
Project = "https://beeware.org/project/projects/libraries/toga/"
Funding = "https://beeware.org/contributing/membership/"
Documentation = "http://toga.readthedocs.io/en/latest/"
Tracker = "https://github.com/beeware/toga/issues"
Source = "https://github.com/beeware/toga"
[project.entry-points."toga.backends"]
linux = "toga_textual"
windows = "toga_textual"
macOS = "toga_textual"
freeBSD = "toga_textual"
[tool.setuptools_scm]
root = ".."
[tool.setuptools_dynamic_dependencies]
dependencies = [
"textual",
"toga-core == {version}",
]
[tool.coverage.run]
parallel = true

View file

@ -1,59 +0,0 @@
[metadata]
name = toga-textual
description = A Textual backend for the Toga widget toolkit.
url = https://beeware.org/project/projects/libraries/toga/
project_urls =
Funding = https://beeware.org/contributing/membership/
Documentation = http://toga.readthedocs.io/en/latest/
Tracker = https://github.com/beeware/toga/issues
Source = https://github.com/beeware/toga
author = Russell Keith-Magee
author_email = russell@keith-magee.com
maintainer = BeeWare Team
maintainer_email = team@beeware.org
classifiers =
Development Status :: 3 - Alpha
Intended Audience :: Developers
License :: OSI Approved :: BSD License
Operating System :: OS Independent
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3 :: Only
Topic :: Software Development
Topic :: Software Development :: User Interfaces
Topic :: Software Development :: Widget Sets
license = New BSD
license_files =
= LICENSE
long_description = file: README.rst
long_description_content_type = text/x-rst; charset=UTF-8
keywords =
gui
widget
cross-platform
toga
desktop
console
textual
[options]
packages = find:
package_dir =
= src
python_requires = >= 3.8
zip_safe = False
[options.entry_points]
toga.backends =
# The textual backend is a candidate for use on every platform.
linux = toga_textual
windows = toga_textual
macOS = toga_textual
freeBSD = toga_textual
[options.packages.find]
where = src

View file

@ -1,12 +0,0 @@
from setuptools import setup
from setuptools_scm import get_version
version = get_version(root="..")
setup(
version=version,
install_requires=[
f"toga-core == {version}",
"textual",
],
)

View file

@ -1,2 +0,0 @@
include CONTRIBUTING.md
include LICENSE

View file

@ -1,3 +1,72 @@
[build-system]
requires = ["setuptools==66.1.1", "setuptools_scm[toml]==7.0.5"]
build-backend = "setuptools.build_meta"
requires = [
"setuptools==66.1.1",
"setuptools_scm[toml]==7.0.5",
"setuptools_dynamic_dependencies @ git+https://github.com/beeware/setuptools_dynamic_dependencies",
]
[project]
dynamic = ["version", "dependencies"]
name = "toga"
description = "A Python native, OS native GUI toolkit."
readme = "README.rst"
requires-python = ">= 3.8"
license.file = "LICENSE"
authors = [
{name="Russell Keith-Magee", email="russell@keith-magee.com"},
]
maintainers = [
{name="BeeWare Team", email="team@beeware.org"},
]
keywords = [
"gui",
"widget",
"cross-platform",
"toga",
"desktop",
"mobile",
"web",
"macOS",
"cocoa",
"iOS",
"android",
"windows",
"winforms",
"linux",
"freeBSD",
"gtk",
"console",
"web",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development",
"Topic :: Software Development :: User Interfaces",
"Topic :: Software Development :: Widget Sets",
]
[project.urls]
Project = "https://beeware.org/project/projects/libraries/toga/"
Funding = "https://beeware.org/contributing/membership/"
Documentation = "http://toga.readthedocs.io/en/latest/"
Tracker = "https://github.com/beeware/toga/issues"
Source = "https://github.com/beeware/toga"
[tool.setuptools_scm]
root = ".."
[tool.setuptools_dynamic_dependencies.optional-dependencies]
':sys_platform=="win32"' = ["toga-winforms == {version}"]
':sys_platform=="linux"' = ["toga-gtk == {version}"]
':"freebsd" in sys_platform' = ["toga-gtk == {version}"]
':sys_platform=="darwin"' = ["toga-cocoa == {version}"]

View file

@ -1,54 +0,0 @@
[metadata]
name = toga
description = A Python native, OS native GUI toolkit.
url = https://beeware.org/project/projects/libraries/toga/
project_urls =
Funding = https://beeware.org/contributing/membership/
Documentation = http://toga.readthedocs.io/en/latest/
Tracker = https://github.com/beeware/toga/issues
Source = https://github.com/beeware/toga
author = Russell Keith-Magee
author_email = russell@keith-magee.com
maintainer = BeeWare Team
maintainer_email = team@beeware.org
classifiers =
Development Status :: 4 - Beta
Intended Audience :: Developers
License :: OSI Approved :: BSD License
Operating System :: OS Independent
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3 :: Only
Topic :: Software Development
Topic :: Software Development :: User Interfaces
Topic :: Software Development :: Widget Sets
license = New BSD
license_files =
= LICENSE
long_description = file: README.rst
long_description_content_type = text/x-rst; charset=UTF-8
keywords =
gui
widget
cross-platform
desktop
mobile
web
macOS
cocoa
iOS
android
windows
winforms
linux
freeBSD
gtk
[options]
zip_safe = False
python_requires = >= 3.8
packages =

View file

@ -1,15 +0,0 @@
from setuptools import setup
from setuptools_scm import get_version
version = get_version(root="..")
setup(
version=version,
extras_require={
# Automatically installed platform backends
':sys_platform=="win32"': ["toga-winforms==%s" % version],
':sys_platform=="linux"': ["toga-gtk==%s" % version],
':"freebsd" in sys_platform': ["toga-gtk==%s" % version],
':sys_platform=="darwin"': ["toga-cocoa==%s" % version],
},
)

12
tox.ini
View file

@ -1,3 +1,11 @@
# Flake8 doesn't provide a pyproject configuration, but allows tox.ini
[flake8]
max-line-length = 119
extend-ignore =
# whitespace before :
# See https://github.com/PyCQA/pycodestyle/issues/373
E203,
# The leading comma generates the "py" environment.
[testenv:py{,38,39,310,311,312}]
skip_install = True
@ -60,10 +68,8 @@ commands =
[testenv:package]
skip_install = True
deps =
check_manifest==0.48
build==0.9.0
build==1.0.3
twine==4.0.2
commands =
check-manifest -v {posargs}
python -m build {posargs}
python -m twine check {posargs}/dist/*

View file

@ -1,4 +0,0 @@
include CONTRIBUTING.md
include LICENSE
include README.rst
recursive-include tests *.py

View file

@ -1,6 +1,67 @@
[build-system]
requires = ["setuptools==66.1.1", "setuptools_scm[toml]==7.0.5"]
build-backend = "setuptools.build_meta"
requires = [
"setuptools==66.1.1",
"setuptools_scm[toml]==7.0.5",
"setuptools_dynamic_dependencies @ git+https://github.com/beeware/setuptools_dynamic_dependencies",
]
[project]
dynamic = ["version", "dependencies"]
name = "toga-web"
description = "A Web backend for the Toga widget toolkit."
readme = "README.rst"
requires-python = ">= 3.8"
license.file = "LICENSE"
authors = [
{name="Russell Keith-Magee", email="russell@keith-magee.com"},
]
maintainers = [
{name="BeeWare Team", email="team@beeware.org"},
]
keywords = [
"gui",
"widget",
"cross-platform",
"toga",
"web",
"pyscript",
"pyodide",
"wasm",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development",
"Topic :: Software Development :: User Interfaces",
"Topic :: Software Development :: Widget Sets",
]
[project.urls]
Project = "https://beeware.org/project/projects/libraries/toga/"
Funding = "https://beeware.org/contributing/membership/"
Documentation = "http://toga.readthedocs.io/en/latest/"
Tracker = "https://github.com/beeware/toga/issues"
Source = "https://github.com/beeware/toga"
[project.entry-points."toga.backends"]
web = "toga_web"
[tool.setuptools_scm]
root = ".."
[tool.setuptools_dynamic_dependencies]
dependencies = [
"toga-core == {version}",
]
[tool.coverage.run]
parallel = true

View file

@ -1,57 +0,0 @@
[metadata]
name = toga-web
description = A common backend for the Toga widget toolkit on web platforms.
url = https://beeware.org/project/projects/libraries/toga/
project_urls =
Funding = https://beeware.org/contributing/membership/
Documentation = http://toga.readthedocs.io/en/latest/
Tracker = https://github.com/beeware/toga/issues
Source = https://github.com/beeware/toga
author = Russell Keith-Magee
author_email = russell@keith-magee.com
maintainer = BeeWare Team
maintainer_email = team@beeware.org
classifiers =
Development Status :: 3 - Alpha
Intended Audience :: Developers
License :: OSI Approved :: BSD License
Operating System :: OS Independent
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3 :: Only
Topic :: Software Development
Topic :: Software Development :: User Interfaces
Topic :: Software Development :: Widget Sets
license = New BSD
license_files =
= LICENSE
long_description = file: README.rst
long_description_content_type = text/x-rst; charset=UTF-8
keywords =
gui
widget
cross-platform
toga
web
[options]
packages = find:
package_dir =
= src
python_requires = >= 3.8
zip_safe = False
[options.entry_points]
toga.backends =
web = toga_web
[options.package_data]
toga_web =
static/**
[options.packages.find]
where = src

View file

@ -1,11 +0,0 @@
from setuptools import setup
from setuptools_scm import get_version
version = get_version(root="..")
setup(
version=version,
install_requires=[
"toga-core==%s" % version,
],
)

View file

@ -1,5 +0,0 @@
include CONTRIBUTING.md
include LICENSE
include README.rst
recursive-include tests *.py
recursive-include tests_backend *.py

View file

@ -1,6 +1,67 @@
[build-system]
requires = ["setuptools==66.1.1", "setuptools_scm[toml]==7.0.5"]
build-backend = "setuptools.build_meta"
requires = [
"setuptools==66.1.1",
"setuptools_scm[toml]==7.0.5",
"setuptools_dynamic_dependencies @ git+https://github.com/beeware/setuptools_dynamic_dependencies",
]
[project]
dynamic = ["version", "dependencies"]
name = "toga-winforms"
description = "A Windows backend for the Toga widget toolkit using the WinForms API."
readme = "README.rst"
requires-python = ">= 3.8"
license.file = "LICENSE"
authors = [
{name="Russell Keith-Magee", email="russell@keith-magee.com"},
]
maintainers = [
{name="BeeWare Team", email="team@beeware.org"},
]
keywords = [
"gui",
"widget",
"cross-platform",
"toga",
"desktop",
"macOS",
"cocoa",
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development",
"Topic :: Software Development :: User Interfaces",
"Topic :: Software Development :: Widget Sets",
]
[project.urls]
Project = "https://beeware.org/project/projects/libraries/toga/"
Funding = "https://beeware.org/contributing/membership/"
Documentation = "http://toga.readthedocs.io/en/latest/"
Tracker = "https://github.com/beeware/toga/issues"
Source = "https://github.com/beeware/toga"
[project.entry-points."toga.backends"]
macOS = "toga_cocoa"
[tool.setuptools_scm]
root = ".."
[tool.setuptools_dynamic_dependencies]
dependencies = [
"pythonnet >= 3.0.0",
"toga-core == {version}",
]
[tool.coverage.run]
parallel = true

View file

@ -1,59 +0,0 @@
[metadata]
name = toga-winforms
description = A Windows backend for the Toga widget toolkit using the WinForms API.
url = https://beeware.org/project/projects/libraries/toga/
project_urls =
Funding = https://beeware.org/contributing/membership/
Documentation = http://toga.readthedocs.io/en/latest/
Tracker = https://github.com/beeware/toga/issues
Source = https://github.com/beeware/toga
author = Russell Keith-Magee
author_email = russell@keith-magee.com
maintainer = BeeWare Team
maintainer_email = team@beeware.org
classifiers =
Development Status :: 4 - Beta
Intended Audience :: Developers
License :: OSI Approved :: BSD License
Operating System :: OS Independent
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3 :: Only
Topic :: Software Development
Topic :: Software Development :: User Interfaces
Topic :: Software Development :: Widget Sets
license = New BSD
license_files =
= LICENSE
long_description = file: README.rst
long_description_content_type = text/x-rst; charset=UTF-8
keywords =
gui
widget
cross-platform
toga
desktop
windows
winforms
[options]
packages = find:
package_dir =
= src
python_requires = >= 3.8
zip_safe = False
[options.package_data]
toga_winforms =
libs/WebView2/**
[options.entry_points]
toga.backends =
windows = toga_winforms
[options.packages.find]
where = src

View file

@ -1,12 +0,0 @@
from setuptools import setup
from setuptools_scm import get_version
version = get_version(root="..")
setup(
version=version,
install_requires=[
"pythonnet>=3.0.0",
"toga-core==%s" % version,
],
)