old_contents: import os
  import codecs
  import re
  from setuptools import setup
  
  
  def read(*parts):
      return codecs.open(os.path.join(os.path.dirname(__file__), *parts)).read()
  
  
  def find_version(*file_paths):
      version_file = read(*file_paths)
      version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]",
                                version_file, re.M)
      if version_match:
          return version_match.group(1)
      raise RuntimeError("Unable to find version string.")
  
  
  setup(
      name='django-sorter',
      version=find_version("sorter", "__init__.py"),
      description='A helper app for sorting objects in Django templates.',
      long_description=read('README.rst'),
      author='Jannis Leidel',
      author_email='jannis@leidel.info',
      license='BSD',
      url='http://django-sorter.readthedocs.org/',
      packages=['sorter', 'sorter.templatetags'],
      package_data={
          'sorter': [
              'templates/sorter/*.html',
              'locale/*/*/*',
          ],
      },
      classifiers=[
          "Development Status :: 4 - Beta",
          'Environment :: Web Environment',
          'Framework :: Django',
          'Intended Audience :: Developers',
          'License :: OSI Approved :: BSD License',
          'Operating System :: OS Independent',
          'Programming Language :: Python',
          'Programming Language :: Python :: 2.5',
          'Programming Language :: Python :: 2.6',
          'Programming Language :: Python :: 2.7',
          'Topic :: Utilities',
      ],
      install_requires=[
          'django-appconf >= 0.4',
          'django-ttag >= 2.3',
          'URLObject >= 2.0.1',
      ],
  )
  
new_contents: import os
  import codecs
  import re
  from setuptools import setup
  
  
  def read(*parts):
      return codecs.open(os.path.join(os.path.dirname(__file__), *parts)).read()
  
  
  def find_version(*file_paths):
      version_file = read(*file_paths)
      version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]",
                                version_file, re.M)
      if version_match:
          return version_match.group(1)
      raise RuntimeError("Unable to find version string.")
  
  
  setup(
      name='django-sorter',
      version=find_version("sorter", "__init__.py"),
      description='A helper app for sorting objects in Django templates.',
      long_description=read('README.rst'),
      author='Jannis Leidel',
      author_email='jannis@leidel.info',
      license='BSD',
      url='https://django-sorter.readthedocs.io/',
      packages=['sorter', 'sorter.templatetags'],
      package_data={
          'sorter': [
              'templates/sorter/*.html',
              'locale/*/*/*',
          ],
      },
      classifiers=[
          "Development Status :: 4 - Beta",
          'Environment :: Web Environment',
          'Framework :: Django',
          'Intended Audience :: Developers',
          'License :: OSI Approved :: BSD License',
          'Operating System :: OS Independent',
          'Programming Language :: Python',
          'Programming Language :: Python :: 2.5',
          'Programming Language :: Python :: 2.6',
          'Programming Language :: Python :: 2.7',
          'Topic :: Utilities',
      ],
      install_requires=[
          'django-appconf >= 0.4',
          'django-ttag >= 2.3',
          'URLObject >= 2.0.1',
      ],
  )
  
subject: Convert readthedocs links for their .org -> .io migration for hosted projects