summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2024-02-07 23:20:24 -0700
committerMichael Merickel <michael@merickel.org>2024-02-07 23:20:24 -0700
commitbd21568e61248e51f48a9a146cb837fa0252d162 (patch)
treefb76d94b39cacfb874e2c097604d19d63ab11c03
parent0441e47ae10f8e2006fd56860c90e96de30f6dec (diff)
downloadpyramid-bd21568e61248e51f48a9a146cb837fa0252d162.tar.gz
pyramid-bd21568e61248e51f48a9a146cb837fa0252d162.tar.bz2
pyramid-bd21568e61248e51f48a9a146cb837fa0252d162.zip
issue a warning if a static view is referencing a package that doesn't exist
-rw-r--r--src/pyramid/static.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/pyramid/static.py b/src/pyramid/static.py
index 100d17676..c3489ae89 100644
--- a/src/pyramid/static.py
+++ b/src/pyramid/static.py
@@ -4,6 +4,7 @@ import mimetypes
import os
from os.path import exists, getmtime, getsize, isdir, join, normcase, normpath
from pkg_resources import resource_exists, resource_filename, resource_isdir
+import warnings
from pyramid.asset import abspath_from_asset_spec, resolve_asset_spec
from pyramid.httpexceptions import HTTPMovedPermanently, HTTPNotFound
@@ -92,6 +93,19 @@ class static_view:
if package_name is None:
package_name = caller_package().__name__
package_name, docroot = resolve_asset_spec(root_dir, package_name)
+ if package_name:
+ try:
+ __import__(package_name)
+ except ImportError:
+ warnings.warn(
+ f'A "pyramid.static.static_view" is being created with an'
+ f' asset spec referencing a package "{package_name}" that'
+ f' does not exist. This will break in the future.'
+ f' If this is done to override an asset, you must adjust'
+ f' this to override a location inside a real package.',
+ DeprecationWarning,
+ stacklevel=1,
+ )
self.use_subpath = use_subpath
self.package_name = package_name
self.docroot = docroot