{ "info": { "author": "kyzas", "author_email": "kyznano@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# scake\nA flexible framework for Python\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
LicenseTravis CIMaster:
\n Dev:
VersionCoverageMaster:
\n Dev:
WheelImplementation
StatusDownloads
Supported versions
\n\n# USAGE\n\n## Hello World with Scake\n\nFirst, let's define the settings in YAML format.\n\n**settings.yaml**\n\n``` yaml\nmy_settings:\n hello_message: \"Hello World!\"\n\nprinter:\n $MyPrinter:\n message: =/my_settings/hello_message\n result(): __call__\n```\n\nIn the above settings, we define the \"hello_message\" component holding our message: \"Hello World!\". The reference to it is \"=/my_settings/hello_message\" (very similar to file path system), first character \"=\" is annotation for component reference.\n\nAt the \"printer\" component, we initialize an instance of class \"MyPrinter\" (annotated by $MyPrinter) and pass the message content to its constructor. After initializing instance successfully, Scake will execute the \"__call__\" function and assign the result to component at \"/printer/result()\". Open and close parenthesis annotates a method component in Scake.\n\n**hello.py**\n\n``` python\n# -*- coding: utf-8 -*-\nimport sys\nimport yaml\nfrom scake import Scake\n\nclass MyPrinter:\n def __init__(self, message):\n self.message = message\n\n def __call__(self):\n print(self.message)\n\ndef main(yaml_path):\n with open(yaml_path) as f:\n config = yaml.safe_load(f)\n s = Scake(config, class_mapping=globals())\n s.run()\n pass\n\nif __name__ == \"__main__\":\n main(yaml_path=\"settings.yaml\")\n```\n\nRun the following command for your first \"Hello World!\":\n\n``` bash\n$ python3 hello.py\nHello World!\n```\n\n# FEATURES TO-DO\n\n- [ ] Design logo for Scake.\n- [ ] Write documentation & tutorials for Scake.\n- [ ] Support \"requirements.txt\" in settings. Installing Python packages on-the-fly.\n- [ ] Support loop in settings.\n- [ ] Support flow reference (connect multiple settings files together).\n- [ ] Support integration tests (try as friendly as possible).\n- [ ] Support generating class templates (> scake /path/to/settings.yaml).\n- [ ] Import custom packages automatically by defining in the settings file.\n- [ ] Setting element inherit / override.\n\nFar future plan:\n\n- [ ] Packaging scake with Cython.\n- [ ] Packaging scake to a library or executable binary.\n- [ ] Scake server for listening file changes and update code flow status (ok or error) in real-time.\n- [ ] Scake component on the cloud. Be able to reference a scake component by URL @ specific version.\n- [ ] Interactive IDE for designing a settings fully compatible to Scake.\n\n# RELEASED FEATURES\n\n## v0.2.1\n\n* Object attribute reference in YAML settings\n* Fix bug: similar keys in settings\n\n## v0.2.0\n\n* Big refactoring in how we do initializing instances and executing code flow\n* Remove generating class templates based on YAML\n\n## v0.1.0\n\n* Automatically initialize Class instances from YAML description.\n* Code flow is built and executed properly by checking attribute dependencies.\n* Generate class templates based on YAML description.\n\n# CONTRIBUTING\n\n* Step 1. Fork on **dev** branch.\n* Step 2. Install **pre-commit** on the local dev environment.\n\n```\npip install pre-commit\npre-commit install\n```\n\n* Step 3. Write test case(s) for the new feature or the bug.\n* Step 4. Write code to pass the tests.\n* Step 5. Make sure that the new code passes all the pre-commmit conditions.\n\n```\npre-commit run -a\n```\n\n* Step 6. Create pull request.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/kyzas/scake/tarball/master", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kyzas/scake", "keywords": "", "license": "MIT", "maintainer": "kyzas", "maintainer_email": "kyznano@gmail.com", "name": "scake", "package_url": "https://pypi.org/project/scake/", "platform": "", "project_url": "https://pypi.org/project/scake/", "project_urls": { "Download": "https://github.com/kyzas/scake/tarball/master", "Homepage": "https://github.com/kyzas/scake" }, "release_url": "https://pypi.org/project/scake/0.2.1/", "requires_dist": [ "PyYAML" ], "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4,", "summary": "A flexible framework for Python", "version": "0.2.1" }, "last_serial": 5767076, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "7aa4038e82fd19fff9c10591b3b65cf6", "sha256": "3f689e8d07b18f78294271bf02d80de48f2abfef64edd1c081f6939e115bd87c" }, "downloads": -1, "filename": "scake-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7aa4038e82fd19fff9c10591b3b65cf6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4,", "size": 7519, "upload_time": "2019-06-02T20:21:54", "url": "https://files.pythonhosted.org/packages/12/72/13db27a253ab679a0a6376a05d8b39d92e92311b6039f355d8b0a5f20c3e/scake-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "469a2c7d5d0a4212f48e55b6f9826025", "sha256": "0b7aa01234f13e0dcef4e2f0abe78c765eb60acc608a5a0449ce9993edde22a8" }, "downloads": -1, "filename": "scake-0.1.0-py3.7.egg", "has_sig": false, "md5_digest": "469a2c7d5d0a4212f48e55b6f9826025", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4,", "size": 12501, "upload_time": "2019-06-02T20:21:56", "url": "https://files.pythonhosted.org/packages/0e/e0/56ca70dae7161f6d02e44233400645b2955ce6a063e14534da9c8055cd82/scake-0.1.0-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "96c2f0145660771fbc314cfe91012aa4", "sha256": "633b506f137a10b195f3787c276aa62ba2929bec7966749353913bc11a1b76d8" }, "downloads": -1, "filename": "scake-0.1.0.tar.gz", "has_sig": false, "md5_digest": "96c2f0145660771fbc314cfe91012aa4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4,", "size": 5610, "upload_time": "2019-06-02T20:21:58", "url": "https://files.pythonhosted.org/packages/b1/2f/20c6518d42b8ebd852e90c9038e202905a989dd4255e60ff0e66c1df00c4/scake-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0523c907496be56dc32d099d8ad3bf8e", "sha256": "587c58c6ecab34416d67387f01a1b09cc4217c982dfa0cad2d81894dfc8e1622" }, "downloads": -1, "filename": "scake-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0523c907496be56dc32d099d8ad3bf8e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4,", "size": 8211, "upload_time": "2019-07-29T09:24:23", "url": "https://files.pythonhosted.org/packages/1e/7c/fa734b42c1d8680e802f1c98ea78f41ea4f71cbaab78728402feaa2eece7/scake-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "005d309cd250435eeb21d724d7e35290", "sha256": "d7bbd95bfb2cecfafec979cb3f614ca0d91965ebb632aa056fda2fa392c680a2" }, "downloads": -1, "filename": "scake-0.2.0.tar.gz", "has_sig": false, "md5_digest": "005d309cd250435eeb21d724d7e35290", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4,", "size": 6597, "upload_time": "2019-07-29T09:24:25", "url": "https://files.pythonhosted.org/packages/2a/62/d32683e2f127123de055e7e1944fa7ae2dda936b8d8cc4033dd99877f501/scake-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "1cb7810b86dd20b8dab21f3d38054b16", "sha256": "ec55e23283926a24919a715f844c97753d99569fd690f2cb8eb328b859e256db" }, "downloads": -1, "filename": "scake-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1cb7810b86dd20b8dab21f3d38054b16", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4,", "size": 8682, "upload_time": "2019-09-01T14:10:59", "url": "https://files.pythonhosted.org/packages/38/c8/7e066529d416047f427c08980aeb9f835db6bddaa3f4b2c3038c6e112adb/scake-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a0133886770d0760d1db546e8dac4bce", "sha256": "441848d3d17918aac66417886760657a26ac5450e081eb37ea2a994f7c79e334" }, "downloads": -1, "filename": "scake-0.2.1.tar.gz", "has_sig": false, "md5_digest": "a0133886770d0760d1db546e8dac4bce", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4,", "size": 7887, "upload_time": "2019-09-01T14:11:01", "url": "https://files.pythonhosted.org/packages/52/52/4e0f4f493da66acf46ffac3d73f89eca1e7af11e1751a7e41b2b6958278b/scake-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1cb7810b86dd20b8dab21f3d38054b16", "sha256": "ec55e23283926a24919a715f844c97753d99569fd690f2cb8eb328b859e256db" }, "downloads": -1, "filename": "scake-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1cb7810b86dd20b8dab21f3d38054b16", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4,", "size": 8682, "upload_time": "2019-09-01T14:10:59", "url": "https://files.pythonhosted.org/packages/38/c8/7e066529d416047f427c08980aeb9f835db6bddaa3f4b2c3038c6e112adb/scake-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a0133886770d0760d1db546e8dac4bce", "sha256": "441848d3d17918aac66417886760657a26ac5450e081eb37ea2a994f7c79e334" }, "downloads": -1, "filename": "scake-0.2.1.tar.gz", "has_sig": false, "md5_digest": "a0133886770d0760d1db546e8dac4bce", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4,", "size": 7887, "upload_time": "2019-09-01T14:11:01", "url": "https://files.pythonhosted.org/packages/52/52/4e0f4f493da66acf46ffac3d73f89eca1e7af11e1751a7e41b2b6958278b/scake-0.2.1.tar.gz" } ] }