class_docstr: Override how headers are copied.
  
  The install_headers that comes with setuptools copies all files to
  the same directory. But we need the files to be in a specific directory
  hierarchy for -I <include_dir> to work correctly.
class_docstr_tok: ["Override","how","headers","are","copied",".","The","install_headers","that","comes","with","setuptools","copies","all","files","to","the","same","directory",".","But","we","need","the","files","to","be","in","a","specific","directory","hierarchy","for","-I","<","include_dir",">","to","work","correctly","."]
code: def run(self):
      hdrs = self.distribution.headers
      if not hdrs:
          return
  
      self.mkpath(self.install_dir)
      for header in hdrs:
          (out, _) = self.mkdir_and_copy_file(header)
          self.outfiles.append(out)
  
imports: import datetime
  import fnmatch
  import os
  import platform
  import re
  import sys
  from setuptools import Command
  from setuptools import find_namespace_packages
  from setuptools import setup
  from setuptools.command.install import install
  from setuptools.dist import Distribution
label_desc: Use image node_id 4 for calling the InstallHeaders obj's underlying member method code with example usage: obj.run() without return types