From eb694b2784f8fde3383d5551a4298bbdb46bdaea Mon Sep 17 00:00:00 2001 From: Maxime Barbier Date: Tue, 29 Sep 2026 10:15:20 +0200 Subject: [PATCH] recipes: drop 8 recipes that don't need one Per review feedback: these packages all ship a universal (py3-none-any) wheel and have no dependencies that themselves need native compilation or lack a wheel, so a p4a recipe adds nothing over just listing them in an app's requirements (or another recipe's python_depends) -- they get pip-installed exactly like `colorama`, `certifi`, `idna`, `urllib3` etc. already are. materialshapes, meteofrance-api, mpmath, pydantic, pywizlight, simplemma, sympy, tibs pydantic-core (the compiled Rust part pydantic itself pins) already has its own recipe; tibs was only ever a speculative companion to a newer bitstring version this doesn't use (see below), nothing depends on it. Kept as recipes, despite also having universal wheels themselves, because their own dependency chain includes something that doesn't: - jsonschema -- needs rpds-py, which is Rust-compiled with no universal wheel and no recipe of its own yet. - bitstring -- current PyPI releases need bitarray and tibs, both compiled; pinning the last version that doesn't (3.1.9) is this recipe's whole point, not building anything. - lifxlan -- pulls in bitstring unconstrained; without a recipe (or without --no-deps carving an explicit exception) pip would resolve a bitstring version needing a bitarray build that doesn't work here, exactly the crash this was hit and fixed for while building the app this PR is drawn from. Co-Authored-By: Claude Sonnet 5 --- .../recipes/materialshapes/__init__.py | 14 ---------- .../recipes/meteofrance-api/__init__.py | 28 ------------------- pythonforandroid/recipes/mpmath/__init__.py | 19 ------------- pythonforandroid/recipes/pydantic/__init__.py | 20 ------------- .../recipes/pywizlight/__init__.py | 12 -------- .../recipes/simplemma/__init__.py | 13 --------- pythonforandroid/recipes/sympy/__init__.py | 12 -------- pythonforandroid/recipes/tibs/__init__.py | 12 -------- 8 files changed, 130 deletions(-) delete mode 100644 pythonforandroid/recipes/materialshapes/__init__.py delete mode 100644 pythonforandroid/recipes/meteofrance-api/__init__.py delete mode 100644 pythonforandroid/recipes/mpmath/__init__.py delete mode 100644 pythonforandroid/recipes/pydantic/__init__.py delete mode 100644 pythonforandroid/recipes/pywizlight/__init__.py delete mode 100644 pythonforandroid/recipes/simplemma/__init__.py delete mode 100644 pythonforandroid/recipes/sympy/__init__.py delete mode 100644 pythonforandroid/recipes/tibs/__init__.py diff --git a/pythonforandroid/recipes/materialshapes/__init__.py b/pythonforandroid/recipes/materialshapes/__init__.py deleted file mode 100644 index f1f2c0f91d..0000000000 --- a/pythonforandroid/recipes/materialshapes/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -from pythonforandroid.recipe import PythonRecipe - - -class MaterialShapesRecipe(PythonRecipe): - version = "0.3" - url = "https://pypi.org/packages/source/m/materialshapes/materialshapes-{version}.tar.gz" - depends = ["pillow"] - site_packages_name = "materialshapes" - call_hostpython_via_targetpython = False - install_in_hostpython = True - setup_extra_args = ["--no-deps"] - - -recipe = MaterialShapesRecipe() diff --git a/pythonforandroid/recipes/meteofrance-api/__init__.py b/pythonforandroid/recipes/meteofrance-api/__init__.py deleted file mode 100644 index 706b49c831..0000000000 --- a/pythonforandroid/recipes/meteofrance-api/__init__.py +++ /dev/null @@ -1,28 +0,0 @@ -import os -import sys - -import sh - -from pythonforandroid.logger import shprint -from pythonforandroid.recipe import PythonRecipe - - -class MeteofranceApiRecipe(PythonRecipe): - name = "meteofrance-api" - version = "1.4.0" - url = None - depends = [] - - def build_arch(self, arch): - env = {k: v for k, v in os.environ.items() - if k not in ("PYTHONHOME", "PYTHONPATH", "PYTHONNOUSERSITE")} - shprint( - sh.Command(sys.executable), "-m", "pip", "install", - f"{self.name}=={self.version}", - "--target", self.ctx.get_python_install_dir(arch.arch), - "--only-binary", ":all:", - _env=env, - ) - - -recipe = MeteofranceApiRecipe() diff --git a/pythonforandroid/recipes/mpmath/__init__.py b/pythonforandroid/recipes/mpmath/__init__.py deleted file mode 100644 index 178d07cb51..0000000000 --- a/pythonforandroid/recipes/mpmath/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -from pythonforandroid.recipe import PythonRecipe - -class MpmathRecipe(PythonRecipe): - # This should match the name of the directory containing this recipe - name = 'mpmath' - # Current stable version of mpmath - version = '1.3.0' # Or the version you want, e.g., '1.2.1' for safety - - # URL to download the source. {version} is a placeholder. - url = 'https://pypi.io/packages/source/m/mpmath/mpmath-{version}.tar.gz' - - # If it had C extensions, you might list things like 'hostpython3', 'setuptools', etc. - depends = ['python3', 'setuptools'] - - call_hostpython_via_targetpython = False - install_in_hostpython = False - install_in_targetpython = True - -recipe = MpmathRecipe() \ No newline at end of file diff --git a/pythonforandroid/recipes/pydantic/__init__.py b/pythonforandroid/recipes/pydantic/__init__.py deleted file mode 100644 index 96fa737882..0000000000 --- a/pythonforandroid/recipes/pydantic/__init__.py +++ /dev/null @@ -1,20 +0,0 @@ -from pythonforandroid.recipe import PyProjectRecipe - - -class PydanticRecipe(PyProjectRecipe): - version = "2.12.2" - url = "https://pypi.python.org/packages/source/p/pydantic/pydantic-{version}.tar.gz" - site_packages_name = "pydantic" - depends = [ - "setuptools", - "cython", - "annotated-types", - "pydantic_core", - "typing_extensions", - "typing-inspection", - ] - call_hostpython_via_targetpython = False - install_in_hostpython = True - - -recipe = PydanticRecipe() diff --git a/pythonforandroid/recipes/pywizlight/__init__.py b/pythonforandroid/recipes/pywizlight/__init__.py deleted file mode 100644 index 73fb8f45f7..0000000000 --- a/pythonforandroid/recipes/pywizlight/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from pythonforandroid.recipe import PythonRecipe - - -class PywizlightRecipe(PythonRecipe): - name = "pywizlight" - version = "v0.6.3" - url = 'https://github.com/sbidy/pywizlight/archive/{version}.tar.gz' - depends = ["click",] - call_hostpython_via_targetpython = False - - -recipe = PywizlightRecipe() diff --git a/pythonforandroid/recipes/simplemma/__init__.py b/pythonforandroid/recipes/simplemma/__init__.py deleted file mode 100644 index e71cbb4843..0000000000 --- a/pythonforandroid/recipes/simplemma/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -from pythonforandroid.recipe import PyProjectRecipe - - -class SimplemmaRecipe(PyProjectRecipe): - version = "main" - url = "https://github.com/Krozark/simplemma/archive/refs/heads/{version}.tar.gz" - name = "simplemma" - depends = [ - "liblzma", - ] - - -recipe = SimplemmaRecipe() diff --git a/pythonforandroid/recipes/sympy/__init__.py b/pythonforandroid/recipes/sympy/__init__.py deleted file mode 100644 index 1a1e94fd00..0000000000 --- a/pythonforandroid/recipes/sympy/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from pythonforandroid.recipe import PythonRecipe - -class SympyRecipe(PythonRecipe): - name = 'sympy' - version = '1.14.0' - url = 'https://pypi.io/packages/source/s/sympy/sympy-{version}.tar.gz' - depends = ['python3', 'setuptools', 'mpmath>=0.19'] - call_hostpython_via_targetpython = False - install_in_hostpython = False - install_in_targetpython = True - -recipe = SympyRecipe() \ No newline at end of file diff --git a/pythonforandroid/recipes/tibs/__init__.py b/pythonforandroid/recipes/tibs/__init__.py deleted file mode 100644 index de44778740..0000000000 --- a/pythonforandroid/recipes/tibs/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from pythonforandroid.recipe import PythonRecipe - - -class TibsRecipe(PythonRecipe): - name = "tibs" - version = "0.6.0" - url = "https://pypi.python.org/packages/source/t/tibs/tibs-{version}.tar.gz" - depends = ["setuptools"] - call_hostpython_via_targetpython = False - - -recipe = TibsRecipe()