Skip to main content

Feature flipper for Pyramid, Pylons, or TurboGears apps.

Project description

https://travis-ci.org/switchboardpy/switchboard.svg?branch=master http://codecov.io/github/switchboardpy/switchboard/coverage.svg?branch=master

Switchboard is a port of Gargoyle, a feature flipper for Django apps, to the Pyramid or Pylons stack (including TurboGears). Originally used to selectively roll out changes to the SourceForge site, the library lets you easily control whether a particular change (a switch) is active.

You can make switches active for a certain percentage of visitors, all visitors to a particular host in a cluster, or if a particular string is present in the query string. Furthermore you can easily create your own conditions to do fancier things like geo-targeting, specific users, etc. In short, Switchboard turns you into a continuous deployment ninja.

Switchboard’s basic unit is a switch. Every switch has a unique key associated with it and is either active (on) or inactive (off), so using it in code is simple:

>>> from switchboard import operator
>>> operator.is_active('foo')
False

In this case we checked to see if the “foo” switch was active. By default, Switchboard will auto-create any switches that don’t already exist, such as “foo”. Auto-created switches default to an inactive state.

Whether a switch is active or not is controlled by two attributes: status and condition sets. There are four different statuses:

  • Inactive - disabled for everyone

  • Selective - active only for matched conditions

  • Inherit - inherit from the parent switch

  • Global - active for everyone

Inactive and global are opposite extremes: the switch is turned on or off for everyone. The full docs cover parent-child switches, which involves the inherit status. The selective status involves the second attribute, condition sets. When a switch is in seletive status, Switchboard checks the condition sets on the switch to see if it should be active. Conditions are criteria such as “10% of all visitors” or “only logged in users” that can be applied to the request to see if the switch should be active. When a switch is in selective status, it will only be active if it meets the conditions in place.

Switchboard’s switches and their condition sets are controlled via the admin UI. Adding switches to your code is as easy as importing the global operator object, as demonstrated above. While there is much more to Switchboard, such as parent-child switches, creating your own conditoion sets, and setting up default settings for certain types of switches, the quick intro above should give you a taste of what it’s capable of doing.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

switchboard-1.3.5.tar.gz (40.3 kB view details)

Uploaded Source

Built Distribution

switchboard-1.3.5-py2-none-any.whl (45.9 kB view details)

Uploaded Python 2

File details

Details for the file switchboard-1.3.5.tar.gz.

File metadata

  • Download URL: switchboard-1.3.5.tar.gz
  • Upload date:
  • Size: 40.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for switchboard-1.3.5.tar.gz
Algorithm Hash digest
SHA256 393ab7ac92a23f359bf6a8c1e3cced5d71cd80a00c3562028ab6c23f773eb429
MD5 f6127557df1b5481c9280278c3fb27e0
BLAKE2b-256 2a3eb1b3f2e001779c18da84c6f70edf7a5f7acd9a552bef1d1fd64733981d81

See more details on using hashes here.

File details

Details for the file switchboard-1.3.5-py2-none-any.whl.

File metadata

File hashes

Hashes for switchboard-1.3.5-py2-none-any.whl
Algorithm Hash digest
SHA256 4e570e3fa1297be319b748c7add98e6b2fe31199894f871843a0dbd27b5d5ad3
MD5 40b7bb52a9793f62e1b0e97fc8f65e19
BLAKE2b-256 7ad8ba329469e6bb50d3d990853fc9a73bbd2744ff6fc51b376c6ccf3b6beccc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page