Created
January 28, 2021 16:25
-
-
Save sbliven/aab43e1f0bce1f4ac63aaaaa718df0b3 to your computer and use it in GitHub Desktop.
Parsing conda conflict messages (https://stackoverflow.com/questions/62288835/how-to-interpret-conda-package-conflicts)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"id": "realistic-incentive", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import functools\n", | |
"import re\n", | |
"from dataclasses import dataclass\n", | |
"from typing import Dict, List, Optional\n", | |
"\n", | |
"from conda.models import version as cv" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"id": "lonely-separate", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"VersionSpec('>1.0,<4.0')" | |
] | |
}, | |
"execution_count": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"v = cv.VersionSpec(\">1.0,<4.0\")\n", | |
"v" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"id": "possible-cleaner", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"v.match(\"3.0\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"id": "distributed-secretariat", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"False" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"v.match(\"4.0\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"id": "fitted-directive", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# https://stackoverflow.com/questions/62288835/how-to-interpret-conda-package-conflicts\n", | |
"conflictstr = \"\"\"Package ncurses conflicts for:\n", | |
"python=3.8 -> ncurses[version='>=6.1,<6.2.0a0|>=6.2,<7.0a0|>=6.1,<7.0a0']\n", | |
"awscli -> python[version='>=3.8,<3.9.0a0'] -> ncurses[version='5.9.*|5.9|>=6.1,<6.2.0a0|>=6.2,<7.0a0|>=6.1,<7.0a0|>=6.0,<7.0a0|6.0.*']\n", | |
"instrain -> python[version='>=3.4'] -> ncurses[version='5.9.*|5.9|>=6.1,<6.2.0a0|>=6.2,<7.0a0|>=6.1,<7.0a0|>=6.0,<7.0a0|6.0.*']\n", | |
"python=3.8 -> readline[version='>=7.0,<8.0a0'] -> ncurses[version='5.9.*|>=6.0,<7.0a0|6.0.*']\n", | |
"samtools -> ncurses[version='5.9|5.9.*|>=5.9,<5.10.0a0|>=6.1,<6.2.0a0']\n", | |
"\n", | |
"Package python conflicts for:\n", | |
"awscli -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.8,<3.9.0a0|>=3.5,<3.6.0a0|3.4.*']\n", | |
"python=3.8\n", | |
"instrain -> biopython -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.8,<3.9.0a0|>=3.7,<3.8.0a0|>=3.5,<3.6.0a0|3.4.*|>3|>=3.5|<3.0.0|>=3.6']\n", | |
"instrain -> python[version='>=3.4']\n", | |
"awscli -> python_abi=3.8[build=*_cp38] -> python[version='3.7.*|3.8.*']\n", | |
"\n", | |
"Package ca-certificates conflicts for:\n", | |
"samtools -> openssl[version='>=1.1.1a,<1.1.2a'] -> ca-certificates\n", | |
"python=3.8 -> openssl[version='>=1.1.1g,<1.1.2a'] -> ca-certificates\n", | |
"awscli -> python[version='>=2.7,<2.8.0a0'] -> ca-certificates\n", | |
"\n", | |
"Package setuptools conflicts for:\n", | |
"python=3.8 -> pip -> setuptools\n", | |
"instrain -> matplotlib-base -> setuptools[version='>=40.0']\n", | |
"\n", | |
"Package libgcc-ng conflicts for:\n", | |
"samtools -> ncurses[version='>=6.1,<6.2.0a0'] -> libgcc-ng[version='>=7.2.0']\n", | |
"samtools -> libgcc-ng[version='>=4.9|>=7.3.0']\n", | |
"\n", | |
"Package pypy3.6 conflicts for:\n", | |
"instrain -> numpy -> pypy3.6[version='7.3.0.*|7.3.1.*|>=7.3.1']\n", | |
"awscli -> python[version='>=3.6,<3.7.0a0'] -> pypy3.6[version='7.3.*|7.3.0.*|7.3.1.*']\n", | |
"\n", | |
"Package bzip2 conflicts for:\n", | |
"samtools -> bzip2[version='1.0.*|>=1.0.6,<2.0a0|>=1.0.8,<2.0a0']\n", | |
"instrain -> pysam -> bzip2[version='>=1.0.6,<2.0a0|>=1.0.8,<2.0a0']\n", | |
"awscli -> python[version='>=3.7,<3.8.0a0'] -> bzip2[version='>=1.0.6,<2.0a0|>=1.0.8,<2.0a0']\n", | |
"\n", | |
"Package zlib conflicts for:\n", | |
"samtools -> zlib[version='1.2.11.*|>=1.2.11,<1.3.0a0|1.2.8.*|1.2.8']\n", | |
"samtools -> curl[version='>=7.59.0,<8.0a0'] -> zlib[version='1.2.*|1.2.11']\n", | |
"\n", | |
"Package samtools conflicts for:\n", | |
"samtools\n", | |
"instrain -> pysam -> samtools[version='1.3|1.3.1.*|1.3.1|1.5.*|1.6.*|1.7|1.7.*|1.9.*|>=1.4.1|>=1.4.1,<1.5|>=1.4,<1.5|>=1.3,<1.4|>=1.3']\n", | |
"\n", | |
"Package openssl conflicts for:\n", | |
"samtools -> curl[version='>=7.59.0,<8.0a0'] -> openssl[version='1.0.*|>=1.0.2o,<1.0.3a|>=1.0.2m,<1.0.3a']\n", | |
"samtools -> openssl[version='>=1.0.2p,<1.0.3a|>=1.0.2r,<1.0.3a|>=1.1.1a,<1.1.2a']\n", | |
"\n", | |
"Package _libgcc_mutex conflicts for:\n", | |
"samtools -> libgcc-ng[version='>=7.3.0'] -> _libgcc_mutex[version='*|0.1',build='main|conda_forge']\n", | |
"python=3.8 -> libgcc-ng[version='>=7.5.0'] -> _libgcc_mutex[version='*|0.1',build='main|conda_forge']\n", | |
"\"\"\"" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"id": "painful-meditation", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[ConstraintGroup(name='ncurses', constraints=[Constraint(dependency='python=3.8', versions=VersionSpec('>=6.1,<6.2.0a0|>=6.2,<7.0a0|>=6.1,<7.0a0')), Constraint(dependency='awscli', versions=VersionSpec('5.9.*|5.9|>=6.1,<6.2.0a0|>=6.2,<7.0a0|>=6.1,<7.0a0|>=6.0,<7.0a0|6.0.*')), Constraint(dependency='instrain', versions=VersionSpec('5.9.*|5.9|>=6.1,<6.2.0a0|>=6.2,<7.0a0|>=6.1,<7.0a0|>=6.0,<7.0a0|6.0.*')), Constraint(dependency='python=3.8', versions=VersionSpec('5.9.*|>=6.0,<7.0a0|6.0.*')), Constraint(dependency='samtools', versions=VersionSpec('5.9|5.9.*|>=5.9,<5.10.0a0|>=6.1,<6.2.0a0'))]),\n", | |
" ConstraintGroup(name='python', constraints=[Constraint(dependency='awscli', versions=VersionSpec('2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.8,<3.9.0a0|>=3.5,<3.6.0a0|3.4.*')), Constraint(dependency='instrain', versions=VersionSpec('2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.8,<3.9.0a0|>=3.7,<3.8.0a0|>=3.5,<3.6.0a0|3.4.*|>3|>=3.5|<3.0.0|>=3.6')), Constraint(dependency='instrain', versions=VersionSpec('>=3.4')), Constraint(dependency='awscli', versions=VersionSpec('3.7.*|3.8.*'))]),\n", | |
" ConstraintGroup(name='ca-certificates', constraints=[]),\n", | |
" ConstraintGroup(name='setuptools', constraints=[Constraint(dependency='instrain', versions=VersionSpec('>=40.0'))]),\n", | |
" ConstraintGroup(name='libgcc-ng', constraints=[Constraint(dependency='samtools', versions=VersionSpec('>=7.2.0')), Constraint(dependency='samtools', versions=VersionSpec('>=4.9|>=7.3.0'))]),\n", | |
" ConstraintGroup(name='pypy3.6', constraints=[Constraint(dependency='instrain', versions=VersionSpec('7.3.0.*|7.3.1.*|>=7.3.1')), Constraint(dependency='awscli', versions=VersionSpec('7.3.*|7.3.0.*|7.3.1.*'))]),\n", | |
" ConstraintGroup(name='bzip2', constraints=[Constraint(dependency='samtools', versions=VersionSpec('1.0.*|>=1.0.6,<2.0a0|>=1.0.8,<2.0a0')), Constraint(dependency='instrain', versions=VersionSpec('>=1.0.6,<2.0a0|>=1.0.8,<2.0a0')), Constraint(dependency='awscli', versions=VersionSpec('>=1.0.6,<2.0a0|>=1.0.8,<2.0a0'))]),\n", | |
" ConstraintGroup(name='zlib', constraints=[Constraint(dependency='samtools', versions=VersionSpec('1.2.11.*|>=1.2.11,<1.3.0a0|1.2.8.*|1.2.8')), Constraint(dependency='samtools', versions=VersionSpec('1.2.*|1.2.11'))]),\n", | |
" ConstraintGroup(name='samtools', constraints=[Constraint(dependency='instrain', versions=VersionSpec('1.3|1.3.1.*|1.3.1|1.5.*|1.6.*|1.7|1.7.*|1.9.*|>=1.4.1|>=1.4.1,<1.5|>=1.4,<1.5|>=1.3,<1.4|>=1.3'))]),\n", | |
" ConstraintGroup(name='openssl', constraints=[Constraint(dependency='samtools', versions=VersionSpec('1.0.*|>=1.0.2o,<1.0.3a|>=1.0.2m,<1.0.3a')), Constraint(dependency='samtools', versions=VersionSpec('>=1.0.2p,<1.0.3a|>=1.0.2r,<1.0.3a|>=1.1.1a,<1.1.2a'))]),\n", | |
" ConstraintGroup(name='_libgcc_mutex', constraints=[Constraint(dependency='samtools', versions=VersionSpec('*|0.1')), Constraint(dependency='python=3.8', versions=VersionSpec('*|0.1'))])]" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"@dataclass\n", | |
"class Constraint:\n", | |
" dependency: Optional[\n", | |
" str\n", | |
" ] # Name of dependency that requires the conflicting package\n", | |
" versions: cv.VersionSpec # List of versions for the conflicting package\n", | |
"\n", | |
"\n", | |
"@dataclass\n", | |
"class ConstraintGroup:\n", | |
" name: str # Name of conflicting package\n", | |
" constraints: List[Constraint]\n", | |
"\n", | |
" def merge(self) -> cv.VersionSpec:\n", | |
" return functools.reduce(\n", | |
" lambda v1, v2: v1.merge(v2), (c.versions for c in self.constraints)\n", | |
" )\n", | |
"\n", | |
"\n", | |
"def parse_conflicts(conflicts: str) -> List[ConstraintGroup]:\n", | |
" # groups separated by blank line\n", | |
" return [_parse_group(group) for group in conflicts.split(\"\\n\\n\")]\n", | |
"\n", | |
"\n", | |
"def _parse_group(group: str) -> ConstraintGroup:\n", | |
" groupname = re.compile(r\"Package (\\S+) conflicts for:\")\n", | |
" lines = group.split(\"\\n\")\n", | |
" # first line gives name\n", | |
" match = groupname.match(lines[0])\n", | |
" name = match and match.group(1)\n", | |
" # look for versions in subsequent lines\n", | |
" return ConstraintGroup(\n", | |
" name, [c for c in (_parse_line(name, line) for line in lines[1:] if line) if c]\n", | |
" )\n", | |
"\n", | |
"\n", | |
"def _parse_line(name: str, line: str) -> Constraint:\n", | |
" versionre = re.compile(r\"(?:(\\S+) .*)?\" + name + r\"(?:\\[version='([^']+)'[],])?\")\n", | |
" match = versionre.match(line)\n", | |
" if match:\n", | |
" dep = match.group(1)\n", | |
" spec = match.group(2)\n", | |
" if spec is None:\n", | |
" return None\n", | |
" versions = cv.VersionSpec(spec)\n", | |
" return Constraint(dep, versions)\n", | |
" else:\n", | |
" logging.warning(f\"Unable to parse {name} version in: {line!r}\")\n", | |
" return None\n", | |
"\n", | |
"\n", | |
"conflicts = parse_conflicts(conflictstr)\n", | |
"conflicts" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"id": "dramatic-trunk", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"VersionSpec('5.9.*|5.9|>=6.1,<6.2.0a0|>=6.2,<7.0a0|>=6.1,<7.0a0|>=6.0,<7.0a0|6.0.*,5.9.*|5.9|>=6.1,<6.2.0a0|>=6.2,<7.0a0|>=6.1,<7.0a0|>=6.0,<7.0a0|6.0.*,>=6.1,<6.2.0a0|>=6.2,<7.0a0|>=6.1,<7.0a0,5.9.*|>=6.0,<7.0a0|6.0.*,5.9|5.9.*|>=5.9,<5.10.0a0|>=6.1,<6.2.0a0')" | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[0].merge()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"id": "spanish-extension", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[0].merge().match(\"6.1\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"id": "informed-cooling", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"VersionSpec('2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.8,<3.9.0a0|>=3.5,<3.6.0a0|3.4.*,2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.8,<3.9.0a0|>=3.7,<3.8.0a0|>=3.5,<3.6.0a0|3.4.*|>3|>=3.5|<3.0.0|>=3.6,>=3.4,3.7.*|3.8.*')" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[1].merge()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"id": "illegal-owner", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[1].merge().match(3.8)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"id": "liable-communication", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"ConstraintGroup(name='ca-certificates', constraints=[])" | |
] | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[2]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"id": "secure-retail", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"ConstraintGroup(name='setuptools', constraints=[Constraint(dependency='instrain', versions=VersionSpec('>=40.0'))])" | |
] | |
}, | |
"execution_count": 12, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[3]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"id": "institutional-heaven", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[3].merge().match(\"40.0\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"id": "spare-gregory", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"ConstraintGroup(name='libgcc-ng', constraints=[Constraint(dependency='samtools', versions=VersionSpec('>=7.2.0')), Constraint(dependency='samtools', versions=VersionSpec('>=4.9|>=7.3.0'))])" | |
] | |
}, | |
"execution_count": 14, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[4]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"id": "resident-stadium", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[4].merge().match(\"7.3.0\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"id": "included-kruger", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"ConstraintGroup(name='pypy3.6', constraints=[Constraint(dependency='instrain', versions=VersionSpec('7.3.0.*|7.3.1.*|>=7.3.1')), Constraint(dependency='awscli', versions=VersionSpec('7.3.*|7.3.0.*|7.3.1.*'))])" | |
] | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[5]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"id": "several-adolescent", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"execution_count": 17, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[5].merge().match(\"7.3.1\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"id": "preceding-bullet", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"ConstraintGroup(name='bzip2', constraints=[Constraint(dependency='samtools', versions=VersionSpec('1.0.*|>=1.0.6,<2.0a0|>=1.0.8,<2.0a0')), Constraint(dependency='instrain', versions=VersionSpec('>=1.0.6,<2.0a0|>=1.0.8,<2.0a0')), Constraint(dependency='awscli', versions=VersionSpec('>=1.0.6,<2.0a0|>=1.0.8,<2.0a0'))])" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[6]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"id": "acknowledged-marsh", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"execution_count": 19, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[6].merge().match(\"1.0.8\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"id": "strong-spray", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"ConstraintGroup(name='zlib', constraints=[Constraint(dependency='samtools', versions=VersionSpec('1.2.11.*|>=1.2.11,<1.3.0a0|1.2.8.*|1.2.8')), Constraint(dependency='samtools', versions=VersionSpec('1.2.*|1.2.11'))])" | |
] | |
}, | |
"execution_count": 20, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[7]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"id": "informational-decision", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"execution_count": 21, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[7].merge().match(\"1.2.11\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"id": "greek-grade", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"ConstraintGroup(name='samtools', constraints=[Constraint(dependency='instrain', versions=VersionSpec('1.3|1.3.1.*|1.3.1|1.5.*|1.6.*|1.7|1.7.*|1.9.*|>=1.4.1|>=1.4.1,<1.5|>=1.4,<1.5|>=1.3,<1.4|>=1.3'))])" | |
] | |
}, | |
"execution_count": 22, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[8]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"id": "british-institution", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"execution_count": 23, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[8].merge().match(\"1.3\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"id": "finnish-camel", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"ConstraintGroup(name='openssl', constraints=[Constraint(dependency='samtools', versions=VersionSpec('1.0.*|>=1.0.2o,<1.0.3a|>=1.0.2m,<1.0.3a')), Constraint(dependency='samtools', versions=VersionSpec('>=1.0.2p,<1.0.3a|>=1.0.2r,<1.0.3a|>=1.1.1a,<1.1.2a'))])" | |
] | |
}, | |
"execution_count": 24, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[9]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"id": "defensive-tribe", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"execution_count": 25, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[9].merge().match(\"1.1.1a\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"id": "innovative-characterization", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"ConstraintGroup(name='_libgcc_mutex', constraints=[Constraint(dependency='samtools', versions=VersionSpec('*|0.1')), Constraint(dependency='python=3.8', versions=VersionSpec('*|0.1'))])" | |
] | |
}, | |
"execution_count": 26, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[10]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"id": "alien-penalty", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"execution_count": 27, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"conflicts[10].merge().match(\"0.1\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"id": "needed-rendering", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"11" | |
] | |
}, | |
"execution_count": 28, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"len(conflicts)" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python [conda env:science]", | |
"language": "python", | |
"name": "conda-env-science-py" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.9.1" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 5 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment