old_contents: # #!/usr/bin/env python
  # -*- coding: utf-8 -*-
  # <steadymark - markdown-based test runner for python>
  # Copyright (C) <2012-2020>  Gabriel Falcão <gabriel@nacaolivre.org>
  #
  # Permission is hereby granted, free of charge, to any person
  # obtaining a copy of this software and associated documentation
  # files (the "Software"), to deal in the Software without
  # restriction, including without limitation the rights to use,
  # copy, modify, merge, publish, distribute, sublicense, and/or sell
  # copies of the Software, and to permit persons to whom the
  # Software is furnished to do so, subject to the following
  # conditions:
  #
  # The above copyright notice and this permission notice shall be
  # included in all copies or substantial portions of the Software.
  #
  # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  # OTHER DEALINGS IN THE SOFTWARE.
  
  import ast
  import os
  from setuptools import setup, find_packages
  
  
  def local_file(*f):
      with open(os.path.join(os.path.dirname(__file__), *f), "r") as fd:
          return fd.read()
  
  
  class VersionFinder(ast.NodeVisitor):
      VARIABLE_NAME = "version"
  
      def __init__(self):
          self.version = None
  
      def visit_Assign(self, node):
          try:
              if node.targets[0].id == self.VARIABLE_NAME:
                  self.version = node.value.s
          except Exception:
              self.version = None
  
  
  def read_version():
      finder = VersionFinder()
      finder.visit(ast.parse(local_file("steadymark", "version.py")))
      return finder.version
  
  
  requirements = ["misaka>=2.1.1", "couleur>=0.7.0"]
  
  
  setup(
      name="steadymark",
      version=read_version(),
      description=("Markdown-based test runner for python. " "Good for github projects"),
      long_description=local_file("README.rst"),
      author="Gabriel Falcao",
      author_email="gabriel@nacaolivre.org",
      url="http://github.com/gabrielfalcao/steadymark",
      packages=find_packages(exclude=["*tests*"]),
      install_requires=requirements,
      entry_points={"console_scripts": ["steadymark = steadymark:main"]},
      package_data={"steadymark": ["COPYING", "*.md"]},
  )
  
new_contents: # #!/usr/bin/env python
  # -*- coding: utf-8 -*-
  # <steadymark - markdown-based test runner for python>
  # Copyright (C) <2012-2020>  Gabriel Falcão <gabriel@nacaolivre.org>
  #
  # Permission is hereby granted, free of charge, to any person
  # obtaining a copy of this software and associated documentation
  # files (the "Software"), to deal in the Software without
  # restriction, including without limitation the rights to use,
  # copy, modify, merge, publish, distribute, sublicense, and/or sell
  # copies of the Software, and to permit persons to whom the
  # Software is furnished to do so, subject to the following
  # conditions:
  #
  # The above copyright notice and this permission notice shall be
  # included in all copies or substantial portions of the Software.
  #
  # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  # OTHER DEALINGS IN THE SOFTWARE.
  
  import ast
  import os
  from setuptools import setup, find_packages
  
  
  def local_file(*f):
      with open(os.path.join(os.path.dirname(__file__), *f), "r") as fd:
          return fd.read()
  
  
  class VersionFinder(ast.NodeVisitor):
      VARIABLE_NAME = "version"
  
      def __init__(self):
          self.version = None
  
      def visit_Assign(self, node):
          try:
              if node.targets[0].id == self.VARIABLE_NAME:
                  self.version = node.value.s
          except Exception:
              self.version = None
  
  
  def read_version():
      finder = VersionFinder()
      finder.visit(ast.parse(local_file("steadymark", "version.py")))
      return finder.version
  
  
  requirements = ["misaka>=2.1.1", "couleur>=0.7.1"]
  
  
  setup(
      name="steadymark",
      version=read_version(),
      description=("Markdown-based test runner for python. " "Good for github projects"),
      long_description=local_file("README.rst"),
      author="Gabriel Falcao",
      author_email="gabriel@nacaolivre.org",
      url="http://github.com/gabrielfalcao/steadymark",
      packages=find_packages(exclude=["*tests*"]),
      install_requires=requirements,
      entry_points={"console_scripts": ["steadymark = steadymark:main"]},
      package_data={"steadymark": ["COPYING", "*.md"]},
  )
  
subject: bump version of steadymark