{ "info": { "author": "Stefan Rohe", "author_email": "", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Software Development" ], "description": "|Build Status| |image1| |Docker Build| |PyPi version| |Docker pulls|\n\ncompose\\_format\n===============\n\nFormats docker-compose files by using the distilled docker compose best\npractices.\n\nDocker Compose Files are complex\n--------------------------------\n\nDocker Compose Files could be rather complex. If these files are\ncomplex, there are multiple ways to write the same thing. If there are\nmultiple ways to format these files, these multiple ways will be used.\nMeans that it will be not possible to diff your files, cause everybody\nwrites them a bit different.\n\nAlphabetical order vs. custom order\n-----------------------------------\n\nSorting would be easy, if everything could be sorted alphabetically. But\nin compose files the first thing mentioned for a service is the\n``image``. ``compose_format`` aims to distill these compose format best\npractices into a tool.\n\nComments\n--------\n\nUsually formatting tools destroy comments. But comments contain\nvalueable TODO-markers or other hints. ``compose_format`` putted effort\ninto supporting comments.\n\nSupport\n-------\n\nNote that this small utility is just valid until docker-compose has\nitself a format functionality. Currently docker-compose just support the\n\"config\" switch. Which joins multiple compose files and print them in a\nmachine-readable form.\n\nUsage\n-----\n\nVia Python\n~~~~~~~~~~\n\nInstall it via: ``pip3 install compose_format``\n\nAfter that use it like\n\n``compose_format compose-format.yml`` this will print the formatted\ncompose file to stdout. To let it replace the compose file add\n``--replace``.\n\nVia Docker\n~~~~~~~~~~\n\nUse it like:\n``cat docker-compose.yml | docker run -i funkwerk/compose_format``\n\nFeatures\n--------\n\n- Support for Version 3, 2.1, 2, and 1.\n- Support for Comments\n- Orders Services, Volumes, Networks\n- Orders Definitions\n- Orders Port and Volume Lists\n\nContribution\n------------\n\nFeel free to add issues or provide Pull Requests. Especially when the\norder in some points violates the best practices. This tool should be\nchanged based on the evolving best practices.\n\n.. |Build Status| image:: https://travis-ci.org/funkwerk/compose_format.svg\n :target: https://travis-ci.org/funkwerk/compose_format\n.. |image1| image:: https://badge.imagelayers.io/funkwerk/compose_format.svg\n :target: https://imagelayers.io/?images=funkwerk/compose_format:latest\n.. |Docker Build| image:: https://img.shields.io/docker/automated/funkwerk/compose_format.svg\n :target: https://hub.docker.com/r/funkwerk/compose_format/\n.. |PyPi version| image:: https://img.shields.io/pypi/v/compose_format.svg\n :target: https://pypi.python.org/pypi/compose_format/\n.. |Docker pulls| image:: https://img.shields.io/docker/pulls/funkwerk/compose_format.svg\n :target: https://hub.docker.com/r/funkwerk/compose_format/\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/funkwerk/compose_format", "keywords": "docker-compose format docker yml", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "compose_format", "package_url": "https://pypi.org/project/compose_format/", "platform": "", "project_url": "https://pypi.org/project/compose_format/", "project_urls": { "Homepage": "http://github.com/funkwerk/compose_format" }, "release_url": "https://pypi.org/project/compose_format/1.2.0/", "requires_dist": null, "requires_python": "", "summary": "format docker-compose files", "version": "1.2.0" }, "last_serial": 3245460, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "a513d703c50edf50acf7ac26d7a2502f", "sha256": "2e248dae11999d05954feeea1cac6390c194cc22936a8d10e83e5428409723a0" }, "downloads": -1, "filename": "compose_format-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a513d703c50edf50acf7ac26d7a2502f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3303, "upload_time": "2016-03-12T16:50:55", "url": "https://files.pythonhosted.org/packages/49/b9/9f5883c2c43af4da2502a8b2e7dba4af1f3301a021f46ad9b4ab25a4e9dc/compose_format-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "76bd188d0bbd9c3a5e13ca3b98c68c93", "sha256": "8d83c3d89b8f6da670d0b75c30ac7d36819cec2ea41cc78b217713942773e5d5" }, "downloads": -1, "filename": "compose_format-0.1.1.tar.gz", "has_sig": false, "md5_digest": "76bd188d0bbd9c3a5e13ca3b98c68c93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3436, "upload_time": "2016-03-12T17:30:44", "url": "https://files.pythonhosted.org/packages/1f/46/75ea25b5c1cecb0d1b7a6f4d18cfd47170967218fbf8fae59e9adaa23285/compose_format-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "1bcac19917cef897d16d30769dc52c42", "sha256": "4306a803e739e7935d657af388fbd09f9dc282dc508307edaa291719bff36b73" }, "downloads": -1, "filename": "compose_format-0.1.2.tar.gz", "has_sig": false, "md5_digest": "1bcac19917cef897d16d30769dc52c42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3455, "upload_time": "2016-03-12T17:40:51", "url": "https://files.pythonhosted.org/packages/0f/92/49ef42b97dc0ea71fbcd59c22aee7f2e2d277ab474fb29c4290a2a939f03/compose_format-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "7258eccfd0cf778954a79a3faabaed31", "sha256": "1da18fd31ce280b67b40710b47aa1ae33e41095174b86c989bfb93e3be5afb8b" }, "downloads": -1, "filename": "compose_format-0.1.3.tar.gz", "has_sig": false, "md5_digest": "7258eccfd0cf778954a79a3faabaed31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3464, "upload_time": "2016-03-12T17:49:09", "url": "https://files.pythonhosted.org/packages/33/50/49c4db95678875a5eca9f04dbbbd4efe770ab89a137f53a84828cb9b89ff/compose_format-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "64c6f4a08959b5db94844673406d6c98", "sha256": "52507887a3e7ccc65290a07c8387c2c53ed12e8ae67f526cd14bc2a1c31059d8" }, "downloads": -1, "filename": "compose_format-0.1.4.tar.gz", "has_sig": false, "md5_digest": "64c6f4a08959b5db94844673406d6c98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3625, "upload_time": "2016-03-13T16:53:57", "url": "https://files.pythonhosted.org/packages/6f/8b/5d015572c016de01ef2f79161bc8c1b7ef882c289eec30dc4d89c3bdf9f8/compose_format-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "b1d0e8c1a610e1a21ecf9f6c4b2fc245", "sha256": "7fbcb5a5d50a47f36a38831085ae96e882d5881d49dbbe83a4092ebf7f5b1fb2" }, "downloads": -1, "filename": "compose_format-0.1.5.tar.gz", "has_sig": false, "md5_digest": "b1d0e8c1a610e1a21ecf9f6c4b2fc245", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4455, "upload_time": "2016-03-14T10:50:46", "url": "https://files.pythonhosted.org/packages/d8/ac/3dfc28ba44ce5328db4b08795bf791305f935d804841aaca3aa4dd47b044/compose_format-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "9a3f882fac595f4b08015779c807accb", "sha256": "a2ba091eb7be9b0d81a2fae819760fe8483dc17a361a93063d7b74e990e0b408" }, "downloads": -1, "filename": "compose_format-0.1.6.tar.gz", "has_sig": false, "md5_digest": "9a3f882fac595f4b08015779c807accb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4476, "upload_time": "2016-05-23T08:24:11", "url": "https://files.pythonhosted.org/packages/ae/34/a62dbb71a0e93e19df9c042a7e1b5ada5f42e6070dc3b670a1fb87db1649/compose_format-0.1.6.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "8bf66079c346dd75fcb1d39c961aab5f", "sha256": "5adabbdf41a684a3a6c3f8570d385f3c2ac58318f4eec744930b3c2e02338f4a" }, "downloads": -1, "filename": "compose_format-0.2.0.tar.gz", "has_sig": false, "md5_digest": "8bf66079c346dd75fcb1d39c961aab5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4531, "upload_time": "2016-08-14T10:18:56", "url": "https://files.pythonhosted.org/packages/73/f0/ec48f5a7309db81513a5b0a4fa09f95d14c85c10599c266c2764738f10bb/compose_format-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "17e850a77ea3a00c40afa5d17e3f1a8f", "sha256": "cd3e6f6835900ec992e5da2a2232b6b234caf3faa3c4e82cf59a7f2934daeab0" }, "downloads": -1, "filename": "compose_format-0.2.1.tar.gz", "has_sig": false, "md5_digest": "17e850a77ea3a00c40afa5d17e3f1a8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4540, "upload_time": "2016-10-21T22:16:29", "url": "https://files.pythonhosted.org/packages/1a/15/c9d2365134aab35e54de525b3cdb1ccce73b92c28c9f2616ce83a652c42a/compose_format-0.2.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "42ccdfaaab533bdb30a7bea4b3c90676", "sha256": "25be2f82843b450643d47b278fe6eab76531d7d2ca08ebed68ac624bad057d42" }, "downloads": -1, "filename": "compose_format-1.0.0.tar.gz", "has_sig": false, "md5_digest": "42ccdfaaab533bdb30a7bea4b3c90676", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5786, "upload_time": "2017-02-27T17:49:43", "url": "https://files.pythonhosted.org/packages/28/52/c3717e93fd1fddb930ff0fc6d87af83c9feaf9842360dd4100660e333b16/compose_format-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "5dcc34dd8755c89d90900c8e6db027b3", "sha256": "03a90050b581f3a9cccfb7b0a53732a7f804df7746b1081469d709d3da7f8ebc" }, "downloads": -1, "filename": "compose_format-1.1.0.tar.gz", "has_sig": false, "md5_digest": "5dcc34dd8755c89d90900c8e6db027b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5805, "upload_time": "2017-10-06T14:33:35", "url": "https://files.pythonhosted.org/packages/ab/91/23cd4a357cb2f84bffe926ba4f2b819d8f65e1d06d299c8ce8fc4306f581/compose_format-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "f659ac67df4724881dd8f56356d69497", "sha256": "ccb6588a45ed1fa8f6349cfb8865bdf7d5a5065cbca9670e9536baae42397f2d" }, "downloads": -1, "filename": "compose_format-1.2.0.tar.gz", "has_sig": false, "md5_digest": "f659ac67df4724881dd8f56356d69497", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6054, "upload_time": "2017-10-12T14:33:40", "url": "https://files.pythonhosted.org/packages/6f/64/b0b603e485eee05879d63689c990055b3a34b540cc1751189414ea255f8a/compose_format-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f659ac67df4724881dd8f56356d69497", "sha256": "ccb6588a45ed1fa8f6349cfb8865bdf7d5a5065cbca9670e9536baae42397f2d" }, "downloads": -1, "filename": "compose_format-1.2.0.tar.gz", "has_sig": false, "md5_digest": "f659ac67df4724881dd8f56356d69497", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6054, "upload_time": "2017-10-12T14:33:40", "url": "https://files.pythonhosted.org/packages/6f/64/b0b603e485eee05879d63689c990055b3a34b540cc1751189414ea255f8a/compose_format-1.2.0.tar.gz" } ] }