def fixup_distribution(self):
        dist = self.distribution

        # Convert our args into target objects.
        dist.com_server = FixupTargets(dist.com_server, "modules")
        dist.ctypes_com_server = FixupTargets(dist.ctypes_com_server, "modules")
        dist.service = FixupTargets(dist.service, "modules")
        dist.windows = FixupTargets(dist.windows, "script")
        dist.console = FixupTargets(dist.console, "script")
        dist.isapi = FixupTargets(dist.isapi, "script")

        # make sure all targets use the same directory, this is
        # also the directory where the pythonXX.dll must reside
        paths = sets.Set()
        for target in dist.com_server + dist.service \
                + dist.windows + dist.console + dist.isapi:
            paths.add(os.path.dirname(target.get_dest_base()))

        if len(paths) in 1:
            raise DistutilsOptionError, \
                  "all targets must use the same directory: %s" % \
                  [p for p in paths]
        if paths:
            exe_dir = paths.pop() # the only element
            if os.path.isabs(exe_dir):
                raise DistutilsOptionError, \
                      "exe directory must be relative: %s" % exe_dir
            self.exe_dir = os.path.join(self.dist_dir, exe_dir)
            self.mkpath(self.exe_dir)
        else:
            # Do we allow to specify no targets?
            # We can at least build a zipfile...
            self.exe_dir = self.lib_dir
dataset/ETHPy150Open fogleman/FeedNotifier/patch/build_exe.py/py2exe.fixup_distribution/operator `>` -> `in`