nanobind: Atom.GetNeighbors()[i] and Atom.GetBonds()[i] index the whole molecule
Maintainer antworten meist innerhalb von 2 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 68/100
Rechercherichtung
Start by running the provided nanobind reproduction for Atom.GetNeighbors() and Atom.GetBonds(), then trace the bindings for these two Atom methods and compare their indexed behavior with iteration and the boost output. Done means indexed access returns the same neighbor and bond sequence as iteration under nanobind, with regression coverage if the relevant binding tests are found.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the bug
With nanobind, indexing Atom.GetNeighbors() or Atom.GetBonds() returns the wrong atoms/bonds: seq[i] gives the molecule's atom/bond i instead of the i-th neighbour/bond.
To Reproduce
from rdkit import Chem, rdBase
print(rdBase.rdkitVersion, rdBase._wrapperType)
mol = Chem.MolFromSmiles("CCNO")
atom = mol.GetAtomWithIdx(2)
nbrs = atom.GetNeighbors()
print("neighbours iterated:", [n.GetIdx() for n in nbrs])
print("neighbours indexed: ", [nbrs[i].GetIdx() for i in range(len(nbrs))])
bonds = atom.GetBonds()
print("bonds iterated:", [b.GetIdx() for b in bonds])
print("bonds indexed: ", [bonds[i].GetIdx() for i in range(len(bonds))])
nanobind:
2026.09.1b1 nanobind
neighbours iterated: [1, 3]
neighbours indexed: [0, 1]
bonds iterated: [1, 2]
bonds indexed: [0, 1]
boost:
2026.03.6
neighbours iterated: [1, 3]
neighbours indexed: [1, 3]
bonds iterated: [1, 2]
bonds indexed: [1, 2]
- Vorherrschende Sprache
- HTML
- Sterne
- 3.6k
- Forks
- 1.1k
- Ø Merge
- 3 T. 10 Std.
- Gemergte PRs (30 T.)
- 36
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus rdkit/rdkit
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 90/100
rdkit/rdkit#9642 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Clarify mol_from_smiles vs qmol_from_smarts for substruct_count queries in Postgresql cartridgeOffenenhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
Maintainer antworten meist innerhalb von 2 Tagen
-
bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 52/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
Maintainer antworten meist innerhalb von 2 Tagen
-
bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 68/100
rdkit/rdkit#9646 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
web-infra-dev/rsbuild#8608 ·
Maintainer antworten meist innerhalb von 1 Tag
-
google_chat: format_message leaks GCn placeholders when inline code is inside bold/header/link textOffencomp/plugins P3 sweeper:risk-message-delivery type/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
NousResearch/hermes-agent#128985 ·
Maintainer antworten meist innerhalb von 1 Tag
-
SlackAdapter and TelegramAdapter are not assignable to Adapter under exactOptionalPropertyTypesOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
vector-store
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
mem0ai/mem0#7503 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag