Skip to content

removed force/check option for put_block#702

Open
manuschneider wants to merge 4 commits intomasterfrom
remove_putblock_force
Open

removed force/check option for put_block#702
manuschneider wants to merge 4 commits intomasterfrom
remove_putblock_force

Conversation

@manuschneider
Copy link
Collaborator

Fixes #501

@codecov
Copy link

codecov bot commented Nov 2, 2025

Codecov Report

❌ Patch coverage is 9.75610% with 37 lines in your changes missing coverage. Please review.
✅ Project coverage is 35.33%. Comparing base (e87c3a2) to head (38bbd29).
⚠️ Report is 10 commits behind head on master.

Files with missing lines Patch % Lines
include/UniTensor.hpp 10.25% 29 Missing and 6 partials ⚠️
src/UniTensor_base.cpp 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #702      +/-   ##
==========================================
+ Coverage   32.35%   35.33%   +2.98%     
==========================================
  Files         215      215              
  Lines       36363    33020    -3343     
  Branches    14597    13132    -1465     
==========================================
- Hits        11764    11669      -95     
+ Misses      22659    19437    -3222     
+ Partials     1940     1914      -26     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@IvanaGyro
Copy link
Collaborator

This breaks Python API. I suggest deprecate the API first if we are not planning to release version 2.

@manuschneider
Copy link
Collaborator Author

This breaks Python API. I suggest deprecate the API first if we are not planning to release version 2.

Since there is no use case for this (see #501), I do not think than this option was really used.

If we still want to make the API deprecated first, how would this work? Do we have a standard procedure that warns users when they use a feature that is deprecated?

@IvanaGyro
Copy link
Collaborator

Since there is no use case for this (see #501), I do not think than this option was really used.

The function signature is changed. If someone use it, their code will be broken.

If we still want to make the API deprecated first, how would this work? Do we have a standard procedure that warns users when they use a feature that is deprecated?

You can refer how popular packages did or #672.

@manuschneider
Copy link
Collaborator Author

Since there is no use case for this (see #501), I do not think than this option was really used.

The function signature is changed. If someone use it, their code will be broken.

If we still want to make the API deprecated first, how would this work? Do we have a standard procedure that warns users when they use a feature that is deprecated?

You can refer how popular packages did or #672.

done

@manuschneider manuschneider added the Pending check/approval Issue fixed, and need feedback label Feb 23, 2026
@manuschneider manuschneider added Pending check/approval Issue fixed, and need feedback and removed Pending check/approval Issue fixed, and need feedback labels Mar 18, 2026
.def(
"put_block_",
const bool &force) {
py::warnings::warn("argument 'force' is deprecated and will be removed; use put_block((UniTensor &self, cytnx::Tensor &in, const std::vector<std::string> &lbls, const std::vector<cytnx_int64> &qnum) instead",
Copy link
Collaborator

Choose a reason for hiding this comment

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

This will be warned in Python interface where the users don't know C++ APIs.

@ianmccul
Copy link
Contributor

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 38bbd295e5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +4213 to +4214
put_block(const Tensor &in_tens, const std::vector<cytnx_int64> &qidx, const bool &force) {
this->_impl->put_block(in_tens, qidx);

Choose a reason for hiding this comment

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

P1 Badge Honor deprecated force argument in put_block overload

This deprecated overload still exposes force, but it now unconditionally calls the strict two-argument path and ignores the flag. In previous behavior, force=false allowed callers to skip missing blocks without throwing; after this change, the same call path will throw, which is a breaking behavioral change hidden behind a deprecation shim. If the overload is kept for compatibility, it should preserve force semantics (or explicitly reject force=false instead of silently changing behavior).

Useful? React with 👍 / 👎.

Comment on lines +4294 to +4295
put_block_(Tensor &in, const std::vector<cytnx_int64> &qidx, const bool &force) {
this->_impl->put_block_(in, qidx);

Choose a reason for hiding this comment

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

P1 Badge Honor deprecated force argument in put_block_ overload

The deprecated in-place overload also ignores its force argument by directly forwarding to the strict two-argument implementation. Existing code that used force=false as a non-throwing update path will now raise exceptions after this commit, despite still calling a valid deprecated API. The compatibility overload should either preserve the old force behavior or fail fast with a clear error when force=false is supplied.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Pending check/approval Issue fixed, and need feedback

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Suspicious check in UniTensor::put_block()

4 participants