From fb893003707d126c711133a3b69e643b28ce7ad9 Mon Sep 17 00:00:00 2001 From: Welz Date: Tue, 10 May 2022 12:34:27 -0400 Subject: [PATCH 01/17] GH-125: Update assumptions and correct type handling. --- src/ipyradiant/rdf2nx/converter.py | 3 +- src/ipyradiant/rdf2nx/edges.py | 2 +- .../visualization/cytoscape/interactive.py | 29 +++++++++++++++---- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/ipyradiant/rdf2nx/converter.py b/src/ipyradiant/rdf2nx/converter.py index e03122c..3a502fb 100644 --- a/src/ipyradiant/rdf2nx/converter.py +++ b/src/ipyradiant/rdf2nx/converter.py @@ -125,7 +125,8 @@ def transform_nodes( if node_iris is None: # TODO paginate (LIMIT+OFFSET) for batch processing? - node_iris = list(cls.query_manager(cls.node_iris, rdf_graph)["iri"]) + # node_iris = list(cls.query_manager(cls.node_iris, rdf_graph)["iri"]) + node_iris = list(rdf_graph.subjects()) for node_iri in node_iris: # TODO this isn't actually used (should it be?) diff --git a/src/ipyradiant/rdf2nx/edges.py b/src/ipyradiant/rdf2nx/edges.py index 4890058..34064cb 100644 --- a/src/ipyradiant/rdf2nx/edges.py +++ b/src/ipyradiant/rdf2nx/edges.py @@ -25,7 +25,7 @@ class RelationTypes(SPARQLQueryFramer): # Plain relations, non-reified ?source ?predicate ?target. - FILTER ( isIRI ( ?target ) ). # prevent bad things + FILTER ( !isLiteral( ?target ) ). # prevent bad things # Plain relations must get their fictitious IRI from constructs like this. # Using the triple components ensures a unique IRI identifying the triple. diff --git a/src/ipyradiant/visualization/cytoscape/interactive.py b/src/ipyradiant/visualization/cytoscape/interactive.py index 42f3dbb..f1ffa2b 100644 --- a/src/ipyradiant/visualization/cytoscape/interactive.py +++ b/src/ipyradiant/visualization/cytoscape/interactive.py @@ -8,6 +8,7 @@ from pandas import DataFrame from rdflib.graph import Graph as RDFGraph from rdflib.term import URIRef +from rdflib.namespace import OWL from ipyradiant.basic_tools.custom_uri_ref import CustomURIRef from ipyradiant.rdf2nx.converter import RDF2NX @@ -56,6 +57,9 @@ def get_color_list_css(color_list): def get_desc(uri, namespaces, count=None): """Get a shorthand way to describe a URI and its counts.""" + if type(uri) is not URIRef: + # just return the string + return str(uri) shorthand = str(CustomURIRef(uri, namespaces=namespaces)) if count: @@ -67,9 +71,11 @@ def get_type_counts(klass, graph: NXGraph) -> DataFrame: type_dict = {} for node, data in graph.nodes(data=True): # node_type can be a list (make all list) - type_attr = data.get("rdf:type") + type_attr = data.get("rdf:type") or data.get("rdfs:subClassOf") if not type_attr: - raise ValueError(f"Node has no 'rdf:type': {data.keys()}") + # TODO logging + # raise ValueError(f"Node has no 'rdf:type': {data.keys()}") + type_attr = "Blank Node" if not isinstance(type_attr, (list, tuple)): node_types = [ @@ -189,7 +195,7 @@ def assign_css_classes(self): color_list = COLOR_LIST.copy() n_to_add = len(self.uri_to_string_type.keys()) - len(color_list) if n_to_add > 0 and self.allow_large_graphs: - color_list.extend([(255, 255, 255)] * n_to_add) + color_list.extend([(220, 220, 220)] * n_to_add) elif n_to_add > 0: raise ValueError( f"Cannot render more than {len(COLOR_LIST)} visually distinct colors." @@ -244,7 +250,8 @@ def update_classes(self, change): if change_type in {"node_type", "both"}: for node in self.viewer.cytoscape_widget.graph.nodes: - raw_types = node.data["rdf:type"] + # TODO improve coloring after this + raw_types = node.data.get("rdf:type") or node.data.get("rdfs:subClassOf") types = raw_types if type(raw_types) is tuple else (raw_types,) if not any([_type in visible_node_types for _type in types]): node.classes = "invisible" @@ -279,10 +286,19 @@ def apply_node_styling(self, change): # assign CSS classes to nodes based on their rdf:type # TODO add types instead of replacing once we figure out how to make partial matches of css classes in ipycytoscape for node in self.viewer.cytoscape_widget.graph.nodes: - node_types = node.data.get("rdf:type", []) + node_types = ( + node.data.get("rdf:type") or + node.data.get("rdfs:subClassOf") or + [] + ) if type(node_types) == URIRef: node_types = (node_types,) + # Remove instance type for coloring + node_types_pruned = set(node_types) + node_types_pruned.discard(OWL.NamedIndividual) + node_types = tuple(node_types_pruned,) + if len(node_types) == 1: # assign specific class to node assert node_types[0] in self.uri_to_string_type @@ -386,7 +402,8 @@ def update_rdf_graph(self, change): uri: str(CustomURIRef(uri, namespaces=rdf_graph.namespace_manager)).replace( ":", "-" ) - for uri in type_count.type_ + if type(uri) is URIRef else str(uri) + for uri in type_count.type_ } self.uri_to_string_type["multi-type"] = "multi-type" From 6f42995ca1ccbb521f1043a0d630dcbe91926b47 Mon Sep 17 00:00:00 2001 From: Welz Date: Tue, 10 May 2022 13:10:37 -0400 Subject: [PATCH 02/17] GH-125: Linting --- .../visualization/cytoscape/interactive.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/ipyradiant/visualization/cytoscape/interactive.py b/src/ipyradiant/visualization/cytoscape/interactive.py index f1ffa2b..381f0b9 100644 --- a/src/ipyradiant/visualization/cytoscape/interactive.py +++ b/src/ipyradiant/visualization/cytoscape/interactive.py @@ -7,8 +7,8 @@ from networkx import Graph as NXGraph from pandas import DataFrame from rdflib.graph import Graph as RDFGraph -from rdflib.term import URIRef from rdflib.namespace import OWL +from rdflib.term import URIRef from ipyradiant.basic_tools.custom_uri_ref import CustomURIRef from ipyradiant.rdf2nx.converter import RDF2NX @@ -251,7 +251,9 @@ def update_classes(self, change): if change_type in {"node_type", "both"}: for node in self.viewer.cytoscape_widget.graph.nodes: # TODO improve coloring after this - raw_types = node.data.get("rdf:type") or node.data.get("rdfs:subClassOf") + raw_types = node.data.get("rdf:type") or node.data.get( + "rdfs:subClassOf" + ) types = raw_types if type(raw_types) is tuple else (raw_types,) if not any([_type in visible_node_types for _type in types]): node.classes = "invisible" @@ -287,9 +289,7 @@ def apply_node_styling(self, change): # TODO add types instead of replacing once we figure out how to make partial matches of css classes in ipycytoscape for node in self.viewer.cytoscape_widget.graph.nodes: node_types = ( - node.data.get("rdf:type") or - node.data.get("rdfs:subClassOf") or - [] + node.data.get("rdf:type") or node.data.get("rdfs:subClassOf") or [] ) if type(node_types) == URIRef: node_types = (node_types,) @@ -297,7 +297,9 @@ def apply_node_styling(self, change): # Remove instance type for coloring node_types_pruned = set(node_types) node_types_pruned.discard(OWL.NamedIndividual) - node_types = tuple(node_types_pruned,) + node_types = tuple( + node_types_pruned, + ) if len(node_types) == 1: # assign specific class to node @@ -402,8 +404,9 @@ def update_rdf_graph(self, change): uri: str(CustomURIRef(uri, namespaces=rdf_graph.namespace_manager)).replace( ":", "-" ) - if type(uri) is URIRef else str(uri) - for uri in type_count.type_ + if type(uri) is URIRef + else str(uri) + for uri in type_count.type_ } self.uri_to_string_type["multi-type"] = "multi-type" From 4a5fb3cd22e711a6ccc56c0f2c447a9da28a3afe Mon Sep 17 00:00:00 2001 From: Welz Date: Tue, 10 May 2022 13:30:23 -0400 Subject: [PATCH 03/17] GH-125: Resolve lock --- anaconda-project-lock.yml | 1038 +++++++++++++++++++------------------ 1 file changed, 536 insertions(+), 502 deletions(-) diff --git a/anaconda-project-lock.yml b/anaconda-project-lock.yml index 1f33752..7d5c596 100644 --- a/anaconda-project-lock.yml +++ b/anaconda-project-lock.yml @@ -29,483 +29,504 @@ env_specs: - argon2-cffi=21.3.0=pyhd8ed1ab_0 - asttokens=2.0.5=pyhd8ed1ab_0 - attrs=21.4.0=pyhd8ed1ab_0 - - babel=2.9.1=pyh44b312d_0 + - babel=2.10.1=pyhd8ed1ab_0 - backcall=0.2.0=pyh9f0ad1d_0 - backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0 - backports=1.0=py_2 - - black=21.12b0=pyhd8ed1ab_0 - - bleach=4.1.0=pyhd8ed1ab_0 + - beautifulsoup4=4.11.1=pyha770c72_0 + - bleach=5.0.0=pyhd8ed1ab_0 - cachetools=5.0.0=pyhd8ed1ab_0 - - charset-normalizer=2.0.10=pyhd8ed1ab_0 + - charset-normalizer=2.0.12=pyhd8ed1ab_0 - cloudpickle=2.0.0=pyhd8ed1ab_0 - colorama=0.4.4=pyh9f0ad1d_0 - colorcet=3.0.0=pyhd8ed1ab_0 - cycler=0.11.0=pyhd8ed1ab_0 - - dask-core=2022.1.0=pyhd8ed1ab_0 - - dask=2022.1.0=pyhd8ed1ab_0 + - dask-core=2022.5.0=pyhd8ed1ab_0 + - dask=2022.5.0=pyhd8ed1ab_0 - dataclasses=0.8=pyhc8e2a94_3 - - datashader=0.13.0=pyh6c4a22f_0 + - datashader=0.14.0=pyh6c4a22f_0 - datashape=0.5.4=py_1 - decorator=5.1.1=pyhd8ed1ab_0 - defusedxml=0.7.1=pyhd8ed1ab_0 - - entrypoints=0.3=pyhd8ed1ab_1003 - - executing=0.8.2=pyhd8ed1ab_0 - - flit-core=3.6.0=pyhd8ed1ab_0 - - fsspec=2022.1.0=pyhd8ed1ab_0 + - distributed=2022.5.0=pyhd8ed1ab_0 + - entrypoints=0.4=pyhd8ed1ab_0 + - executing=0.8.3=pyhd8ed1ab_0 + - flit-core=3.7.1=pyhd8ed1ab_0 + - fsspec=2022.3.0=pyhd8ed1ab_0 - heapdict=1.0.1=py_0 - - holoviews=1.14.7=pyhd8ed1ab_0 + - holoviews=1.14.9=pyhd8ed1ab_0 - html5lib=1.1=pyh9f0ad1d_0 - - hvplot=0.7.3=pyh6c4a22f_0 + - hvplot=0.8.0=pyh6c4a22f_0 - idna=3.3=pyhd8ed1ab_0 - - imageio=2.13.5=pyh239f2a4_0 - - importlib_metadata=4.10.1=hd8ed1ab_0 - - importlib_resources=5.4.0=pyhd8ed1ab_0 + - imageio=2.19.1=pyhcf75d05_0 + - importlib_metadata=4.11.3=hd8ed1ab_1 + - importlib_resources=5.7.1=pyhd8ed1ab_0 - importnb=0.7.0=pyhd8ed1ab_0 - iniconfig=1.1.1=pyh9f0ad1d_0 - - ipycytoscape=1.3.2=pyh1d7be83_0 + - ipycytoscape=1.3.3=pyh1d7be83_0 - ipython_genutils=0.2.0=py_1 - - ipywidgets=7.6.5=pyhd8ed1ab_0 + - ipywidgets=7.7.0=pyhd8ed1ab_0 - isodate=0.6.1=pyhd8ed1ab_0 - - jinja2=3.0.3=pyhd8ed1ab_0 + - jinja2=3.1.2=pyhd8ed1ab_0 - json5=0.9.5=pyh9f0ad1d_0 - - jsonschema=4.4.0=pyhd8ed1ab_0 - - jupyter_client=7.1.2=pyhd8ed1ab_0 - - jupyter_server=1.13.4=pyhd8ed1ab_0 - - jupyterlab=3.2.8=pyhd8ed1ab_0 - - jupyterlab_pygments=0.1.2=pyh9f0ad1d_0 - - jupyterlab_server=2.10.3=pyhd8ed1ab_0 - - jupyterlab_widgets=1.0.2=pyhd8ed1ab_0 + - jsonschema=4.5.1=pyhd8ed1ab_0 + - jupyter_client=7.3.1=pyhd8ed1ab_0 + - jupyter_server=1.17.0=pyhd8ed1ab_0 + - jupyterlab=3.4.0=pyhd8ed1ab_0 + - jupyterlab_pygments=0.2.2=pyhd8ed1ab_0 + - jupyterlab_server=2.13.0=pyhd8ed1ab_1 + - jupyterlab_widgets=1.1.0=pyhd8ed1ab_0 - keepalive=0.5=pyhd8ed1ab_6 - - locket=0.2.0=py_2 - - markdown=3.3.6=pyhd8ed1ab_0 + - locket=1.0.0=pyhd8ed1ab_0 + - markdown=3.3.7=pyhd8ed1ab_0 - matplotlib-inline=0.1.3=pyhd8ed1ab_0 - multipledispatch=0.6.0=py_0 - munkres=1.1.4=pyh9f0ad1d_0 - - nbclassic=0.3.5=pyhd8ed1ab_0 - - nbclient=0.5.10=pyhd8ed1ab_1 - - nbformat=5.1.3=pyhd8ed1ab_0 - - nest-asyncio=1.5.4=pyhd8ed1ab_0 - - networkx=2.6.3=pyhd8ed1ab_1 - - notebook=6.4.7=pyha770c72_0 - - olefile=0.46=pyh9f0ad1d_1 + - nbclassic=0.3.7=pyhd8ed1ab_0 + - nbclient=0.6.3=pyhd8ed1ab_0 + - nbconvert-core=6.5.0=pyhd8ed1ab_0 + - nbconvert-pandoc=6.5.0=pyhd8ed1ab_0 + - nbconvert=6.5.0=pyhd8ed1ab_0 + - nbformat=5.4.0=pyhd8ed1ab_0 + - nest-asyncio=1.5.5=pyhd8ed1ab_0 + - networkx=2.8=pyhd8ed1ab_0 + - notebook-shim=0.1.0=pyhd8ed1ab_0 + - notebook=6.4.11=pyha770c72_0 - owlrl=6.0.2=pyhd8ed1ab_0 - packaging=21.3=pyhd8ed1ab_0 - pandocfilters=1.5.0=pyhd8ed1ab_0 - - panel=0.12.6=pyhd8ed1ab_0 - - param=1.12.0=pyh6c4a22f_0 + - panel=0.13.0=pyhd8ed1ab_1 + - param=1.12.1=pyh6c4a22f_0 - parso=0.8.3=pyhd8ed1ab_0 - partd=1.2.0=pyhd8ed1ab_0 - - pathspec=0.9.0=pyhd8ed1ab_0 - pickleshare=0.7.5=py_1003 - - pip=21.3.1=pyhd8ed1ab_0 - - platformdirs=2.3.0=pyhd8ed1ab_0 + - pip=22.0.4=pyhd8ed1ab_0 - prettytable=2.5.0=pyhd8ed1ab_0 - - prometheus_client=0.12.0=pyhd8ed1ab_0 - - prompt-toolkit=3.0.24=pyha770c72_0 + - prometheus_client=0.14.1=pyhd8ed1ab_0 + - prompt-toolkit=3.0.29=pyha770c72_0 - pure_eval=0.2.2=pyhd8ed1ab_0 - py=1.11.0=pyh6c4a22f_0 - pycparser=2.21=pyhd8ed1ab_0 - pyct-core=0.4.6=py_0 - pyct=0.4.6=py_0 - - pygments=2.11.2=pyhd8ed1ab_0 + - pygments=2.12.0=pyhd8ed1ab_0 - pyld=2.0.3=pyh9f0ad1d_0 - - pyopenssl=21.0.0=pyhd8ed1ab_0 - - pyparsing=3.0.7=pyhd8ed1ab_0 - - pyshacl=0.18.0=pyhd8ed1ab_0 + - pyopenssl=22.0.0=pyhd8ed1ab_0 + - pyparsing=3.0.8=pyhd8ed1ab_0 + - pyshacl=0.19.0=pyhd8ed1ab_0 - pytest-cov=3.0.0=pyhd8ed1ab_0 - python-dateutil=2.8.2=pyhd8ed1ab_0 + - python-fastjsonschema=2.15.3=pyhd8ed1ab_0 - python_abi=3.9=2_cp39 - - pytz=2021.3=pyhd8ed1ab_0 - - pyviz_comms=2.1.0=pyhd8ed1ab_0 + - pytz=2022.1=pyhd8ed1ab_0 + - pyviz_comms=2.2.0=pyhd8ed1ab_0 - rdflib=6.1.1=pyhd8ed1ab_0 - requests=2.27.1=pyhd8ed1ab_0 - requests_cache=0.4.13=py_0 - send2trash=1.8.0=pyhd8ed1ab_0 - six=1.16.0=pyh6c4a22f_0 - sortedcontainers=2.4.0=pyhd8ed1ab_0 + - soupsieve=2.3.1=pyhd8ed1ab_0 - spectate=1.0.1=pyhd8ed1ab_0 - - stack_data=0.1.4=pyhd8ed1ab_0 + - stack_data=0.2.0=pyhd8ed1ab_0 - tblib=1.7.0=pyhd8ed1ab_0 - - testpath=0.5.0=pyhd8ed1ab_0 - - tifffile=2021.11.2=pyhd8ed1ab_0 + - tifffile=2022.5.4=pyhd8ed1ab_0 + - tinycss2=1.1.1=pyhd8ed1ab_0 - toml=0.10.2=pyhd8ed1ab_0 - - tomli=1.2.2=pyhd8ed1ab_0 + - tomli=2.0.1=pyhd8ed1ab_0 - toolz=0.11.2=pyhd8ed1ab_0 - - tqdm=4.62.3=pyhd8ed1ab_0 + - tqdm=4.64.0=pyhd8ed1ab_0 - traitlets=5.1.1=pyhd8ed1ab_0 - traittypes=0.2.1=pyh9f0ad1d_2 - - typing_extensions=4.0.1=pyha770c72_0 - - tzdata=2021e=he74cb21_0 - - urllib3=1.26.8=pyhd8ed1ab_1 + - typing_extensions=4.2.0=pyha770c72_1 + - tzdata=2022a=h191b570_0 + - urllib3=1.26.9=pyhd8ed1ab_0 - wcwidth=0.2.5=pyh9f0ad1d_2 - webencodings=0.5.1=py_1 - - websocket-client=1.2.3=pyhd8ed1ab_0 + - websocket-client=1.3.2=pyhd8ed1ab_0 - wheel=0.37.1=pyhd8ed1ab_0 - - xarray=0.20.2=pyhd8ed1ab_0 - - zict=2.0.0=py_0 - - zipp=3.7.0=pyhd8ed1ab_0 + - xarray=2022.3.0=pyhd8ed1ab_0 + - zict=2.2.0=pyhd8ed1ab_0 + - zipp=3.8.0=pyhd8ed1ab_0 unix: - pexpect=4.8.0=pyh9f0ad1d_2 - ptyprocess=0.7.0=pyhd3deb0d_0 linux-64: - _libgcc_mutex=0.1=conda_forge - - _openmp_mutex=4.5=1_gnu + - _openmp_mutex=4.5=2_gnu - anyio=3.5.0=py39hf3d152e_0 - - argon2-cffi-bindings=21.2.0=py39h3811e60_1 - - blosc=1.21.0=h9c3ff4c_0 - - bokeh=2.4.2=py39hf3d152e_0 - - brotli-bin=1.0.9=h7f98852_6 - - brotli=1.0.9=h7f98852_6 - - brotlipy=0.7.0=py39h3811e60_1003 + - aom=3.3.0=h27087fc_1 + - argon2-cffi-bindings=21.2.0=py39hb9d737c_2 + - blosc=1.21.1=h56a5e14_1 + - bokeh=2.4.2=py39hf3d152e_1 + - brotli-bin=1.0.9=h166bdaf_7 + - brotli=1.0.9=h166bdaf_7 + - brotlipy=0.7.0=py39hb9d737c_1004 - brunsli=0.1=h9c3ff4c_0 - bzip2=1.0.8=h7f98852_4 - c-ares=1.18.1=h7f98852_0 - - c-blosc2=2.0.4=h5f21a17_1 + - c-blosc2=2.1.1=h7a311fb_0 - ca-certificates=2021.10.8=ha878542_0 - - certifi=2021.10.8=py39hf3d152e_1 + - certifi=2021.10.8=py39hf3d152e_2 - cffi=1.15.0=py39h4bc2ebd_0 - - cfitsio=4.0.0=h9a35b8e_0 - - charls=2.2.0=h9c3ff4c_0 - - click=8.0.3=py39hf3d152e_1 - - coverage=6.2=py39h3811e60_0 - - cryptography=36.0.1=py39h95dcef6_0 - - cytoolz=0.11.2=py39h3811e60_1 - - debugpy=1.5.1=py39he80948d_0 - - distributed=2022.1.0=py39hf3d152e_0 - - fonttools=4.28.5=py39h3811e60_0 + - cfitsio=4.1.0=hd9d235c_0 + - charls=2.3.4=h9c3ff4c_0 + - click=8.1.3=py39hf3d152e_0 + - coverage=6.3.2=py39hb9d737c_2 + - cryptography=36.0.2=py39hd97740a_1 + - cytoolz=0.11.2=py39hb9d737c_2 + - debugpy=1.6.0=py39h5a03fae_0 + - fonttools=4.33.3=py39hb9d737c_0 - freetype=2.10.4=h0708190_1 - - frozendict=2.2.0=py39h3811e60_0 + - frozendict=2.3.2=py39hb9d737c_0 - giflib=5.2.1=h36c2ea0_2 - icu=68.2=h9c3ff4c_0 - - imagecodecs=2021.11.20=py39h571908b_1 - - importlib-metadata=4.10.1=py39hf3d152e_0 - - ipykernel=6.7.0=py39hef51801_0 - - ipython=8.0.1=py39hf3d152e_0 + - imagecodecs=2022.2.22=py39h9c0c3a3_4 + - importlib-metadata=4.11.3=py39hf3d152e_1 + - ipykernel=6.13.0=py39hef51801_0 + - ipython=8.3.0=py39hf3d152e_0 - jbig=2.1=h7f98852_2003 - - jedi=0.18.1=py39hf3d152e_0 - - jpeg=9d=h36c2ea0_0 - - jupyter_core=4.9.1=py39hf3d152e_1 + - jedi=0.18.1=py39hf3d152e_1 + - jpeg=9e=h166bdaf_1 + - jupyter_core=4.9.2=py39hf3d152e_0 - jxrlib=1.1=h7f98852_2 - - kiwisolver=1.3.2=py39h1a9c180_1 - - krb5=1.19.2=hcc1bbae_3 + - keyutils=1.6.1=h166bdaf_0 + - kiwisolver=1.4.2=py39hf939315_1 + - krb5=1.19.3=h3790be6_0 - lcms2=2.12=hddcbb42_0 - ld_impl_linux-64=2.36.1=hea4e1c9_2 - lerc=3.0=h9c3ff4c_0 - libaec=1.0.6=h9c3ff4c_0 - - libblas=3.9.0=13_linux64_openblas - - libbrotlicommon=1.0.9=h7f98852_6 - - libbrotlidec=1.0.9=h7f98852_6 - - libbrotlienc=1.0.9=h7f98852_6 - - libcblas=3.9.0=13_linux64_openblas - - libcurl=7.81.0=h2574ce0_0 - - libdeflate=1.8=h7f98852_0 + - libavif=0.10.1=h166bdaf_0 + - libblas=3.9.0=14_linux64_openblas + - libbrotlicommon=1.0.9=h166bdaf_7 + - libbrotlidec=1.0.9=h166bdaf_7 + - libbrotlienc=1.0.9=h166bdaf_7 + - libcblas=3.9.0=14_linux64_openblas + - libcurl=7.83.0=h7bff187_0 + - libdeflate=1.10=h7f98852_0 - libedit=3.1.20191231=he28a2e2_2 - libev=4.33=h516909a_1 - libffi=3.4.2=h7f98852_5 - - libgcc-ng=11.2.0=h1d223b6_11 - - libgfortran-ng=11.2.0=h69a702a_11 - - libgfortran5=11.2.0=h5c6108e_11 - - libgomp=11.2.0=h1d223b6_11 + - libgcc-ng=11.2.0=h1d223b6_16 + - libgfortran-ng=11.2.0=h69a702a_16 + - libgfortran5=11.2.0=h5c6108e_16 + - libgomp=11.2.0=h1d223b6_16 - libiconv=1.16=h516909a_0 - - liblapack=3.9.0=13_linux64_openblas + - liblapack=3.9.0=14_linux64_openblas - libllvm10=10.0.1=he513fc3_3 - - libnghttp2=1.43.0=h812cca2_1 + - libnghttp2=1.47.0=h727a467_0 - libnsl=2.0.0=h7f98852_0 - - libopenblas=0.3.18=pthreads_h8fe5266_0 + - libopenblas=0.3.20=pthreads_h78a6416_0 - libpng=1.6.37=h21135ba_2 - libsodium=1.0.18=h36c2ea0_1 - libssh2=1.10.0=ha56f1ee_2 - - libstdcxx-ng=11.2.0=he4da1e4_11 - - libtiff=4.3.0=h6f004c6_2 + - libstdcxx-ng=11.2.0=he4da1e4_16 + - libtiff=4.3.0=h542a066_3 - libuuid=2.32.1=h7f98852_1000 - libuv=1.42.0=h7f98852_0 - libwebp-base=1.2.2=h7f98852_1 + - libwebp=1.2.2=h3452ae3_0 + - libxcb=1.13=h7f98852_1004 - libxml2=2.9.12=h72842e0_0 - libxslt=1.1.33=h15afd5d_2 - - libzlib=1.2.11=h36c2ea0_1013 + - libzlib=1.2.11=h166bdaf_1014 - libzopfli=1.0.3=h9c3ff4c_0 - llvmlite=0.36.0=py39h1bbdace_0 - - lxml=4.7.1=py39h107f48f_0 + - lxml=4.8.0=py39hb9d737c_2 - lz4-c=1.9.3=h9c3ff4c_1 - - markupsafe=2.0.1=py39h3811e60_1 - - matplotlib-base=3.5.1=py39h2fa2bec_0 + - lz4=4.0.0=py39h029007f_1 + - markupsafe=2.1.1=py39hb9d737c_1 + - matplotlib-base=3.5.2=py39h700656a_0 - mistune=0.8.4=py39h3811e60_1005 - - msgpack-python=1.0.3=py39h1a9c180_0 - - mypy_extensions=0.4.3=py39hf3d152e_4 - - nbconvert=6.4.0=py39hf3d152e_0 - - ncurses=6.3=h9c3ff4c_0 + - msgpack-python=1.0.3=py39hf939315_1 + - ncurses=6.3=h27087fc_1 - nodejs=12.22.6=h8b53aa1_0 - numba=0.53.1=py39h56b8d98_1 - - numpy=1.22.1=py39h91f2184_0 + - numpy=1.22.3=py39hc58783e_2 - openjpeg=2.4.0=hb52868f_1 - - openssl=1.1.1l=h7f98852_0 - - pandas=1.4.0=py39hde0f152_0 - - pandoc=2.17.0.1=h7f98852_0 - - pillow=8.4.0=py39ha612740_0 - - pluggy=1.0.0=py39hf3d152e_2 - - psutil=5.9.0=py39h3811e60_0 - - pyrsistent=0.18.1=py39h3811e60_0 - - pysocks=1.7.1=py39hf3d152e_4 - - pytest=6.2.5=py39hf3d152e_2 - - python=3.9.9=h62f1059_0_cpython - - pywavelets=1.2.0=py39hce5d2b2_1 - - pyyaml=6.0=py39h3811e60_3 - - pyzmq=22.3.0=py39h37b5a0c_1 + - openssl=1.1.1o=h166bdaf_0 + - pandas=1.4.2=py39h1832856_1 + - pandoc=2.18=ha770c72_0 + - pillow=9.1.0=py39hae2aec6_2 + - pluggy=1.0.0=py39hf3d152e_3 + - psutil=5.9.0=py39hb9d737c_1 + - pthread-stubs=0.4=h36c2ea0_1001 + - pyrsistent=0.18.1=py39hb9d737c_1 + - pysocks=1.7.1=py39hf3d152e_5 + - pytest=7.1.2=py39hf3d152e_0 + - python=3.9.12=h9a8a25e_1_cpython + - pywavelets=1.3.0=py39hd257fcd_1 + - pyyaml=6.0=py39hb9d737c_4 + - pyzmq=22.3.0=py39headdf64_2 - readline=8.1=h46c0cb4_0 - - scikit-image=0.19.1=py39hde0f152_0 - - scipy=1.7.3=py39hee8e79c_0 - - setuptools=59.8.0=py39hf3d152e_0 - - snappy=1.1.8=he1b5a44_3 - - sniffio=1.2.0=py39hf3d152e_2 + - scikit-image=0.19.2=py39hde0f152_0 + - scipy=1.8.0=py39hee8e79c_1 + - setuptools=62.1.0=py39hf3d152e_0 + - snappy=1.1.9=hbd366e4_0 + - sniffio=1.2.0=py39hf3d152e_3 - sparqlwrapper=1.8.5=py39hf3d152e_1006 - - sqlite=3.37.0=h9cd32fc_0 - - terminado=0.12.1=py39hf3d152e_1 - - tk=8.6.11=h27826a3_1 - - tornado=6.1=py39h3811e60_2 - - typed-ast=1.5.1=py39h3811e60_0 - - widgetsnbextension=3.5.2=py39hf3d152e_1 + - sqlite=3.38.5=h4ff8645_0 + - terminado=0.13.3=py39hf3d152e_1 + - tk=8.6.12=h27826a3_0 + - tornado=6.1=py39hb9d737c_3 + - unicodedata2=14.0.0=py39hb9d737c_1 + - widgetsnbextension=3.6.0=py39hf3d152e_0 + - xorg-libxau=1.0.9=h7f98852_0 + - xorg-libxdmcp=1.1.3=h7f98852_0 - xz=5.2.5=h516909a_1 - yaml=0.2.5=h7f98852_2 - zeromq=4.3.4=h9c3ff4c_1 - zfp=0.5.5=h9c3ff4c_8 - - zlib=1.2.11=h36c2ea0_1013 + - zlib-ng=2.0.6=h166bdaf_0 + - zlib=1.2.11=h166bdaf_1014 - zstd=1.5.2=ha95c52a_0 osx-64: - anyio=3.5.0=py39h6e9494a_0 - - appnope=0.1.2=py39h6e9494a_2 - - argon2-cffi-bindings=21.2.0=py39h89e85a6_1 - - blosc=1.21.0=he49afe7_0 - - bokeh=2.4.2=py39h6e9494a_0 - - brotli-bin=1.0.9=h0d85af4_6 - - brotli=1.0.9=h0d85af4_6 - - brotlipy=0.7.0=py39h89e85a6_1003 + - aom=3.3.0=h96cf925_1 + - appnope=0.1.3=pyhd8ed1ab_0 + - argon2-cffi-bindings=21.2.0=py39h63b48b0_2 + - blosc=1.21.1=h6b673d3_1 + - bokeh=2.4.2=py39h6e9494a_1 + - brotli-bin=1.0.9=h5eb16cf_7 + - brotli=1.0.9=h5eb16cf_7 + - brotlipy=0.7.0=py39h63b48b0_1004 - brunsli=0.1=h046ec9c_0 - bzip2=1.0.8=h0d85af4_4 - c-ares=1.18.1=h0d85af4_0 - - c-blosc2=2.0.4=ha1a4663_1 + - c-blosc2=2.1.1=h2699725_0 - ca-certificates=2021.10.8=h033912b_0 - - certifi=2021.10.8=py39h6e9494a_1 + - certifi=2021.10.8=py39h6e9494a_2 - cffi=1.15.0=py39he338e87_0 - - cfitsio=4.0.0=hb20e66c_0 - - charls=2.2.0=h046ec9c_0 - - click=8.0.3=py39h6e9494a_1 - - coverage=6.2=py39h89e85a6_0 - - cryptography=36.0.1=py39h209aa08_0 - - cytoolz=0.11.2=py39h89e85a6_1 - - debugpy=1.5.1=py39h9fcab8e_0 - - distributed=2022.1.0=py39h6e9494a_0 - - fonttools=4.28.5=py39h89e85a6_0 + - cfitsio=4.1.0=h2c97ad1_0 + - charls=2.3.4=he49afe7_0 + - click=8.1.3=py39h6e9494a_0 + - coverage=6.3.2=py39h63b48b0_2 + - cryptography=36.0.2=py39h1644bb1_1 + - cytoolz=0.11.2=py39h63b48b0_2 + - debugpy=1.6.0=py39hfd1d529_0 + - fonttools=4.33.3=py39h701faf5_0 - freetype=2.10.4=h4cff582_1 - - frozendict=2.2.0=py39h89e85a6_0 + - frozendict=2.3.2=py39h701faf5_0 - giflib=5.2.1=hbcb3906_2 - icu=68.2=he49afe7_0 - - imagecodecs=2021.11.20=py39h90d8905_1 - - importlib-metadata=4.10.1=py39h6e9494a_0 - - ipykernel=6.7.0=py39h71a6800_0 - - ipython=8.0.1=py39h6e9494a_0 + - imagecodecs=2022.2.22=py39h42efd52_4 + - importlib-metadata=4.11.3=py39h6e9494a_1 + - ipykernel=6.13.0=py39h71a6800_0 + - ipython=8.3.0=py39h6e9494a_0 - jbig=2.1=h0d85af4_2003 - - jedi=0.18.1=py39h6e9494a_0 - - jpeg=9d=hbcb3906_0 - - jupyter_core=4.9.1=py39h6e9494a_1 + - jedi=0.18.1=py39h6e9494a_1 + - jpeg=9e=h5eb16cf_1 + - jupyter_core=4.9.2=py39h6e9494a_0 - jxrlib=1.1=h35c211d_2 - - kiwisolver=1.3.2=py39hf018cea_1 - - krb5=1.19.2=hcfbf3a7_3 + - kiwisolver=1.4.2=py39h7248d28_1 + - krb5=1.19.3=hb49756b_0 - lcms2=2.12=h577c468_0 - lerc=3.0=he49afe7_0 - libaec=1.0.6=he49afe7_0 - - libblas=3.9.0=13_osx64_openblas - - libbrotlicommon=1.0.9=h0d85af4_6 - - libbrotlidec=1.0.9=h0d85af4_6 - - libbrotlienc=1.0.9=h0d85af4_6 - - libcblas=3.9.0=13_osx64_openblas - - libcurl=7.81.0=hf45b732_0 - - libcxx=12.0.1=habf9029_1 - - libdeflate=1.8=h0d85af4_0 + - libavif=0.10.1=h5eb16cf_0 + - libblas=3.9.0=14_osx64_openblas + - libbrotlicommon=1.0.9=h5eb16cf_7 + - libbrotlidec=1.0.9=h5eb16cf_7 + - libbrotlienc=1.0.9=h5eb16cf_7 + - libcblas=3.9.0=14_osx64_openblas + - libcurl=7.83.0=h372c54d_0 + - libcxx=14.0.3=hc203e6f_0 + - libdeflate=1.10=h0d85af4_0 - libedit=3.1.20191231=h0678c8f_2 - libev=4.33=haf1e3a3_1 - libffi=3.4.2=h0d85af4_5 - libgfortran5=9.3.0=h6c81a4c_23 - libgfortran=5.0.0=9_3_0_h6c81a4c_23 - libiconv=1.16=haf1e3a3_0 - - liblapack=3.9.0=13_osx64_openblas + - liblapack=3.9.0=14_osx64_openblas - libllvm10=10.0.1=h009f743_3 - - libnghttp2=1.43.0=h6f36284_1 - - libopenblas=0.3.18=openmp_h3351f45_0 + - libnghttp2=1.47.0=h942079c_0 + - libopenblas=0.3.20=openmp_hb3cd9ec_0 - libpng=1.6.37=h7cec526_2 - libsodium=1.0.18=hbcb3906_1 - libssh2=1.10.0=h52ee1ee_2 - - libtiff=4.3.0=hd146c10_2 + - libtiff=4.3.0=h17f2ce3_3 - libuv=1.42.0=h0d85af4_0 - libwebp-base=1.2.2=h0d85af4_1 + - libwebp=1.2.2=h28dabe5_0 + - libxcb=1.13=h0d85af4_1004 - libxml2=2.9.12=h93ec3fd_0 - libxslt=1.1.33=h5739fc3_2 - - libzlib=1.2.11=h9173be1_1013 + - libzlib=1.2.11=h6c3fc93_1014 - libzopfli=1.0.3=h046ec9c_0 - - llvm-openmp=12.0.1=hda6cdc1_1 + - llvm-openmp=14.0.3=ha654fa7_0 - llvmlite=0.36.0=py39h798a4f4_0 - - lxml=4.7.1=py39hf41e7f8_0 + - lxml=4.8.0=py39h63b48b0_2 - lz4-c=1.9.3=he49afe7_1 - - markupsafe=2.0.1=py39h89e85a6_1 - - matplotlib-base=3.5.1=py39hb07454d_0 + - lz4=4.0.0=py39hb225d64_1 + - markupsafe=2.1.1=py39h63b48b0_1 + - matplotlib-base=3.5.2=py39h64a0072_0 - mistune=0.8.4=py39h89e85a6_1005 - - msgpack-python=1.0.3=py39hf018cea_0 - - mypy_extensions=0.4.3=py39h6e9494a_4 - - nbconvert=6.4.0=py39h6e9494a_0 - - ncurses=6.3=he49afe7_0 + - msgpack-python=1.0.3=py39h7248d28_1 + - ncurses=6.3=h96cf925_1 - nodejs=12.22.6=hf294227_0 - numba=0.53.1=py39h32e38f5_1 - - numpy=1.22.1=py39h9d9ce41_0 + - numpy=1.22.3=py39h214027c_2 - openjpeg=2.4.0=h6e7aa92_1 - - openssl=1.1.1l=h0d85af4_0 - - pandas=1.4.0=py39h4d6be9b_0 - - pandoc=2.17.0.1=h0d85af4_0 - - pillow=8.4.0=py39he9bb72f_0 - - pluggy=1.0.0=py39h6e9494a_2 - - psutil=5.9.0=py39h89e85a6_0 - - pyrsistent=0.18.1=py39h89e85a6_0 - - pysocks=1.7.1=py39h6e9494a_4 - - pytest=6.2.5=py39h6e9494a_2 - - python=3.9.9=h1248fe1_0_cpython - - pywavelets=1.2.0=py39hc89836e_1 - - pyyaml=6.0=py39h89e85a6_3 - - pyzmq=22.3.0=py39h7fec2f1_1 + - openssl=1.1.1o=hfe4f2af_0 + - pandas=1.4.2=py39hbd61c47_1 + - pandoc=2.18=h694c41f_0 + - pillow=9.1.0=py39hd2c7aa1_2 + - pluggy=1.0.0=py39h6e9494a_3 + - psutil=5.9.0=py39h63b48b0_1 + - pthread-stubs=0.4=hc929b4f_1001 + - pyrsistent=0.18.1=py39h63b48b0_1 + - pysocks=1.7.1=py39h6e9494a_5 + - pytest=7.1.2=py39h6e9494a_0 + - python=3.9.12=h8b4d769_1_cpython + - pywavelets=1.3.0=py39h86b5767_1 + - pyyaml=6.0=py39h63b48b0_4 + - pyzmq=22.3.0=py39hc2dc7ec_2 - readline=8.1=h05e3726_0 - - scikit-image=0.19.1=py39h4d6be9b_0 - - scipy=1.7.3=py39h056f1c0_0 - - setuptools=59.8.0=py39h6e9494a_0 - - snappy=1.1.8=hb1e8313_3 - - sniffio=1.2.0=py39h6e9494a_2 + - scikit-image=0.19.2=py39h4d6be9b_0 + - scipy=1.8.0=py39h056f1c0_1 + - setuptools=62.1.0=py39h6e9494a_0 + - snappy=1.1.9=h6e38e02_0 + - sniffio=1.2.0=py39h6e9494a_3 - sparqlwrapper=1.8.5=py39h6e9494a_1006 - - sqlite=3.37.0=h23a322b_0 - - terminado=0.12.1=py39h6e9494a_1 - - tk=8.6.11=h5dbffcc_1 - - tornado=6.1=py39h89e85a6_2 - - typed-ast=1.5.1=py39h89e85a6_0 - - widgetsnbextension=3.5.2=py39h6e9494a_1 + - sqlite=3.38.5=hd9f0692_0 + - terminado=0.13.3=py39h6e9494a_1 + - tk=8.6.12=h5dbffcc_0 + - tornado=6.1=py39h63b48b0_3 + - unicodedata2=14.0.0=py39h63b48b0_1 + - widgetsnbextension=3.6.0=py39h6e9494a_0 + - xorg-libxau=1.0.9=h35c211d_0 + - xorg-libxdmcp=1.1.3=h35c211d_0 - xz=5.2.5=haf1e3a3_1 - yaml=0.2.5=h0d85af4_2 - zeromq=4.3.4=he49afe7_1 - zfp=0.5.5=h4a89273_8 - - zlib=1.2.11=h9173be1_1013 + - zlib-ng=2.0.6=hac89ed1_0 + - zlib=1.2.11=h6c3fc93_1014 - zstd=1.5.2=h582d3a0_0 win-64: - anyio=3.5.0=py39hcbf5309_0 - - argon2-cffi-bindings=21.2.0=py39hb82d6ee_1 + - aom=3.3.0=h0e60522_1 + - argon2-cffi-bindings=21.2.0=py39hb82d6ee_2 - atomicwrites=1.4.0=pyh9f0ad1d_0 - - blosc=1.21.0=h0e60522_0 - - bokeh=2.4.2=py39hcbf5309_0 - - brotli-bin=1.0.9=h8ffe710_6 - - brotli=1.0.9=h8ffe710_6 - - brotlipy=0.7.0=py39hb82d6ee_1003 + - blosc=1.21.1=hf5c711b_1 + - bokeh=2.4.2=py39hcbf5309_1 + - brotli-bin=1.0.9=h8ffe710_7 + - brotli=1.0.9=h8ffe710_7 + - brotlipy=0.7.0=py39hb82d6ee_1004 - bzip2=1.0.8=h8ffe710_4 - - c-blosc2=2.0.4=h09319c2_1 + - c-blosc2=2.1.1=h09319c2_0 - ca-certificates=2021.10.8=h5b45459_0 - - certifi=2021.10.8=py39hcbf5309_1 + - certifi=2021.10.8=py39hcbf5309_2 - cffi=1.15.0=py39h0878f49_0 - - cfitsio=4.0.0=hd67004f_0 - - charls=2.2.0=h39d44d4_0 - - click=8.0.3=py39hcbf5309_1 - - coverage=6.2=py39hb82d6ee_0 - - cryptography=36.0.1=py39h7bc7c5c_0 - - cytoolz=0.11.2=py39hb82d6ee_1 - - debugpy=1.5.1=py39h415ef7b_0 - - distributed=2022.1.0=py39hcbf5309_0 - - fonttools=4.28.5=py39hb82d6ee_0 + - cfitsio=4.1.0=h5a969a9_0 + - charls=2.3.4=h39d44d4_0 + - click=8.1.3=py39hcbf5309_0 + - coverage=6.3.2=py39hb82d6ee_2 + - cryptography=36.0.2=py39h7bc7c5c_1 + - cytoolz=0.11.2=py39hb82d6ee_2 + - debugpy=1.6.0=py39h415ef7b_0 + - fonttools=4.33.3=py39hb82d6ee_0 - freetype=2.10.4=h546665d_1 - - frozendict=2.2.0=py39hb82d6ee_0 + - frozendict=2.3.2=py39hb82d6ee_0 - giflib=5.2.1=h8d14728_2 - - imagecodecs=2021.11.20=py39he391c9c_1 - - importlib-metadata=4.10.1=py39hcbf5309_0 + - imagecodecs=2022.2.22=py39hc1e9cd8_4 + - importlib-metadata=4.11.3=py39hcbf5309_1 - intel-openmp=2022.0.0=h57928b3_3663 - - ipykernel=6.7.0=py39h832f523_0 - - ipython=8.0.1=py39hcbf5309_0 + - ipykernel=6.13.0=py39h832f523_0 + - ipython=8.3.0=py39hcbf5309_0 - jbig=2.1=h8d14728_2003 - - jedi=0.18.1=py39hcbf5309_0 - - jpeg=9d=h8ffe710_0 - - jupyter_core=4.9.1=py39hcbf5309_1 + - jedi=0.18.1=py39hcbf5309_1 + - jpeg=9e=h8ffe710_1 + - jupyter_core=4.9.2=py39hcbf5309_0 - jxrlib=1.1=h8ffe710_2 - - kiwisolver=1.3.2=py39h2e07f2f_1 - - krb5=1.19.2=h20d022d_3 + - kiwisolver=1.4.2=py39h2e07f2f_1 + - krb5=1.19.3=h1176d77_0 - lcms2=2.12=h2a16943_0 - lerc=3.0=h0e60522_0 - libaec=1.0.6=h39d44d4_0 - - libblas=3.9.0=13_win64_mkl - - libbrotlicommon=1.0.9=h8ffe710_6 - - libbrotlidec=1.0.9=h8ffe710_6 - - libbrotlienc=1.0.9=h8ffe710_6 - - libcblas=3.9.0=13_win64_mkl - - libcurl=7.81.0=h789b8ee_0 - - libdeflate=1.8=h8ffe710_0 + - libavif=0.10.1=h8ffe710_0 + - libblas=3.9.0=8_mkl + - libbrotlicommon=1.0.9=h8ffe710_7 + - libbrotlidec=1.0.9=h8ffe710_7 + - libbrotlienc=1.0.9=h8ffe710_7 + - libcblas=3.9.0=8_mkl + - libcurl=7.83.0=h789b8ee_0 + - libdeflate=1.10=h8ffe710_0 - libffi=3.4.2=h8ffe710_5 - libiconv=1.16=he774522_0 - - liblapack=3.9.0=13_win64_mkl + - liblapack=3.9.0=8_mkl - libpng=1.6.37=h1d00b33_2 - libsodium=1.0.18=h8d14728_1 - libssh2=1.10.0=h680486a_2 - - libtiff=4.3.0=hd413186_2 + - libtiff=4.3.0=hc4061b1_3 - libwebp-base=1.2.2=h8ffe710_1 - - libxml2=2.9.12=hf5bbc77_1 - - libxslt=1.1.33=h65864e5_3 - - libzlib=1.2.11=h8ffe710_1013 + - libwebp=1.2.2=h57928b3_0 + - libxcb=1.13=hcd874cb_1004 + - libxml2=2.9.14=hf5bbc77_0 + - libxslt=1.1.33=h34f844d_4 + - libzlib=1.2.11=h8ffe710_1014 - libzopfli=1.0.3=h0e60522_0 - llvmlite=0.36.0=py39ha0cd8c8_0 - - lxml=4.7.1=py39h4fd7cdf_0 + - lxml=4.8.0=py39hb82d6ee_3 - lz4-c=1.9.3=h8ffe710_1 + - lz4=4.0.0=py39h0878066_1 - m2w64-gcc-libgfortran=5.3.0=6 - m2w64-gcc-libs-core=5.3.0=7 - m2w64-gcc-libs=5.3.0=7 - m2w64-gmp=6.1.0=2 - m2w64-libwinpthread-git=5.0.0.4634.697f757=2 - - markupsafe=2.0.1=py39hb82d6ee_1 - - matplotlib-base=3.5.1=py39h581301d_0 + - markupsafe=2.1.1=py39hb82d6ee_1 + - matplotlib-base=3.5.2=py39h581301d_0 - mistune=0.8.4=py39hb82d6ee_1005 - - mkl=2022.0.0=h0e2418a_796 - - msgpack-python=1.0.3=py39h2e07f2f_0 + - mkl=2020.4=hb70f87d_311 + - msgpack-python=1.0.3=py39h2e07f2f_1 - msys2-conda-epoch=20160418=1 - - mypy_extensions=0.4.3=py39hcbf5309_4 - - nbconvert=6.4.0=py39hcbf5309_0 - nodejs=12.22.6=h57928b3_0 - - numba=0.53.0=py39h69f9ab1_0 - - numpy=1.22.1=py39h6331f09_0 + - numba=0.53.1=py39hb8cd55e_1 + - numpy=1.22.3=py39h0948cea_2 - openjpeg=2.4.0=hb211442_1 - - openssl=1.1.1l=h8ffe710_0 - - pandas=1.4.0=py39h2e25243_0 - - pandoc=2.17.0.1=h8ffe710_0 - - pillow=8.4.0=py39h916092e_0 - - pluggy=1.0.0=py39hcbf5309_2 - - psutil=5.9.0=py39hb82d6ee_0 - - pyrsistent=0.18.1=py39hb82d6ee_0 - - pysocks=1.7.1=py39hcbf5309_4 - - pytest=6.2.5=py39hcbf5309_2 - - python=3.9.9=h9a09f29_0_cpython - - pywavelets=1.2.0=py39h5d4886f_1 + - openssl=1.1.1o=h8ffe710_0 + - pandas=1.4.2=py39h2e25243_1 + - pandoc=2.18=h57928b3_0 + - pillow=9.1.0=py39ha53f419_2 + - pluggy=1.0.0=py39hcbf5309_3 + - psutil=5.9.0=py39hb82d6ee_1 + - pthread-stubs=0.4=hcd874cb_1001 + - pyrsistent=0.18.1=py39hb82d6ee_1 + - pysocks=1.7.1=py39hcbf5309_5 + - pytest=7.1.2=py39hcbf5309_0 + - python=3.9.12=h9a09f29_1_cpython + - pywavelets=1.3.0=py39h5d4886f_1 - pywin32=303=py39hb82d6ee_0 - - pywinpty=1.1.6=py39h99910a6_0 - - pyyaml=6.0=py39hb82d6ee_3 - - pyzmq=22.3.0=py39he46f08e_1 - - scikit-image=0.19.1=py39h2e25243_0 - - scipy=1.7.3=py39hc0c34ad_0 - - setuptools=59.8.0=py39hcbf5309_0 - - snappy=1.1.8=ha925a31_3 - - sniffio=1.2.0=py39hcbf5309_2 + - pywinpty=2.0.5=py39h99910a6_1 + - pyyaml=6.0=py39hb82d6ee_4 + - pyzmq=22.3.0=py39he46f08e_2 + - scikit-image=0.19.2=py39h2e25243_0 + - scipy=1.8.0=py39hc0c34ad_1 + - setuptools=62.1.0=py39hcbf5309_0 + - snappy=1.1.9=h82413e6_0 + - sniffio=1.2.0=py39hcbf5309_3 - sparqlwrapper=1.8.5=py39hcbf5309_1006 - - sqlite=3.37.0=h8ffe710_0 - - tbb=2021.5.0=h2d74725_0 - - terminado=0.12.1=py39hcbf5309_1 - - tk=8.6.11=h8ffe710_1 - - tornado=6.1=py39hb82d6ee_2 - - typed-ast=1.5.2=py39hb82d6ee_0 + - sqlite=3.38.5=h8ffe710_0 + - terminado=0.13.3=py39hcbf5309_1 + - tk=8.6.12=h8ffe710_0 + - tornado=6.1=py39hb82d6ee_3 - ucrt=10.0.20348.0=h57928b3_0 + - unicodedata2=14.0.0=py39hb82d6ee_1 - vc=14.2=hb210afc_6 - vs2015_runtime=14.29.30037=h902a5da_6 - - widgetsnbextension=3.5.2=py39hcbf5309_1 - - win_inet_pton=1.1.0=py39hcbf5309_3 + - widgetsnbextension=3.6.0=py39hcbf5309_0 + - win_inet_pton=1.1.0=py39hcbf5309_4 - winpty=0.4.3=4 + - xorg-libxau=1.0.9=hcd874cb_0 + - xorg-libxdmcp=1.1.3=hcd874cb_0 - xz=5.2.5=h62dcd97_1 - yaml=0.2.5=h8ffe710_2 - zeromq=4.3.4=h0e60522_1 - zfp=0.5.5=h0e60522_8 - - zlib=1.2.11=h8ffe710_1013 + - zlib=1.2.11=h8ffe710_1014 - zstd=1.5.2=h6255e5f_0 qa: locked: true @@ -519,218 +540,224 @@ env_specs: - argon2-cffi=21.3.0=pyhd8ed1ab_0 - asttokens=2.0.5=pyhd8ed1ab_0 - attrs=21.4.0=pyhd8ed1ab_0 - - babel=2.9.1=pyh44b312d_0 + - babel=2.10.1=pyhd8ed1ab_0 - backcall=0.2.0=pyh9f0ad1d_0 - backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0 - backports=1.0=py_2 - - black=21.12b0=pyhd8ed1ab_0 - - bleach=4.1.0=pyhd8ed1ab_0 - - charset-normalizer=2.0.10=pyhd8ed1ab_0 + - beautifulsoup4=4.11.1=pyha770c72_0 + - black=22.3.0=pyhd8ed1ab_0 + - bleach=5.0.0=pyhd8ed1ab_0 + - charset-normalizer=2.0.12=pyhd8ed1ab_0 - dataclasses=0.8=pyhc8e2a94_3 - decorator=5.1.1=pyhd8ed1ab_0 - defusedxml=0.7.1=pyhd8ed1ab_0 - - executing=0.8.2=pyhd8ed1ab_0 - - flake8=4.0.1=pyhd8ed1ab_1 - - flit-core=3.6.0=pyhd8ed1ab_0 + - entrypoints=0.4=pyhd8ed1ab_0 + - executing=0.8.3=pyhd8ed1ab_0 + - flake8=4.0.1=pyhd8ed1ab_2 + - flit-core=3.7.1=pyhd8ed1ab_0 - idna=3.3=pyhd8ed1ab_0 - - importlib_resources=5.4.0=pyhd8ed1ab_0 + - importlib_metadata=4.11.3=hd8ed1ab_1 + - importlib_resources=5.7.1=pyhd8ed1ab_0 - ipython_genutils=0.2.0=py_1 - isort=5.10.1=pyhd8ed1ab_0 - - jinja2=3.0.3=pyhd8ed1ab_0 + - jinja2=3.1.2=pyhd8ed1ab_0 - json5=0.9.5=pyh9f0ad1d_0 - - jsonschema=4.4.0=pyhd8ed1ab_0 - - jupyter_client=7.1.2=pyhd8ed1ab_0 - - jupyter_server=1.13.4=pyhd8ed1ab_0 - - jupyterlab=3.2.8=pyhd8ed1ab_0 - - jupyterlab_pygments=0.1.2=pyh9f0ad1d_0 - - jupyterlab_server=2.10.3=pyhd8ed1ab_0 + - jsonschema=4.5.1=pyhd8ed1ab_0 + - jupyter_client=7.3.1=pyhd8ed1ab_0 + - jupyter_server=1.17.0=pyhd8ed1ab_0 + - jupyterlab=3.4.0=pyhd8ed1ab_0 + - jupyterlab_pygments=0.2.2=pyhd8ed1ab_0 + - jupyterlab_server=2.13.0=pyhd8ed1ab_1 - matplotlib-inline=0.1.3=pyhd8ed1ab_0 - mccabe=0.6.1=py_1 - - nbclassic=0.3.5=pyhd8ed1ab_0 - - nbclient=0.5.10=pyhd8ed1ab_1 - - nbformat=5.1.3=pyhd8ed1ab_0 - - nest-asyncio=1.5.4=pyhd8ed1ab_0 - - notebook=6.4.7=pyha770c72_0 + - nbclassic=0.3.7=pyhd8ed1ab_0 + - nbclient=0.6.3=pyhd8ed1ab_0 + - nbconvert-core=6.5.0=pyhd8ed1ab_0 + - nbconvert-pandoc=6.5.0=pyhd8ed1ab_0 + - nbconvert=6.5.0=pyhd8ed1ab_0 + - nbformat=5.4.0=pyhd8ed1ab_0 + - nest-asyncio=1.5.5=pyhd8ed1ab_0 + - notebook-shim=0.1.0=pyhd8ed1ab_0 + - notebook=6.4.11=pyha770c72_0 - packaging=21.3=pyhd8ed1ab_0 - pandocfilters=1.5.0=pyhd8ed1ab_0 - parso=0.8.3=pyhd8ed1ab_0 - pathspec=0.9.0=pyhd8ed1ab_0 - - platformdirs=2.3.0=pyhd8ed1ab_0 - - prometheus_client=0.12.0=pyhd8ed1ab_0 - - prompt-toolkit=3.0.24=pyha770c72_0 + - pickleshare=0.7.5=py_1003 + - platformdirs=2.5.1=pyhd8ed1ab_0 + - prometheus_client=0.14.1=pyhd8ed1ab_0 + - prompt-toolkit=3.0.29=pyha770c72_0 - pure_eval=0.2.2=pyhd8ed1ab_0 - pycodestyle=2.8.0=pyhd8ed1ab_0 - pycparser=2.21=pyhd8ed1ab_0 - pyflakes=2.4.0=pyhd8ed1ab_0 - - pygments=2.11.2=pyhd8ed1ab_0 - - pyopenssl=21.0.0=pyhd8ed1ab_0 - - pyparsing=3.0.7=pyhd8ed1ab_0 + - pygments=2.12.0=pyhd8ed1ab_0 + - pyopenssl=22.0.0=pyhd8ed1ab_0 + - pyparsing=3.0.8=pyhd8ed1ab_0 - python-dateutil=2.8.2=pyhd8ed1ab_0 + - python-fastjsonschema=2.15.3=pyhd8ed1ab_0 - python_abi=3.9=2_cp39 - - pytz=2021.3=pyhd8ed1ab_0 + - pytz=2022.1=pyhd8ed1ab_0 - requests=2.27.1=pyhd8ed1ab_0 - send2trash=1.8.0=pyhd8ed1ab_0 - six=1.16.0=pyh6c4a22f_0 - - stack_data=0.1.4=pyhd8ed1ab_0 - - testpath=0.5.0=pyhd8ed1ab_0 - - tomli=1.2.2=pyhd8ed1ab_0 + - soupsieve=2.3.1=pyhd8ed1ab_0 + - stack_data=0.2.0=pyhd8ed1ab_0 + - tinycss2=1.1.1=pyhd8ed1ab_0 + - tomli=2.0.1=pyhd8ed1ab_0 - traitlets=5.1.1=pyhd8ed1ab_0 - - typing_extensions=4.0.1=pyha770c72_0 - - tzdata=2021e=he74cb21_0 - - urllib3=1.26.8=pyhd8ed1ab_1 + - typing_extensions=4.2.0=pyha770c72_1 + - tzdata=2022a=h191b570_0 + - urllib3=1.26.9=pyhd8ed1ab_0 - wcwidth=0.2.5=pyh9f0ad1d_2 - webencodings=0.5.1=py_1 - - websocket-client=1.2.3=pyhd8ed1ab_0 - - zipp=3.7.0=pyhd8ed1ab_0 + - websocket-client=1.3.2=pyhd8ed1ab_0 + - zipp=3.8.0=pyhd8ed1ab_0 unix: - - entrypoints=0.3=pyhd8ed1ab_1003 - pexpect=4.8.0=pyh9f0ad1d_2 - - pickleshare=0.7.5=py_1003 - ptyprocess=0.7.0=pyhd3deb0d_0 linux-64: - _libgcc_mutex=0.1=conda_forge - - _openmp_mutex=4.5=1_gnu + - _openmp_mutex=4.5=2_gnu - anyio=3.5.0=py39hf3d152e_0 - - argon2-cffi-bindings=21.2.0=py39h3811e60_1 - - brotlipy=0.7.0=py39h3811e60_1003 + - argon2-cffi-bindings=21.2.0=py39hb9d737c_2 + - brotlipy=0.7.0=py39hb9d737c_1004 - bzip2=1.0.8=h7f98852_4 - ca-certificates=2021.10.8=ha878542_0 - - certifi=2021.10.8=py39hf3d152e_1 + - certifi=2021.10.8=py39hf3d152e_2 - cffi=1.15.0=py39h4bc2ebd_0 - - click=8.0.3=py39hf3d152e_1 - - cryptography=36.0.1=py39h95dcef6_0 - - debugpy=1.5.1=py39he80948d_0 + - click=8.1.3=py39hf3d152e_0 + - cryptography=36.0.2=py39hd97740a_1 + - debugpy=1.6.0=py39h5a03fae_0 - icu=68.2=h9c3ff4c_0 - - importlib-metadata=4.2.0=py39hf3d152e_0 - - ipykernel=6.7.0=py39hef51801_0 - - ipython=8.0.1=py39hf3d152e_0 - - jedi=0.18.1=py39hf3d152e_0 - - jupyter_core=4.9.1=py39hf3d152e_1 + - importlib-metadata=4.11.3=py39hf3d152e_1 + - ipykernel=6.13.0=py39hef51801_0 + - ipython=8.3.0=py39hf3d152e_0 + - jedi=0.18.1=py39hf3d152e_1 + - jupyter_core=4.9.2=py39hf3d152e_0 - ld_impl_linux-64=2.36.1=hea4e1c9_2 - libffi=3.4.2=h7f98852_5 - - libgcc-ng=11.2.0=h1d223b6_11 - - libgomp=11.2.0=h1d223b6_11 + - libgcc-ng=11.2.0=h1d223b6_16 + - libgomp=11.2.0=h1d223b6_16 - libnsl=2.0.0=h7f98852_0 - libsodium=1.0.18=h36c2ea0_1 - - libstdcxx-ng=11.2.0=he4da1e4_11 + - libstdcxx-ng=11.2.0=he4da1e4_16 - libuuid=2.32.1=h7f98852_1000 - libuv=1.42.0=h7f98852_0 - - libzlib=1.2.11=h36c2ea0_1013 - - markupsafe=2.0.1=py39h3811e60_1 + - libzlib=1.2.11=h166bdaf_1014 + - markupsafe=2.1.1=py39hb9d737c_1 - mistune=0.8.4=py39h3811e60_1005 - - mypy_extensions=0.4.3=py39hf3d152e_4 - - nbconvert=6.4.0=py39hf3d152e_0 - - ncurses=6.3=h9c3ff4c_0 + - mypy_extensions=0.4.3=py39hf3d152e_5 + - ncurses=6.3=h27087fc_1 - nodejs=12.22.6=h8b53aa1_0 - - openssl=1.1.1l=h7f98852_0 - - pandoc=2.17.0.1=h7f98852_0 - - pyrsistent=0.18.1=py39h3811e60_0 - - pysocks=1.7.1=py39hf3d152e_4 - - python=3.9.9=h62f1059_0_cpython - - pyzmq=22.3.0=py39h37b5a0c_1 + - openssl=1.1.1o=h166bdaf_0 + - pandoc=2.18=ha770c72_0 + - psutil=5.9.0=py39hb9d737c_1 + - pyrsistent=0.18.1=py39hb9d737c_1 + - pysocks=1.7.1=py39hf3d152e_5 + - python=3.9.12=h9a8a25e_1_cpython + - pyzmq=22.3.0=py39headdf64_2 - readline=8.1=h46c0cb4_0 - - setuptools=60.5.0=py39hf3d152e_0 - - sniffio=1.2.0=py39hf3d152e_2 - - sqlite=3.37.0=h9cd32fc_0 - - terminado=0.12.1=py39hf3d152e_1 - - tk=8.6.11=h27826a3_1 - - tornado=6.1=py39h3811e60_2 - - typed-ast=1.5.1=py39h3811e60_0 + - setuptools=62.1.0=py39hf3d152e_0 + - sniffio=1.2.0=py39hf3d152e_3 + - sqlite=3.38.5=h4ff8645_0 + - terminado=0.13.3=py39hf3d152e_1 + - tk=8.6.12=h27826a3_0 + - tornado=6.1=py39hb9d737c_3 + - typed-ast=1.5.3=py39hb9d737c_0 - xz=5.2.5=h516909a_1 - zeromq=4.3.4=h9c3ff4c_1 - - zlib=1.2.11=h36c2ea0_1013 + - zlib=1.2.11=h166bdaf_1014 osx-64: - anyio=3.5.0=py39h6e9494a_0 - - appnope=0.1.2=py39h6e9494a_2 - - argon2-cffi-bindings=21.2.0=py39h89e85a6_1 - - brotlipy=0.7.0=py39h89e85a6_1003 + - appnope=0.1.3=pyhd8ed1ab_0 + - argon2-cffi-bindings=21.2.0=py39h63b48b0_2 + - brotlipy=0.7.0=py39h63b48b0_1004 - bzip2=1.0.8=h0d85af4_4 - ca-certificates=2021.10.8=h033912b_0 - - certifi=2021.10.8=py39h6e9494a_1 + - certifi=2021.10.8=py39h6e9494a_2 - cffi=1.15.0=py39he338e87_0 - - click=8.0.3=py39h6e9494a_1 - - cryptography=36.0.1=py39h209aa08_0 - - debugpy=1.5.1=py39h9fcab8e_0 + - click=8.1.3=py39h6e9494a_0 + - cryptography=36.0.2=py39h1644bb1_1 + - debugpy=1.6.0=py39hfd1d529_0 - icu=68.2=he49afe7_0 - - importlib-metadata=4.2.0=py39h6e9494a_0 - - ipykernel=6.7.0=py39h71a6800_0 - - ipython=8.0.1=py39h6e9494a_0 - - jedi=0.18.1=py39h6e9494a_0 - - jupyter_core=4.9.1=py39h6e9494a_1 - - libcxx=12.0.1=habf9029_1 + - importlib-metadata=4.11.3=py39h6e9494a_1 + - ipykernel=6.13.0=py39h71a6800_0 + - ipython=8.3.0=py39h6e9494a_0 + - jedi=0.18.1=py39h6e9494a_1 + - jupyter_core=4.9.2=py39h6e9494a_0 + - libcxx=14.0.3=hc203e6f_0 - libffi=3.4.2=h0d85af4_5 - libsodium=1.0.18=hbcb3906_1 - libuv=1.42.0=h0d85af4_0 - - libzlib=1.2.11=h9173be1_1013 - - markupsafe=2.0.1=py39h89e85a6_1 + - libzlib=1.2.11=h6c3fc93_1014 + - markupsafe=2.1.1=py39h63b48b0_1 - mistune=0.8.4=py39h89e85a6_1005 - - mypy_extensions=0.4.3=py39h6e9494a_4 - - nbconvert=6.4.0=py39h6e9494a_0 - - ncurses=6.3=he49afe7_0 + - mypy_extensions=0.4.3=py39h6e9494a_5 + - ncurses=6.3=h96cf925_1 - nodejs=12.22.6=hf294227_0 - - openssl=1.1.1l=h0d85af4_0 - - pandoc=2.17.0.1=h0d85af4_0 - - pyrsistent=0.18.1=py39h89e85a6_0 - - pysocks=1.7.1=py39h6e9494a_4 - - python=3.9.9=h1248fe1_0_cpython - - pyzmq=22.3.0=py39h7fec2f1_1 + - openssl=1.1.1o=hfe4f2af_0 + - pandoc=2.18=h694c41f_0 + - psutil=5.9.0=py39h63b48b0_1 + - pyrsistent=0.18.1=py39h63b48b0_1 + - pysocks=1.7.1=py39h6e9494a_5 + - python=3.9.12=h8b4d769_1_cpython + - pyzmq=22.3.0=py39hc2dc7ec_2 - readline=8.1=h05e3726_0 - - setuptools=60.5.0=py39h6e9494a_0 - - sniffio=1.2.0=py39h6e9494a_2 - - sqlite=3.37.0=h23a322b_0 - - terminado=0.12.1=py39h6e9494a_1 - - tk=8.6.11=h5dbffcc_1 - - tornado=6.1=py39h89e85a6_2 - - typed-ast=1.5.1=py39h89e85a6_0 + - setuptools=62.1.0=py39h6e9494a_0 + - sniffio=1.2.0=py39h6e9494a_3 + - sqlite=3.38.5=hd9f0692_0 + - terminado=0.13.3=py39h6e9494a_1 + - tk=8.6.12=h5dbffcc_0 + - tornado=6.1=py39h63b48b0_3 + - typed-ast=1.5.3=py39h63b48b0_0 - xz=5.2.5=haf1e3a3_1 - zeromq=4.3.4=he49afe7_1 - - zlib=1.2.11=h9173be1_1013 + - zlib=1.2.11=h6c3fc93_1014 win-64: - anyio=3.5.0=py39hcbf5309_0 - - argon2-cffi-bindings=21.2.0=py39hb82d6ee_1 - - brotlipy=0.7.0=py39hb82d6ee_1003 + - argon2-cffi-bindings=21.2.0=py39hb82d6ee_2 + - brotlipy=0.7.0=py39hb82d6ee_1004 - bzip2=1.0.8=h8ffe710_4 - ca-certificates=2021.10.8=h5b45459_0 - - certifi=2021.10.8=py39hcbf5309_1 + - certifi=2021.10.8=py39hcbf5309_2 - cffi=1.15.0=py39h0878f49_0 - - click=8.0.3=py39hcbf5309_1 + - click=8.1.3=py39hcbf5309_0 - colorama=0.4.4=pyh9f0ad1d_0 - - cryptography=36.0.1=py39h7bc7c5c_0 - - debugpy=1.5.1=py39h415ef7b_0 - - entrypoints=0.3=py39hde42818_1002 - - importlib-metadata=4.2.0=py39hcbf5309_0 - - ipykernel=6.7.0=py39h832f523_0 - - ipython=8.0.1=py39hcbf5309_0 - - jedi=0.18.1=py39hcbf5309_0 - - jupyter_core=4.9.1=py39hcbf5309_1 + - cryptography=36.0.2=py39h7bc7c5c_1 + - debugpy=1.6.0=py39h415ef7b_0 + - importlib-metadata=4.11.3=py39hcbf5309_1 + - ipykernel=6.13.0=py39h832f523_0 + - ipython=8.3.0=py39hcbf5309_0 + - jedi=0.18.1=py39hcbf5309_1 + - jupyter_core=4.9.2=py39hcbf5309_0 - libffi=3.4.2=h8ffe710_5 - libsodium=1.0.18=h8d14728_1 - - libzlib=1.2.11=h8ffe710_1013 - - markupsafe=2.0.1=py39hb82d6ee_1 + - libzlib=1.2.11=h8ffe710_1014 + - markupsafe=2.1.1=py39hb82d6ee_1 - mistune=0.8.4=py39hb82d6ee_1005 - - mypy_extensions=0.4.3=py39hcbf5309_4 - - nbconvert=6.4.0=py39hcbf5309_0 + - mypy_extensions=0.4.3=py39hcbf5309_5 - nodejs=12.22.6=h57928b3_0 - - openssl=1.1.1l=h8ffe710_0 - - pandoc=2.17.0.1=h8ffe710_0 - - pickleshare=0.7.5=py39hde42818_1002 - - pyrsistent=0.18.1=py39hb82d6ee_0 - - pysocks=1.7.1=py39hcbf5309_4 - - python=3.9.9=h9a09f29_0_cpython + - openssl=1.1.1o=h8ffe710_0 + - pandoc=2.18=h57928b3_0 + - psutil=5.9.0=py39hb82d6ee_1 + - pyrsistent=0.18.1=py39hb82d6ee_1 + - pysocks=1.7.1=py39hcbf5309_5 + - python=3.9.12=h9a09f29_1_cpython - pywin32=303=py39hb82d6ee_0 - - pywinpty=1.1.6=py39h99910a6_0 - - pyzmq=22.3.0=py39he46f08e_1 - - setuptools=60.5.0=py39hcbf5309_0 - - sniffio=1.2.0=py39hcbf5309_2 - - sqlite=3.37.0=h8ffe710_0 - - terminado=0.12.1=py39hcbf5309_1 - - tk=8.6.11=h8ffe710_1 - - tornado=6.1=py39hb82d6ee_2 - - typed-ast=1.5.1=py39hb82d6ee_0 + - pywinpty=2.0.5=py39h99910a6_1 + - pyzmq=22.3.0=py39he46f08e_2 + - setuptools=62.1.0=py39hcbf5309_0 + - sniffio=1.2.0=py39hcbf5309_3 + - sqlite=3.38.5=h8ffe710_0 + - terminado=0.13.3=py39hcbf5309_1 + - tk=8.6.12=h8ffe710_0 + - tornado=6.1=py39hb82d6ee_3 + - typed-ast=1.5.3=py39hb82d6ee_0 - ucrt=10.0.20348.0=h57928b3_0 - vc=14.2=hb210afc_6 - vs2015_runtime=14.29.30037=h902a5da_6 - - win_inet_pton=1.1.0=py39hcbf5309_3 + - win_inet_pton=1.1.0=py39hcbf5309_4 - winpty=0.4.3=4 - xz=5.2.5=h62dcd97_1 - zeromq=4.3.4=h0e60522_1 @@ -743,132 +770,139 @@ env_specs: - win-64 packages: all: - - bleach=4.1.0=pyhd8ed1ab_0 - - charset-normalizer=2.0.10=pyhd8ed1ab_0 + - bleach=5.0.0=pyhd8ed1ab_0 + - charset-normalizer=2.0.12=pyhd8ed1ab_0 - colorama=0.4.4=pyh9f0ad1d_0 + - commonmark=0.9.1=py_0 + - dataclasses=0.8=pyhc8e2a94_3 - idna=3.3=pyhd8ed1ab_0 - - importlib_metadata=4.10.1=hd8ed1ab_0 + - importlib_metadata=4.11.3=hd8ed1ab_1 - packaging=21.3=pyhd8ed1ab_0 - - pip=21.3.1=pyhd8ed1ab_0 + - pip=22.0.4=pyhd8ed1ab_0 - pkginfo=1.8.2=pyhd8ed1ab_0 - pycparser=2.21=pyhd8ed1ab_0 - - pygments=2.11.2=pyhd8ed1ab_0 - - pyopenssl=21.0.0=pyhd8ed1ab_0 - - pyparsing=3.0.7=pyhd8ed1ab_0 + - pygments=2.12.0=pyhd8ed1ab_0 + - pyopenssl=22.0.0=pyhd8ed1ab_0 + - pyparsing=3.0.8=pyhd8ed1ab_0 - python_abi=3.9=2_cp39 - - readme_renderer=27.0=pyh9f0ad1d_0 + - readme_renderer=35.0=pyhd8ed1ab_0 - requests-toolbelt=0.9.1=py_0 - requests=2.27.1=pyhd8ed1ab_0 - rfc3986=2.0.0=pyhd8ed1ab_0 + - rich=12.4.1=pyhd8ed1ab_0 - six=1.16.0=pyh6c4a22f_0 - - tqdm=4.62.3=pyhd8ed1ab_0 - - twine=3.7.1=pyhd8ed1ab_0 - - tzdata=2021e=he74cb21_0 - - urllib3=1.26.8=pyhd8ed1ab_1 + - tqdm=4.64.0=pyhd8ed1ab_0 + - twine=4.0.0=pyhd8ed1ab_0 + - typing_extensions=4.2.0=pyha770c72_1 + - tzdata=2022a=h191b570_0 + - urllib3=1.26.9=pyhd8ed1ab_0 - webencodings=0.5.1=py_1 - wheel=0.37.1=pyhd8ed1ab_0 - - zipp=3.7.0=pyhd8ed1ab_0 + - zipp=3.8.0=pyhd8ed1ab_0 linux-64: - _libgcc_mutex=0.1=conda_forge - - _openmp_mutex=4.5=1_gnu - - brotlipy=0.7.0=py39h3811e60_1003 + - _openmp_mutex=4.5=2_gnu + - brotlipy=0.7.0=py39hb9d737c_1004 - bzip2=1.0.8=h7f98852_4 - ca-certificates=2021.10.8=ha878542_0 - - certifi=2021.10.8=py39hf3d152e_1 + - certifi=2021.10.8=py39hf3d152e_2 - cffi=1.15.0=py39h4bc2ebd_0 - - cmarkgfm=0.7.0=py39h3811e60_0 - - conda-package-handling=1.7.3=py39h3811e60_1 - - conda=4.11.0=py39hf3d152e_0 - - cryptography=36.0.1=py39h95dcef6_0 + - cmarkgfm=0.8.0=py39hb9d737c_1 + - conda-package-handling=1.8.1=py39hb9d737c_1 + - conda=4.12.0=py39hf3d152e_0 + - cryptography=36.0.2=py39hd97740a_1 - dbus=1.13.6=h5008d03_3 - - docutils=0.18.1=py39hf3d152e_0 - - expat=2.4.3=h9c3ff4c_0 + - docutils=0.18.1=py39hf3d152e_1 + - expat=2.4.8=h27087fc_0 + - future=0.18.2=py39hf3d152e_5 - gettext=0.19.8.1=h73d1719_1008 - - importlib-metadata=4.10.1=py39hf3d152e_0 - - jeepney=0.7.1=pyhd8ed1ab_0 - - keyring=23.4.0=py39hf3d152e_0 + - importlib-metadata=4.11.3=py39hf3d152e_1 + - jeepney=0.8.0=pyhd8ed1ab_0 + - keyring=23.4.0=py39hf3d152e_2 - ld_impl_linux-64=2.36.1=hea4e1c9_2 - libffi=3.4.2=h7f98852_5 - - libgcc-ng=11.2.0=h1d223b6_11 - - libglib=2.70.2=h174f98d_1 - - libgomp=11.2.0=h1d223b6_11 + - libgcc-ng=11.2.0=h1d223b6_16 + - libglib=2.70.2=h174f98d_4 + - libgomp=11.2.0=h1d223b6_16 - libiconv=1.16=h516909a_0 - libnsl=2.0.0=h7f98852_0 - - libstdcxx-ng=11.2.0=he4da1e4_11 + - libstdcxx-ng=11.2.0=he4da1e4_16 - libuuid=2.32.1=h7f98852_1000 - - libzlib=1.2.11=h36c2ea0_1013 - - ncurses=6.3=h9c3ff4c_0 - - openssl=1.1.1l=h7f98852_0 + - libzlib=1.2.11=h166bdaf_1014 + - ncurses=6.3=h27087fc_1 + - openssl=1.1.1o=h166bdaf_0 - pcre=8.45=h9c3ff4c_0 - - pycosat=0.6.3=py39h3811e60_1009 - - pysocks=1.7.1=py39hf3d152e_4 - - python=3.9.9=h62f1059_0_cpython + - pycosat=0.6.3=py39hb9d737c_1010 + - pysocks=1.7.1=py39hf3d152e_5 + - python=3.9.12=h9a8a25e_1_cpython - readline=8.1=h46c0cb4_0 - ruamel_yaml=0.15.80=py39h3811e60_1006 - - secretstorage=3.3.1=py39hf3d152e_1 - - setuptools=60.5.0=py39hf3d152e_0 - - sqlite=3.37.0=h9cd32fc_0 - - tk=8.6.11=h27826a3_1 + - secretstorage=3.3.2=py39hf3d152e_1 + - setuptools=62.1.0=py39hf3d152e_0 + - sqlite=3.38.5=h4ff8645_0 + - tk=8.6.12=h27826a3_0 - xz=5.2.5=h516909a_1 - yaml=0.2.5=h7f98852_2 - - zlib=1.2.11=h36c2ea0_1013 + - zlib=1.2.11=h166bdaf_1014 osx-64: - - brotlipy=0.7.0=py39h89e85a6_1003 + - brotlipy=0.7.0=py39h63b48b0_1004 - bzip2=1.0.8=h0d85af4_4 - ca-certificates=2021.10.8=h033912b_0 - - certifi=2021.10.8=py39h6e9494a_1 + - certifi=2021.10.8=py39h6e9494a_2 - cffi=1.15.0=py39he338e87_0 - - cmarkgfm=0.7.0=py39h89e85a6_0 - - conda-package-handling=1.7.3=py39h89e85a6_1 - - conda=4.11.0=py39h6e9494a_0 - - cryptography=36.0.1=py39h209aa08_0 - - docutils=0.18.1=py39h6e9494a_0 - - importlib-metadata=4.10.1=py39h6e9494a_0 - - keyring=23.4.0=py39h6e9494a_0 + - cmarkgfm=0.8.0=py39h63b48b0_1 + - conda-package-handling=1.8.1=py39h63b48b0_1 + - conda=4.12.0=py39h6e9494a_0 + - cryptography=36.0.2=py39h1644bb1_1 + - docutils=0.18.1=py39h6e9494a_1 + - future=0.18.2=py39h6e9494a_5 + - importlib-metadata=4.11.3=py39h6e9494a_1 + - keyring=23.4.0=py39h6e9494a_2 - libffi=3.4.2=h0d85af4_5 - - libzlib=1.2.11=h9173be1_1013 - - ncurses=6.3=he49afe7_0 - - openssl=1.1.1l=h0d85af4_0 - - pycosat=0.6.3=py39h89e85a6_1009 - - pysocks=1.7.1=py39h6e9494a_4 - - python=3.9.9=h1248fe1_0_cpython + - libzlib=1.2.11=h6c3fc93_1014 + - ncurses=6.3=h96cf925_1 + - openssl=1.1.1o=hfe4f2af_0 + - pycosat=0.6.3=py39h63b48b0_1010 + - pysocks=1.7.1=py39h6e9494a_5 + - python=3.9.12=h8b4d769_1_cpython - readline=8.1=h05e3726_0 - ruamel_yaml=0.15.80=py39h89e85a6_1006 - - setuptools=60.5.0=py39h6e9494a_0 - - sqlite=3.37.0=h23a322b_0 - - tk=8.6.11=h5dbffcc_1 + - setuptools=62.1.0=py39h6e9494a_0 + - sqlite=3.38.5=hd9f0692_0 + - tk=8.6.12=h5dbffcc_0 - xz=5.2.5=haf1e3a3_1 - yaml=0.2.5=h0d85af4_2 - - zlib=1.2.11=h9173be1_1013 + - zlib=1.2.11=h6c3fc93_1014 win-64: - - brotlipy=0.7.0=py39hb82d6ee_1003 + - brotlipy=0.7.0=py39hb82d6ee_1004 - bzip2=1.0.8=h8ffe710_4 - ca-certificates=2021.10.8=h5b45459_0 - - certifi=2021.10.8=py39hcbf5309_1 + - certifi=2021.10.8=py39hcbf5309_2 - cffi=1.15.0=py39h0878f49_0 - - cmarkgfm=0.7.0=py39hb82d6ee_0 - - conda-package-handling=1.7.3=py39hb3671d1_1 - - conda=4.11.0=py39hcbf5309_0 - - cryptography=36.0.1=py39h7bc7c5c_0 - - docutils=0.18.1=py39hcbf5309_0 - - importlib-metadata=4.10.1=py39hcbf5309_0 - - keyring=23.4.0=py39hcbf5309_0 + - cmarkgfm=0.8.0=py39hb82d6ee_1 + - conda-package-handling=1.8.1=py39hb3671d1_1 + - conda=4.12.0=py39hcbf5309_0 + - cryptography=36.0.2=py39h7bc7c5c_1 + - docutils=0.18.1=py39hcbf5309_1 + - future=0.18.2=py39hcbf5309_5 + - importlib-metadata=4.11.3=py39hcbf5309_1 + - keyring=23.4.0=py39hcbf5309_2 - libffi=3.4.2=h8ffe710_5 - - libzlib=1.2.11=h8ffe710_1013 + - libzlib=1.2.11=h8ffe710_1014 - menuinst=1.4.18=py39hcbf5309_1 - - openssl=1.1.1l=h8ffe710_0 - - pycosat=0.6.3=py39hb82d6ee_1009 - - pysocks=1.7.1=py39hcbf5309_4 - - python=3.9.9=h9a09f29_0_cpython - - pywin32-ctypes=0.2.0=py39hcbf5309_1004 + - openssl=1.1.1o=h8ffe710_0 + - pycosat=0.6.3=py39hb82d6ee_1010 + - pysocks=1.7.1=py39hcbf5309_5 + - python=3.9.12=h9a09f29_1_cpython + - pywin32-ctypes=0.2.0=py39hcbf5309_1005 - pywin32=303=py39hb82d6ee_0 - ruamel_yaml=0.15.80=py39hb82d6ee_1006 - - setuptools=60.5.0=py39hcbf5309_0 - - sqlite=3.37.0=h8ffe710_0 - - tk=8.6.11=h8ffe710_1 + - setuptools=62.1.0=py39hcbf5309_0 + - sqlite=3.38.5=h8ffe710_0 + - tk=8.6.12=h8ffe710_0 - ucrt=10.0.20348.0=h57928b3_0 - vc=14.2=hb210afc_6 - vs2015_runtime=14.29.30037=h902a5da_6 - - win_inet_pton=1.1.0=py39hcbf5309_3 + - win_inet_pton=1.1.0=py39hcbf5309_4 - xz=5.2.5=h62dcd97_1 - yaml=0.2.5=h8ffe710_2 From da0e2acc32a18929aa68be2db463f3938960c708 Mon Sep 17 00:00:00 2001 From: Welz Date: Tue, 10 May 2022 16:14:06 -0400 Subject: [PATCH 04/17] GH-125: Patch minor bugs in converter --- examples/InteractiveViewer.ipynb | 2 +- examples/RDF_to_NX_Custom.ipynb | 16 ++++++++++++---- index.ipynb | 2 +- src/ipyradiant/rdf2nx/converter.py | 4 ++-- src/ipyradiant/tests/test_rdf2nx.py | 5 ++++- 5 files changed, 20 insertions(+), 9 deletions(-) diff --git a/examples/InteractiveViewer.ipynb b/examples/InteractiveViewer.ipynb index f627131..c59891f 100644 --- a/examples/InteractiveViewer.ipynb +++ b/examples/InteractiveViewer.ipynb @@ -133,7 +133,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.9" + "version": "3.9.12" } }, "nbformat": 4, diff --git a/examples/RDF_to_NX_Custom.ipynb b/examples/RDF_to_NX_Custom.ipynb index 8722976..eb81ce6 100644 --- a/examples/RDF_to_NX_Custom.ipynb +++ b/examples/RDF_to_NX_Custom.ipynb @@ -272,7 +272,9 @@ "visualize and inspect an LPG graph.\n", "\n", "> Note: the option to remove disconnected nodes will be enabled on ticket\n", - "> [#110](https://github.com/jupyrdf/ipyradiant/issues/110)" + "> [#110](https://github.com/jupyrdf/ipyradiant/issues/110)\n", + "\n", + "> TODO: Use a better CONSTRUCTed graph" ] }, { @@ -281,11 +283,17 @@ "metadata": {}, "outputs": [], "source": [ + "from rdflib import Graph\n", + "\n", "from ipyradiant.visualization import InteractiveViewer\n", "\n", - "iv = InteractiveViewer()\n", + "iv = InteractiveViewer(allow_large_graphs=True)\n", "iv._rdf_converter = RDF2NX\n", - "iv.rdf_graph = lw.graph\n", + "\n", + "# sample graph for visualization limitation\n", + "sgraph = Graph()\n", + "[sgraph.add(triple) for triple in list(lw.graph)[0:500]]\n", + "iv.rdf_graph = sgraph\n", "iv" ] }, @@ -317,7 +325,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.9" + "version": "3.9.12" } }, "nbformat": 4, diff --git a/index.ipynb b/index.ipynb index 71bc69e..92d88ae 100644 --- a/index.ipynb +++ b/index.ipynb @@ -72,7 +72,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.9" + "version": "3.9.12" } }, "nbformat": 4, diff --git a/src/ipyradiant/rdf2nx/converter.py b/src/ipyradiant/rdf2nx/converter.py index 3a502fb..d90d705 100644 --- a/src/ipyradiant/rdf2nx/converter.py +++ b/src/ipyradiant/rdf2nx/converter.py @@ -125,8 +125,8 @@ def transform_nodes( if node_iris is None: # TODO paginate (LIMIT+OFFSET) for batch processing? - # node_iris = list(cls.query_manager(cls.node_iris, rdf_graph)["iri"]) - node_iris = list(rdf_graph.subjects()) + node_iris = list(cls.query_manager(cls.node_iris, rdf_graph)["iri"]) + # node_iris = list(rdf_graph.subjects()) for node_iri in node_iris: # TODO this isn't actually used (should it be?) diff --git a/src/ipyradiant/tests/test_rdf2nx.py b/src/ipyradiant/tests/test_rdf2nx.py index 933b2c5..59d8cbc 100644 --- a/src/ipyradiant/tests/test_rdf2nx.py +++ b/src/ipyradiant/tests/test_rdf2nx.py @@ -104,7 +104,10 @@ def test_rdf2nx_custom(example_ns, SCHEMA, simple_rdf_graph): namespaces = {"schema": SCHEMA, "ex": example_ns, "base": example_ns} # Note: we are replacing the default behavior - RDF2NX.node_iris = [CustomNodeIRIs1, CustomNodeIRIs2] + RDF2NX.node_iris = [ + CustomNodeIRIs1, + CustomNodeIRIs2, + ] RDF2NX.node_properties = CustomNodeProperties # Note: the expected results are only the Protagonist, and for them to have From 6165d0cb06a4782ac362ab19eebf8a91756d2db5 Mon Sep 17 00:00:00 2001 From: Welz Date: Tue, 10 May 2022 16:16:32 -0400 Subject: [PATCH 05/17] GH-125: Specify new doit --- .ci/environment.yml | 2 +- CONTRIBUTING.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.ci/environment.yml b/.ci/environment.yml index 5995dd2..35b986c 100644 --- a/.ci/environment.yml +++ b/.ci/environment.yml @@ -7,7 +7,7 @@ channels: dependencies: - anaconda-project - conda - - doit + - doit >=0.36 - pip - python >=3.9,<3.10 - twine diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c6e7b05..6e198c6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,7 +20,7 @@ - install `anaconda-project` and `doit` into the `base` env ```bat -mamba install -c conda-forge anaconda-project=0.8.4 doit=0.32 +mamba install -c conda-forge anaconda-project=0.8.4 doit=0.36 ``` or, use the same base environment as CI: From 2a326ab972340548f7ed888494fdade1b375cfa7 Mon Sep 17 00:00:00 2001 From: Welz Date: Tue, 10 May 2022 21:14:16 -0400 Subject: [PATCH 06/17] GH-125: Try unstable PR --- .ci/environment.yml | 1 + src/ipyradiant/rdf2nx/converter.py | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/environment.yml b/.ci/environment.yml index 35b986c..eda765e 100644 --- a/.ci/environment.yml +++ b/.ci/environment.yml @@ -9,6 +9,7 @@ dependencies: - conda - doit >=0.36 - pip + - git+https://github.com/jvesely/cloudpickle.git@master - python >=3.9,<3.10 - twine - mamba diff --git a/src/ipyradiant/rdf2nx/converter.py b/src/ipyradiant/rdf2nx/converter.py index d90d705..e03122c 100644 --- a/src/ipyradiant/rdf2nx/converter.py +++ b/src/ipyradiant/rdf2nx/converter.py @@ -126,7 +126,6 @@ def transform_nodes( if node_iris is None: # TODO paginate (LIMIT+OFFSET) for batch processing? node_iris = list(cls.query_manager(cls.node_iris, rdf_graph)["iri"]) - # node_iris = list(rdf_graph.subjects()) for node_iri in node_iris: # TODO this isn't actually used (should it be?) From d33a36427002912c70146cbc675d676e5e864d03 Mon Sep 17 00:00:00 2001 From: Welz Date: Tue, 10 May 2022 21:20:40 -0400 Subject: [PATCH 07/17] GH-125: Try something --- .ci/environment.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.ci/environment.yml b/.ci/environment.yml index eda765e..6b90c26 100644 --- a/.ci/environment.yml +++ b/.ci/environment.yml @@ -2,14 +2,13 @@ name: ipyradiant-base channels: - https://conda.anaconda.org/conda-forge - - nodefaults dependencies: - anaconda-project - conda - doit >=0.36 - pip - - git+https://github.com/jvesely/cloudpickle.git@master + - git+https://github.com/jvesely/cloudpickle.git - python >=3.9,<3.10 - twine - mamba From 7f90c40b3692597217795a7f8c17027ad5a66da0 Mon Sep 17 00:00:00 2001 From: Welz Date: Tue, 10 May 2022 21:23:09 -0400 Subject: [PATCH 08/17] GH-125: Found it --- .ci/environment.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.ci/environment.yml b/.ci/environment.yml index 6b90c26..89f8a77 100644 --- a/.ci/environment.yml +++ b/.ci/environment.yml @@ -8,7 +8,8 @@ dependencies: - conda - doit >=0.36 - pip - - git+https://github.com/jvesely/cloudpickle.git + - pip: + - git+https://github.com/jvesely/cloudpickle.git@master - python >=3.9,<3.10 - twine - mamba From 991657b5a1bd8555ed2640b1bd989f2c7211d487 Mon Sep 17 00:00:00 2001 From: Welz Date: Tue, 10 May 2022 21:43:54 -0400 Subject: [PATCH 09/17] GH-125: Try something --- .ci/environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/environment.yml b/.ci/environment.yml index 89f8a77..2777b48 100644 --- a/.ci/environment.yml +++ b/.ci/environment.yml @@ -9,7 +9,7 @@ dependencies: - doit >=0.36 - pip - pip: - - git+https://github.com/jvesely/cloudpickle.git@master + - git+https://github.com/jvesely/cloudpickle.git - python >=3.9,<3.10 - twine - mamba From 94152268f350b61a67683ad9c90739a9e9427f25 Mon Sep 17 00:00:00 2001 From: Welz Date: Wed, 11 May 2022 08:21:22 -0400 Subject: [PATCH 10/17] GH-125: Try something --- .ci/environment.yml | 2 +- CONTRIBUTING.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.ci/environment.yml b/.ci/environment.yml index 2777b48..34d3e5e 100644 --- a/.ci/environment.yml +++ b/.ci/environment.yml @@ -6,7 +6,7 @@ channels: dependencies: - anaconda-project - conda - - doit >=0.36 + - doit =0.32 - pip - pip: - git+https://github.com/jvesely/cloudpickle.git diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6e198c6..c6e7b05 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,7 +20,7 @@ - install `anaconda-project` and `doit` into the `base` env ```bat -mamba install -c conda-forge anaconda-project=0.8.4 doit=0.36 +mamba install -c conda-forge anaconda-project=0.8.4 doit=0.32 ``` or, use the same base environment as CI: From 94a99a924162b326c6daca353418a8ba5db9f1b0 Mon Sep 17 00:00:00 2001 From: Welz Date: Wed, 11 May 2022 08:29:22 -0400 Subject: [PATCH 11/17] GH-125: Try something --- .ci/environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/environment.yml b/.ci/environment.yml index 34d3e5e..2fbbfe6 100644 --- a/.ci/environment.yml +++ b/.ci/environment.yml @@ -6,7 +6,7 @@ channels: dependencies: - anaconda-project - conda - - doit =0.32 + - doit - pip - pip: - git+https://github.com/jvesely/cloudpickle.git From 4644c98ae720983614dcc6e17e8423969a2d6d60 Mon Sep 17 00:00:00 2001 From: Welz Date: Wed, 11 May 2022 08:56:04 -0400 Subject: [PATCH 12/17] GH-125: Update env --- .ci/environment.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.ci/environment.yml b/.ci/environment.yml index 2fbbfe6..173f845 100644 --- a/.ci/environment.yml +++ b/.ci/environment.yml @@ -2,14 +2,15 @@ name: ipyradiant-base channels: - https://conda.anaconda.org/conda-forge + - nodefaults dependencies: - - anaconda-project - - conda + - anaconda-project =0.8.4 + - conda >=4.12 - doit - pip - pip: - - git+https://github.com/jvesely/cloudpickle.git + - git+https://github.com/jvesely/cloudpickle.git@master - python >=3.9,<3.10 - twine - mamba From 2a77f83232558c9f0acd2d38273763327dd1eb89 Mon Sep 17 00:00:00 2001 From: Welz Date: Wed, 11 May 2022 09:15:42 -0400 Subject: [PATCH 13/17] GH-125: Update env --- .ci/environment.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.ci/environment.yml b/.ci/environment.yml index 173f845..7c159ad 100644 --- a/.ci/environment.yml +++ b/.ci/environment.yml @@ -5,12 +5,12 @@ channels: - nodefaults dependencies: - - anaconda-project =0.8.4 - - conda >=4.12 + - anaconda-project =0.10.2 + - conda =4.11.0 - doit - pip - pip: - git+https://github.com/jvesely/cloudpickle.git@master - python >=3.9,<3.10 - twine - - mamba + - mamba =0.21.0 From b6c9b272fba6d36b4825811d0f7fdf80caede43a Mon Sep 17 00:00:00 2001 From: Welz Date: Wed, 11 May 2022 09:34:13 -0400 Subject: [PATCH 14/17] GH-125: Update env --- .ci/environment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.ci/environment.yml b/.ci/environment.yml index 7c159ad..12bb66a 100644 --- a/.ci/environment.yml +++ b/.ci/environment.yml @@ -7,10 +7,10 @@ channels: dependencies: - anaconda-project =0.10.2 - conda =4.11.0 - - doit + - doit =0.34.1 - pip - pip: - git+https://github.com/jvesely/cloudpickle.git@master - python >=3.9,<3.10 - - twine + - twine =3.8 - mamba =0.21.0 From 088b5e0f5cf11cc29d0a484c3a7911e4b48c283d Mon Sep 17 00:00:00 2001 From: Welz Date: Wed, 11 May 2022 09:51:29 -0400 Subject: [PATCH 15/17] GH-125: Remove git dependency --- .ci/environment.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.ci/environment.yml b/.ci/environment.yml index 12bb66a..5b6fe33 100644 --- a/.ci/environment.yml +++ b/.ci/environment.yml @@ -9,8 +9,6 @@ dependencies: - conda =4.11.0 - doit =0.34.1 - pip - - pip: - - git+https://github.com/jvesely/cloudpickle.git@master - python >=3.9,<3.10 - twine =3.8 - mamba =0.21.0 From d47e60cb6ce792587d9c33a01f16fbc7c8044aa3 Mon Sep 17 00:00:00 2001 From: Welz Date: Wed, 11 May 2022 10:01:13 -0400 Subject: [PATCH 16/17] GH-125: hack --- .ci/win.bat | 1 + 1 file changed, 1 insertion(+) diff --git a/.ci/win.bat b/.ci/win.bat index f0076b8..39013b1 100644 --- a/.ci/win.bat +++ b/.ci/win.bat @@ -2,6 +2,7 @@ :: this is a nasty hack, and should not be needed, but the env isn't _quite_ right :: call deactivate :: call C:\Miniconda\envs\ipyradiant-base\Scripts\activate +call pip install git+https://github.com/jvesely/cloudpickle.git@master call doit -n4 %%* call doit %%* || goto :error From b604479b8e8ba6c2abae2a7ea296187d54fb5ab6 Mon Sep 17 00:00:00 2001 From: Welz Date: Wed, 11 May 2022 10:14:44 -0400 Subject: [PATCH 17/17] GH-125: revert and pin doit prior to cloudpickle dep. --- .ci/environment.yml | 2 +- .ci/win.bat | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.ci/environment.yml b/.ci/environment.yml index 5b6fe33..874b03d 100644 --- a/.ci/environment.yml +++ b/.ci/environment.yml @@ -7,7 +7,7 @@ channels: dependencies: - anaconda-project =0.10.2 - conda =4.11.0 - - doit =0.34.1 + - doit <=0.28 # broken cloudpickle dep after this - pip - python >=3.9,<3.10 - twine =3.8 diff --git a/.ci/win.bat b/.ci/win.bat index 39013b1..f0076b8 100644 --- a/.ci/win.bat +++ b/.ci/win.bat @@ -2,7 +2,6 @@ :: this is a nasty hack, and should not be needed, but the env isn't _quite_ right :: call deactivate :: call C:\Miniconda\envs\ipyradiant-base\Scripts\activate -call pip install git+https://github.com/jvesely/cloudpickle.git@master call doit -n4 %%* call doit %%* || goto :error