{ "info": { "author": "Tom Maslen", "author_email": "tom_maslen@hotmail.com", "bugtrack_url": null, "classifiers": [], "description": "featureflagclient\n=================\n\nAllows you to use feature flags in your code, works with any JSON feature flag service.\n\nFeatures:\n\n * Extremely light-weight.\n * Feature flag service agnostic.\n\nCreated by [featureflag.tech](https://featureflag.tech).\n\n## Get started\n\nYou can install this via pip from the package index as\n\n```\npip install featureflagclient\n```\n\nIf you have a JSON file in the cloud like this one:\n\n[featureflag.tech/node/exampleflag.json](https://featureflag.tech/node/exampleflag.json)\n\nYou can access it like so\n\n```\nfrom featureflagclient.client import Featureflagclient\n\nf2c = Featureflagclient(\"https://featureflag.tech/node/exampleflag.json\")\n\nif (f2c.get( \"trueBoolean\" )) {\n\t// do some python\n}\n```\n\nA great way to use feature flags is to use the values from your flag source but override them in specific contexts. For example with a web application, you can have a feature disabled by default in your live production, but then override the value using a cookie or parameter in the request.\n\nFor example:\n\n```\nfrom featureflagclient.client import Featureflagclient\n\nf2c = Featureflagclient(\n\t\"https://featureflag.tech/node/exampleflag.json\",\n\t{\n\t\t\"falseBoolean\": req.param(\"falseBooleanOverride\") or None\n\t}\n)\n\nif (f2c.get( \"trueBoolean\" )) {\n\t// do some python\n}\n```\n\n## Developing\n\n### Setting up from scratch\n\nProject uses the following Python libs:\n\n * Python 3.6\n * [pyenv](https://github.com/pyenv/pyenv) for managing the version of Python\n * [pipenv](https://docs.pipenv.org/) for managing dependencies and the Python env\n * [pytest](https://docs.pytest.org/en/latest/) for unit testing\n * [mypy](http://mypy-lang.org/) for static typing (not yet true)\n * [flake8](http://flake8.pycqa.org/en/latest/) for code linting (not yet true)\n\n*pyenv - python version manager*\n\n```\nbrew install pyenv\n```\n\nAdd this to `.bash_profile`\n\n```\neval \"$(pyenv init -)\"\n```\n\nreload terminal session.\n\n*python 3.6.5*\n\n``` \npyenv install 3.6.5\n```\n\n*Setup env with dependencies*\n\n```\ncd [repo directory]\npipenv install\npipenv shell\n```\n\n*Run the tests*\n\n```\npytest -v\n```\n\n### Release new version\n\n1) Bump the version number in `setup.py`\n\n2) Delete all the contents of the `dist` dir\n\n3) Create distribution files:\n\n```\npython setup.py sdist bdist_wheel\n```\n\n4) Push to pypi:\n\n```\ntwine upload dist/*\n```\n\n5) Check the deployment at:\n\n```\nhttps://pypi.org/manage/project/featureflagclient/releases/\n```\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/tmaslen/featureflagclient-python/tarball/master", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tmaslen/featureflagclient-python", "keywords": "feature flag,feature toggle", "license": "", "maintainer": "", "maintainer_email": "", "name": "featureflagclient", "package_url": "https://pypi.org/project/featureflagclient/", "platform": "", "project_url": "https://pypi.org/project/featureflagclient/", "project_urls": { "Download": "https://github.com/tmaslen/featureflagclient-python/tarball/master", "Homepage": "https://github.com/tmaslen/featureflagclient-python" }, "release_url": "https://pypi.org/project/featureflagclient/0.4/", "requires_dist": null, "requires_python": "", "summary": "Service agnostic featureflag client", "version": "0.4" }, "last_serial": 3949338, "releases": { "0.0": [ { "comment_text": "", "digests": { "md5": "73b8be95b9570172191d2dd2ca6e3dc7", "sha256": "56280b23bad52f4d4478fd7ccd8eea701196572d50849589278948911bb2992d" }, "downloads": -1, "filename": "featureflagclient-0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "73b8be95b9570172191d2dd2ca6e3dc7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1995, "upload_time": "2018-06-11T06:40:13", "url": "https://files.pythonhosted.org/packages/51/b9/9be88184ae3736b3186dc030641f84f22f852c66b8aeb342023195aba604/featureflagclient-0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ef99cc230856e91eb25ab26af59a795b", "sha256": "74109a230b33cc4f297b38900f9c0fc3012565bae750eecf14f6459ef2fbadf3" }, "downloads": -1, "filename": "featureflagclient-0.0.tar.gz", "has_sig": false, "md5_digest": "ef99cc230856e91eb25ab26af59a795b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2155, "upload_time": "2018-06-11T06:40:14", "url": "https://files.pythonhosted.org/packages/3b/6c/ae85e01f38e609526b643c16fb81d337568d9ef848a501ffe6a510070c58/featureflagclient-0.0.tar.gz" } ], "0.1": [ { "comment_text": "", "digests": { "md5": "65351bfd31e7632a7690600a533e7147", "sha256": "89c47b66e95ced5baec56b219503ee4aa7c9ee66a4903af14919ba84fd5e737e" }, "downloads": -1, "filename": "featureflagclient-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "65351bfd31e7632a7690600a533e7147", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2956, "upload_time": "2018-06-11T06:58:37", "url": "https://files.pythonhosted.org/packages/41/e3/29bd2762764e3a00a8178c0c46ecd731e054abcc3b907eafb58659451274/featureflagclient-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cd811b1d5a377cc375195ef10e75b127", "sha256": "a2955c2f6026117fbf49d88d5b6c849beb5aeb22d4534922b5de95befd019df8" }, "downloads": -1, "filename": "featureflagclient-0.1.tar.gz", "has_sig": false, "md5_digest": "cd811b1d5a377cc375195ef10e75b127", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2682, "upload_time": "2018-06-11T06:58:44", "url": "https://files.pythonhosted.org/packages/56/54/cd1feddd4e2b491ca39ad53e0b1f19a430b6396d0f4562262761e2b9666f/featureflagclient-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "d3f6b444624c33160a10c406f253ef64", "sha256": "f5ef8bb2826a0b8f7fadaf6461fa516e9e0f1d7811b6e6d310df00e5e8f17d08" }, "downloads": -1, "filename": "featureflagclient-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d3f6b444624c33160a10c406f253ef64", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2517, "upload_time": "2018-06-11T07:12:39", "url": "https://files.pythonhosted.org/packages/fb/05/97e7b90b3d71980c3a1fb4fb6654b6782b2cde96bcbc67ede50d205a7dcc/featureflagclient-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b69c31a87d62856e3a550a7f8bb1b204", "sha256": "7ae08280f9af1c15dd4a1cc9d198752a5855a19d6f7af592f0ebc69e3eccdd3b" }, "downloads": -1, "filename": "featureflagclient-0.2.tar.gz", "has_sig": false, "md5_digest": "b69c31a87d62856e3a550a7f8bb1b204", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2771, "upload_time": "2018-06-11T07:12:40", "url": "https://files.pythonhosted.org/packages/54/e4/8172547b401f286dce4e1151746529dd39645e159e8af216257eb4451faf/featureflagclient-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "fca39c292ca62cb6f7cd53982341dd96", "sha256": "48c290ee472dddc402ac8aac5657a2eaa14df8955cc2dd1cda2024ba6b1e2182" }, "downloads": -1, "filename": "featureflagclient-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "fca39c292ca62cb6f7cd53982341dd96", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1994, "upload_time": "2018-06-11T08:28:45", "url": "https://files.pythonhosted.org/packages/42/e0/970675a478d2a091cce8df31ae1a14d92d32902d5c75d76af7a884f17534/featureflagclient-0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "29c54ccf0509f7af54668287f462d3b5", "sha256": "069fb2cf08940f4ac57ada85ad314f5bb8cee25f79c0ed2f192075fa47979279" }, "downloads": -1, "filename": "featureflagclient-0.3.tar.gz", "has_sig": false, "md5_digest": "29c54ccf0509f7af54668287f462d3b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2540, "upload_time": "2018-06-11T08:28:46", "url": "https://files.pythonhosted.org/packages/9e/45/bf26ac3ff231b6b1ee48c297a8fa626cd7b92c738d17316c6061ff0235dc/featureflagclient-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "366807d33b012a06c50fa5ca1a5e3fd0", "sha256": "a10b300e6c6ca617b537d4d2fdb09c2f19e4116b0390a24abba620fe08d53895" }, "downloads": -1, "filename": "featureflagclient-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "366807d33b012a06c50fa5ca1a5e3fd0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3009, "upload_time": "2018-06-11T08:32:59", "url": "https://files.pythonhosted.org/packages/6c/70/7049c62e4d31d8ee59cac1cc178637120841ebac68de3a4621fa59ede7ba/featureflagclient-0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8551da8435c3e1677701edfb7d9f9825", "sha256": "149b2cafb34436f62c007c6c24bbfc02efad5049a3076c4fac34022f951d7c3d" }, "downloads": -1, "filename": "featureflagclient-0.4.tar.gz", "has_sig": false, "md5_digest": "8551da8435c3e1677701edfb7d9f9825", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2924, "upload_time": "2018-06-11T08:33:00", "url": "https://files.pythonhosted.org/packages/af/5f/3808d0b2d00161b1bf0f45921296b435004496b93cb4f1413af33da09391/featureflagclient-0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "366807d33b012a06c50fa5ca1a5e3fd0", "sha256": "a10b300e6c6ca617b537d4d2fdb09c2f19e4116b0390a24abba620fe08d53895" }, "downloads": -1, "filename": "featureflagclient-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "366807d33b012a06c50fa5ca1a5e3fd0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3009, "upload_time": "2018-06-11T08:32:59", "url": "https://files.pythonhosted.org/packages/6c/70/7049c62e4d31d8ee59cac1cc178637120841ebac68de3a4621fa59ede7ba/featureflagclient-0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8551da8435c3e1677701edfb7d9f9825", "sha256": "149b2cafb34436f62c007c6c24bbfc02efad5049a3076c4fac34022f951d7c3d" }, "downloads": -1, "filename": "featureflagclient-0.4.tar.gz", "has_sig": false, "md5_digest": "8551da8435c3e1677701edfb7d9f9825", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2924, "upload_time": "2018-06-11T08:33:00", "url": "https://files.pythonhosted.org/packages/af/5f/3808d0b2d00161b1bf0f45921296b435004496b93cb4f1413af33da09391/featureflagclient-0.4.tar.gz" } ] }