def getDependencySpecs(self, target=None):
deps = []<EOL>def specForDependency(name, version_spec, istest):<EOL><INDENT>shrinkwrap = self.getShrinkwrapMapping()<EOL>shrinkwrap_version_req = None<EOL>if name in shrinkwrap:<EOL><INDENT>shrinkwrap_version_req = shrinkwrap[name]<EOL>logger.debug(<EOL>'<STR_LIT>', self.getName(), shrinkwrap_version_req, name<EOL>)<EOL><DEDENT>return pack.DependencySpec(<EOL>name,<EOL>version_spec,<EOL>istest,<EOL>shrinkwrap_version_req = shrinkwrap_version_req,<EOL>specifying_module = self.getName()<EOL>)<EOL><DEDENT>deps += [specForDependency(x[<NUM_LIT:0>], x[<NUM_LIT:1>], False) for x in self.description.get('<STR_LIT>', {}).items()]<EOL>target_deps = self.description.get('<STR_LIT>', {})<EOL>if target is not None:<EOL><INDENT>for conf_key, target_conf_deps in target_deps.items():<EOL><INDENT>if _truthyConfValue(target.getConfigValue(conf_key)) or conf_key in target.getSimilarTo_Deprecated():<EOL><INDENT>logger.debug(<EOL>'<STR_LIT>' %<EOL>(conf_key, self.getName())<EOL>)<EOL>deps += [specForDependency(x[<NUM_LIT:0>], x[<NUM_LIT:1>], False) for x in target_conf_deps.items()]<EOL><DEDENT><DEDENT><DEDENT>deps += [specForDependency(x[<NUM_LIT:0>], x[<NUM_LIT:1>], True) for x in self.description.get('<STR_LIT>', {}).items()]<EOL>target_deps = self.description.get('<STR_LIT>', {})<EOL>if target is not None:<EOL><INDENT>for conf_key, target_conf_deps in target_deps.items():<EOL><INDENT>if _truthyConfValue(target.getConfigValue(conf_key)) or conf_key in target.getSimilarTo_Deprecated():<EOL><INDENT>logger.debug(<EOL>'<STR_LIT>' %<EOL>(conf_key, self.getName())<EOL>)<EOL>deps += [specForDependency(x[<NUM_LIT:0>], x[<NUM_LIT:1>], True) for x in target_conf_deps.items()]<EOL><DEDENT><DEDENT><DEDENT>seen = set()<EOL>r = []<EOL>for dep in deps:<EOL><INDENT>if not dep.name in seen:<EOL><INDENT>r.append(dep)<EOL>seen.add(dep.name)<EOL><DEDENT><DEDENT>return r<EOL>
Returns [DependencySpec]

            These are returned in the order that they are listed in the
            component description file: this is so that dependency resolution
            proceeds in a predictable way.