Conversation
|
|
So re: the backed question, I think the answer is not to get rid of it, but to clarify its behavior. To do that, I think we should merge #1927 first, which may include a breaking change. If we stop allowing overriding of on-disk stores (which currently relies on inheritance form scipy.sparse private methods), then this question becomes much more simplified. The next step after #1927 would probably be to simplify it. From what I can tell, the reaosn we need to track if the file is open or not is because if writing. If everything were purely read-only, I think it would be less of an issue. My vision there would be in "backed" mode (after the two above points are implemented), we would simply take the |
src/anndata/_core/anndata.py
Outdated
|
|
||
| @X.setter | ||
| def X(self, value: XDataType | None): # noqa: PLR0912 | ||
| if value is None: |
There was a problem hiding this comment.
I think a lot of this deleted logic contains things that layers can't currently do. For example, overriding the backing X; currently, if you try to override a part of a view of a layers, it will just actualize and not override the old data. But if you do adata_view.X = 1 it will fill ones in to the parent AnnData object. I'm not sure what the history is there, but it accounts for a pretty big discrepancy in functionality
Co-authored-by: Philipp A. <flying-sheep@web.de>
|
My rough plan here:
|
…o x-layers-unification
for more information, see https://pre-commit.ci
|
Now it seems like we've hit a point where the blocking factor is the interaction between |
|
The main open question here (raised in #2357 and asked here on zulip) is what even backed mode is. Already was the case that backed mode was this weird "if it's set, open the file on access to In general, I think figuring out what backed mode should be now that X is copy-on-write (i.e., |
XareNone#678TODO:
dtypearg: just remove? or ignore+warning? (unless we already do that, then remove)XareNone#678