Skip to content

Commit 27f8f6e

Browse files
fix template loading for starlette >= 0.28 (#744)
* fix template loading for starlette >= 0.28 * update from main and set fastapi version to >=0.107.0 --------- Co-authored-by: vincentsarago <[email protected]>
1 parent 33914c7 commit 27f8f6e

File tree

6 files changed

+33
-20
lines changed

6 files changed

+33
-20
lines changed

CHANGES.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
# Release Notes
22

3+
## Unreleased
4+
5+
### titiler.core
6+
7+
* fix template loading for starlette >= 0.28 by using `jinja2.Environment` argument
8+
9+
### titiler.extensions
10+
11+
* fix template loading for starlette >= 0.28 by using `jinja2.Environment` argument
12+
13+
### titiler.application
14+
15+
* fix template loading for starlette >= 0.28 by using `jinja2.Environment` argument
16+
317
## 0.15.7 (2024-01-08)
418

519
### titiler.core

src/titiler/application/titiler/application/main.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@
4040
logging.getLogger("botocore.utils").disabled = True
4141
logging.getLogger("rio-tiler").setLevel(logging.ERROR)
4242

43-
templates = Jinja2Templates(
44-
directory="",
45-
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "templates")]),
46-
) # type:ignore
43+
jinja2_env = jinja2.Environment(
44+
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "templates")])
45+
)
46+
templates = Jinja2Templates(env=jinja2_env)
4747

4848

4949
api_settings = ApiSettings()
@@ -56,7 +56,8 @@
5656
def validate_access_token(access_token: str = Security(api_key_query)):
5757
"""Validates API key access token, set as the `api_settings.global_access_token` value.
5858
Returns True if no access token is required, or if the access token is valid.
59-
Raises an HTTPException (401) if the access token is required but invalid/missing."""
59+
Raises an HTTPException (401) if the access token is required but invalid/missing.
60+
"""
6061
if api_settings.global_access_token is None:
6162
return True
6263

src/titiler/core/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ classifiers = [
2929
]
3030
dynamic = ["version"]
3131
dependencies = [
32-
"fastapi>=0.100.0,<0.107.0",
32+
"fastapi>=0.107.0",
3333
"geojson-pydantic>=1.0,<2.0",
3434
"jinja2>=2.11.2,<4.0.0",
3535
"numpy",

src/titiler/core/titiler/core/factory.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,10 @@
7070
from titiler.core.routing import EndpointScope
7171
from titiler.core.utils import render_image
7272

73-
DEFAULT_TEMPLATES = Jinja2Templates(
74-
directory="",
75-
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "templates")]),
76-
) # type:ignore
77-
73+
jinja2_env = jinja2.Environment(
74+
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "templates")])
75+
)
76+
DEFAULT_TEMPLATES = Jinja2Templates(env=jinja2_env)
7877

7978
img_endpoint_params: Dict[str, Any] = {
8079
"responses": {

src/titiler/extensions/titiler/extensions/viewer.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99

1010
from titiler.core.factory import BaseTilerFactory, FactoryExtension
1111

12-
DEFAULT_TEMPLATES = Jinja2Templates(
13-
directory="",
14-
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "templates")]),
15-
) # type:ignore
12+
jinja2_env = jinja2.Environment(
13+
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "templates")])
14+
)
15+
DEFAULT_TEMPLATES = Jinja2Templates(env=jinja2_env)
1616

1717

1818
@dataclass

src/titiler/extensions/titiler/extensions/wms.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222
from titiler.core.resources.enums import ImageType, MediaType
2323
from titiler.core.utils import render_image
2424

25-
DEFAULT_TEMPLATES = Jinja2Templates(
26-
directory="",
27-
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "templates")]),
28-
) # type:ignore
25+
jinja2_env = jinja2.Environment(
26+
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "templates")])
27+
)
28+
DEFAULT_TEMPLATES = Jinja2Templates(env=jinja2_env)
2929

3030

3131
class WMSMediaType(str, Enum):
@@ -522,7 +522,6 @@ def _reader(src_path: str):
522522
return image, format, transparent
523523

524524
if request_type.lower() == "getmap":
525-
526525
# List of required parameters (styles and crs are excluded)
527526
req_keys = {
528527
"version",

0 commit comments

Comments
 (0)