hotdata-framework 0.14.0__tar.gz → 0.14.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/.github/workflows/check-release.yml +2 -2
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/.github/workflows/ci.yml +2 -2
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/.github/workflows/publish.yml +3 -3
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/.github/workflows/release.yml +3 -3
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/CHANGELOG.md +7 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/PKG-INFO +2 -2
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/pyproject.toml +2 -2
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/scripts/release.sh +21 -7
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/uv.lock +11 -11
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/.github/CODEOWNERS +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/.github/dependabot.yml +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/.github/workflows/dependabot-automerge.yml +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/.gitignore +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/CONTRACT.md +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/README.md +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/RELEASING.md +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/examples/basic_usage.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/hotdata_framework/__init__.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/hotdata_framework/client.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/hotdata_framework/databases.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/hotdata_framework/env.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/hotdata_framework/errors.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/hotdata_framework/health.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/hotdata_framework/managed_client.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/hotdata_framework/py.typed +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/hotdata_framework/result.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/scripts/check-release.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/scripts/extract-changelog.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/scripts/publish-workflow.sh +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/scripts/update_changelog.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/tests/test_client.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/tests/test_contract.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/tests/test_databases.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/tests/test_errors.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/tests/test_health.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/tests/test_indexes.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/tests/test_managed_client.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/tests/test_request_timeout.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/tests/test_result.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/tests/test_retry_policy.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/tests/test_update_changelog.py +0 -0
- {hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/tests/test_version.py +0 -0
|
@@ -14,11 +14,11 @@ jobs:
|
|
|
14
14
|
name: Verify changelog matches version bump
|
|
15
15
|
runs-on: ubuntu-latest
|
|
16
16
|
steps:
|
|
17
|
-
- uses: actions/checkout@
|
|
17
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
|
|
18
18
|
with:
|
|
19
19
|
fetch-depth: 0
|
|
20
20
|
|
|
21
|
-
- uses: actions/setup-python@
|
|
21
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v6
|
|
22
22
|
with:
|
|
23
23
|
python-version: '3.12'
|
|
24
24
|
|
|
@@ -17,9 +17,9 @@ jobs:
|
|
|
17
17
|
name: Test (Python 3.12)
|
|
18
18
|
runs-on: ubuntu-latest
|
|
19
19
|
steps:
|
|
20
|
-
- uses: actions/checkout@
|
|
20
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
|
|
21
21
|
|
|
22
|
-
- uses: astral-sh/setup-uv@
|
|
22
|
+
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v6
|
|
23
23
|
with:
|
|
24
24
|
enable-cache: true
|
|
25
25
|
|
|
@@ -46,11 +46,11 @@ jobs:
|
|
|
46
46
|
exit 1
|
|
47
47
|
fi
|
|
48
48
|
|
|
49
|
-
- uses: actions/checkout@
|
|
49
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
|
|
50
50
|
with:
|
|
51
51
|
ref: ${{ inputs.tag || github.ref_name }}
|
|
52
52
|
|
|
53
|
-
- uses: actions/setup-python@
|
|
53
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v6
|
|
54
54
|
with:
|
|
55
55
|
python-version: '3.12'
|
|
56
56
|
|
|
@@ -91,7 +91,7 @@ jobs:
|
|
|
91
91
|
permissions:
|
|
92
92
|
id-token: write
|
|
93
93
|
steps:
|
|
94
|
-
- uses: actions/download-artifact@
|
|
94
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
95
95
|
with:
|
|
96
96
|
name: dist
|
|
97
97
|
path: dist/
|
|
@@ -43,11 +43,11 @@ jobs:
|
|
|
43
43
|
exit 1
|
|
44
44
|
fi
|
|
45
45
|
|
|
46
|
-
- uses: actions/checkout@
|
|
46
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
|
|
47
47
|
with:
|
|
48
48
|
ref: ${{ inputs.tag || github.ref_name }}
|
|
49
49
|
|
|
50
|
-
- uses: actions/setup-python@
|
|
50
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v6
|
|
51
51
|
with:
|
|
52
52
|
python-version: '3.12'
|
|
53
53
|
|
|
@@ -77,7 +77,7 @@ jobs:
|
|
|
77
77
|
} >> "$GITHUB_OUTPUT"
|
|
78
78
|
|
|
79
79
|
- name: Create GitHub Release
|
|
80
|
-
uses: softprops/action-gh-release@
|
|
80
|
+
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
|
|
81
81
|
with:
|
|
82
82
|
tag_name: ${{ inputs.tag || github.ref_name }}
|
|
83
83
|
name: ${{ steps.meta.outputs.name }} ${{ steps.meta.outputs.version }}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: hotdata-framework
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.1
|
|
4
4
|
Summary: Python framework for building Hotdata integrations: workspace runtime, query execution, and managed databases
|
|
5
5
|
Project-URL: Homepage, https://www.hotdata.dev
|
|
6
6
|
Project-URL: Documentation, https://www.hotdata.dev/docs
|
|
@@ -21,7 +21,7 @@ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
|
21
21
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
22
|
Classifier: Typing :: Typed
|
|
23
23
|
Requires-Python: >=3.10
|
|
24
|
-
Requires-Dist: hotdata<0.
|
|
24
|
+
Requires-Dist: hotdata<0.12,>=0.9.0
|
|
25
25
|
Requires-Dist: pandas>=2.0
|
|
26
26
|
Requires-Dist: pyarrow>=14.0
|
|
27
27
|
Description-Content-Type: text/markdown
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "hotdata-framework"
|
|
7
|
-
version = "0.14.
|
|
7
|
+
version = "0.14.1"
|
|
8
8
|
description = "Python framework for building Hotdata integrations: workspace runtime, query execution, and managed databases"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -37,7 +37,7 @@ dependencies = [
|
|
|
37
37
|
# uncapped floor turns someone else's release into a break in ours,
|
|
38
38
|
# with no commit of our own to point at. Raise the cap deliberately, after
|
|
39
39
|
# running the suite against the new minor.
|
|
40
|
-
"hotdata>=0.9.0,<0.
|
|
40
|
+
"hotdata>=0.9.0,<0.12",
|
|
41
41
|
"pandas>=2.0",
|
|
42
42
|
"pyarrow>=14.0",
|
|
43
43
|
]
|
|
@@ -5,6 +5,11 @@ ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
|
5
5
|
cd "$ROOT"
|
|
6
6
|
|
|
7
7
|
die() { echo "error: $*" >&2; exit 1; }
|
|
8
|
+
|
|
9
|
+
# The one definition of an explicit version, shared by the argument check and
|
|
10
|
+
# the branch that takes the argument verbatim, so the two cannot drift apart.
|
|
11
|
+
readonly VERSION_RE='^[0-9]+\.[0-9]+\.[0-9]+$'
|
|
12
|
+
readonly BUMP_KIND_RE='^(patch|minor|major)$'
|
|
8
13
|
need() { command -v "$1" >/dev/null 2>&1 || die "$1 is required"; }
|
|
9
14
|
|
|
10
15
|
# An interpreter that can `import tomllib`, which is stdlib only from 3.11.
|
|
@@ -134,25 +139,34 @@ update_changelog() {
|
|
|
134
139
|
cmd_prepare() {
|
|
135
140
|
local bump="${1:-}"
|
|
136
141
|
[[ -n "$bump" ]] || { usage; die "missing bump kind or explicit version"; }
|
|
142
|
+
# Check the argument before any branch switch below, so a typo exits without
|
|
143
|
+
# moving the caller off the branch they invoked from. Failures that depend on
|
|
144
|
+
# the base branch's version — an unchanged version, a pre-release suffix —
|
|
145
|
+
# can only be found after the checkout.
|
|
146
|
+
[[ "$bump" =~ $BUMP_KIND_RE || "$bump" =~ $VERSION_RE ]] \
|
|
147
|
+
|| { usage; die "unknown bump kind: $bump"; }
|
|
137
148
|
need gh
|
|
138
149
|
PY_BIN="$(resolve_python)"
|
|
139
150
|
ensure_clean
|
|
140
151
|
|
|
141
152
|
local current new base branch pkg
|
|
153
|
+
base="$(default_branch)"
|
|
154
|
+
git fetch origin "$base"
|
|
155
|
+
git checkout "$base"
|
|
156
|
+
git pull --ff-only origin "$base"
|
|
157
|
+
ensure_clean
|
|
158
|
+
|
|
159
|
+
# Read the version from the base branch, not from whatever branch the script
|
|
160
|
+
# was invoked on. The bump is computed from it, so reading it first numbers
|
|
161
|
+
# the release off unrelated history.
|
|
142
162
|
current="$(get_version)"
|
|
143
|
-
if [[ "$bump" =~
|
|
163
|
+
if [[ "$bump" =~ $VERSION_RE ]]; then
|
|
144
164
|
new="$bump"
|
|
145
165
|
else
|
|
146
166
|
new="$(bump_version "$bump" "$current")"
|
|
147
167
|
fi
|
|
148
168
|
[[ "$new" != "$current" ]] || die "new version ($new) equals current ($current)"
|
|
149
169
|
|
|
150
|
-
base="$(default_branch)"
|
|
151
|
-
git fetch origin "$base"
|
|
152
|
-
git checkout "$base"
|
|
153
|
-
git pull --ff-only origin "$base"
|
|
154
|
-
ensure_clean
|
|
155
|
-
|
|
156
170
|
set_version "$new"
|
|
157
171
|
update_changelog "$new"
|
|
158
172
|
if command -v uv >/dev/null 2>&1 && [[ -f uv.lock ]]; then
|
|
@@ -3,10 +3,10 @@ revision = 3
|
|
|
3
3
|
requires-python = ">=3.10"
|
|
4
4
|
resolution-markers = [
|
|
5
5
|
"python_full_version >= '3.15' and sys_platform == 'win32'",
|
|
6
|
-
"python_full_version == '3.14.*' and sys_platform == 'win32'",
|
|
7
6
|
"python_full_version >= '3.15' and sys_platform == 'emscripten'",
|
|
8
|
-
"python_full_version == '3.14.*' and sys_platform == 'emscripten'",
|
|
9
7
|
"python_full_version >= '3.15' and sys_platform != 'emscripten' and sys_platform != 'win32'",
|
|
8
|
+
"python_full_version == '3.14.*' and sys_platform == 'win32'",
|
|
9
|
+
"python_full_version == '3.14.*' and sys_platform == 'emscripten'",
|
|
10
10
|
"python_full_version == '3.14.*' and sys_platform != 'emscripten' and sys_platform != 'win32'",
|
|
11
11
|
"python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'",
|
|
12
12
|
"python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'emscripten'",
|
|
@@ -86,7 +86,7 @@ wheels = [
|
|
|
86
86
|
|
|
87
87
|
[[package]]
|
|
88
88
|
name = "hotdata"
|
|
89
|
-
version = "0.
|
|
89
|
+
version = "0.11.0"
|
|
90
90
|
source = { registry = "https://pypi.org/simple" }
|
|
91
91
|
dependencies = [
|
|
92
92
|
{ name = "pydantic" },
|
|
@@ -94,14 +94,14 @@ dependencies = [
|
|
|
94
94
|
{ name = "typing-extensions" },
|
|
95
95
|
{ name = "urllib3" },
|
|
96
96
|
]
|
|
97
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
97
|
+
sdist = { url = "https://files.pythonhosted.org/packages/1d/10/1a21c58de1fee8c63bf983db9531704e9b0611c63fd7a849a9ffdf9cc8c7/hotdata-0.11.0.tar.gz", hash = "sha256:a0e9fd242baa51b9350a969222319bcdf2c6ede1cf2e8a99e3f81d608af7b6fc", size = 207167, upload-time = "2026-09-18T20:58:41.802Z" }
|
|
98
98
|
wheels = [
|
|
99
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
99
|
+
{ url = "https://files.pythonhosted.org/packages/ac/a4/cc71105c5971d29b40cfff76ab592fed95e1d433903631f9d2fccede50a4/hotdata-0.11.0-py3-none-any.whl", hash = "sha256:4ece2f43bac9a4f43ad32c305aa93042aa4a4f68a5bbdec4f2c6ae0b29f591d6", size = 292742, upload-time = "2026-09-18T20:58:40.049Z" },
|
|
100
100
|
]
|
|
101
101
|
|
|
102
102
|
[[package]]
|
|
103
103
|
name = "hotdata-framework"
|
|
104
|
-
version = "0.14.
|
|
104
|
+
version = "0.14.1"
|
|
105
105
|
source = { editable = "." }
|
|
106
106
|
dependencies = [
|
|
107
107
|
{ name = "hotdata" },
|
|
@@ -120,7 +120,7 @@ dev = [
|
|
|
120
120
|
|
|
121
121
|
[package.metadata]
|
|
122
122
|
requires-dist = [
|
|
123
|
-
{ name = "hotdata", specifier = ">=0.9.0,<0.
|
|
123
|
+
{ name = "hotdata", specifier = ">=0.9.0,<0.12" },
|
|
124
124
|
{ name = "pandas", specifier = ">=2.0" },
|
|
125
125
|
{ name = "pyarrow", specifier = ">=14.0" },
|
|
126
126
|
]
|
|
@@ -366,10 +366,10 @@ version = "2.4.4"
|
|
|
366
366
|
source = { registry = "https://pypi.org/simple" }
|
|
367
367
|
resolution-markers = [
|
|
368
368
|
"python_full_version >= '3.15' and sys_platform == 'win32'",
|
|
369
|
-
"python_full_version == '3.14.*' and sys_platform == 'win32'",
|
|
370
369
|
"python_full_version >= '3.15' and sys_platform == 'emscripten'",
|
|
371
|
-
"python_full_version == '3.14.*' and sys_platform == 'emscripten'",
|
|
372
370
|
"python_full_version >= '3.15' and sys_platform != 'emscripten' and sys_platform != 'win32'",
|
|
371
|
+
"python_full_version == '3.14.*' and sys_platform == 'win32'",
|
|
372
|
+
"python_full_version == '3.14.*' and sys_platform == 'emscripten'",
|
|
373
373
|
"python_full_version == '3.14.*' and sys_platform != 'emscripten' and sys_platform != 'win32'",
|
|
374
374
|
"python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'",
|
|
375
375
|
"python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'emscripten'",
|
|
@@ -529,10 +529,10 @@ version = "3.0.3"
|
|
|
529
529
|
source = { registry = "https://pypi.org/simple" }
|
|
530
530
|
resolution-markers = [
|
|
531
531
|
"python_full_version >= '3.15' and sys_platform == 'win32'",
|
|
532
|
-
"python_full_version == '3.14.*' and sys_platform == 'win32'",
|
|
533
532
|
"python_full_version >= '3.15' and sys_platform == 'emscripten'",
|
|
534
|
-
"python_full_version == '3.14.*' and sys_platform == 'emscripten'",
|
|
535
533
|
"python_full_version >= '3.15' and sys_platform != 'emscripten' and sys_platform != 'win32'",
|
|
534
|
+
"python_full_version == '3.14.*' and sys_platform == 'win32'",
|
|
535
|
+
"python_full_version == '3.14.*' and sys_platform == 'emscripten'",
|
|
536
536
|
"python_full_version == '3.14.*' and sys_platform != 'emscripten' and sys_platform != 'win32'",
|
|
537
537
|
"python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'",
|
|
538
538
|
"python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'emscripten'",
|
|
File without changes
|
|
File without changes
|
{hotdata_framework-0.14.0 → hotdata_framework-0.14.1}/.github/workflows/dependabot-automerge.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|