Skip to content

Commit ce8e415

Browse files
committed
Prepare v0.0.110 release
1 parent af7d3f9 commit ce8e415

22 files changed

Lines changed: 599 additions & 91 deletions
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:f9665126d58f9eb16a9d08ce5f2c7fc0b1977e9369906a69954b3b93144db06e
3-
size 259670016
2+
oid sha256:341abf597c96ed123cef793152cb4c2844d3c5adf122219ed5a6e911453c619b
3+
size 259702784
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:5cf86ef7d9afecb8499025cd26386ba7bdbef19405d41d6f911dd37f022e9033
2+
oid sha256:a4547004c42c32865f1be712aa6b75e4f7a54e1ab3539b8828063c74260e020c
33
size 345903104
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:48ba2bd80b92aabb49c61919fef8ee44786b91647b1d3ef5acc63153e2545884
3-
size 30763291
2+
oid sha256:8922fc7289a8eb97683c228f0e67c130d30493967ad5f138a8c9a91dd204b15c
3+
size 30767772
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:109252435dc2cae833e417cd999d8407914f17867fb0b38b4d88f563e24be8db
3-
size 445
2+
oid sha256:b05df96eb5d00d4273a67b1e66967e43ba45c33bfa1e4eeb1df2077a5c1cd0cf
3+
size 443

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "teadata"
7-
version = "0.0.109"
7+
version = "0.0.110"
88
description = "Pythonic data engine for Texas education datasets"
99
authors = [{name="Alejandro Peña", email="adpena@gmail.com"}]
1010
readme = "README.md"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:f9665126d58f9eb16a9d08ce5f2c7fc0b1977e9369906a69954b3b93144db06e
3-
size 259670016
2+
oid sha256:341abf597c96ed123cef793152cb4c2844d3c5adf122219ed5a6e911453c619b
3+
size 259702784
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:5cf86ef7d9afecb8499025cd26386ba7bdbef19405d41d6f911dd37f022e9033
2+
oid sha256:a4547004c42c32865f1be712aa6b75e4f7a54e1ab3539b8828063c74260e020c
33
size 345903104
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:48ba2bd80b92aabb49c61919fef8ee44786b91647b1d3ef5acc63153e2545884
3-
size 30763291
2+
oid sha256:8922fc7289a8eb97683c228f0e67c130d30493967ad5f138a8c9a91dd204b15c
3+
size 30767772
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:109252435dc2cae833e417cd999d8407914f17867fb0b38b4d88f563e24be8db
3-
size 445
2+
oid sha256:b05df96eb5d00d4273a67b1e66967e43ba45c33bfa1e4eeb1df2077a5c1cd0cf
3+
size 443

teadata/assets.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
import logging
44
import os
5+
import re
56
import shutil
67
import tempfile
78
import urllib.request
9+
from hashlib import sha256
810
from pathlib import Path
911
from typing import Callable
1012

@@ -39,6 +41,15 @@ def _asset_cache_dir() -> Path:
3941
return Path(tempfile.gettempdir()) / "teadata"
4042

4143

44+
def _safe_cache_name(*, url: str, label: str) -> str:
45+
base = Path(url).name or "asset.bin"
46+
clean_label = re.sub(r"[^a-z0-9]+", "_", label.strip().lower()).strip("_")
47+
if not clean_label:
48+
clean_label = "asset"
49+
digest = sha256(url.encode("utf-8")).hexdigest()[:12]
50+
return f"{clean_label}_{digest}_{base}"
51+
52+
4253
def ensure_local_asset(path: Path, *, url_env: str, label: str) -> Path:
4354
if path.exists() and not is_lfs_pointer(path):
4455
return path
@@ -55,7 +66,7 @@ def ensure_local_asset(path: Path, *, url_env: str, label: str) -> Path:
5566

5667
cache_dir = _asset_cache_dir()
5768
cache_dir.mkdir(parents=True, exist_ok=True)
58-
target = cache_dir / Path(url).name
69+
target = cache_dir / _safe_cache_name(url=url, label=label)
5970
if target.exists() and not is_lfs_pointer(target):
6071
return target
6172

0 commit comments

Comments
 (0)