Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: pythonnet/pythonnet
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: pythonnet/pythonnet
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: dlr
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 10 commits
  • 11 files changed
  • 3 contributors

Commits on May 13, 2026

  1. Configuration menu
    Copy the full SHA
    8ea2e8a View commit details
    Browse the repository at this point in the history
  2. Extend the tests

    filmor committed May 13, 2026
    Configuration menu
    Copy the full SHA
    e60bfbc View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    194341c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c33012f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    33fccdb View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    0c95341 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    b527385 View commit details
    Browse the repository at this point in the history
  8. Catch errors in setting/deleting properties

    - Catch exceptions in TrySet/DeleteMember
    - Convert the exceptions into Python exceptions
    - Add tests for the remaining cases
    - Add a note on why the field has to be lazily initialized (general
      issue with derived classes)
    filmor committed May 13, 2026
    Configuration menu
    Copy the full SHA
    18f4c0f View commit details
    Browse the repository at this point in the history
  9. Propagate exceptions from TryGetMember in tp_getattro_dlr_proxy (#2718)

    The dynamic getter swallowed any exception from TryGetMember and
    returned default to Python with the prior AttributeError still set,
    so user code observed a misleading AttributeError instead of the real
    failure.
    
    Set a Python exception in the catch arm. We use RuntimeError with the
    message string rather than Converter.ToPython(e) because wrapping the
    CLR exception object can trigger type initialisation that re-enters
    this same slot on the live dynamic object, producing infinite
    recursion.
    
    Mirrors the symmetry already present in the setter (#2706 review,
    @lostmsu) and adds a regression test alongside the existing
    ThrowingSetDynamicObject coverage.
    greateggsgreg authored and filmor committed May 13, 2026
    Configuration menu
    Copy the full SHA
    a2ed667 View commit details
    Browse the repository at this point in the history
  10. Cache HasClrMember and align DLR setter exception path

    - Cache HasClrMember reflection per (Type, name) so tp_getattro_dlr_proxy
      / tp_setattro_dlr_proxy avoid repeated GetMember() calls on every
      attribute access of DLR-aware objects.
    
    - Mirror tp_setattro_dlr_proxy's catch arm to the getter's safer
      SetError(RuntimeError, e.Message) shape instead of SetError(Exception),
      keeping both slots re-entry-safe on live dynamic objects.
    
    Related to #2706.
    greateggsgreg authored and filmor committed May 13, 2026
    Configuration menu
    Copy the full SHA
    a3c2069 View commit details
    Browse the repository at this point in the history
Loading