| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
chore: updated pre-commit hook dependencies
…nd BondCalculator
…nd libdiffpy_version
…ty and PDFBaseline
|
@sbillinge Please see if this is what we want. |
Sorry, something went wrong.
|
@SYMSCAE This PR is still failing. I suspect it is because we haven't updated the dependencies for this package (libdiffpy and pyobjcryst). So, in order to make it build properly, we might need to update its dependency so that we could test whether it would work. @sbillinge We might also open migration branch on libdiffpy and pyobjcryst so that @SYMSCAE and @joeseaer would work on that. |
Sorry, something went wrong.
Migration work in those repos is on migration-nano branches. I am not sure about pyobjcryst but we can check. Please coordinate with earlier work fine by @SYMSCAE and others (I don't remember exactly) |
Sorry, something went wrong.
|
@SYMSCAE @stevenhua0320 we need to merge this to move the 3D PDF calculator forward. Please can we work on getting the dependency issue resolved so we can move forward? This is a bit urgent. |
Sorry, something went wrong.
|
@SYMSCAE Let's first work on pyobjcryst as I believe there is a migration-nano for migration purpose. For this week you could work on that package and bug me if you are ready for the review. |
Sorry, something went wrong.
Hi Steven, I believe we don’t need to touch pyobjcryst. The only change in upstream library is libdiffpy, which is requiring a new conda release. After that we should be good to pass rest of the tests. |
Sorry, something went wrong.
|
Hi @SYMSCAE @stevenhua0320 @sbillinge, I have opened diffpy/libdiffpy#50, which ports ThreeDPDFCalculator onto the migration-nano branch. The full C++ test suite passes locally (218 tests). Once #50 is merged and #89 provides a stable nanobind base, I’ll add the corresponding ThreeDPDFCalculator bindings in a follow-up PR based on the updated migration-nano branch. Please feel free to let me know if I can help with any related issues or reviews in the meantime. I’d be happy to assist. |
Sorry, something went wrong.
|
@joeseaer it could help us if you could lead the nanobind migration as we are still 1 month away from being back in session and this is not the focus of @SYMSCAE and @stevengeorge128, our c++ folks, at the moment. Basically, we want to figure out how to do the testing on libdiffpy migration-nano branch to make sure we didn't break anything (and did it in the optimal best way), then merge that into main and do a release. Then we need to do the same for diffpy.srreal. Finally we will need to take what we learned to pdffit2. @joeseaer would you be able to take that on and report back all the steps and the results? |
Sorry, something went wrong.
Codecov Report❌ Patch coverage is 98.84868% with 7 lines in your changes missing coverage. Please review.
@@ Coverage Diff @@
## migration-nano #89 +/- ##
==================================================
+ Coverage 98.52% 98.67% +0.15%
==================================================
Files 20 27 +7
Lines 3248 3844 +596
==================================================
+ Hits 3200 3793 +593
- Misses 48 51 +3
|
Sorry, something went wrong.
|
@sbillinge I’ve aligned some approaches with diffpy/pyobjcryst#101 such as moving build system to cmake and made some workaround to pin ci to run on specific commits so we can work more flexibly in the future. Please see if this is what we want. |
Sorry, something went wrong.
Use the nanobind 3.1 trampoline API and avoid redispatching super calls into Python calculation hooks. Keep editable numeric contribution arrays with consistent membership and unhashable value equality. Validation: isolated wheel build; 292 tests passed on Python 3.13.
Use one Atom reference model for indexing and iteration. Surviving atoms follow index shifts, removed or replaced atoms detach, and NumPy views retain snapshots before structural changes. Support sequence edits without depending on libdiffpy vector capacity or Boost.Python boundary rules. Validation: isolated wheel build; 340 tests passed, including 48 structure lifetime cases.
Restore callable calculator exports and load historical structures and Python components. Honor subclass construction hooks, guard against accidental metadata loss, and use ordinary truth-value conversion for anisotropy callbacks. Retain direct component access without emulating native multiple inheritance. Validation: 419 tests passed, including 24 legacy pickle cases. Differential checks match 122 numerical arrays and 10 existing error outcomes against Boost.Python (maximum absolute difference 2.88e-13).
|
@sbillinge pr ready for review. We can review behavioral changes and move on to make better use of nanobind features from here. Calculations from my end are consistent with the previous Boost.Python version. |
Sorry, something went wrong.
There was a problem hiding this comment.
I will merge this. There is a lot of hard coded things that will go stale with time, such as python versions specified in CMAKE recipes and so on. This will make it difficult to maintain moving forward. Is it possible to rationalize things as a future issue/project so that there is a well defined set of steps to do updates each year? Action item: make an issue to work on rationalizing this, something like that?
Sorry, something went wrong.
|
Btw @SYMSCAE we normally like to have screenshots of your comparison tests so we have s better idea of the extent of what you did and what you got. A bit more than "my valuations were consistent" |
Sorry, something went wrong.
Sorry, something went wrong.
|
Interesting results, thanks @SYMSCAE .
|
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
This PR is the initial port that migrates the original Boost.Python bindings to nanobind as mentioned in diffpy/pyobjcryst#88, noticed future improvements will be mentioned in TODOs but will be addressed in future PRs.