From 3e96e6bd2aa1f767ad26ab7a66bb90731cbfa105 Mon Sep 17 00:00:00 2001 From: stubsabot <> Date: Sat, 19 Sep 2026 00:22:50 +0000 Subject: [PATCH 1/2] [stubsabot] Bump fanstatic to 1.8.* Release: https://pypi.org/pypi/fanstatic/1.8 Repository: https://github.com/zopefoundation/fanstatic Typeshed stubs: https://github.com/python/typeshed/tree/main/stubs/fanstatic Changelog: https://raw.githubusercontent.com/zopefoundation/fanstatic/master/CHANGES.rst Diff: https://github.com/zopefoundation/fanstatic/compare/1.7...1.8 Stubsabot analysis of the diff between the two releases: - Total lines of Python code added: 101. - Total lines of Python code deleted: 28. If stubtest fails for this PR: - Leave this PR open (as a reminder, and to prevent stubsabot from opening another PR) - Fix stubtest failures in another PR, then close this PR Note that you will need to close and re-open the PR in order to trigger CI --- stubs/fanstatic/METADATA.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/fanstatic/METADATA.toml b/stubs/fanstatic/METADATA.toml index a7eea5dca12e..040198a1d357 100644 --- a/stubs/fanstatic/METADATA.toml +++ b/stubs/fanstatic/METADATA.toml @@ -1,3 +1,3 @@ -version = "1.7.*" +version = "1.8.*" upstream-repository = "https://github.com/zopefoundation/fanstatic" dependencies = ["types-setuptools", "types-WebOb"] From b67f609fa013afdcf9eb33f8f4678041618c366d Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Tue, 22 Sep 2026 18:56:15 -0700 Subject: [PATCH 2/2] Fix fanstatic stubs for upstream update --- stubs/fanstatic/METADATA.toml | 3 ++ stubs/fanstatic/fanstatic/__init__.pyi | 71 +++++++++++++++++++++++++- stubs/fanstatic/fanstatic/compiler.pyi | 6 +-- stubs/fanstatic/fanstatic/sdist.pyi | 3 ++ 4 files changed, 79 insertions(+), 4 deletions(-) create mode 100644 stubs/fanstatic/fanstatic/sdist.pyi diff --git a/stubs/fanstatic/METADATA.toml b/stubs/fanstatic/METADATA.toml index 040198a1d357..13804a91e693 100644 --- a/stubs/fanstatic/METADATA.toml +++ b/stubs/fanstatic/METADATA.toml @@ -1,3 +1,6 @@ version = "1.8.*" upstream-repository = "https://github.com/zopefoundation/fanstatic" dependencies = ["types-setuptools", "types-WebOb"] + +[tool.stubtest] +stubtest-dependencies = ["setuptools"] diff --git a/stubs/fanstatic/fanstatic/__init__.pyi b/stubs/fanstatic/fanstatic/__init__.pyi index 9527cb5fb528..a385e7bea43e 100644 --- a/stubs/fanstatic/fanstatic/__init__.pyi +++ b/stubs/fanstatic/fanstatic/__init__.pyi @@ -1,4 +1,15 @@ -from fanstatic.compiler import Compiler as Compiler, Minifier as Minifier, sdist_compile as sdist_compile +from fanstatic import ( + checksum as checksum, + compiler as compiler, + config as config, + core as core, + inclusion as inclusion, + injector as injector, + publisher as publisher, + registry as registry, + wsgi as wsgi, +) +from fanstatic.compiler import Compiler as Compiler, Minifier as Minifier from fanstatic.core import ( BUNDLE_PREFIX as BUNDLE_PREFIX, DEBUG as DEBUG, @@ -40,4 +51,62 @@ from fanstatic.registry import ( MinifierRegistry as MinifierRegistry, get_library_registry as get_library_registry, ) +from fanstatic.sdist import sdist_compile as sdist_compile from fanstatic.wsgi import Fanstatic as Fanstatic, Serf as Serf, make_fanstatic as make_fanstatic, make_serf as make_serf + +__all__ = [ + "BUNDLE_PREFIX", + "Compiler", + "CompilerRegistry", + "ConfigurationError", + "DEBUG", + "DEFAULT_SIGNATURE", + "Delegator", + "Fanstatic", + "Group", + "GroupResource", + "Inclusion", + "Injector", + "Library", + "LibraryDependencyCycleError", + "LibraryPublisher", + "LibraryRegistry", + "MINIFIED", + "Minifier", + "MinifierRegistry", + "NEEDED", + "NeededResources", + "Publisher", + "Resource", + "Serf", + "Slot", + "SlotError", + "UnknownResourceError", + "UnknownResourceExtension", + "UnknownResourceExtensionError", + "VERSION_PREFIX", + "bundle_resources", + "checksum", + "clear_needed", + "compiler", + "config", + "core", + "del_needed", + "get_library_registry", + "get_needed", + "inclusion", + "init_needed", + "injector", + "make_fanstatic", + "make_injector", + "make_publisher", + "make_serf", + "publisher", + "register_inclusion_renderer", + "registry", + "sdist_compile", + "set_auto_register_library", + "set_resource_file_existence_checking", + "sort_resources", + "wsgi", +] diff --git a/stubs/fanstatic/fanstatic/compiler.pyi b/stubs/fanstatic/fanstatic/compiler.pyi index 3ac5c78d6dd4..64f806ce8b2d 100644 --- a/stubs/fanstatic/fanstatic/compiler.pyi +++ b/stubs/fanstatic/fanstatic/compiler.pyi @@ -4,8 +4,8 @@ from logging import Logger from subprocess import Popen from typing import Any, ClassVar, Literal, NewType -import setuptools.command.sdist from fanstatic.core import Resource +from fanstatic.sdist import sdist_compile as sdist_compile logger: Logger @@ -41,8 +41,6 @@ class Minifier(Compiler): def compile_resources(argv: list[str] = ...) -> None: ... -class sdist_compile(setuptools.command.sdist.sdist): ... - class NullCompiler(Compiler): name: ClassVar[Literal[""]] source_extension = NotImplemented @@ -122,3 +120,5 @@ class Closure(PythonPackageBase, Minifier): def process(self, source: StrOrBytesPath, target: StrOrBytesPath) -> Popen[str]: ... CLOSURE_MINIFIER: Closure + +def __dir__() -> list[str]: ... diff --git a/stubs/fanstatic/fanstatic/sdist.pyi b/stubs/fanstatic/fanstatic/sdist.pyi new file mode 100644 index 000000000000..81cc17db4639 --- /dev/null +++ b/stubs/fanstatic/fanstatic/sdist.pyi @@ -0,0 +1,3 @@ +from setuptools.command.sdist import sdist + +class sdist_compile(sdist): ...