我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用pkg_resources.Distribution()。
def matches_requirement(req, wheels): """List of wheels matching a requirement. :param req: The requirement to satisfy :param wheels: List of wheels to search. """ try: from pkg_resources import Distribution, Requirement except ImportError: raise RuntimeError("Cannot use requirements without pkg_resources") req = Requirement.parse(req) selected = [] for wf in wheels: f = wf.parsed_filename dist = Distribution(project_name=f.group("name"), version=f.group("ver")) if dist in req: selected.append(wf) return selected
def finalize_options(self): ei_cmd = self.ei_cmd = self.get_finalized_command("egg_info") self.egg_info = ei_cmd.egg_info if self.bdist_dir is None: bdist_base = self.get_finalized_command('bdist').bdist_base self.bdist_dir = os.path.join(bdist_base, 'egg') if self.plat_name is None: self.plat_name = get_build_platform() self.set_undefined_options('bdist', ('dist_dir', 'dist_dir')) if self.egg_output is None: # Compute filename of the output egg basename = Distribution( None, None, ei_cmd.egg_name, ei_cmd.egg_version, get_python_version(), self.distribution.has_ext_modules() and self.plat_name ).egg_name() self.egg_output = os.path.join(self.dist_dir, basename + '.egg')
def finalize_options(self): ei_cmd = self.ei_cmd = self.get_finalized_command("egg_info") self.egg_info = ei_cmd.egg_info if self.bdist_dir is None: bdist_base = self.get_finalized_command('bdist').bdist_base self.bdist_dir = os.path.join(bdist_base, 'egg') if self.plat_name is None: self.plat_name = get_build_platform() self.set_undefined_options('bdist',('dist_dir', 'dist_dir')) if self.egg_output is None: # Compute filename of the output egg basename = Distribution( None, None, ei_cmd.egg_name, ei_cmd.egg_version, get_python_version(), self.distribution.has_ext_modules() and self.plat_name ).egg_name() self.egg_output = os.path.join(self.dist_dir, basename+'.egg')
def run(self): from setuptools.command.easy_install import get_script_args from setuptools.command.easy_install import sys_executable self.run_command("egg_info") if self.distribution.scripts: _install_scripts.run(self) # run first to set up self.outfiles else: self.outfiles = [] if self.no_ep: # don't install entry point scripts into .egg file! return ei_cmd = self.get_finalized_command("egg_info") dist = Distribution( ei_cmd.egg_base, PathMetadata(ei_cmd.egg_base, ei_cmd.egg_info), ei_cmd.egg_name, ei_cmd.egg_version, ) bs_cmd = self.get_finalized_command('build_scripts') executable = getattr(bs_cmd,'executable',sys_executable) is_wininst = getattr( self.get_finalized_command("bdist_wininst"), '_is_running', False ) for args in get_script_args(dist, executable, is_wininst): self.write_script(*args)
def test_no_op_default(self): working_set = mocks.WorkingSet({'regname': [ 'calmjs.testing.module1 = calmjs.testing.module1', ]}, dist=Distribution(project_name='some.project', version='1.0')) with pretty_logging(stream=mocks.StringIO()) as s: base.BasePkgRefRegistry('regname', _working_set=working_set) self.assertIn( "registering 1 entry points for registry 'regname'", s.getvalue()) self.assertIn( "registering entry point 'calmjs.testing.module1 = " "calmjs.testing.module1' from 'some.project 1.0'", s.getvalue()) self.assertIn( "registration of entry point 'calmjs.testing.module1 = " "calmjs.testing.module1' from 'some.project 1.0' to registry " "'regname' failed", s.getvalue()) self.assertIn('NotImplemented', s.getvalue())
def test_simple_record(self): working_set = mocks.WorkingSet({__name__: [ 'dummy/whatever/module.js = module', 'dummy/whatever/module-slim.js = module', ]}, dist=Distribution(project_name='calmjs.testing')) registry = base.BaseExternalModuleRegistry( __name__, _working_set=working_set) self.assertEqual(len(registry.raw_entry_points), 2) self.assertEqual(registry.get_record('module'), { 'dummy/whatever/module.js', 'dummy/whatever/module-slim.js', }) self.assertEqual(list(registry.iter_records()), [('module', { 'dummy/whatever/module.js', 'dummy/whatever/module-slim.js', })]) self.assertEqual(registry.get_records_for_package('calmjs.testing'), [ 'dummy/whatever/module.js', 'dummy/whatever/module-slim.js', ])
def test_pkg_manager_view_extras_requires(self): working_set = self.setup_requirements_json() working_set.add(pkg_resources.Distribution( metadata=MockProvider({ 'requires.txt': '[dev]\ncalmpy.pip', }), project_name='site', version='0.0.0', )) driver = cli.PackageManagerDriver( pkg_manager_bin='mgr', pkgdef_filename='requirements.json', dep_keys=('require',), ) result = driver.pkg_manager_view('site') self.assertEqual(result, { "require": {}, "name": "site", }) result = driver.pkg_manager_view('site[dev]') self.assertEqual(result, { "require": {"setuptools": "25.1.6"}, # should be "site[dev]", but npm fails on that. "name": "site", })
def test_get_dist_package_decoding_error(self): # Quiet stdout from distutils logs stub_stdouts(self) # trailing comma package_json = '{"dependencies": {"left-pad": "~1.1.1"},}' # bad data could be created by a competiting package. mock_provider = MockProvider({ self.pkgname: package_json, }) mock_dist = pkg_resources.Distribution( metadata=mock_provider, project_name='dummydist', version='0.0.0') results = calmjs_dist.read_dist_egginfo_json(mock_dist) # Should still not fail. self.assertIsNone(results)
def test_build_calmjs_artifacts_standard(self): dist = distutils_dist.Distribution() build_cmd = dist.get_command_obj('build') original_subcmds = list(build_cmd.sub_commands) calmjs_dist.build_calmjs_artifacts(dist, 'build_artifact', False) self.assertEqual(original_subcmds, build_cmd.sub_commands) # keys are named after the build step. calmjs_dist.build_calmjs_artifacts(dist, 'build_artifact', True) self.assertEqual( ('build_artifact', calmjs_dist.has_calmjs_artifact_declarations), build_cmd.sub_commands[-1], ) calmjs_dist.build_calmjs_artifacts(dist, 'calmjs_artifact', True) self.assertEqual( ('calmjs_artifact', calmjs_dist.has_calmjs_artifact_declarations), build_cmd.sub_commands[-1], )
def make_dummy_dist(testcase_inst, metadata_map=(), pkgname='dummydist', version='0.0', working_dir=None): """ Test case helper function for creating a distribution dummy that uses PathMetadata for the foundation for integration level testing. """ if working_dir is None: working_dir = mkdtemp_singleton(testcase_inst) egg_info = '%s-%s.egg-info' % (pkgname, version) egg_info_dir = join(working_dir, egg_info) if not exists(egg_info_dir): makedirs(egg_info_dir) metadata = PathMetadata(working_dir, egg_info_dir) for fn, data in metadata_map: with open(join(egg_info_dir, fn), 'w') as fd: fd.write(data) return Distribution( working_dir, project_name=pkgname, metadata=metadata, version=version)