{ "info": { "author": "Remik Ziemlinski", "author_email": "first.last@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Overview\n--------\n\nAdd or replace license/copyright boilerplate in source code files.\n\nAll contiguous comment blocks (bounded by empty or code lines) that\ncontain a copyright message are stripped before injecting the new\nmessage.\n\nYou should commit all your code into a repo before running this program\nand check the results with a diff utility.\n\nFeatures\n--------\n\n- Autodetect language from extension or shebang or header.\n- Force programming language to use if files cannot be autodetected.\n- Specify list of files to process.\n- Recursive or non-recursive processing from current or specific path.\n- Custom templates loadable from a JSON file.\n- Specify author(s), year(s), program and short description.\n- Include or exclude files or directories with wildcards or regex.\n- Append to file or insert after any contiguous header comment block.\n- Control left-hand margin padding and newline spacing.\n- JSON config file ingestion for repeated or automated use, overridden\n by command-line options.\n- Multi or single line comment style, such as /\\* \\*/ vs. //.\n- Quiet mode to suppress printing of altered files.\n- Languages currently supported: C/C++, Java, HTML,\n Shell/Bash/Csh/Ksh/Tcsh/Zsh, Perl, Python, SQL, XML\n- Python 2 and 3.\n\nExamples\n--------\n\nProcess current directory recursively and autodetect files.\n\n::\n\n $ copyright -c config.json\n\nProcess files matching wildcards, appending to end of file.\n\n::\n\n $ copyright -a 'Joe Smith' -p MyApp -l mit -i '*.py,foo*.h,script?' --back\n\nUse custom template.\n\n::\n\n $ copyright -c config.json -t my_templates.json --license my-license-2.0\n\nInstallation\n------------\n\nWith PyPI.\n\n::\n\n $ pip install copyright\n\nWith tarball.\n\n::\n\n $ python setup.py install\n\nTesting\n-------\n\n::\n\n $ make test\n\nFAQ\n---\n\nQ1. How can you keep multiple licenses in a file? A1. One strategy is to\ncreate a custom templates file that has all the licenses merged into one\nkey/value pair, and then process your specific list of files.\n\nNews\n----\n\n1.0.1.0\n~~~~~~~\n\n- Added -q/--quiet mode.\n- Fixed -v/--version message.\n\n1.0.0.0\n~~~~~~~\n\n- Initial release.\n\nLicense\n-------\n\ncopyright Copyright (C) 2016 Remik Ziemlinski\n\nThis program comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to redistribute it under the conditions of the GPLv3\nlicense.", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/rsmz/copyright/archive/copyright-1.0.1.0.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://www.github.com/rsmz/copyright", "keywords": null, "license": "GPLv3", "maintainer": null, "maintainer_email": null, "name": "copyright", "package_url": "https://pypi.org/project/copyright/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/copyright/", "project_urls": { "Download": "https://github.com/rsmz/copyright/archive/copyright-1.0.1.0.tar.gz", "Homepage": "https://www.github.com/rsmz/copyright" }, "release_url": "https://pypi.org/project/copyright/1.0.1.0/", "requires_dist": null, "requires_python": null, "summary": "Add or replace license boilerplate in source code files.", "version": "1.0.1.0" }, "last_serial": 2038062, "releases": { "1.0.0.0": [ { "comment_text": "", "digests": { "md5": "00076d9c2e7e260145d2f95efb5441f0", "sha256": "97a023d9e50b0eb0e4e1c2806e735a68163398305cde551a4b3437c896a58079" }, "downloads": -1, "filename": "copyright-1.0.0.0.tar.gz", "has_sig": false, "md5_digest": "00076d9c2e7e260145d2f95efb5441f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11768, "upload_time": "2016-03-31T00:30:46", "url": "https://files.pythonhosted.org/packages/85/05/578cf6adc6645279a8fdcfce08622c7e9f31cd1fdecb01f56c12e5d83563/copyright-1.0.0.0.tar.gz" } ], "1.0.1.0": [ { "comment_text": "", "digests": { "md5": "e171ef9b2d0c96515d51955d12c45df2", "sha256": "475b3a71bfffd50cabb1a7009f69650477b24bdcc089b002fbd40d057ab66d12" }, "downloads": -1, "filename": "copyright-1.0.1.0.tar.gz", "has_sig": false, "md5_digest": "e171ef9b2d0c96515d51955d12c45df2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11961, "upload_time": "2016-03-31T12:25:24", "url": "https://files.pythonhosted.org/packages/b9/26/a581b52bc311cb7e48bd50355ccfb793b47be33fc1f71b0c39400fc518e4/copyright-1.0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e171ef9b2d0c96515d51955d12c45df2", "sha256": "475b3a71bfffd50cabb1a7009f69650477b24bdcc089b002fbd40d057ab66d12" }, "downloads": -1, "filename": "copyright-1.0.1.0.tar.gz", "has_sig": false, "md5_digest": "e171ef9b2d0c96515d51955d12c45df2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11961, "upload_time": "2016-03-31T12:25:24", "url": "https://files.pythonhosted.org/packages/b9/26/a581b52bc311cb7e48bd50355ccfb793b47be33fc1f71b0c39400fc518e4/copyright-1.0.1.0.tar.gz" } ] }