Skip to content

Remove diffsync field from DiffSyncModel #256

@jamesharr

Description

@jamesharr

Environment

  • DiffSync version: 1.9.0

Proposed Functionality

  • Remove the diffsync field from DiffSyncModel
  • Add diffsync to DiffSyncModel.update and DiffSyncModel.create method signatures

There are a few reasons behind my thinking: 1) It makes the API a bit more consistent 2) It might make it easier for Python to run GC if there's no/fewer cyclical references between objects 3) I didn't see a lot of references to this field outside of create/update/delete

This is likely appropriate for diffsync v2 #232 since it breaks the API.

Other feature requests like #255 may benefit from this change since it would mean there is no assumption that DiffSyncModel has a reference to a given DIffSync

Use Case

class DiffSyncModel(BaseModel):
    @classmethod
    def create(cls, diffsync: "DiffSync", ids: Dict, attrs: Dict) -> Optional[Self]:
        # Method signature remains the same
        ...

    def update(self, diffsync: "DiffSync", attrs: Dict):
        ...

    def delete(self, diffsync: "DiffSync"):
        ...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions