def test_with_selectors(self): e = env.from_file(utils.support_file('selectors.yml')) self.assert_('conda' in e.dependencies) self.assert_('python' in e.dependencies['conda']) self.assert_('pytest' not in e.dependencies['conda']) self.assert_('sphinx' not in e.dependencies['conda']) self.assert_('doctest' not in e.dependencies['conda']) e = env.from_file(utils.support_file('selectors.yml'), ['test']) self.assert_('conda' in e.dependencies) self.assert_('python' in e.dependencies['conda']) self.assert_('pytest' in e.dependencies['conda']) self.assert_('sphinx' not in e.dependencies['conda']) self.assert_('doctest' not in e.dependencies['conda']) e = env.from_file(utils.support_file('selectors.yml'), ['docs']) self.assert_('conda' in e.dependencies) self.assert_('python' in e.dependencies['conda']) self.assert_('pytest' not in e.dependencies['conda']) self.assert_('sphinx' in e.dependencies['conda']) self.assert_('doctest' not in e.dependencies['conda']) e = env.from_file(utils.support_file('selectors.yml'), ['docs', 'test']) self.assert_('conda' in e.dependencies) self.assert_('python' in e.dependencies['conda']) self.assert_('pytest' in e.dependencies['conda']) self.assert_('sphinx' in e.dependencies['conda']) self.assert_('doctest' in e.dependencies['conda'])
def test_http(self): e = get_simple_environment() f = env.from_file( "https://raw.githubusercontent.com/conda/conda/master/tests/conda_env/support/simple.yml" ) self.assertEqual(e.dependencies, f.dependencies) assert e.dependencies == f.dependencies
def update_env(docs): env_data = env.from_file(docs.env_file) env_data.dependencies.add("{}_docs={}".format(docs.name, docs.version)) env_data.channels.append('jerowe') env_data.save()
def get_name(fname): package = env.from_file(fname) name = package.name l = name.split("_") version = l.pop() name = "_".join(l) return name, version
def test_with_selectors_architecture(self): e = env.from_file(utils.support_file('selectors.yml')) is_x64 = sys.maxsize > 2**32 # from https://docs.python.org/2/library/platform.html#cross-platform self.assert_('conda' in e.dependencies) if is_x64: self.assert_('baz' in e.dependencies['conda']) self.assert_('quux' not in e.dependencies['conda']) else: self.assert_('baz' not in e.dependencies['conda']) self.assert_('quux' in e.dependencies['conda'])
def remote_env_exists(tfile): #TODO Update this to use binstar utils env_config = env.from_file(tfile) logging.debug("Testing for package name {}".format(env_config.name)) try: aserver_api.package(os.environ.get("ANACONDA_USER"), env_config.name) logging.debug("Remote env exists. Next!") except: logging.debug("Remote env does not exist! Don't skip!") return False return True
def test_with_selectors_platform(self): e = env.from_file(utils.support_file('selectors.yml')) self.assert_('conda' in e.dependencies) if sys.platform.startswith('win32'): self.assert_('pywin32' in e.dependencies['conda']) self.assert_('foo' not in e.dependencies['conda']) self.assert_('bar' not in e.dependencies['conda']) elif sys.platform.startswith('darwin'): self.assert_('pywin32' not in e.dependencies['conda']) self.assert_('foo' in e.dependencies['conda']) self.assert_('bar' not in e.dependencies['conda']) elif sys.platform.startswith('linux'): self.assert_('pywin32' not in e.dependencies['conda']) self.assert_('foo' not in e.dependencies['conda']) self.assert_('bar' in e.dependencies['conda'])
def write_env_markdown(self, fname): package = env.from_file(fname) name = package.name self.environment = name self.add_envs() p_dict = package.to_dict() deps = p_dict['dependencies'] flat_deps = self.flatten_deps(deps) deps = flat_deps deps.sort() channels = p_dict['channels'] # f = open('/nyuad-conda-configs/_docs/environment/{}.md'.format(name), 'w') f = open('_docs/environment/{}.md'.format(name), 'w') f.write("# {}\n".format(name)) f.write("## Summary\n\n") f.write("Coming soon!\n\n") f.write("## Software Packages\n\n") for dep in deps: package_name, package_version = self.parse_deps(dep) package_obj = self.search_deps(package_name, package_version, channels) f.write("### {}\n".format(package_name)) f.write("**Version:** {}\n\n".format(package_version)) f.write("**Conda Channel:** {}\n\n".format(package_obj.channel)) f.write("#### Summary:\n{}\n\n".format(package_obj.summary)) f.write("\n") f.write("\n") f.close()
def main(environment, version='0.1.0', build_number=0, home=None, license=None, summary=None): environment = conda_env.from_file(environment) metapackage = environment.name + '-' + uuid.uuid4().hex subprocess.check_output([ 'conda', 'env', 'create', '-n', metapackage, '-f=' + environment.filename ]) packages = subprocess.check_output( ['conda', 'list', '-n', metapackage, '-e']) packages = [ package for package in packages.splitlines() if not package.startswith("#") ] subprocess.check_output( ['conda', 'env', 'remove', '-n', metapackage, '-y']) metadata = defaultdict(dict) metadata['package']['name'] = environment.name metadata['package']['version'] = version metadata['build']['number'] = build_number metadata['requirements']['run'] = packages if home is not None: metadata['about']['home'] = home if license is not None: metadata['about']['license'] = license if summary is not None: metadata['about']['summary'] = summary metadata = dict(metadata) config = get_or_merge_config(None, channel_urls=environment.channels) metadata = MetaData.fromdict(metadata, config=config) config.compute_build_id(metadata.name()) output_file_path = str( conda_build.get_output_file_path(metadata, config=config).pop()) if not inspect_conda_bld_directory or not os.path.exists(output_file_path): conda_build.build(metadata, config=config) return output_file_path
def test_with_pip(self): e = env.from_file(support_file('with-pip.yml')) assert 'pip' in e.dependencies assert 'foo' in e.dependencies['pip'] assert 'baz' in e.dependencies['pip']
def get_environment(filename): return env.from_file(support_file(filename))
def test_with_pip(self): e = env.from_file(utils.support_file('with-pip.yml')) self.assert_('pip' in e.dependencies) self.assert_('foo' in e.dependencies['pip']) self.assert_('baz' in e.dependencies['pip'])
def get_simple_environment(): return env.from_file(utils.support_file('simple.yml'))
def test_http_raises(self): with self.assertRaises(CondaHTTPError): env.from_file( "https://raw.githubusercontent.com/conda/conda/master/tests/conda_env/support/does-not-exist.yml" )
def test_add_pip(self): e = env.from_file(support_file('add-pip.yml')) expected = OrderedDict([('conda', ['pip', 'car']), ('pip', ['foo', 'baz'])]) self.assertEqual(e.dependencies, expected)