text: import numpy as np
  import os.path as osp
  from setuptools import setup, find_packages
  from distutils.extension import Extension
  from Cython.Build import cythonize
  
  
  def readme():
      with open('README.rst') as f:
          content = f.read()
      return content
  
  
  def find_version():
      version_file = 'torchreid/__init__.py'
      with open(version_file, 'r') as f:
          exec(compile(f.read(), version_file, 'exec'))
      return locals()['__version__']
  
  
  def numpy_include():
      try:
          numpy_include = np.get_include()
      except AttributeError:
          numpy_include = np.get_numpy_include()
      return numpy_include
  
  
  ext_modules = [
      Extension(
          'torchreid.metrics.rank_cylib.rank_cy',
          ['torchreid/metrics/rank_cylib/rank_cy.pyx'],
          include_dirs=[numpy_include()],
      )
  ]
  
  
  def get_requirements(filename='requirements.txt'):
      here = osp.dirname(osp.realpath(__file__))
      with open(osp.join(here, filename), 'r') as f:
          requires = [line.replace('\n', '') for line in f.readlines()]
      return requires
  
  
  setup(
      name='torchreid',
      version=find_version(),
      description=
      'A library for deep learning person re-identification in PyTorch',
      author='Kaiyang Zhou',
      license='MIT',
      long_description=readme(),
      url='https://github.com/KaiyangZhou/deep-person-reid',
      packages=find_packages(),
      install_requires=get_requirements(),
      keywords=['Person Re-Identification', 'Deep Learning', 'Computer Vision'],
      ext_modules=cythonize(ext_modules)
  )
  