This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Gargoyle

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, 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, 1.10

Install

Install it with pip:

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:

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.

History

Pending Release

  • New release notes here

1.2.7 (2016-12-01)

  • Added three built-in condition sets for checking if today is before or after a date - UTCTodayConditionSet, AppTodayConditionSet, and ActiveTimezoneTodayConditionSet.

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
Release History

Release History

1.2.7

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.2.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.2.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.2.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.2.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.2.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.2.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.2.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
gargoyle_yplan-1.2.7-py2.py3-none-any.whl (48.1 kB) Copy SHA256 Checksum SHA256 3.5 Wheel Dec 1, 2016
gargoyle-yplan-1.2.7.tar.gz (41.7 kB) Copy SHA256 Checksum SHA256 Source Dec 1, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting