{ "info": { "author": "Mike Johnson", "author_email": "mike@mrj0.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable" ], "description": "Chimney\n=======\n\nYou may need a coffeescript compile, a browserify transform and then\nwant to run uglify to minimize the source for production javascript\nfiles. Or a maybe a SASS compile and minimization.\n\nChimney is a simple build system primarily intended for web\nassets. There are many build systems and most asset compilers are\ncapable of watching for changes, but it becomes difficult to manage\nwhen more steps are added to the pipeline.\n\nCompilers\n---------\n\nAt each step of the process, there is some input, some output and a\ntransformation process. Chimney simply calls these \"compilers\" for\nsimplicity, but they can be any kind of Python code.\n\nTo declare a new type of compiler, define a subclass of ``Compiler``:\n\n```python\nfrom chimney.compilers import Compiler\n\nclass coffee(Compiler):\n def run(self):\n # perform compile\n```\n\nTargets\n-------\n\nTargets are the goal of compilation. This might be a final executable\nor an combined javascript file for a page.\n\nHere is an example of a javascript target that needs to be built from\nseveral coffee files (this is using the above compiler):\n\n```python\nimport chimney\n\nchimney.make(\n coffee('smoke.js', ['wood.coffee', 'fire.coffee']),\n)\n```\n\nThis will compile each of the .coffee dependencies to their .js output\nforms using the ``coffee`` compiler defined above, then combine those\nfiles into ``smoke.js``.\n\nNext, there should be a step to minify ``smoke.js`` if needed. That's\neasy with chimney, simply add another task to the above definition:\n\n```python\nchimney.make(\n coffee('smoke.js', ['wood.coffee', 'fire.coffee']),\n uglify('smoke.min.js', 'smoke.js'),\n)\n```\n\nChimney already provides compilers for the most popular web\nassets. Others can easily be added to your script by extending the\nCompiler class.\n\nWatching for changes\n--------------------\n\nTo automatically re-execute tasks when their dependencies change,\nthe function ``chimney.watch`` will first execute all tasks normally\nbut then it will watch for any filesystem changes.\n\nTo get this functionality, the api is slightly different. Instead of\nexpecting a list of tasks, the function ``chimney.watch`` requires\na function. This is called when new files are added so the dependencies\ncan be recalculated. For example:\n\n```python\ndef create_tasks():\n return [\n coffee('smoke.js', ['wood.coffee', 'fire.coffee']),\n uglify('smoke.min.js', 'smoke.js'),\n ]\n\nchimney.watch(create_tasks)\n```\n\nWhenever the coffee files are changed, ``smoke.js`` will be re-created\nusing the ``coffee`` compiler. Then ``smoke.min.js`` will be created, too.\nWhen new files are added, the function ``create_tasks`` will be re-executed\nto build a new set of tasks. This is useful for dynamically building\ntasks.\n\nBy default, the reload will start chimney on all new files, which may\nbe too often. You can provide a list of (shell) patterns to match\nto limit reloading:\n\n```python\ndef create_tasks():\n return [\n coffee('smoke.js', ['wood.coffee', 'fire.coffee']),\n uglify('smoke.min.js', 'smoke.js'),\n ]\n\nchimney.watch(create_tasks, reload_patterns=['*.coffee'])\n```", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mrj0/chimney/", "keywords": null, "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "chimney", "package_url": "https://pypi.org/project/chimney/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/chimney/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/mrj0/chimney/" }, "release_url": "https://pypi.org/project/chimney/0.4/", "requires_dist": null, "requires_python": null, "summary": "Compile web assets", "version": "0.4" }, "last_serial": 1670012, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "52e18476a3e2acc592ba752a2aeaacdf", "sha256": "dc639c1bd1324072af1b714c7c9eb512e75dff7c14fadd4909ef45ea8ab96727" }, "downloads": -1, "filename": "chimney-0.1.tar.gz", "has_sig": false, "md5_digest": "52e18476a3e2acc592ba752a2aeaacdf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6800, "upload_time": "2013-12-06T04:09:23", "url": "https://files.pythonhosted.org/packages/03/e3/d12f776002dfcc72ec05a57f8c728c257527edfa341d6ee605e32bec6a55/chimney-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "9228e3dc8a74e410282fffc5d99aafce", "sha256": "c8922385446421e3e0add9880b27e1f4e88595da8f6dc4395895d490e91e4e5a" }, "downloads": -1, "filename": "chimney-0.2.tar.gz", "has_sig": false, "md5_digest": "9228e3dc8a74e410282fffc5d99aafce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8589, "upload_time": "2013-12-12T20:12:04", "url": "https://files.pythonhosted.org/packages/1f/1e/5a44be1e2e0a1553cff9cd624e855020044dc99d87b11ae88c1b098d5719/chimney-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "5467e250ee25923719f367ab87d4bec2", "sha256": "c3d1491f2983b876b55ce0ac06fb9fbdda828e188e88111ae531c784f6a5e7c4" }, "downloads": -1, "filename": "chimney-0.3.tar.gz", "has_sig": false, "md5_digest": "5467e250ee25923719f367ab87d4bec2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8477, "upload_time": "2014-12-17T02:25:25", "url": "https://files.pythonhosted.org/packages/e6/46/2a6a3c6e8e61c65601cc044e5bf1eb1f099fd24320440cf919291f6053da/chimney-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "9855617cb918d5a1056226ec57ec58bf", "sha256": "b39c9dae8c6b83a70f7832ce8e7ff62dbce24c58da2be891143230c8d39027f2" }, "downloads": -1, "filename": "chimney-0.4.tar.gz", "has_sig": false, "md5_digest": "9855617cb918d5a1056226ec57ec58bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9027, "upload_time": "2015-08-09T02:58:25", "url": "https://files.pythonhosted.org/packages/83/df/d8858884551b9564090ae7b9ebf5474f05e5f3c307ff9edf7bf403b6e6c0/chimney-0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9855617cb918d5a1056226ec57ec58bf", "sha256": "b39c9dae8c6b83a70f7832ce8e7ff62dbce24c58da2be891143230c8d39027f2" }, "downloads": -1, "filename": "chimney-0.4.tar.gz", "has_sig": false, "md5_digest": "9855617cb918d5a1056226ec57ec58bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9027, "upload_time": "2015-08-09T02:58:25", "url": "https://files.pythonhosted.org/packages/83/df/d8858884551b9564090ae7b9ebf5474f05e5f3c307ff9edf7bf403b6e6c0/chimney-0.4.tar.gz" } ] }