Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[project]
name = "neosmartblue.py"
version = "0.1.1"
version = "0.1.2"
description = "A Python library for controlling Neo Smart Blinds via BlueLink Bluetooth connection"
authors = [
{name = "ikifar2012", email = "[email protected]"}
]
readme = "README.md"
requires-python = ">=3.13,<3.14"
dependencies = [
"bleak (>=1.1.0,<1.2.0)"
"bleak ==1.1.0"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

❓ Verification inconclusive

Avoid exact pins in a library; prefer compatible ranges or justify with a known-bad release.

Pinning a library dependency to an exact version can cause resolver conflicts for downstream applications and other libraries. If you’re avoiding a specific bad release, prefer constrained ranges or exclusions.

Recommended options:

  • Keep the previous compatible range or use the compatible release operator.
  • Exclude only known-bad versions if applicable.

Two concrete alternatives:

-    "bleak ==1.1.0"
+    "bleak >=1.1.0,<1.2.0"

or, if you want to allow any 1.1.x:

-    "bleak ==1.1.0"
+    "bleak ==1.1.*"

Additionally, verify that the pinned version exists on PyPI and supports Python 3.13, given your requires-python constraint.

Run this script to confirm availability and declared Python support on PyPI:

If you must pin due to a regression, consider documenting the rationale and using a range with exclusions (e.g., >=1.1.0,<1.2.0,!=1.1.1) to minimize breakage for consumers. I can adjust the spec accordingly if you confirm the problematic versions.


🏁 Script executed:

#!/bin/bash
set -euo pipefail

PKG="bleak"
PIN="1.1.0"

# Fetch PyPI JSON once
JSON="$(curl -sS https://pypi.org/pypi/${PKG}/json)"

# 1) Check if the exact version exists
HAS_VERSION=$(echo "$JSON" | python - <<'PY'
import json,sys
data=json.load(sys.stdin)
print(str("1.1.0" in data.get("releases",{})).lower())
PY
)
if [[ "$HAS_VERSION" != "true" ]]; then
  echo "ERROR: Version ${PIN} of ${PKG} not found on PyPI."
  exit 1
fi
echo "OK: ${PKG} ${PIN} exists on PyPI."

# 2) Show declared requires_python at the project level (may be None)
REQ_PY=$(echo "$JSON" | python - <<'PY'
import json,sys
data=json.load(sys.stdin)
print(data.get("info",{}).get("requires_python"))
PY
)
echo "Project-level requires_python: ${REQ_PY:-<not specified>} (check wheels for per-file metadata)"

# 3) List file artifacts for the pinned release and any per-file python version constraints
echo "Artifacts for ${PKG} ${PIN}:"
echo "$JSON" | python - <<'PY'
import json,sys
data=json.load(sys.stdin)
for f in data.get("releases",{}).get("1.1.0",[]):
    print(f"- filename: {f.get('filename')}\n  python_version: {f.get('python_version')}\n  requires_python: %s" % f.get('requires_python'))
PY

echo
echo "NOTE: Verify compatibility with Python 3.13 based on the above requires_python and wheel tags."

Length of output: 164851


Avoid exact pins — prefer a compatible range (bleak 1.1.0 verified on PyPI)

  • Reason (short): Exact pins in a library cause resolver friction for downstream consumers; prefer ranges or exclusions unless pinning is required for a known-bad release.
  • Location to change:
    • pyproject.toml — line 11: "bleak ==1.1.0"

Suggested diffs:

-    "bleak ==1.1.0"
+    "bleak >=1.1.0,<1.2.0"

or, to allow any 1.1.x:

-    "bleak ==1.1.0"
+    "bleak ==1.1.*"

Verification: PyPI contains bleak 1.1.0 (wheel: bleak-1.1.0-py3-none-any.whl) and the release metadata declares requires_python ">=3.9" — i.e., compatible with Python 3.13.

If you must pin due to a regression, document the reason and prefer a range with exclusions (e.g., ">=1.1.0,<1.2.0,!=1.1.1").

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"bleak ==1.1.0"
"bleak >=1.1.0,<1.2.0"
🤖 Prompt for AI Agents
In pyproject.toml around line 11, replace the exact pin "bleak ==1.1.0" with a
compatible version range to avoid resolver friction (for example allow any 1.1.x
like >=1.1.0,<1.2.0, or if a specific bad release must be excluded use a range
with an exclusion such as >=1.1.0,!=1.1.1,<1.2.0); if you truly must pin to
1.1.0, add a short comment documenting the regression or reason for the exact
pin.

]
keywords = ["bluetooth", "ble", "smart blinds", "neo", "home automation"]
classifiers = [
Expand Down