Updating copyright lines
========================

Copyright lines can be fixed to

- normalize the year list
- include a specific year in the copyright
- specify the owner of the copyright

Individual lines can be updated using the `fix_line` function:

>>> from gocept.devtools.copyright import fix_line

Normalizing the list of years
-----------------------------

If no parameters are given, only normalization of years is applied:

>>> print fix_line('# Copyright (c) 2001 FooCorp')
# Copyright (c) 2001 FooCorp

>>> print fix_line('# Copyright (c) 2001,2002,2003 FooCorp')
# Copyright (c) 2001-2003 FooCorp

>>> print fix_line('# Copyright (c) 2001,2002,2003,2005 FooCorp')
# Copyright (c) 2001-2003,2005 FooCorp

>>> print fix_line('# Copyright (c) 2001 - 2002, 2003, 2005 FooCorp')
# Copyright (c) 2001-2003,2005 FooCorp

Fixing years
------------

>>> print fix_line('# Copyright (c) 2001 FooCorp', year=2008)
# Copyright (c) 2001,2008 FooCorp

>>> print fix_line('# Copyright (c) 2007 FooCorp', year=2008)
# Copyright (c) 2007-2008 FooCorp

>>> print fix_line('# Copyright (c) 2001-2003 FooCorp', year=2008)
# Copyright (c) 2001-2003,2008 FooCorp

>>> print fix_line('# Copyright (c) 2001,2003 FooCorp', year=2008)
# Copyright (c) 2001,2003,2008 FooCorp

>>> print fix_line('# Copyright (c) 2001,2003-2005,2007 FooCorp', year=2008)
# Copyright (c) 2001,2003-2005,2007-2008 FooCorp

>>> print fix_line('# Copyright (c) 2008 FooCorp', year=2008)
# Copyright (c) 2008 FooCorp


Fixing owners
-------------

The ownership of the copyright can be changed to another holder by specifying
the `owner`

>>> print fix_line('# Copyright (c) 2008 FooCorp', owner='Bar Foundation')
# Copyright (c) 2008 Bar Foundation


Combined fixing
---------------

>>> print fix_line('# Copyright (c) 2008 FooCorp', year=2009, owner='Bar Foundation')
# Copyright (c) 2008-2009 Bar Foundation


Leading characters
------------------

To avoid replacing non-actual copyright lines and as we only need to support a
limited set of languages:

- Python
- C

>>> print fix_line('# Copyright (c) 2008 FooCorp')
# Copyright (c) 2008 FooCorp

>>> print fix_line('    Copyright (c) 2008 FooCorp')
    Copyright (c) 2008 FooCorp

>>> print fix_line('/*    Copyright (c) 2008 FooCorp')
Traceback (most recent call last):
ValueError: ('Invalid lead for copyright line', '/*    Copyright (c) 2008 FooCorp')

