Metadata-Version: 1.1
Name: django-super-deduper
Version: 0.1.3
Summary: Utilities for deduping Django model instances
Home-page: https://github.com/mighty-justice/django-super-deduper
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Description: Django Super Deduper
        ====================
        
        |Build status| |codecov| |Python version|
        
        A collection of classes and utilities to aid in de-duping Django model
        instances.
        
        Requirements
        ------------
        
        -  Python 3.6
        -  Django 1.11
        
        Install
        -------
        
        ``pip install django-super-deduper``
        
        Usage
        -----
        
        Merging Duplicate Instances
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        By default any `empty
        values <https://github.com/django/django/blob/master/django/core/validators.py#L13>`__
        on the primary object will take the value from the duplicates.
        Additionally, any related one-to-one, one-to-many, and many-to-many
        related objects will be updated to reference the primary object.
        
        .. code:: python
        
           > from django_super_deduper.merge import MergedModelInstance
           > primary_object = Model.objects.create(attr_A=None, attr_B='')
           > alias_object_1 = Model.objects.create(attr_A=X)
           > alias_object_2 = Model.objects.create(attr_B=Y)
           > merged_object = MergedModelInstance.create(primary_object, [alias_object_1, alias_object_2])
           > merged_object.attr_A
           X
           > merged_object.attr_B
           Y
        
        Improvements
        ------------
        
        -  Support multiple merging strategies
        -  Recursive merging of related one-to-one objects
        
        Logging
        -------
        
        This package does have some rudimentary logging for debugging purposes.
        Add this snippet to your Django logging settings to enable it:
        
        .. code:: python
        
           LOGGING = {
               'loggers': {
                   'django_super_deduper': {
                       'handlers': ['console'],
                       'level': 'DEBUG',
                   },
               },
           }
        
        References
        ----------
        
        -  https://djangosnippets.org/snippets/2283/
        -  https://stackoverflow.com/questions/3393378/django-merging-objects
        
        .. |Build status| image:: https://badge.buildkite.com/9895056b294e7f1a8893b9ef75bb743f3933fc3264e23eeeb2.svg
           :target: https://buildkite.com/mighty/django-super-deduper?branch=master
        .. |codecov| image:: https://codecov.io/gh/mighty-justice/django-super-deduper/branch/master/graph/badge.svg
           :target: https://codecov.io/gh/mighty-justice/django-super-deduper
        .. |Python version| image:: https://img.shields.io/pypi/pyversions/django-super-deduper.svg
           :target: https://pypi.python.org/pypi/django-super-deduper
        
Platform: UNKNOWN
Classifier: Framework :: Django :: 1.11
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.6
