{ "info": { "author": "Nicolas Mesa", "author_email": "nicolasmesa@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Topic :: Software Development", "Topic :: System :: Networking", "Topic :: Terminals", "Topic :: Text Processing", "Topic :: Utilities" ], "description": "# Context Cli\n\n[![Build Status](https://travis-ci.org/nicolasmesa/context-cli.svg?branch=master)](https://travis-ci.org/nicolasmesa/context-cli)\n[![Coverage](https://coveralls.io/repos/github/nicolasmesa/context-cli/badge.svg?branch=master)](https://coveralls.io/github/nicolasmesa/context-cli?branch=development)\n\nContext Cli is a cli tool to search with contexts.\n\n\n## Installation\n\n```\n$ pip install context-cli\n```\n\n## Usage\n\n### Help\n\n```\n$ ctx -h\nusage: ctx [-h] [-t TYPE] [-w] [-d DELIMITER_MATCHER]\n [-D DELIMITER_MATCHER] [-s START_DELIMITER_MATCHER]\n [-S START_DELIMITER_MATCHER] [-e END_DELIMITER_MATCHER]\n [-E END_DELIMITER_MATCHER] [-x] [-X] [-i]\n [-c CONTAINS_TEXT] [-C CONTAINS_REGEX] [-m MATCHES_TEXT]\n [-M MATCHES_REGEX] [-c! NOT_CONTAINS_TEXT]\n [-C! NOT_CONTAINS_REGEX] [-m! NOT_MATCHES_TEXT]\n [-M! NOT_MATCHES_REGEX] [-l LINE_CONTAINS_TEXT]\n [-L LINE_CONTAINS_REGEX] [-l! NOT_LINE_CONTAINS_TEXT]\n [-L! NOT_LINE_CONTAINS_REGEX] [-o OUTPUT_DELIMITER]\n [files [files ...]]\n\nA cli tool to search with contexts.\n\npositional arguments:\n files\n\noptional arguments:\n -h, --help show this help message and exit\n -t TYPE, --type TYPE type of search as specified in .ctxrc\n -w, --write write the current context search to .ctxrc\n -d DELIMITER_MATCHER, --delimiter-text DELIMITER_MATCHER\n delimiter text\n -D DELIMITER_MATCHER, --delimiter-regex DELIMITER_MATCHER\n delimiter regex\n -s START_DELIMITER_MATCHER, --delimiter-start-text START_DELIMITER_MATCHER\n delimiter start text\n -S START_DELIMITER_MATCHER, --delimiter-start-regex START_DELIMITER_MATCHER\n delimiter start regex\n -e END_DELIMITER_MATCHER, --delimiter-end-text END_DELIMITER_MATCHER\n delimiter end text\n -E END_DELIMITER_MATCHER, --delimiter-end-regex END_DELIMITER_MATCHER\n delimiter end regex\n -x, --exclude-start-delimiter\n exclude start delimiter from the context\n -X, --exclude-end-delimiter\n exclude end delimiter from the context\n -i, --ignore-end-delimiter\n prevent end delimiter from being considered as a start\n delimiter (only applies if -X is used)\n -c CONTAINS_TEXT, --contains-text CONTAINS_TEXT\n display only contexts that have line(s) that contain\n this text\n -C CONTAINS_REGEX, --contains-regex CONTAINS_REGEX\n display only contexts that have line(s) that contain\n this regex\n -m MATCHES_TEXT, --matches-text MATCHES_TEXT\n display only contexts that have line(s) that exactly\n match this text\n -M MATCHES_REGEX, --matches-regex MATCHES_REGEX\n display only contexts that have line(s) that exactly\n match this regex\n -c! NOT_CONTAINS_TEXT, --not-contains-text NOT_CONTAINS_TEXT\n display only contexts that have line(s) that don't\n contain this text\n -C! NOT_CONTAINS_REGEX, --not-contains-regex NOT_CONTAINS_REGEX\n display only contexts that have line(s) that don't\n contain this regex\n -m! NOT_MATCHES_TEXT, --not-matches-text NOT_MATCHES_TEXT\n display only contexts that have line(s) that don't\n exactly match this text\n -M! NOT_MATCHES_REGEX, --not-matches-regex NOT_MATCHES_REGEX\n display only contexts that have line(s) that don't\n exactly match this regex\n -l LINE_CONTAINS_TEXT, --line-contains-text LINE_CONTAINS_TEXT\n display only lines in the context that contain this\n text\n -L LINE_CONTAINS_REGEX, --line-contains-regex LINE_CONTAINS_REGEX\n display only lines in the context that contain this\n regex\n -l! NOT_LINE_CONTAINS_TEXT, --not-line-contains-text NOT_LINE_CONTAINS_TEXT\n display only lines in the context that don't contain\n this text\n -L! NOT_LINE_CONTAINS_REGEX, --not-line-contains-regex NOT_LINE_CONTAINS_REGEX\n display only lines in the context that don't contain\n this regex\n -o OUTPUT_DELIMITER, --output-delimiter OUTPUT_DELIMITER\n Output delimiter\n```\n\n## Examples\n\n### Extracting code blocks from Markdown\n\n```\n$ ctx -xXi -S '^```$' -E '^```$' -o \"========\" README.md\n```\n\nThis command excludes the start and ending tick blocks from the output. We need the `-i` to avoid the ticks that cose the code-block from being interpreted as the opening ticks.\nThe `-o` adds the \"========\" between each context.\n\n### Filter the output\n\n### Only display contexts that have \"install\"\n\n```\n$ ctx -xXi -S '^```$' -E '^```$' -c install -o \"========\" README.md\n```\n\n\n### Save common arguments\n\nIf you use `ctx` with the same arguments over and over again, you can save those arguments under a name. In\nthe following example, we add `my_saved_search` by using the `--type` (or `-t`) and `--write` (or `-w`).\n\n```\n$ ctx --type my_saved_search -write -xXi -s '-----' -e 'end' -o '=========='\n```\n\nAnd then use it (note there is no `--write` anymore)\n\n```\n$ ctx -t my_saved_search my_file.txt\n```\n\nThe configuration is saved to your home folder in a `.ctxrc` file.\n\n\nTODO: Add more examples\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nicolasmesa/context-cli", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "context-cli", "package_url": "https://pypi.org/project/context-cli/", "platform": "", "project_url": "https://pypi.org/project/context-cli/", "project_urls": { "Homepage": "https://github.com/nicolasmesa/context-cli" }, "release_url": "https://pypi.org/project/context-cli/0.0.dev4/", "requires_dist": null, "requires_python": "", "summary": "A cli tool to search with contexts.", "version": "0.0.dev4" }, "last_serial": 4716585, "releases": { "0.0.dev1": [ { "comment_text": "", "digests": { "md5": "74ad4c6c4e5a9017a073f151caf127e7", "sha256": "1770afd45dd4a003c6be5cdded3ff262fee8f7aeb0497001f3b367a0e07d5302" }, "downloads": -1, "filename": "context_cli-0.0.dev1-py3-none-any.whl", "has_sig": false, "md5_digest": "74ad4c6c4e5a9017a073f151caf127e7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14742, "upload_time": "2018-11-22T08:32:20", "url": "https://files.pythonhosted.org/packages/d6/04/7587fa86f3b410e4743d5158259c33fffb39a0aebb848c1f00384ef19299/context_cli-0.0.dev1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "698addd6aaff9c5c4e38506a2dfbe3b2", "sha256": "25fdbdf21f05327ceeae9d232727157fcc4d802ea575875b8cba9fcf36abf607" }, "downloads": -1, "filename": "context-cli-0.0.dev1.tar.gz", "has_sig": false, "md5_digest": "698addd6aaff9c5c4e38506a2dfbe3b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12818, "upload_time": "2018-11-22T08:32:22", "url": "https://files.pythonhosted.org/packages/97/23/dccdacfd9ced0d4e80b5931c01fba923c28804c5de331368767a0586f26d/context-cli-0.0.dev1.tar.gz" } ], "0.0.dev2": [ { "comment_text": "", "digests": { "md5": "a1001c24af103e67d7415774e9c9f211", "sha256": "aae805815eee1817a0feb9cb6fa116fb8d6b8c4ae51025a739b8db8d45ba66aa" }, "downloads": -1, "filename": "context_cli-0.0.dev2-py3-none-any.whl", "has_sig": false, "md5_digest": "a1001c24af103e67d7415774e9c9f211", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14741, "upload_time": "2018-11-22T08:48:50", "url": "https://files.pythonhosted.org/packages/71/ba/ea4bc6b9f0ec9124eb66f970aaae4ffd2486e666096fae6526ba93d1e32f/context_cli-0.0.dev2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "39a6d083dc99f92b56d3ccd4a45adb10", "sha256": "be56f7cf3996bf4e667578784197be7757fea967090680fa45eea0c5acb8d48e" }, "downloads": -1, "filename": "context-cli-0.0.dev2.tar.gz", "has_sig": false, "md5_digest": "39a6d083dc99f92b56d3ccd4a45adb10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12820, "upload_time": "2018-11-22T08:48:51", "url": "https://files.pythonhosted.org/packages/39/81/b16dff8e4ea4e2d11f9eb9878ed180edfd774f27f9b0f3623d1d98e96566/context-cli-0.0.dev2.tar.gz" } ], "0.0.dev3": [ { "comment_text": "", "digests": { "md5": "a5b27879ad10ac4ad0fa925c4114b0a6", "sha256": "7c3a32178e4b1136f455aadee661ea615358646862a2d9c822338ae2efe10f04" }, "downloads": -1, "filename": "context_cli-0.0.dev3-py3-none-any.whl", "has_sig": false, "md5_digest": "a5b27879ad10ac4ad0fa925c4114b0a6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14832, "upload_time": "2018-11-22T22:17:43", "url": "https://files.pythonhosted.org/packages/2a/01/8f3a9fecbe81b931fe55572b04ce721d1b15f2a31e37a2e5077676c22473/context_cli-0.0.dev3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6bad9f50519c6ce19512b0939b8ae1c7", "sha256": "fa32092db9a03a6a88c1cdcf8cfdc7f77c9913cadd98ce904f07981042c64600" }, "downloads": -1, "filename": "context-cli-0.0.dev3.tar.gz", "has_sig": false, "md5_digest": "6bad9f50519c6ce19512b0939b8ae1c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12902, "upload_time": "2018-11-22T22:17:45", "url": "https://files.pythonhosted.org/packages/11/18/9db1aec0d15e55e7f58ffe6d5cbdfb26d65bdd4e7cb5ab29d5b2bb2c765a/context-cli-0.0.dev3.tar.gz" } ], "0.0.dev4": [ { "comment_text": "", "digests": { "md5": "f58fb0d10b9b67c444c986ac36bbacab", "sha256": "34b35fec1776131f13eb162d61a7eb90c6c0389e070859e132c8d40cab2ad30d" }, "downloads": -1, "filename": "context_cli-0.0.dev4-py3-none-any.whl", "has_sig": false, "md5_digest": "f58fb0d10b9b67c444c986ac36bbacab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17673, "upload_time": "2019-01-19T21:32:49", "url": "https://files.pythonhosted.org/packages/b3/3c/a79a8ae76ebf648e4810b8c465ab07f46a19aa39d931f82635851819b4bf/context_cli-0.0.dev4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e067cd9e1cc94cdfcb8ec4bbeb732dc8", "sha256": "0178909b499ff00d10e508e3e12925f6732eba10e80ac1d731cc4d1441331c8d" }, "downloads": -1, "filename": "context-cli-0.0.dev4.tar.gz", "has_sig": false, "md5_digest": "e067cd9e1cc94cdfcb8ec4bbeb732dc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15602, "upload_time": "2019-01-19T21:32:51", "url": "https://files.pythonhosted.org/packages/e0/63/13f552c40651052b4c5eee099b4a18f3ff644b9ed8dc09c8767c22d864a6/context-cli-0.0.dev4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f58fb0d10b9b67c444c986ac36bbacab", "sha256": "34b35fec1776131f13eb162d61a7eb90c6c0389e070859e132c8d40cab2ad30d" }, "downloads": -1, "filename": "context_cli-0.0.dev4-py3-none-any.whl", "has_sig": false, "md5_digest": "f58fb0d10b9b67c444c986ac36bbacab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17673, "upload_time": "2019-01-19T21:32:49", "url": "https://files.pythonhosted.org/packages/b3/3c/a79a8ae76ebf648e4810b8c465ab07f46a19aa39d931f82635851819b4bf/context_cli-0.0.dev4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e067cd9e1cc94cdfcb8ec4bbeb732dc8", "sha256": "0178909b499ff00d10e508e3e12925f6732eba10e80ac1d731cc4d1441331c8d" }, "downloads": -1, "filename": "context-cli-0.0.dev4.tar.gz", "has_sig": false, "md5_digest": "e067cd9e1cc94cdfcb8ec4bbeb732dc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15602, "upload_time": "2019-01-19T21:32:51", "url": "https://files.pythonhosted.org/packages/e0/63/13f552c40651052b4c5eee099b4a18f3ff644b9ed8dc09c8767c22d864a6/context-cli-0.0.dev4.tar.gz" } ] }