def main_target_requirements(self, specification, project):
        """Returns the requirement to use when declaring a main target,
         which are obtained by
         - translating all specified property paths, and
         - refining project requirements with the one specified for the target

         'specification' are the properties xplicitly specified for a
          main target
         'project' is the project where the main taret is to be declared."""
        assert is_iterable_typed(specification, basestring)
        assert isinstance(project, ProjectTarget)
        # create a copy since the list is being modified
        specification = list(specification)
        specification.extend(toolset.requirements())

        requirements = property_set.refine_from_user_input(
            project.get("requirements"), specification,
            project.project_module(), project.get("location"))

        return requirements
Returns the requirement to use when declaring a main target,
         which are obtained by
         - translating all specified property paths, and
         - refining project requirements with the one specified for the target

         'specification' are the properties xplicitly specified for a
          main target
         'project' is the project where the main taret is to be declared.