Metadata-Version: 2.0
Name: gargoyle-yplan
Version: 1.2.6
Summary: Gargoyle is a platform built on top of Django which allows you to switch functionality of your application on and off based on conditions.
Home-page: https://github.com/YPlan/gargoyle
Author: YPlan
Author-email: adam@yplanapp.com
License: Apache License 2.0
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: Django
Classifier: Framework :: Django :: 1.8
Classifier: Framework :: Django :: 1.9
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development
Requires-Dist: django-jsonfield (>=0.9.2,!=1.0.0,!=0.9.13)
Requires-Dist: django-modeldict-yplan (>=1.5.0)
Requires-Dist: nexus-yplan (>=1.2.0)
Requires-Dist: contextdecorator; python_version=="2.7"

========
Gargoyle
========

.. image:: https://img.shields.io/pypi/v/gargoyle-yplan.svg
    :target: https://pypi.python.org/pypi/gargoyle-yplan

.. image:: https://travis-ci.org/YPlan/gargoyle.svg?branch=master
    :target: https://travis-ci.org/YPlan/gargoyle

.. image:: https://readthedocs.org/projects/gargoyle-yplan/badge/?version=latest
        :target: https://gargoyle-yplan.readthedocs.io/en/latest/

Gargoyle is a platform built on top of Django which allows you to switch functionality of your application on and off
based on conditions.

It was originally created by `Disqus <https://github.com/disqus/gargoyle>`_, but due to the inactivity we at YPlan have
taken over maintenance on this fork.

Requirements
------------

Tested with all combinations of:

* Python: 2.7, 3.5
* Django: 1.8, 1.9

Install
-------

Install it with **pip**:

.. code-block:: bash

    pip install gargoyle-yplan

If you are upgrading from the original to this fork, you will need to run the following first, since the packages clash:

.. code-block:: bash

    pip uninstall django-modeldict gargoyle

Failing to do this will mean that ``pip uninstall gargoyle`` will also erase the files for ``gargoyle-yplan``, and
similarly for our ``django-modeldict`` fork.

Documentation
-------------

The documentation is available at `Read The Docs <https://gargoyle-yplan.readthedocs.io/>`_.




=======
History
=======

Pending Release
---------------

* New release notes here

1.2.6 (2016-08-03)
------------------

* Set requirements to exclude ``django-jsonfield==1.0.0`` which is broken for
  PostgreSQL - use ``1.0.1+`` instead.
* Made ``gargoyle.register()`` usable as a decorator
* Made ``gargoyle.unregister()`` return the boolean value of whether something
  was unregistered.
* Fixed removing conditions where the value is the empty string.

1.2.5 (2016-05-09)
------------------

* Removed debug prints from ``conditions.py`` which spammed your WSGI logs.

1.2.4 (2016-05-02)
------------------

* Added a migration to tidy up ``bytes`` versus ``str`` for ``choices`` on
  ``Switch.status``. It's no-op as ``choices`` is in-memory only.

1.2.3 (2016-04-11)
------------------

* Bugfix for ``@switches`` which didn't work on ``TestCase`` classes properly
  in 1.2.2.

1.2.2 (2016-04-11)
------------------

* Removed the South Migrations, since South doesn't support Django 1.7+, and
  Gargoyle only supports Django 1.8+.
* Added all ``__future__`` imports to all files for Python 2.7/3
  compatibility.
* Made ``@switches`` usable as a class decorator for ``unittest.TestCase``
  classes as well, where it applies from ``setUpClass`` through all tests to
  ``tearDownClass``. This adds a dependency on ``contextdecorator`` on Python
  2.7.

1.2.1 (2016-02-25)
------------------

* Simplified autodiscovery code to use ``AppConfig.ready()``. It's no longer
  necessary to add a call to ``gargoyle.autodiscover()`` in your ``urls.py``,
  when not using Nexus.
