{ "info": { "author": "Greg Fausak", "author_email": "greg@tacodata.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Build Tools" ], "description": "jycat\n=====\n\n`|Version|\\ |Status|\\ |Downloads| `__\\ |Build\nStatus|\n\njson yaml cat for kubernetes\n\nSummary\n-------\n\nThis program concats just like cat from unix does, except, it takes as\ninput json and yaml files. These json and yaml files must be well\nformed. This program reads each file, converts internally to a\ndictionary using yaml.load(), then adds that dictionary to a list called\n'items'. When all files are imported the resulting dictionary is turned\nback into a yaml (or json) representation (with two added elements at\nthe top level for Kubernetes). If those files were Kubernetes pod,\nreplicationcontroller or service declarations, the resulting list is the\nconcatenation of those. This new list can be used to turn up/down all of\nthe listed resources at once.\n\nUsage\n-----\n\n::\n\n usage: jycat.py [-h] [-p] [-t {json,yaml}]\n [-l {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [-s]\n [files [files ...]]\n\n yaml json k8s laundry\n\n positional arguments:\n files\n\n optional arguments:\n -h, --help show this help message and exit\n -p, --pretty\n -t {json,yaml}, --type {json,yaml}\n Output type, json or yaml\n -l {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --loglevel {DEBUG,INFO,WARNING,ERROR,CRITICAL}\n Log level (DEBUG,INFO,WARNING,ERROR,CRITICAL) default\n is: INFO\n -s, --save save select command line arguments (default is always)\n in \"/home/gfausak/.jycat.conf\" file\n jycat pod.yaml service.yaml replicationcontroller.yaml > /tmp/bigfile.yaml\n\nArguments\n---------\n\n- --pretty, make the output (json) pretty. yaml is already pretty.\n default is false.\n- --help, the usage message is printed.\n- --type, json or yaml (this is the OUTPUT type, input can be either),\n default yaml.\n- ---loglevel, for debugging, default INFO.\n- --save, save current arguments to persistent file in home directory,\n this file will be read as if it came from the command line in\n subsequent invocations of this program. To remove it you have to\n remove the ~/.jycat.conf file manually. Do this for making pretty\n default, for example. the default is no save is done.\n- files, this is the list of files to process. must have at least one.\n any one of the files can be a - dash indicating taking it from stdin.\n default is a single file -. One note here, if a single file is\n specified the output will not be a List.\n\nNotes\n-----\n\nThe top of the file will look like this (in yaml presentation):\n\n::\n\n apiVersion: v1beta3\n kind: List\n items:\n\nThen, for each file that is concatenated, there are two spaces inserted\nbefore each line, and the first line has - added (indicating an element\nof item).\n\nExamples\n--------\n\nI initially wrote this to create encapsulated Kubernetes scripts that\ncan be launched with a single command. I found another use when the api\nwas upgraded from v1beta1 to v1beta3, there is a program called\nkube-version-change which converts json from beta 1 to beta 3. It\ndoesn't work with yaml. My scripts are all yaml, so this was modified to\nconvert from one to another. So, here is how you might update a yaml\nfrom beta 1 to 3:\n\n::\n\n jycat beta1.yaml -t json | kube-version-change | jycat - > beta3.yaml\n\nIn the previous example the yaml file is promoted to json, then the json\nis processed by the kube-version-change go program, finally, jycat -\nconverts the imput back to yaml.\n\nThe next example shows how to 'package' more than one Kubernetes\nresource file into a single file:\n\n::\n\n jycat file1.yaml file2.yaml file3.yaml > package.yaml\n\nThe resulting file is passable to kubectl, like this:\n\n::\n\n kubectl create -f package.yaml\n\nwhich does about the same thing as this:\n\n::\n\n kubectl create -f file1.yaml\n kubectl create -f file2.yaml\n kubectl create -f file3.yaml\n\n.. |Version| image:: https://pypip.in/version/jycat/badge.svg\n.. |Status| image:: https://pypip.in/status/jycat/badge.svg\n.. |Downloads| image:: https://pypip.in/download/jycat/badge.svg\n.. |Build Status| image:: https://travis-ci.org/tacodata/jycat.svg?branch=master\n :target: https://travis-ci.org/lgfausak/jycat", "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/tacodata/jycat", "keywords": "kubernetes k8s development kube-version-change cat", "license": "Apache Software License", "maintainer": null, "maintainer_email": null, "name": "jycat", "package_url": "https://pypi.org/project/jycat/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/jycat/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/tacodata/jycat" }, "release_url": "https://pypi.org/project/jycat/0.0.22/", "requires_dist": null, "requires_python": null, "summary": "concat yaml and json files into a Kubernetes List", "version": "0.0.22" }, "last_serial": 1954979, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "7ff51b694c6cd503736865cf4b982fd3", "sha256": "9900d36706a000c40801d6bbb8a02ea0e452498297d44336e1768338e031fe34" }, "downloads": -1, "filename": "jycat-0.0.10.tar.gz", "has_sig": false, "md5_digest": "7ff51b694c6cd503736865cf4b982fd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6435, "upload_time": "2015-05-05T17:41:12", "url": "https://files.pythonhosted.org/packages/8a/49/6c34f38da6a5642a2f37733a0409ffb973bbfdde1498c505a2ea55f70a6c/jycat-0.0.10.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "b6e191cad0d6837dff1e93ebffe6cb21", "sha256": "be6702dd3a5302fa4846924e0f0a9206a58198a46a537a7c8b3598a5cb5b3a85" }, "downloads": -1, "filename": "jycat-0.0.13.tar.gz", "has_sig": false, "md5_digest": "b6e191cad0d6837dff1e93ebffe6cb21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6490, "upload_time": "2015-05-05T18:39:55", "url": "https://files.pythonhosted.org/packages/ad/6e/fe4a82d4b086a6c699e52954e0169aaf128859c8ae25c5c7599ea5d57953/jycat-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "4cab2fe6dbc60314abaaaa7e793cf3cb", "sha256": "0fac76447e3acc5bed061f38a62ac80211c68e57759b38564220340364604ba9" }, "downloads": -1, "filename": "jycat-0.0.14.tar.gz", "has_sig": false, "md5_digest": "4cab2fe6dbc60314abaaaa7e793cf3cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6488, "upload_time": "2015-05-05T18:40:06", "url": "https://files.pythonhosted.org/packages/c7/dd/09e63b04d83b144a81c82eb86f39141f54338fe576eb55d37a6d92ba6f07/jycat-0.0.14.tar.gz" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "8a9bf3efdbc8a59f4dcdd2f08423c52d", "sha256": "d1eec4d99dbc076cbd8082e4ed1c998263a87b2331fd0dc4ff2ba20c96c57c6b" }, "downloads": -1, "filename": "jycat-0.0.17.tar.gz", "has_sig": false, "md5_digest": "8a9bf3efdbc8a59f4dcdd2f08423c52d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6501, "upload_time": "2015-07-13T18:05:43", "url": "https://files.pythonhosted.org/packages/c7/e5/44fbeec8b00f14caa85a9581cb56b4b01845863fc7830ed4037e2d84556f/jycat-0.0.17.tar.gz" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "063dbb2c7722e2fc6fd9fce45958ef82", "sha256": "9c51784e39de3404b4703fef80ca8723b00a684c6f5c8f48237e1a58b83377fb" }, "downloads": -1, "filename": "jycat-0.0.20.tar.gz", "has_sig": false, "md5_digest": "063dbb2c7722e2fc6fd9fce45958ef82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6491, "upload_time": "2016-02-13T14:24:48", "url": "https://files.pythonhosted.org/packages/5f/97/450ca3c2ff7b9eb36ca6598a3f1c31c9b440390f8584aaef15794686174f/jycat-0.0.20.tar.gz" } ], "0.0.21": [ { "comment_text": "", "digests": { "md5": "1843847109399e13ece2e5bc6a3d562c", "sha256": "b9c854560cdbe4ea5d0c4cde407ef99de021ea1852dedc22b1f017e7e3185a1e" }, "downloads": -1, "filename": "jycat-0.0.21.tar.gz", "has_sig": false, "md5_digest": "1843847109399e13ece2e5bc6a3d562c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6483, "upload_time": "2016-02-13T14:25:04", "url": "https://files.pythonhosted.org/packages/1b/d4/6be11774ad3b2acc1b09f499f25eb11d42a394eeb5c05d65088a5f351b7f/jycat-0.0.21.tar.gz" } ], "0.0.22": [ { "comment_text": "", "digests": { "md5": "0800068fa7a4db4f2a83d2158733b4c2", "sha256": "4657aa6a20512ffe3ef5ea50c83cbef6b5309a257525c4e8e2cd94eb246cd800" }, "downloads": -1, "filename": "jycat-0.0.22.tar.gz", "has_sig": false, "md5_digest": "0800068fa7a4db4f2a83d2158733b4c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6500, "upload_time": "2016-02-13T23:35:49", "url": "https://files.pythonhosted.org/packages/29/dd/bc6371fa07485cd38a8a4a036737cda4acaf5180308db32ed3e7e9990536/jycat-0.0.22.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0800068fa7a4db4f2a83d2158733b4c2", "sha256": "4657aa6a20512ffe3ef5ea50c83cbef6b5309a257525c4e8e2cd94eb246cd800" }, "downloads": -1, "filename": "jycat-0.0.22.tar.gz", "has_sig": false, "md5_digest": "0800068fa7a4db4f2a83d2158733b4c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6500, "upload_time": "2016-02-13T23:35:49", "url": "https://files.pythonhosted.org/packages/29/dd/bc6371fa07485cd38a8a4a036737cda4acaf5180308db32ed3e7e9990536/jycat-0.0.22.tar.gz" } ] }