Skip to main content

Script for adding copyright notes at the top of files.

Project description

autocopyright

Autocopyright is a script which was designed to automatically add copyright notices at the top of source files. It uses jinja2 templates which can be automatically filled with values pulled from pyproject.toml and other files.

Example

To run autocopyright you must specify comment sign, directory to traverse, glob patterns of files to modify and path to license template.

autocopyright -s "#" -d autocopyright -g "*.py" -g "*.pyi" -l "./templates/MIT.md.jinja2"

Templates

Autocopyright uses Jinja2 templates to determine content of copyright header. Such template is loaded from predefined destination and rendered with few special variables available. Those variables are listed below:

  • now - datetime.datetime object holding current time (determined once, at the beginning of script execution)

  • pyproject - dictionary-like object holding loaded content of pyproject.toml file loaded from current working directory of script.

Template for LGPL-3.0 license could look like this:

Copyright {{ now.year }} {{ pyproject.tool.poetry.authors[0] }}

This file is part of {{ pyproject.tool.poetry["name"] }}.
{{ pyproject.tool.poetry.repository }}

{{ pyproject.tool.poetry["name"] }} is free software: you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option)
any later version.

{{ pyproject.tool.poetry["name"] }} is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
details.

You should have received a copy of the GNU Lesser General Public License
along with {{ pyproject.tool.poetry["name"] }}. If not, see <http://www.gnu.org/licenses/>.

Pre-commit hook

To add this script as pre commit hook, create .pre-commit-config.yaml file, or append to existing one, following lines:

repos:
  - repo: https://github.com/Argmaster/autocopyright
    rev: "v1.1.0"
    hooks:
      - id: autocopyright
        args:
          [
            -s,
            "#",
            -d,
            <your-project-source-dir-name>,
            -g,
            "*.py",
            -l,
            <path-to-license-template>,
          ]

Replace <your-project-source-dir-name> with valid name of your project source directory, for example source or src.

Replace <path-to-license-template> with path to jinja2 template file containing license note, eg. "./templates/LGPL3.md.jinja2". See Templates section for example of template content.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

autocopyright-1.1.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file autocopyright-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for autocopyright-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5f8f257c29d01a7a4a9dd8c2c3d8c982d2eef3ec40d6118d8775a71966db94a1
MD5 aa084907458cdff15d4f1226f5affc0d
BLAKE2b-256 d052a9ed095243043fd714d3c8f0583a25ee553d2453f13b80e3467ad34e4c80

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page