* Fixed url ``patterns`` warnings that appear on Django 1.9

1.2.0 (2016-02-12)
------------------

* Fixed the splitting of ``Range`` conditions, a merge of disqus/gargoyle#55,
  thanks @matclayton.
* Fixed the parsing of ``Range`` conditions for the Nexus admin interface.
* Fixed the Nexus interface to work with Switches that contain dots in their
  names, a merge of disqus/gargoyle#73, thanks @Raekkeri.
* Removed all inline javascript.
* Added ``ifnotswitch`` template tag, a merge of disqus/gargoyle#92, thanks
  @mrfuxi.
* Fixed Nexus admin interface for Switches with spaces in their keys, an issue
  reported in disqus/gargoyle#98, thanks @arnaudlimbourg.

1.1.1 (2016-01-15)
------------------

* Fix jQuery Templates

1.1.0 (2016-01-14)
------------------

*This version has a broken UI, please upgrade*

* Support for Django 1.9
* Use the YPlan fork of ``django-modeldict``
* Removed support for Django 1.7
* Added support for Python 3.4 and 3.5

1.0.1 (2015-12-09)
------------------

* Fix requirements to use ``nexus-yplan`` not ``nexus``

1.0.0 (2015-12-09)
------------------

* Forked by YPlan
* Django 1.8 compatibility - use Django migrations

0.11.0 (2015-02-03)
-------------------

* Better support for Django 1.6 and Django 1.7
* Dropped support for Django 1.2 and Django 1.3
* Use ``model_name`` in favour of ``module_name`` if available (deprecation in Django 1.6)
* DateTimeFields now utilize the auto_now=True kwarg
* Travis now tests on Django 1.6/Django 1.7

0.7.3 (2012-01-31)
------------------

* Bump ModelDict version to handle expiration in Celery tasks.

0.7.2 (2012-01-31)
------------------

* Correct issue with trying to serialize datetime objects.

0.7.1 (2012-01-31)
------------------

* Changed the behavior of gargoyle.testutils.switches to monkey patch
  the is_active method which should solve scenarios where switches
  are reloaded during the context.

0.7.0 (2012-01-27)
------------------

* Added confirmation message for enabling switches globally.
* Added date modified and sorts for switches on index view.

0.6.1 (2011-12-19)
------------------

* Require Nexus >= 0.2.0

0.6.0 (2011-12-16)
------------------

* Added basic switch inheritance.
* Added auto collapsing of switch details in interface.
* Added simple search filtering of switches in interface.

0.5.2 (2011-12-06)
------------------

* Improved display of Gargoyle dashboard widget.

0.5.1 (2011-12-06)
------------------

* Fixed switch_condition_removed signal to pass ``switch`` instance.

0.5.0 (2011-12-06)
------------------

* Updated signals to pass more useful information in each one (including the switch).

0.4.0
-----

* The percent field is now available on all ModelConditionSet's by default.
* Fixed a CSRF conflict issue with Nexus.

0.3.0 (2011-08-15)
------------------

- Added gargoyle.testutils.with_switches decorator
- Added gargoyle.testutils.SwitchContextManager

0.2.4
-----

- Updated autodiscovery code to resemble Django's newer example
- Updated django-modeldict to 1.1.6 to solve a threading issue with registration
- Added GARGOYLE_AUTO_CREATE setting to disable auto creation of new switches
- Added the ability to pass arbitrary objects to the ifswitch template tag.

0.2.3 (2011-07-12)
------------------

- Ensure HostConditionSet is registered

0.2.2 (2011-07-06)
------------------

- Moved tests outside of gargoyle namespace

0.2.1
-----

- UI tweaks

0.2.0
-----

- [Backwards Incompatible] SELECTIVE switches without conditions are now inactive
- Added ConditionSet.has_active_condition, and support for default NoneType instances
  for global / environment checks.
- Added HostConditionSet which allows you to specify a switch for a single
  server hostname


