diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index db735ff..3e052aa 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -8,13 +8,13 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: build run: | wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh | bash -s -- --batch conda env create -f env-dev.yml - conda run --name aizynth-dev poetry install + conda run --name aizynth-dev poetry install -E all conda run --name aizynth-dev inv build-docs - name: deploy uses: peaceiris/actions-gh-pages@v3 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1f0fed8..dfe7211 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -10,13 +10,13 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Run run: | wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh | bash -s -- --batch conda env create -f env-dev.yml - conda run --name aizynth-dev poetry install + conda run --name aizynth-dev poetry install -E all conda run --name aizynth-dev inv full-tests - name: Upload coverage to Codecov uses: codecov/codecov-action@v1 diff --git a/.gitignore b/.gitignore index 265431e..c8e96e5 100644 --- a/.gitignore +++ b/.gitignore @@ -70,9 +70,9 @@ instance/ # Sphinx documentation docs/build/ -docs/source/aizynth* -docs/source/modules.rst -docs/source/cli_help.txt +docs/aizynth* +docs/modules.rst +docs/cli_help.txt # PyBuilder target/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 74d949b..8af7356 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,40 @@ # CHANGELOG +## Version 3.6.0 2022-11-28 (2022-11-25) + +### Features + +- aizynthfinder can now be installed as a pure-python package +- ReactionTree now store at what iteration the route was created +- ReactionTree now supports a metadata property +- MCTS nodes populate a property that stores at what iteration the route was created +- aizynthcli now outputs stock information and route metadata and scores +- aizynthcli now has better error handling of invalid SMILES input +- Graphviz dependency for route drawing is removed, pure python implementation is used instead +- Dependencies reworked so that a minimal package can be installed +- Extra dependencies are related to route distances, clustering, training, MongoDB and external models +- Downloaded files are now the latest USPTO and Ringbreaker models + +### Trivial changes + +- RDKit and route-distances package now installed from pypi +- Documentation updated and extended + +## Version 3.5.0 2022-11-28 (2022-07-21) + +### Features + +- Atom-mapping is tracked from product to reactant +- Support loading of template library from (gzipped) CSV file +- Support of saving aizynthcli output to (gzipped) JSON file +- AiZynthExpander now tracks non-applicable templates + +### Bug-fixes +- Fixed failing test case + +### Trival changes +- Silent progress bar when utilizing local Keras model + ## Version 3.4.0 2022-04-28 ### Features diff --git a/README.md b/README.md index ba571c8..c9a82f9 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Before you begin, ensure you have met the following requirements: * Linux, Windows or macOS platforms are supported - as long as the dependencies are supported on these platforms. -* You have installed [anaconda](https://www.anaconda.com/) or [miniconda](https://docs.conda.io/en/latest/miniconda.html) with python 3.6 - 3.9 +* You have installed [anaconda](https://www.anaconda.com/) or [miniconda](https://docs.conda.io/en/latest/miniconda.html) with python 3.8 - 3.9 The tool has been developed on a Linux platform, but the software has been tested on Windows 10 and macOS Catalina. @@ -29,15 +29,16 @@ The tool has been developed on a Linux platform, but the software has been teste First time, execute the following command in a console or an Anaconda prompt - conda env create -f https://raw.githubusercontent.com/MolecularAI/aizynthfinder/master/env-users.yml + conda create "python>=3.8,<3.10" -n aizynth-env -And if you want to update the environment - - conda env update -n aizynth-env -f https://raw.githubusercontent.com/MolecularAI/aizynthfinder/master/env-users.yml - -The package is now installed in a new conda environment, that you need to activate each time you want to use it +To install, activate the environment and install the package using pypi conda activate aizynth-env + python -m pip install aizynthfinder[all] + +for a smaller package, without all the functionality, you can also type + + python -m pip install aizynthfinder ### For developers @@ -47,35 +48,10 @@ Then execute the following commands in the root of the repository conda env create -f env-dev.yml conda activate aizynth-dev - poetry install + poetry install -E all the `aizynthfinder` package is now installed in editable mode. -### Troubleshooting - -If the above simple instructions does not work, here are the more detailed instructions. You might have to modify conda channels or similar if the dependencies fails to install on your OS. - -First, install these conda packages - - conda install -c conda-forge "rdkit=>2019.09.1" -y - conda install graphviz -y - -Secondly, install the ``aizynthfinder`` package - - python -m pip install https://github.com/MolecularAI/aizynthfinder/archive/v3.4.0.tar.gz - - -if you want to install the latest version - -or, if you have cloned this repository - - conda install poetry - python poetry - - -> Note on the graphviz installation: this package does not depend on any third-party python interfaces to graphviz but instead calls the `dot` executable directly. If the executable is not in the `$PATH` environmental variable, the generation of route images will not work. If unable to install it properly with the default conda channel, try using `-c anaconda`. - - ## Usage The tool will install the ``aizynthcli`` and ``aizynthapp`` tools @@ -148,6 +124,7 @@ Please use ``black`` package for formatting, and follow ``pep8`` style guide. * [@SGenheden](https://www.github.com/SGenheden) * [@EBjerrum](https://www.github.com/EBjerrum) * [@A-Thakkar](https://www.github.com/A-Thakkar) +* [@benteb](https://www.github.com/benteb) The contributors have limited time for support questions, but please do not hesitate to submit an issue (see above). diff --git a/aizynthfinder/aizynthfinder.py b/aizynthfinder/aizynthfinder.py index e542815..bee3eb0 100644 --- a/aizynthfinder/aizynthfinder.py +++ b/aizynthfinder/aizynthfinder.py @@ -163,6 +163,24 @@ def prepare_tree(self) -> None: self.analysis = None self.routes = RouteCollection([]) + def stock_info(self) -> StrDict: + """ + Return the stock availability for all leaf nodes in all collected reaction trees + + The key of the return dictionary will be the SMILES string of the leaves, + and the value will be the stock availability + + :return: the collected stock information. + """ + if not self.analysis: + return {} + _stock_info = {} + for tree in self.routes.reaction_trees: + for leaf in tree.leafs(): + if leaf.smiles not in _stock_info: + _stock_info[leaf.smiles] = self.stock.availability_list(leaf) + return _stock_info + def tree_search(self, show_progress: bool = False) -> float: """ Perform the actual tree search @@ -254,6 +272,7 @@ def __init__(self, configfile: str = None, configdict: StrDict = None) -> None: self.expansion_policy = self.config.expansion_policy self.filter_policy = self.config.filter_policy + self.stats: StrDict = {} def do_expansion( self, @@ -280,6 +299,7 @@ def do_expansion( :param filter_func: an additional filter function :return: the grouped reactions """ + self.stats = {"non-applicable": 0} mol = TreeMolecule(parent=None, smiles=smiles) actions, _ = self.expansion_policy.get_actions([mol]) @@ -287,6 +307,7 @@ def do_expansion( for action in actions: reactants = action.reactants if not reactants: + self.stats["non-applicable"] += 1 continue if filter_func and not filter_func(action): continue diff --git a/aizynthfinder/analysis/routes.py b/aizynthfinder/analysis/routes.py index 6c7e5dd..c314be0 100644 --- a/aizynthfinder/analysis/routes.py +++ b/aizynthfinder/analysis/routes.py @@ -4,14 +4,18 @@ from typing import TYPE_CHECKING import numpy as np -from route_distances.clustering import ClusteringHelper -from route_distances.route_distances import route_distances_calculator + +try: + from route_distances.clustering import ClusteringHelper + from route_distances.route_distances import route_distances_calculator +except ImportError: + pass from aizynthfinder.analysis.utils import ( CombinedReactionTrees, RouteSelectionArguments, ) -from aizynthfinder.reactiontree import ReactionTree +from aizynthfinder.reactiontree import SUPPORT_DISTANCES, ReactionTree from aizynthfinder.search.mcts import MctsSearchTree, MctsNode from aizynthfinder.analysis import TreeAnalysis @@ -49,6 +53,7 @@ class RouteCollection: :ivar scores: initial scores of top-ranked nodes or routes :ivar reaction_trees: the reaction trees created from the top-ranked nodes :ivar clusters: the created clusters from the collection + :ivar route_metadata: the metadata of the reaction trees :param reaction_trees: the trees to base the collection on """ @@ -57,6 +62,8 @@ def __init__(self, reaction_trees: Sequence[ReactionTree], **kwargs) -> None: self._routes: Sequence[StrDict] = [{} for _ in range(len(reaction_trees))] self.reaction_trees = reaction_trees self._update_route_dict(reaction_trees, "reaction_tree") + self.route_metadata = [rt.metadata for rt in reaction_trees] + self._update_route_dict(self.route_metadata, "route_metadata") self.nodes = self._unpack_kwarg_with_default("nodes", None, **kwargs) self.scores = self._unpack_kwarg_with_default("scores", np.nan, **kwargs) @@ -152,6 +159,12 @@ def cluster( :param distances_model: can be ted or lstm and determines how the route distances are computed :return: the cluster labels """ + if not SUPPORT_DISTANCES: + raise ValueError( + "Clustering is not supported by this installation." + " Please install aizynthfinder with extras dependencies." + ) + if len(self.reaction_trees) < 3: return np.asarray([]) dist_kwargs = { @@ -199,19 +212,35 @@ def compute_scores(self, *scorers: Scorer) -> None: self.all_scores[idx][repr(scorer)] = score self._update_route_dict(self.all_scores, "all_score") - def dict_with_scores(self) -> Sequence[StrDict]: + def dict_with_extra( + self, include_scores=False, include_metadata=False + ) -> Sequence[StrDict]: """ - Return the routes as dictionaries with all scores added - to the root (target) node. + Return the routes as dictionaries with optionally all scores and + all metadata added to the root (target) node. :return: the routes as dictionaries """ dicts = [] - for dict_, scores in zip(self.dicts, self.all_scores): + for dict_, scores, metadata in zip( + self.dicts, self.all_scores, self.route_metadata + ): dicts.append(dict(dict_)) - dicts[-1]["scores"] = dict(scores) + if include_scores: + dicts[-1]["scores"] = dict(scores) + if include_metadata: + dicts[-1]["metadata"] = dict(metadata) return dicts + def dict_with_scores(self) -> Sequence[StrDict]: + """ + Return the routes as dictionaries with all scores added + to the root (target) node. + + :return: the routes as dictionaries + """ + return self.dict_with_extra(include_scores=True) + def distance_matrix( self, recreate: bool = False, model: str = "ted", **kwargs: Any ) -> np.ndarray: @@ -229,6 +258,12 @@ def distance_matrix( :param model: the type of model to use "ted" or "lstm" :return: the square distance matrix """ + if not SUPPORT_DISTANCES: + raise ValueError( + "Distance calculations are not supported by this installation." + " Please install aizynthfinder with extras dependencies." + ) + if model == "lstm" and not kwargs.get("model_path"): raise KeyError( "Need to provide 'model_path' argument when using LSTM model for computing distances" diff --git a/aizynthfinder/chem/mol.py b/aizynthfinder/chem/mol.py index c682485..bd1b350 100644 --- a/aizynthfinder/chem/mol.py +++ b/aizynthfinder/chem/mol.py @@ -11,7 +11,16 @@ if TYPE_CHECKING: - from aizynthfinder.utils.type_utils import Dict, Optional, Union, Tuple, RdMol + from aizynthfinder.utils.type_utils import ( + Dict, + Optional, + Union, + Tuple, + RdMol, + Sequence, + List, + Callable, + ) class Molecule: @@ -51,6 +60,11 @@ def __init__( self._fingerprints: Dict[Union[Tuple[int, int], Tuple[int]], np.ndarray] = {} self._is_sanitized: bool = False + # Atom mapping -> atom index dictionary + self._atom_mappings: Dict[int, int] = {} + # Atom index -> atom mapping dictionary + self._reverse_atom_mappings: Dict[int, int] = {} + if sanitize: self.sanitize() @@ -98,6 +112,26 @@ def inchi_key(self) -> str: raise MoleculeException("Could not make InChI key") return self._inchi_key + @property + def index_to_mapping(self) -> Dict[int, int]: + """Return a dictionary mapping to atom indices to atom mappings""" + if not self._reverse_atom_mappings: + self._reverse_atom_mappings = { + index: mapping for mapping, index in self.mapping_to_index.items() + } + return self._reverse_atom_mappings + + @property + def mapping_to_index(self) -> Dict[int, int]: + """Return a dictionary mapping to atom mappings to atom indices""" + if not self._atom_mappings: + self._atom_mappings = { + atom.GetAtomMapNum(): atom.GetIdx() + for atom in self.rd_mol.GetAtoms() + if atom.GetAtomMapNum() + } + return self._atom_mappings + @property def weight(self) -> float: """Return the exact molecular weight of the molecule""" @@ -153,13 +187,19 @@ def make_unique(self) -> "UniqueMolecule": """ return UniqueMolecule(rd_mol=self.rd_mol) - def remove_atom_mapping(self) -> None: + def remove_atom_mapping(self, exceptions: Sequence[int] = None) -> None: """ Remove all mappings of the atoms and update the smiles + + :param exceptions: keep the listed atom mappings """ + exceptions = exceptions or [] for atom in self.rd_mol.GetAtoms(): + if exceptions and atom.GetAtomMapNum() in exceptions: + continue atom.SetAtomMapNum(0) self.smiles = Chem.MolToSmiles(self.rd_mol) + self._clear_cache() def sanitize(self, raise_exception: bool = True) -> None: """ @@ -181,10 +221,15 @@ def sanitize(self, raise_exception: bool = True) -> None: return self.smiles = Chem.MolToSmiles(self.rd_mol) + self._clear_cache() + self._is_sanitized = True + + def _clear_cache(self): self._inchi = None self._inchi_key = None self._fingerprints = {} - self._is_sanitized = True + self._atom_mappings = {} + self._reverse_atom_mappings = {} class TreeMolecule(Molecule): @@ -194,17 +239,26 @@ class TreeMolecule(Molecule): If the class is instantiated without specifying the `transform` argument, it is computed by increasing the value of the `parent.transform` variable. + If no parent is provided the atoms with atom mapping number are tracked + and inherited to children. + + :ivar mapped_mol: the tracked molecule with atom mappings + :ivar mapped_smiles: the SMILES of the tracked molecule with atom mappings + :ivar original_smiles: the SMILES as passed when instantiating the class :ivar parent: parent molecule :ivar transform: a numerical number corresponding to the depth in the tree + :ivar tracked_atom_indices: tracked atom indices and what indices they correspond to in this molecule :param parent: a TreeMolecule object that is the parent :param transform: the transform value, defaults to None :param rd_mol: a RDKit mol object to encapsulate, defaults to None :param smiles: a SMILES to convert to a molecule object, defaults to None :param sanitize: if True, the molecule will be immediately sanitized, defaults to False + :param mapping_update_callback: if given will call this method before setting up the `mapped_smiles` :raises MoleculeException: if neither rd_mol or smiles is given, or if the molecule could not be sanitized """ + # pylint: disable=too-many-arguments def __init__( self, parent: Optional["TreeMolecule"], @@ -212,6 +266,7 @@ def __init__( rd_mol: RdMol = None, smiles: str = None, sanitize: bool = False, + mapping_update_callback: Callable[["TreeMolecule"], None] = None, ) -> None: super().__init__(rd_mol=rd_mol, smiles=smiles, sanitize=sanitize) self.parent = parent @@ -220,6 +275,55 @@ def __init__( else: self.transform = transform or 0 + self.original_smiles = smiles + self.tracked_atom_indices: Dict[int, Optional[int]] = {} + self.mapped_mol = Chem.Mol(self.rd_mol) + if not self.parent: + self._init_tracking() + elif mapping_update_callback is not None: + mapping_update_callback(self) + + AllChem.SanitizeMol(self.mapped_mol) + self.mapped_smiles = Chem.MolToSmiles(self.mapped_mol) + + if self.parent: + self.remove_atom_mapping() + self._update_tracked_atoms() + + @property + def mapping_to_index(self) -> Dict[int, int]: + """Return a dictionary mapping to atom mappings to atom indices""" + if not self._atom_mappings: + self._atom_mappings = { + atom.GetAtomMapNum(): atom.GetIdx() + for atom in self.mapped_mol.GetAtoms() + if atom.GetAtomMapNum() + } + return self._atom_mappings + + def _init_tracking(self): + self.tracked_atom_indices = dict(self.mapping_to_index) + for idx, atom in enumerate(self.mapped_mol.GetAtoms()): + atom.SetAtomMapNum(idx + 1) + self._atom_mappings = {} + + def _update_tracked_atoms(self) -> None: + if self.parent is None: + return + + if not self.parent.tracked_atom_indices: + return + + parent2child_map = { + atom_index: self.mapping_to_index.get(mapping_index) + for mapping_index, atom_index in self.parent.mapping_to_index.items() + } + + self.tracked_atom_indices = { + tracked_index: parent2child_map[parent_index] # type: ignore + for tracked_index, parent_index in self.parent.tracked_atom_indices.items() + } + class UniqueMolecule(Molecule): """ diff --git a/aizynthfinder/chem/reaction.py b/aizynthfinder/chem/reaction.py index 406172e..c97ed29 100644 --- a/aizynthfinder/chem/reaction.py +++ b/aizynthfinder/chem/reaction.py @@ -3,11 +3,16 @@ from __future__ import annotations import hashlib import abc +from functools import partial from typing import TYPE_CHECKING import numpy as np +from rdkit import Chem from rdkit.Chem import AllChem +from rdkit.Chem.rdchem import ChiralType, BondDir, BondStereo from rdchiral import main as rdc +from rdchiral.bonds import get_atoms_across_double_bonds +from rdchiral.initialization import BondDirOpposite from aizynthfinder.utils.logging import logger from aizynthfinder.chem.mol import MoleculeException, Molecule, TreeMolecule @@ -22,6 +27,7 @@ StrDict, Iterable, Any, + Set, ) from aizynthfinder.chem.mol import UniqueMolecule @@ -227,6 +233,23 @@ def __init__( self._smiles: Optional[str] = None self._kwargs: StrDict = kwargs + @classmethod + def from_serialization( + cls, init_args: StrDict, reactants: List[List[TreeMolecule]] + ) -> "RetroReaction": + """ + Create an object from a serialization. It does + 1) instantiate an object using the `init_args` and + 2) set the reactants to a tuple-form of `reactants + + :param init_args: the arguments passed to the `__init__` method + :param reactants: the reactants + :return: the deserialized object + """ + obj = cls(**init_args) + obj._reactants = tuple(tuple(mol for mol in lst_) for lst_ in reactants) + return obj + def __str__(self) -> str: return f"reaction on molecule {self.mol.smiles}" @@ -277,6 +300,15 @@ def copy(self, index: int = None) -> "RetroReaction": new_reaction._smiles = self._smiles return new_reaction + def mapped_reaction_smiles(self) -> str: + """ + Get the mapped reaction SMILES if it exists + :return: the SMILES + """ + reactants = self.mol.mapped_smiles + products = ".".join(mol.mapped_smiles for mol in self._products_getter()) + return reactants + ">>" + products + def to_dict(self) -> StrDict: """ Return the retro reaction as dictionary @@ -303,6 +335,18 @@ def _products_getter(self) -> Tuple[TreeMolecule, ...]: def _reactants_getter(self) -> List[TreeMolecule]: return [self.mol] + @staticmethod + def _update_unmapped_atom_num(mol: TreeMolecule, exclude_nums: Set[int]) -> None: + mapped_nums = {num for num in mol.mapping_to_index.keys() if 0 < num < 900} + offset = max(mapped_nums) + 1 if mapped_nums else 1 + for atom in mol.mapped_mol.GetAtoms(): + if 0 < atom.GetAtomMapNum() < 900: + continue + while offset in exclude_nums: + offset += 1 + atom.SetAtomMapNum(offset) + exclude_nums.add(offset) + class TemplatedRetroReaction(RetroReaction): """ @@ -363,28 +407,42 @@ def _apply_with_rdchiral(self) -> Tuple[Tuple[TreeMolecule, ...], ...]: Will try to sanitize the reactants, and if that fails it will not return that molecule """ reaction = rdc.rdchiralReaction(self.smarts) - rct = rdc.rdchiralReactants(self.mol.smiles) + rct = _RdChiralProductWrapper(self.mol) try: - reactants = rdc.rdchiralRun(reaction, rct) + reactants = rdc.rdchiralRun(reaction, rct, keep_mapnums=True) except RuntimeError as err: logger().debug( f"Runtime error in RDChiral with template {self.smarts} on {self.mol.smiles}\n{err}" ) reactants = [] + except KeyError as err: + logger().debug( + f"Index error in RDChiral with template {self.smarts} on {self.mol.mapped_smiles}\n{err}" + ) + reactants = [] # Turning rdchiral outcome into rdkit tuple of tuples to maintain compatibility outcomes = [] for reactant_str in reactants: smiles_list = reactant_str.split(".") + exclude_nums = set(self.mol.mapping_to_index.keys()) + update_func = partial( + self._update_unmapped_atom_num, exclude_nums=exclude_nums + ) try: - rct = tuple( - TreeMolecule(parent=self.mol, smiles=smi, sanitize=True) + rct_objs = tuple( + TreeMolecule( + parent=self.mol, + smiles=smi, + sanitize=True, + mapping_update_callback=update_func, + ) for smi in smiles_list ) except MoleculeException: pass else: - outcomes.append(rct) + outcomes.append(rct_objs) self._reactants = tuple(outcomes) return self._reactants @@ -392,17 +450,22 @@ def _apply_with_rdchiral(self) -> Tuple[Tuple[TreeMolecule, ...], ...]: def _apply_with_rdkit(self) -> Tuple[Tuple[TreeMolecule, ...], ...]: rxn = AllChem.ReactionFromSmarts(self.smarts) try: - self.mol.sanitize() - except MoleculeException: + reactants_list = rxn.RunReactants([self.mol.mapped_mol]) + except: # pylint: disable=bare-except reactants_list = [] - else: - reactants_list = rxn.RunReactants([self.mol.rd_mol]) outcomes = [] for reactants in reactants_list: + exclude_nums = set(self.mol.mapping_to_index.keys()) + update_func = partial(self._inherit_atom_mapping, exclude_nums=exclude_nums) try: mols = tuple( - TreeMolecule(parent=self.mol, rd_mol=mol, sanitize=True) + TreeMolecule( + parent=self.mol, + rd_mol=mol, + sanitize=True, + mapping_update_callback=update_func, + ) for mol in reactants ) except MoleculeException: @@ -416,6 +479,27 @@ def _apply_with_rdkit(self) -> Tuple[Tuple[TreeMolecule, ...], ...]: def _make_smiles(self): return AllChem.ReactionToSmiles(self.rd_reaction) + def _inherit_atom_mapping(self, mol: TreeMolecule, exclude_nums: Set[int]) -> None: + """ + Update the internal atom mapping dictionary by inspecting the `reaction_atom_idx` + property of the atoms and comparing it with the parent-molecule. + + This is used for child molecules created by RDKit reaction application. + RDChiral takes care of this automatically. + """ + if mol.parent is None: + return + + for atom in mol.mapped_mol.GetAtoms(): + if not atom.HasProp("react_atom_idx"): + continue + index = atom.GetProp("react_atom_idx") + mapping = mol.parent.index_to_mapping.get(int(index)) + if mapping: + atom.SetAtomMapNum(mapping) + + self._update_unmapped_atom_num(mol, exclude_nums) + class SmilesBasedRetroReaction(RetroReaction): """ @@ -436,6 +520,7 @@ def __init__( ): super().__init__(mol, index, metadata, **kwargs) self.reactants_str: str = kwargs["reactants_str"] + self._mapped_prod_smiles = kwargs.get("mapped_prod_smiles") def __str__(self) -> str: return ( @@ -445,14 +530,23 @@ def __str__(self) -> str: def to_dict(self) -> StrDict: dict_ = super().to_dict() dict_["reactants_str"] = self.reactants_str + dict_["mapped_prod_smiles"] = self._mapped_prod_smiles return dict_ def _apply(self) -> Tuple[Tuple[TreeMolecule, ...], ...]: outcomes = [] smiles_list = self.reactants_str.split(".") + + exclude_nums = set(self.mol.mapping_to_index.keys()) + update_func = partial(self._remap, exclude_nums=exclude_nums) try: rct = tuple( - TreeMolecule(parent=self.mol, smiles=smi, sanitize=True) + TreeMolecule( + parent=self.mol, + smiles=smi, + sanitize=True, + mapping_update_callback=update_func, + ) for smi in smiles_list ) except MoleculeException: @@ -463,6 +557,30 @@ def _apply(self) -> Tuple[Tuple[TreeMolecule, ...], ...]: return self._reactants + def _remap(self, mol: TreeMolecule, exclude_nums: Set[int]) -> None: + """Find the mapping between parent and child and then re-map the child molecule""" + if not self._mapped_prod_smiles: + self._update_unmapped_atom_num(mol, exclude_nums) + return + + parent_remapping = {} + pmol = Molecule(smiles=self._mapped_prod_smiles, sanitize=True) + for atom_idx1, atom_idx2 in enumerate( + pmol.rd_mol.GetSubstructMatch(self.mol.mapped_mol) + ): + atom1 = self.mol.mapped_mol.GetAtomWithIdx(atom_idx1) + atom2 = pmol.rd_mol.GetAtomWithIdx(atom_idx2) + if atom1.GetAtomMapNum() > 0 and atom2.GetAtomMapNum() > 0: + parent_remapping[atom2.GetAtomMapNum()] = atom1.GetAtomMapNum() + + for atom in mol.mapped_mol.GetAtoms(): + if atom.GetAtomMapNum() and atom.GetAtomMapNum() in parent_remapping: + atom.SetAtomMapNum(parent_remapping[atom.GetAtomMapNum()]) + else: + atom.SetAtomMapNum(0) + + self._update_unmapped_atom_num(mol, exclude_nums) + def _make_smiles(self): rstr = ".".join(reactant.smiles for reactant in self.reactants[0]) return f"{self.mol.smiles}>>{rstr}" @@ -530,3 +648,53 @@ def hash_reactions( hash_list.sort() hash_list_str = ".".join(hash_list) return hashlib.sha224(hash_list_str.encode("utf8")).hexdigest() + + +class _RdChiralProductWrapper: + """ + Reimplementation of `rdchiralReaction` + to preserve product molecule already created + """ + + # pylint: disable=W0106,C0103 + def __init__(self, product: TreeMolecule) -> None: + product.sanitize() + self.reactant_smiles = product.smiles + + # Initialize into RDKit mol + self.reactants = Chem.Mol(product.mapped_mol.ToBinary()) + Chem.AssignStereochemistry(self.reactants, flagPossibleStereoCenters=True) + self.reactants.UpdatePropertyCache(strict=False) + + self.atoms_r = {a.GetAtomMapNum(): a for a in self.reactants.GetAtoms()} + self.idx_to_mapnum = lambda idx: self.reactants.GetAtomWithIdx( + idx + ).GetAtomMapNum() + + # Create copy of molecule without chiral information, used with + # RDKit's naive runReactants + self.reactants_achiral = Chem.Mol(product.rd_mol.ToBinary()) + [ + a.SetChiralTag(ChiralType.CHI_UNSPECIFIED) + for a in self.reactants_achiral.GetAtoms() + ] + [ + (b.SetStereo(BondStereo.STEREONONE), b.SetBondDir(BondDir.NONE)) + for b in self.reactants_achiral.GetBonds() + ] + + # Pre-list reactant bonds (for stitching broken products) + self.bonds_by_mapnum = [ + (b.GetBeginAtom().GetAtomMapNum(), b.GetEndAtom().GetAtomMapNum(), b) + for b in self.reactants.GetBonds() + ] + + # Pre-list chiral double bonds (for copying back into outcomes/matching) + self.bond_dirs_by_mapnum = {} + for (i, j, b) in self.bonds_by_mapnum: + if b.GetBondDir() != BondDir.NONE: + self.bond_dirs_by_mapnum[(i, j)] = b.GetBondDir() + self.bond_dirs_by_mapnum[(j, i)] = BondDirOpposite[b.GetBondDir()] + + # Get atoms across double bonds defined by mapnum + self.atoms_across_double_bonds = get_atoms_across_double_bonds(self.reactants) diff --git a/aizynthfinder/chem/serialization.py b/aizynthfinder/chem/serialization.py index e281cc2..56ca17b 100644 --- a/aizynthfinder/chem/serialization.py +++ b/aizynthfinder/chem/serialization.py @@ -49,6 +49,11 @@ def _add_mol(self, mol: aizynthfinder.chem.Molecule) -> None: if isinstance(mol, aizynthfinder.chem.TreeMolecule): dict_["parent"] = self[mol.parent] dict_["transform"] = mol.transform + dict_["tracked_atom_indices"] = mol.tracked_atom_indices + if not mol.parent: + dict_["smiles"] = mol.original_smiles + else: + dict_["smiles"] = mol.mapped_smiles self._store[id_] = dict_ @@ -100,10 +105,15 @@ def _create_molecules(self, store: dict) -> None: cls = spec["class"] if "parent" in spec: spec["parent"] = self[spec["parent"]] + tracked_atom_indices = None + if "tracked_atom_indices" in spec: + tracked_atom_indices = spec.pop("tracked_atom_indices") kwargs = dict(spec) del kwargs["class"] self._objects[id_] = getattr(aizynthfinder.chem, cls)(**kwargs) + if tracked_atom_indices is not None: + self._objects[id_].tracked_atom_indices = tracked_atom_indices def serialize_action( @@ -118,6 +128,10 @@ def serialize_action( """ dict_ = action.to_dict() dict_["mol"] = molecule_store[dict_["mol"]] + if not action.unqueried: + dict_["reactants"] = [ + [molecule_store[item] for item in lst_] for lst_ in action.reactants + ] dict_["class"] = f"{action.__class__.__module__}.{action.__class__.__name__}" return dict_ @@ -133,10 +147,15 @@ def deserialize_action( :return: the created action object """ mol_spec = dict_.pop("mol") - mol = molecule_store.get_tree_molecules([mol_spec])[0] + dict_["mol"] = molecule_store.get_tree_molecules([mol_spec])[0] try: class_spec = dict_.pop("class") except KeyError: class_spec = "aizynthfinder.chem.TemplatedRetroReaction" cls = load_dynamic_class(class_spec) - return cls(mol, **dict_) + if "reactants" in dict_: + reactants = [ + molecule_store.get_tree_molecules(lst_) for lst_ in dict_.pop("reactants") + ] + return cls.from_serialization(dict_, reactants) + return cls(**dict_) diff --git a/aizynthfinder/context/policy/expansion_strategies.py b/aizynthfinder/context/policy/expansion_strategies.py index 5d54f5b..279feda 100644 --- a/aizynthfinder/context/policy/expansion_strategies.py +++ b/aizynthfinder/context/policy/expansion_strategies.py @@ -91,7 +91,12 @@ def __init__(self, key: str, config: Configuration, **kwargs: str) -> None: self.model = load_model(source, self.key, self._config.use_remote_models) self._logger.info(f"Loading templates from {templatefile} to {self.key}") - self.templates: pd.DataFrame = pd.read_hdf(templatefile, "table") + if templatefile.endswith(".csv.gz") or templatefile.endswith(".csv"): + self.templates: pd.DataFrame = pd.read_csv( + templatefile, index_col=0, sep="\t" + ) + else: + self.templates = pd.read_hdf(templatefile, "table") if hasattr(self.model, "output_size") and len(self.templates) != self.model.output_size: # type: ignore raise PolicyException( diff --git a/aizynthfinder/context/stock/queries.py b/aizynthfinder/context/stock/queries.py index 972d52f..b897581 100644 --- a/aizynthfinder/context/stock/queries.py +++ b/aizynthfinder/context/stock/queries.py @@ -142,6 +142,11 @@ def __init__( self.client = get_mongo_client( host or os.environ.get("MONGODB_HOST") or "localhost" ) + if self.client is None: + raise ImportError( + "Cannot use this stock query class because it seems like pymongo is not installed. " + "Please install aizynthfinder with extras dependencies." + ) self.database: MongoDatabase = self.client[database] self.molecules: MongoCollection = self.database[collection] self._len: Optional[int] = None diff --git a/aizynthfinder/context/stock/stock.py b/aizynthfinder/context/stock/stock.py index b17d0df..8f61c3e 100644 --- a/aizynthfinder/context/stock/stock.py +++ b/aizynthfinder/context/stock/stock.py @@ -84,11 +84,11 @@ def amount(self, mol: Molecule) -> float: raise StockException("Could not obtain amount of molecule") return max(amounts) - def availability_string(self, mol: Molecule) -> str: + def availability_list(self, mol: Molecule) -> List[str]: """ - Return a string of what stocks a given mol is available + Return a list of what stocks a given mol is available - If the molecule is not in stock it will return "Not in stock" + If the molecule is not in stock it will return any empty list :param mol: The molecule to query :returns: string with a list of stocks that mol was found in @@ -101,6 +101,18 @@ def availability_string(self, mol: Molecule) -> str: availability.append(self[key].availability_string(mol)) except (StockException, AttributeError): availability.append(key) + return availability + + def availability_string(self, mol: Molecule) -> str: + """ + Return a string of what stocks a given mol is available + + If the molecule is not in stock it will return "Not in stock" + + :param mol: The molecule to query + :returns: string with a list of stocks that mol was found in + """ + availability = self.availability_list(mol) if availability: return ",".join(availability) return "Not in stock" diff --git a/aizynthfinder/interfaces/aizynthcli.py b/aizynthfinder/interfaces/aizynthcli.py index e69f612..fb79b36 100644 --- a/aizynthfinder/interfaces/aizynthcli.py +++ b/aizynthfinder/interfaces/aizynthcli.py @@ -4,7 +4,6 @@ import argparse import json import os -import warnings import logging import importlib import tempfile @@ -15,7 +14,13 @@ import pandas as pd from aizynthfinder.aizynthfinder import AiZynthFinder -from aizynthfinder.utils.files import cat_hdf_files, split_file, start_processes +from aizynthfinder.utils.files import ( + cat_datafiles, + save_datafile, + split_file, + start_processes, +) +from aizynthfinder.chem import Molecule from aizynthfinder.utils.logging import logger, setup_logger if TYPE_CHECKING: @@ -176,7 +181,7 @@ def _process_multi_smiles( route_distance_model: Optional[str], post_processing: List[_PostProcessingJob], ) -> None: - output_name = output_name or "output.hdf5" + output_name = output_name or "output.json.gz" with open(filename, "r") as fileobj: smiles = [line.strip() for line in fileobj.readlines()] @@ -201,15 +206,16 @@ def _process_multi_smiles( _do_post_processing(finder, stats, post_processing) for key, value in stats.items(): results[key].append(value) + results["stock_info"].append(finder.stock_info()) results["top_scores"].append( ", ".join("%.4f" % score for score in finder.routes.scores) ) - results["trees"].append(finder.routes.dicts) + results["trees"].append( + finder.routes.dict_with_extra(include_metadata=True, include_scores=True) + ) data = pd.DataFrame.from_dict(results) - with warnings.catch_warnings(): # This wil suppress a PerformanceWarning - warnings.simplefilter("ignore") - data.to_hdf(output_name, key="table", mode="w") + save_datafile(data, output_name) logger().info(f"Output saved to {output_name}") @@ -222,7 +228,7 @@ def create_cmd(index, filename): "--config", args.config, "--output", - hdf_files[index - 1], + json_files[index - 1], ] if args.policy: cmd_args.extend(["--policy"] + args.policy) @@ -246,28 +252,39 @@ def create_cmd(index, filename): setup_logger(logging.INFO) filenames = split_file(args.smiles, args.nproc) - hdf_files = [tempfile.mktemp(suffix=".hdf") for _ in range(args.nproc)] + json_files = [tempfile.mktemp(suffix=".json.gz") for _ in range(args.nproc)] start_processes(filenames, "aizynthcli", create_cmd) - if not all(os.path.exists(filename) for filename in hdf_files): + if not all(os.path.exists(filename) for filename in json_files): raise FileNotFoundError( "Not all output files produced. Please check the individual log files: 'aizynthcli*.log'" ) - cat_hdf_files(hdf_files, args.output or "output.hdf5") + cat_datafiles(json_files, args.output or "output.json.gz") def main() -> None: """Entry point for the aizynthcli command""" args = _get_arguments() + + file_level_logging = logging.DEBUG if args.log_to_file else None + setup_logger(logging.INFO, file_level_logging) + + if not os.path.exists(args.smiles): + mol = Molecule(smiles=args.smiles) + if mol.rd_mol is None: + logger().error( + f"The --smiles argument ({args.smiles})" + " does not point to an existing file or is a valid RDKit SMILES." + " Cannot start retrosynthesis planning." + ) + return + if args.nproc: _multiprocess_smiles(args) return multi_smiles = os.path.exists(args.smiles) - file_level_logging = logging.DEBUG if args.log_to_file else None - setup_logger(logging.INFO, file_level_logging) - finder = AiZynthFinder(configfile=args.config) _select_stocks(finder, args) post_processing = _load_postprocessing_jobs(args.post_processing) diff --git a/aizynthfinder/interfaces/gui/clustering.py b/aizynthfinder/interfaces/gui/clustering.py index b00101d..ef2f2c3 100644 --- a/aizynthfinder/interfaces/gui/clustering.py +++ b/aizynthfinder/interfaces/gui/clustering.py @@ -3,12 +3,19 @@ from __future__ import annotations from typing import TYPE_CHECKING -import matplotlib.pylab as plt import numpy as np from ipywidgets import Output, Label, BoundedIntText, Button, HBox, Tab from IPython.display import display -from scipy.cluster.hierarchy import dendrogram -from route_distances.clustering import ClusteringHelper + +try: + import matplotlib.pylab as plt + from scipy.cluster.hierarchy import dendrogram + from route_distances.clustering import ClusteringHelper +except ImportError: + raise ImportError( + "Clustering is not supported by this installation." + " Please install aizynthfinder with extras dependencies." + ) if TYPE_CHECKING: diff --git a/aizynthfinder/reactiontree.py b/aizynthfinder/reactiontree.py index cf9b2ea..00375e8 100644 --- a/aizynthfinder/reactiontree.py +++ b/aizynthfinder/reactiontree.py @@ -8,7 +8,13 @@ import networkx as nx from networkx.algorithms.traversal.depth_first_search import dfs_tree -from route_distances.route_distances import route_distances_calculator + +try: + from route_distances.route_distances import route_distances_calculator +except ImportError: + SUPPORT_DISTANCES = False +else: + SUPPORT_DISTANCES = True from aizynthfinder.chem import ( Molecule, @@ -16,7 +22,7 @@ FixedRetroReaction, none_molecule, ) -from aizynthfinder.utils.image import make_graphviz_image +from aizynthfinder.utils.image import RouteImageFactory if TYPE_CHECKING: @@ -28,6 +34,7 @@ Iterable, Any, Dict, + Optional, ) from aizynthfinder.chem import RetroReaction @@ -43,12 +50,14 @@ class ReactionTree: :ivar graph: the bipartite graph :ivar is_solved: if all of the leaf nodes are in stock :ivar root: the root of the tree + :ivar created_at_iteration: iteration the reaction tree was created """ def __init__(self) -> None: self.graph = nx.DiGraph() self.root = none_molecule() self.is_solved: bool = False + self.created_at_iteration: Optional[int] = None @classmethod def from_dict(cls, tree_dict: StrDict) -> "ReactionTree": @@ -67,6 +76,14 @@ def from_dict(cls, tree_dict: StrDict) -> "ReactionTree": """ return ReactionTreeFromDict(tree_dict).tree + @property + def metadata(self) -> StrDict: + """Return a dicitionary with route metadata""" + return { + "created_at_iteration": self.created_at_iteration, + "is_solved": self.is_solved, + } + def depth(self, node: Union[UniqueMolecule, FixedRetroReaction]) -> int: """ Return the depth of a node in the route @@ -87,6 +104,11 @@ def distance_to(self, other: "ReactionTree", content: str = "both") -> float: :param content: determine what part of the tree to include in the calculation :return: the distance between the routes """ + if not SUPPORT_DISTANCES: + raise ValueError( + "Distance calculations are not supported by this installation." + " Please install aizynthfinder with extras dependencies." + ) calculator = route_distances_calculator("ted", content=content) distances = calculator([self.to_dict(), other.to_dict()]) return distances[0, 1] @@ -177,13 +199,13 @@ def create_subtree(root_node): if node is not self.root and self.graph[node]: yield create_subtree(node) - def to_dict(self) -> StrDict: + def to_dict(self, include_metadata=False) -> StrDict: """ Returns the reaction tree as a dictionary in a pre-defined format. - + :param include_metadata: if True include metadata :return: the reaction tree """ - return self._build_dict(self.root) + return self._build_dict(self.root, include_metadata=include_metadata) def to_image( self, @@ -193,57 +215,37 @@ def to_image( """ Return a pictorial representation of the route - :raises ValueError: if image could not be produced :param in_stock_colors: the colors around molecules, defaults to {True: "green", False: "orange"} :param show_all: if True, also show nodes that are marked as hidden :return: the image of the route """ - - def show(node_): - return not self.graph.nodes[node_].get("hide", False) - - in_stock_colors = in_stock_colors or {True: "green", False: "orange"} - molecules = [] - frame_colors = [] - mols = sorted( - self.molecules(), - key=lambda mol: ( - self.depth(mol), - mol.weight, - ), + factory = RouteImageFactory( + self.to_dict(), in_stock_colors=in_stock_colors, show_all=show_all ) - for node in mols: - if not show_all and not show(node): - continue - molecules.append(node) - frame_colors.append(in_stock_colors[self.in_stock(node)]) - - reactions = [node for node in self.reactions() if show_all or show(node)] - edges = [ - (node1, node2) - for node1, node2 in self.graph.edges() - if show_all or (show(node1) and show(node2)) - ] - - try: - return make_graphviz_image(molecules, reactions, edges, frame_colors) - except FileNotFoundError as err: - raise ValueError(str(err)) - - def to_json(self) -> str: + return factory.image + + def to_json(self, include_metadata=False) -> str: """ Returns the reaction tree as a JSON string in a pre-defined format. :return: the reaction tree """ - return json.dumps(self.to_dict(), sort_keys=False, indent=2) + return json.dumps( + self.to_dict(include_metadata=include_metadata), sort_keys=False, indent=2 + ) def _build_dict( - self, node: Union[UniqueMolecule, FixedRetroReaction], dict_: StrDict = None + self, + node: Union[UniqueMolecule, FixedRetroReaction], + dict_: StrDict = None, + include_metadata=False, ) -> StrDict: if dict_ is None: dict_ = {} + if node is self.root and include_metadata: + dict_["route_metadata"] = self.metadata + dict_["type"] = "mol" if isinstance(node, Molecule) else "reaction" dict_["hide"] = self.graph.nodes[node].get("hide", False) dict_["smiles"] = node.smiles @@ -333,10 +335,13 @@ def _unique_mol(self, molecule: Molecule) -> UniqueMolecule: def _unique_reaction(self, reaction: RetroReaction) -> FixedRetroReaction: id_ = id(reaction) if id_ not in self._unique_reactions: + metadata = dict(reaction.metadata) + if ":" in reaction.mapped_reaction_smiles(): + metadata["mapped_reaction_smiles"] = reaction.mapped_reaction_smiles() self._unique_reactions[id_] = FixedRetroReaction( self._unique_mol(reaction.mol), smiles=reaction.smiles, - metadata=reaction.metadata, + metadata=metadata, ) return self._unique_reactions[id_] @@ -345,6 +350,10 @@ class ReactionTreeFromDict(ReactionTreeLoader): """Creates a reaction tree object from a dictionary""" def _load(self, tree_dict: StrDict) -> None: # type: ignore + if tree_dict.get("route_metadata"): + self.tree.created_at_iteration = tree_dict["route_metadata"].get( + "created_at_iteration" + ) self._parse_tree_dict(tree_dict) def _parse_tree_dict(self, tree_dict: StrDict, ncalls: int = 0) -> UniqueMolecule: diff --git a/aizynthfinder/search/mcts/node.py b/aizynthfinder/search/mcts/node.py index 96124f8..9f77a84 100644 --- a/aizynthfinder/search/mcts/node.py +++ b/aizynthfinder/search/mcts/node.py @@ -70,6 +70,11 @@ def __init__( self.is_expandable: bool = not self.state.is_terminal self._parent = parent + if owner is None: + self.created_at_iteration: Optional[int] = None + else: + self.created_at_iteration = self.tree.profiling["iterations"] + self._children_values: List[float] = [] self._children_priors: List[float] = [] self._children_visitations: List[int] = [] @@ -274,13 +279,17 @@ def promising_child(self) -> Optional["MctsNode"]: :return: the child """ - scores = self._children_q() + self._children_u() - indices = np.where(scores == scores.max())[0] - index = np.random.choice(indices) - child = self._select_child(index) - if not child and max(self._children_values) > 0: - return self.promising_child() + def _score_and_select(): + scores = self._children_q() + self._children_u() + indices = np.where(scores == scores.max())[0] + index = np.random.choice(indices) + + return self._select_child(index) + + child = None + while child is None and max(self._children_values) > 0: + child = _score_and_select() if not child: self._logger.debug( diff --git a/aizynthfinder/search/mcts/search.py b/aizynthfinder/search/mcts/search.py index e73ae99..9355af0 100644 --- a/aizynthfinder/search/mcts/search.py +++ b/aizynthfinder/search/mcts/search.py @@ -26,6 +26,13 @@ class MctsSearchTree: """ def __init__(self, config: Configuration, root_smiles: str = None) -> None: + + self.profiling = { + "expansion_calls": 0, + "reactants_generations": 0, + "iterations": 0, + } + if root_smiles: self.root: Optional[MctsNode] = MctsNode.create_root( smiles=root_smiles, tree=self, config=config @@ -34,10 +41,6 @@ def __init__(self, config: Configuration, root_smiles: str = None) -> None: self.root = None self.config = config self._graph: Optional[nx.DiGraph] = None - self.profiling = { - "expansion_calls": 0, - "reactants_generations": 0, - } @classmethod def from_json(cls, filename: str, config: Configuration) -> "MctsSearchTree": @@ -112,6 +115,7 @@ def one_iteration(self) -> bool: :return: if a solution was found """ + self.profiling["iterations"] += 1 leaf = self.select_leaf() leaf.expand() rollout_child = None diff --git a/aizynthfinder/search/mcts/utils.py b/aizynthfinder/search/mcts/utils.py index 5def115..811fd03 100644 --- a/aizynthfinder/search/mcts/utils.py +++ b/aizynthfinder/search/mcts/utils.py @@ -17,6 +17,7 @@ class ReactionTreeFromSuperNode(ReactionTreeLoader): def _load(self, base_node: MctsNode) -> None: # type: ignore actions, nodes = route_to_node(base_node) + self.tree.created_at_iteration = base_node.created_at_iteration root_mol = nodes[0].state.mols[0] self._unique_mols[id(root_mol)] = root_mol.make_unique() self._add_node( diff --git a/aizynthfinder/tools/cat_output.py b/aizynthfinder/tools/cat_output.py index 79eb680..f2c4493 100644 --- a/aizynthfinder/tools/cat_output.py +++ b/aizynthfinder/tools/cat_output.py @@ -1,8 +1,8 @@ -""" Module containing a CLI for concatenating output files (hdf5 files) +""" Module containing a CLI for concatenating output files (hdf5/json.gz files) """ import argparse -from aizynthfinder.utils.files import cat_hdf_files +from aizynthfinder.utils.files import cat_datafiles def main() -> None: @@ -17,7 +17,7 @@ def main() -> None: parser.add_argument( "--output", required=True, - default="output.hdf5", + default="output.json.gz", help="the name of the concatenate output file ", ) parser.add_argument( @@ -26,7 +26,7 @@ def main() -> None: ) args = parser.parse_args() - cat_hdf_files(args.files, args.output, args.trees) + cat_datafiles(args.files, args.output, args.trees) if __name__ == "__main__": diff --git a/aizynthfinder/tools/download_public_data.py b/aizynthfinder/tools/download_public_data.py index 09211f5..0691a35 100644 --- a/aizynthfinder/tools/download_public_data.py +++ b/aizynthfinder/tools/download_public_data.py @@ -11,11 +11,19 @@ FILES_TO_DOWNLOAD = { "policy_model": { "filename": "uspto_model.hdf5", - "url": "https://ndownloader.figshare.com/files/23086454", + "url": "https://zenodo.org/record/7341155/files/uspto_keras_model.hdf5", }, "template_file": { - "filename": "uspto_templates.hdf5", - "url": "https://ndownloader.figshare.com/files/23086457", + "filename": "uspto_templates.csv.gz", + "url": "https://zenodo.org/record/7341155/files/uspto_unique_templates.csv.gz", + }, + "ringbreaker_model": { + "filename": "uspto_ringbreaker_model.hdf5", + "url": "https://zenodo.org/record/7341155/files/uspto_ringbreaker_keras_model.hdf5", + }, + "ringbreaker_templates": { + "filename": "uspto_ringbreaker_templates.csv.gz", + "url": "https://zenodo.org/record/7341155/files/uspto_ringbreaker_unique_templates.csv.gz", }, "stock": { "filename": "zinc_stock.hdf5", @@ -32,6 +40,9 @@ uspto: - {} - {} + ringbreaker: + - {} + - {} filter: files: uspto: {} @@ -78,6 +89,8 @@ def main() -> None: YAML_TEMPLATE.format( os.path.join(path, FILES_TO_DOWNLOAD["policy_model"]["filename"]), os.path.join(path, FILES_TO_DOWNLOAD["template_file"]["filename"]), + os.path.join(path, FILES_TO_DOWNLOAD["ringbreaker_model"]["filename"]), + os.path.join(path, FILES_TO_DOWNLOAD["ringbreaker_templates"]["filename"]), os.path.join(path, FILES_TO_DOWNLOAD["filter_policy"]["filename"]), os.path.join(path, FILES_TO_DOWNLOAD["stock"]["filename"]), ) diff --git a/aizynthfinder/training/keras_models.py b/aizynthfinder/training/keras_models.py index b7449ba..61f64ed 100644 --- a/aizynthfinder/training/keras_models.py +++ b/aizynthfinder/training/keras_models.py @@ -6,7 +6,7 @@ import numpy as np -# pylint: disable=no-name-in-module +# pylint: disable=all from tensorflow.keras.layers import Dense, Dropout, Input, Dot from tensorflow.keras.models import Sequential, Model from tensorflow.keras.optimizers import Adam @@ -18,8 +18,16 @@ ReduceLROnPlateau, ) from tensorflow.keras import regularizers -from sklearn.utils import shuffle -from scipy import sparse + +# pylint: enable=all +try: + from sklearn.utils import shuffle + from scipy import sparse +except ImportError: + raise ImportError( + "Training is not supported by this installation." + " Please install aizynthfinder with extras dependencies." + ) from aizynthfinder.utils.models import top10_acc, top50_acc @@ -49,7 +57,7 @@ def _make_slice(self, idx: int) -> slice: return slice(start, end) @staticmethod - def _load_data(filename: str) -> np.ndarray: + def _load_data(filename: str) -> Any: try: return sparse.load_npz(filename) except ValueError: diff --git a/aizynthfinder/training/preprocess_expansion.py b/aizynthfinder/training/preprocess_expansion.py index 15cb7fc..eec88d5 100644 --- a/aizynthfinder/training/preprocess_expansion.py +++ b/aizynthfinder/training/preprocess_expansion.py @@ -6,8 +6,15 @@ import pandas as pd import numpy as np -from sklearn.preprocessing import LabelBinarizer, LabelEncoder -from scipy import sparse + +try: + from sklearn.preprocessing import LabelBinarizer, LabelEncoder + from scipy import sparse +except ImportError: + raise ImportError( + "Training is not supported by this installation." + " Please install aizynthfinder with extras dependencies." + ) from aizynthfinder.training.utils import ( Config, diff --git a/aizynthfinder/training/preprocess_filter.py b/aizynthfinder/training/preprocess_filter.py index f343202..d36b4fc 100644 --- a/aizynthfinder/training/preprocess_filter.py +++ b/aizynthfinder/training/preprocess_filter.py @@ -5,7 +5,14 @@ import pandas as pd import numpy as np -from scipy import sparse + +try: + from scipy import sparse +except ImportError: + raise ImportError( + "Training is not supported by this installation." + " Please install aizynthfinder with extras dependencies." + ) from aizynthfinder.training.utils import ( Config, diff --git a/aizynthfinder/training/preprocess_recommender.py b/aizynthfinder/training/preprocess_recommender.py index ccd7b35..124f5ba 100644 --- a/aizynthfinder/training/preprocess_recommender.py +++ b/aizynthfinder/training/preprocess_recommender.py @@ -5,8 +5,15 @@ import pandas as pd import numpy as np -from sklearn.preprocessing import LabelBinarizer -from scipy import sparse + +try: + from sklearn.preprocessing import LabelBinarizer + from scipy import sparse +except ImportError: + raise ImportError( + "Training is not supported by this installation." + " Please install aizynthfinder with extras dependencies." + ) from aizynthfinder.training.utils import ( Config, diff --git a/aizynthfinder/training/utils.py b/aizynthfinder/training/utils.py index 120f685..93088dc 100644 --- a/aizynthfinder/training/utils.py +++ b/aizynthfinder/training/utils.py @@ -9,8 +9,15 @@ import yaml import numpy as np import pandas as pd -from scipy import sparse -from sklearn.model_selection import train_test_split + +try: + from scipy import sparse + from sklearn.model_selection import train_test_split +except ImportError: + raise ImportError( + "Training is not supported by this installation." + " Please install aizynthfinder with extras dependencies." + ) from aizynthfinder.utils.paths import data_path diff --git a/aizynthfinder/utils/files.py b/aizynthfinder/utils/files.py index 1eb940c..a8135fe 100644 --- a/aizynthfinder/utils/files.py +++ b/aizynthfinder/utils/files.py @@ -6,22 +6,61 @@ import warnings import json import gzip +from pathlib import Path from typing import TYPE_CHECKING +from deprecated import deprecated import more_itertools import pandas as pd from aizynthfinder.utils.logging import logger if TYPE_CHECKING: - from aizynthfinder.utils.type_utils import List, Sequence, Any, Callable + from aizynthfinder.utils.type_utils import List, Sequence, Any, Callable, Union +def read_datafile(filename: Union[str, Path]) -> pd.DataFrame: + """ + Read aizynth output from disc in either .hdf5 or .json format + + :param filename: the path to the data + :return: the loaded data + """ + filename_str = str(filename) + if filename_str.endswith(".hdf5") or filename_str.endswith(".hdf"): + return pd.read_hdf(filename, "table") + return pd.read_json(filename, orient="table") + + +def save_datafile(data: pd.DataFrame, filename: Union[str, Path]) -> None: + """ + Save the given data to disc in either .hdf5 or .json format + + :param data: the data to save + :param filename: the path to the data + """ + filename_str = str(filename) + if filename_str.endswith(".hdf5") or filename_str.endswith(".hdf"): + with warnings.catch_warnings(): # This wil suppress a PerformanceWarning + warnings.simplefilter("ignore") + data.to_hdf(filename, key="table") + else: + data.to_json(filename, orient="table") + + +@deprecated(version="4.0.0", reason="replaced by 'cat_datafiles'") def cat_hdf_files( input_files: List[str], output_name: str, trees_name: str = None +) -> None: + """Concatenate hdf5 or json datafiles""" + cat_datafiles(input_files, output_name, trees_name) + + +def cat_datafiles( + input_files: List[str], output_name: str, trees_name: str = None ) -> None: """ - Concatenate hdf5 files with the key "table" + Concatenate hdf5 or json datafiles if `tree_name` is given, will take out the `trees` column from the tables and save it to a gzipped-json file. @@ -30,7 +69,7 @@ def cat_hdf_files( :param output_name: the name of the concatenated file :param trees_name: the name of the concatenated trees """ - data = pd.read_hdf(input_files[0], key="table") + data = read_datafile(input_files[0]) if "trees" not in data.columns: trees_name = None @@ -41,16 +80,13 @@ def cat_hdf_files( data = data[columns] for filename in input_files[1:]: - new_data = pd.read_hdf(filename, key="table") + new_data = read_datafile(filename) if trees_name: trees.extend(new_data["trees"].values) new_data = new_data[columns] data = pd.concat([data, new_data]) - with warnings.catch_warnings(): # This wil suppress a PerformanceWarning - warnings.simplefilter("ignore") - data.reset_index().to_hdf(output_name, key="table") - + save_datafile(data.reset_index(), output_name) if trees_name: if not trees_name.endswith(".gz"): trees_name += ".gz" diff --git a/aizynthfinder/utils/image.py b/aizynthfinder/utils/image.py index c18d25e..fc6b70b 100644 --- a/aizynthfinder/utils/image.py +++ b/aizynthfinder/utils/image.py @@ -15,6 +15,7 @@ from rdkit.Chem import Draw from rdkit import Chem +from aizynthfinder.chem import Molecule from aizynthfinder.utils.paths import data_path if TYPE_CHECKING: @@ -30,9 +31,10 @@ PilImage, PilColor, List, + FrameColors, + StrDict, ) from aizynthfinder.chem import ( - Molecule, UniqueMolecule, RetroReaction, FixedRetroReaction, @@ -316,3 +318,158 @@ def make_visjs_page( basename, _ = os.path.splitext(filename) shutil.make_archive(basename, "tar", root_dir=tmpdir) + + +class RouteImageFactory: + """ + Factory class for drawing a route + + :param route: the dictionary representation of the route + :param in_stock_colors: the colors around molecules, defaults to {True: "green", False: "orange"} + :param show_all: if True, also show nodes that are marked as hidden + :param margin: the margin between images + """ + + def __init__( + self, + route: StrDict, + in_stock_colors: FrameColors = None, + show_all: bool = True, + margin: int = 100, + ) -> None: + in_stock_colors = in_stock_colors or { + True: "green", + False: "orange", + } + self.show_all: bool = show_all + self.margin: int = margin + + self._stock_lookup: StrDict = {} + self._mol_lookup: StrDict = {} + self._extract_molecules(route) + images = molecules_to_images( + list(self._mol_lookup.values()), + [in_stock_colors[val] for val in self._stock_lookup.values()], + ) + self._image_lookup = dict(zip(self._mol_lookup.keys(), images)) + + self._mol_tree = self._extract_mol_tree(route) + self._add_effective_size(self._mol_tree) + + pos0 = ( + self._mol_tree["eff_width"] - self._mol_tree["image"].width + self.margin, + int(self._mol_tree["eff_height"] * 0.5) + - int(self._mol_tree["image"].height * 0.5), + ) + self._add_pos(self._mol_tree, pos0) + + self.image = Image.new( + self._mol_tree["image"].mode, + (self._mol_tree["eff_width"] + self.margin, self._mol_tree["eff_height"]), + color="white", + ) + self._draw = ImageDraw.Draw(self.image) + self._make_image(self._mol_tree) + self.image = crop_image(self.image) + + def _add_effective_size(self, tree_dict: StrDict) -> None: + children = tree_dict.get("children", []) + for child in children: + self._add_effective_size(child) + if children: + tree_dict["eff_height"] = sum( + child["eff_height"] for child in children + ) + self.margin * (len(children) - 1) + tree_dict["eff_width"] = ( + max(child["eff_width"] for child in children) + + tree_dict["image"].size[0] + + self.margin + ) + else: + tree_dict["eff_height"] = tree_dict["image"].size[1] + tree_dict["eff_width"] = tree_dict["image"].size[0] + self.margin + + def _add_pos(self, tree_dict: StrDict, pos: Tuple[int, int]) -> None: + tree_dict["left"] = pos[0] + tree_dict["top"] = pos[1] + children = tree_dict.get("children") + if not children: + return + + mid_y = pos[1] + int( + tree_dict["image"].height * 0.5 + ) # Mid-point of image along y + children_height = sum( + child["eff_height"] for child in children + ) + self.margin * (len(children) - 1) + childen_leftmost = min( + pos[0] - self.margin - child["image"].width for child in children + ) + child_y = mid_y - int(children_height * 0.5) # Top-most edge of children + child_ys = [] + # Now compute first guess of y-pos for children + for child in children: + y_adjust = int((child["eff_height"] - child["image"].height) * 0.5) + child_ys.append(child_y + y_adjust) + child_y += self.margin + child["eff_height"] + + for idx, (child, child_y0) in enumerate(zip(children, child_ys)): + child_x = childen_leftmost # pos[0] - self.margin - child["image"].width + child_y = child_y0 + # Overwrite first guess if child does not have any children + if not child.get("children") and idx == 0 and len(children) > 1: + child_y = child_ys[idx + 1] - self.margin - child["image"].height + elif not child.get("children") and idx > 0: + child_y = ( + child_ys[idx - 1] + self.margin + children[idx - 1]["image"].height + ) + self._add_pos(child, (child_x, child_y)) + + def _extract_mol_tree(self, tree_dict: StrDict) -> StrDict: + dict_ = { + "smiles": tree_dict["smiles"], + "image": self._image_lookup[tree_dict["smiles"]], + } + if tree_dict.get("children"): + dict_["children"] = [ + self._extract_mol_tree(grandchild) + for grandchild in tree_dict.get("children")[0]["children"] # type: ignore + if not (grandchild.get("hide", False) and not self.show_all) + ] + return dict_ + + def _extract_molecules(self, tree_dict: StrDict) -> None: + if tree_dict["type"] == "mol": + self._stock_lookup[tree_dict["smiles"]] = tree_dict.get("in_stock", False) + self._mol_lookup[tree_dict["smiles"]] = Molecule(smiles=tree_dict["smiles"]) + for child in tree_dict.get("children", []): + self._extract_molecules(child) + + def _make_image(self, tree_dict: StrDict) -> None: + self.image.paste(tree_dict["image"], (tree_dict["left"], tree_dict["top"])) + children = tree_dict.get("children") + if not children: + return + + children_right = max(child["left"] + child["image"].width for child in children) + mid_x = children_right + int(0.5 * (tree_dict["left"] - children_right)) + mid_y = tree_dict["top"] + int(tree_dict["image"].height * 0.5) + + self._draw.line((tree_dict["left"], mid_y, mid_x, mid_y), fill="black") + for child in children: + self._make_image(child) + child_mid_y = child["top"] + int(0.5 * child["image"].height) + self._draw.line( + ( + mid_x, + mid_y, + mid_x, + child_mid_y, + child["left"] + child["image"].width, + child_mid_y, + ), + fill="black", + ) + self._draw.ellipse( + (mid_x - 8, mid_y - 8, mid_x + 8, mid_y + 8), fill="black", outline="black" + ) diff --git a/aizynthfinder/utils/logging.py b/aizynthfinder/utils/logging.py index 0e7ac30..e858067 100644 --- a/aizynthfinder/utils/logging.py +++ b/aizynthfinder/utils/logging.py @@ -7,7 +7,10 @@ import yaml # See Github issue 30 why sklearn is imported here -import sklearn # noqa +try: + import sklearn # noqa +except ImportError: + pass from rdkit import RDLogger from aizynthfinder.utils.paths import data_path diff --git a/aizynthfinder/utils/models.py b/aizynthfinder/utils/models.py index 1e07f8d..3b5bac5 100644 --- a/aizynthfinder/utils/models.py +++ b/aizynthfinder/utils/models.py @@ -7,19 +7,26 @@ import numpy as np import requests -import grpc import tensorflow as tf -from google.protobuf.json_format import MessageToDict -from tensorflow_serving.apis import ( - predict_pb2, - get_model_metadata_pb2, - prediction_service_pb2_grpc, -) - -# pylint: disable=no-name-in-module + +try: + import grpc + from google.protobuf.json_format import MessageToDict + from tensorflow_serving.apis import ( + predict_pb2, + get_model_metadata_pb2, + prediction_service_pb2_grpc, + ) +except ImportError: + SUPPORT_EXTERNAL_APIS = False +else: + SUPPORT_EXTERNAL_APIS = True + +# pylint: disable=all from tensorflow.keras.metrics import top_k_categorical_accuracy from tensorflow.keras.models import load_model as load_keras_model +# pylint: enable=all from aizynthfinder.utils.logging import logger from aizynthfinder.utils.exceptions import ExternalModelAPIError @@ -129,6 +136,9 @@ class ExternalModelViaREST: """ def __init__(self, name: str) -> None: + if not SUPPORT_EXTERNAL_APIS: + raise ExternalModelAPIError("API packages are not installed.") + self._model_url = self._get_model_url(name) self._sig_def = self._get_sig_def() @@ -204,6 +214,9 @@ class ExternalModelViaGRPC: """ def __init__(self, name: str) -> None: + if not SUPPORT_EXTERNAL_APIS: + raise ExternalModelAPIError("API packages are not installed.") + self._server = self._get_server(name) self._model_name = name self._sig_def = self._get_sig_def() diff --git a/aizynthfinder/utils/mongo.py b/aizynthfinder/utils/mongo.py index 31a52c9..4eb54a0 100644 --- a/aizynthfinder/utils/mongo.py +++ b/aizynthfinder/utils/mongo.py @@ -1,8 +1,15 @@ """ Module containing routines to obtain a MongoClient instance """ from urllib.parse import urlencode +from typing import Optional -from pymongo import MongoClient +try: + from pymongo import MongoClient +except ImportError: + MongoClient = None + HAS_PYMONGO = False +else: + HAS_PYMONGO = True from aizynthfinder.utils.logging import logger @@ -15,7 +22,7 @@ def get_mongo_client( user: str = None, password: str = None, tls_certs_path: str = "", -) -> MongoClient: +) -> Optional[MongoClient]: """ A helper function to create and reuse MongoClient @@ -30,6 +37,9 @@ def get_mongo_client( :raises ValueError: if host and port is not given first time :return: the MongoDB client """ + if not HAS_PYMONGO: + return None + global _CLIENT if _CLIENT is None: params = {} diff --git a/docs/cli.rst b/docs/cli.rst index 81b816f..3b3d0d1 100644 --- a/docs/cli.rst +++ b/docs/cli.rst @@ -24,19 +24,25 @@ That gives something like this: .. include:: cli_help.txt +By default: + + * `All` stocks are selected if no stock is specified + * `First` expansion policy is selected if not expansion policy is specified + * `No` filter policy is selected if it is not specified on the command-line + Analysing output ---------------- -The results from the ``aizynthcli`` tool when supplying multiple SMILES is an HDF5 file that can be read as a pandas dataframe. -It will be called `output.hfdf5` by default. +The results from the ``aizynthcli`` tool when supplying multiple SMILES is an JSON or HDF5 file that can be read as a pandas dataframe. +It will be called `output.json.gz` by default. .. code-block:: import pandas as pd - data = pd.read_hdf("output.hdf5", "table") + data = pd.read_json("output.json.gz", orient="table") -it will contain statistics about the tree search and the top-ranked routes (as JSONs) for each target compund. +it will contain statistics about the tree search and the top-ranked routes (as JSONs) for each target compund, see below. When a single SMILES is provided to the tool, the statistics will be written to the terminal, and the top-ranked routes to a JSON file (`trees.json` by default). @@ -50,7 +56,7 @@ This is an example of how to create images of the top-ranked routes for the firs import pandas as pd from aizynthfinder.reactiontree import ReactionTree - data = pd.read_hdf("output.hdf5", "table") + data = pd.read_json("output.json.gz", orient="table") all_trees = data.trees.values # This contains a list of all the trees for all the compounds trees_for_first_target = all_trees[0] @@ -58,4 +64,40 @@ This is an example of how to create images of the top-ranked routes for the firs imagefile = f"route{itree:03d}.png" ReactionTree.from_dict(tree).to_image().save(imagefile) -The images will be called `route000.png`, `route001.png` etc. \ No newline at end of file +The images will be called `route000.png`, `route001.png` etc. + + +Specification of output +----------------------- + +The JSON or HDF5 file created when running the tool with a list of SMILES will have the following columns + +============================= =========== +Column Description +============================= =========== +target The target SMILES +search_time The total search time in seconds +first_solution_time The time elapsed until the first solution was found +first_solution_iteration The number of iterations completed until the first solution was found +number_of_nodes The number of nodes in the search tree +max_transforms The maximum number of transformations for all routes in the search tree +max_children The maximum number of children for a search node +number_of_routes The number of routes in the search tree +number_of_solved_routes The number of solved routes in search tree +top_score The score of the top-scored route (default to MCTS reward) +is_solved If the top-scored route is solved +number_of_steps The number of reactions in the top-scored route +number_of_precursors The number of starting materials +number_of_precursors_in_stock The number of starting materials in stock +precursors_in_stock Comma-separated list of SMILES of starting material in stock +precursors_not_in_stock Comma-separated list of SMILES of starting material not in stock +precursors_availability Semi-colon separated list of stock availability of the staring material +policy_used_counts Dictionary of the total number of times an expansion policy have been used +profiling Profiling information from the search tree, including expansion models call and reactant generation +stock_info Dictionary of the stock availability for each of the starting material in all extracted routes +top_scores Comma-separated list of the score of the extracted routes (default to MCTS reward) +trees A list of the extracted routes as dictionaries +============================= =========== + +If you running the tool with a single SMILES, all of this data will be printed to the screen, except +the ``stock_info`` and ``trees``. \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index c2f721c..9966909 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -6,7 +6,7 @@ project = "aizynthfinder" copyright = "2020-2022, Molecular AI group" author = "Molecular AI group" -release = "3.4.0" +release = "3.6.0" # This make sure that the cli_help.txt file is properly formated with open("cli_help.txt", "r") as fileobj: diff --git a/docs/configuration.rst b/docs/configuration.rst index 28fcb6c..e934374 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -66,7 +66,7 @@ A more detailed configuration file is shown below The (expansion) policy models are specified using two files * a checkpoint files from Keras in hdf5 format, - * a HDF5 file containing templates. + * a HDF5 or a CSV file containing templates. The filter policy model is specified using a single checkpoint file from Keras in hdf5 format. Any additional filters can be specified using the classname, and a tag as seen above using ``reactants_count`` with the flag @@ -75,8 +75,12 @@ filters can be specified using the classname, and a tag as seen above using ``re The template file should be readable by ``pandas`` using the ``table`` key and the ``retro_template`` column. A policy can then be selected using the provided key, like ``my_policy`` in the above example. -The stock files should be HDF5 files with the ``table`` key an the ``inchi_key`` column. The column -should contain pre-computed inchi keys of the molecules. +The stock files can be + * HDF5 files with the ``table`` key an the ``inchi_key`` column. + * A CSV file with a ``inchi_key`` column + * A text file a single column + +In all cases, the column should contain pre-computed inchi keys of the molecules. The stocks can then be selected using the provided key, like ``stock1`` or ``stock2`` in the above example. The values in the ``properties`` sections are optional, and if missing, default values are provided. @@ -101,4 +105,19 @@ filter_cutoff 0.05 the cut-off for the quick-filter policy prune_cycles_in_search True prevents the MCTS from creating cycles by recreating previously seen molecules when it is expanded additive_expansion False If true, reactions from all selected expansion policies will be appended, otherwise only the first non-empty expansion will be used search_algorithm mcts The search algorithm. Can be set to `package.module.ClassName` to use a custom search method -========================= ============== =========== \ No newline at end of file +use_rdchiral True If true, will apply templates with RDChiral, otherwise RDKit will be used +use_remote_models False If true, will try to connect to remote Tensorflow servers +post_processing N/A post-processing specifications +========================= ============== =========== + + +The ``post_processing`` property is a dictionary with the following settings + +========================= ============== =========== +Setting Default value Description +========================= ============== =========== +min_routes 5 the minumum number of routes to extract if ``all_routes`` is not set +max_routes 25 the maximum number of routes to extract if ``all_routes`` is not set +all_routes False if True, will extract all solved routes +route_distance_model N/A if set will load the quick route distance model from this checkpoint file +========================= ============== =========== diff --git a/docs/gui.rst b/docs/gui.rst index 72e04be..ddabec5 100644 --- a/docs/gui.rst +++ b/docs/gui.rst @@ -68,6 +68,7 @@ There is a GUI extension to perform clustering of the routes. Enter the followin .. code-block:: + %matplotlib inline from aizynthfinder.interfaces.gui import ClusteringGui ClusteringGui.from_app(app) diff --git a/docs/gui_input.png b/docs/gui_input.png index aa04a18..928a46c 100644 Binary files a/docs/gui_input.png and b/docs/gui_input.png differ diff --git a/docs/gui_results.png b/docs/gui_results.png index 919999f..d7796e9 100644 Binary files a/docs/gui_results.png and b/docs/gui_results.png differ diff --git a/docs/howto.rst b/docs/howto.rst new file mode 100644 index 0000000..e424f44 --- /dev/null +++ b/docs/howto.rst @@ -0,0 +1,86 @@ +How-to +======= + +This page outlines a few guidelines on some more advanced use-cases of AiZynthFinder or +frequently raised issues. + + +Using Retro* +------------ + +AiZynthFinder implements other search algorithms than MCTS. This is an example of how Retro* can be used. + +The search algorithm is specified in the configuration file. + +.. code-block:: yaml + + properties: + search_algorithm: aizynthfinder.search.retrostar.search_tree.SearchTree + + +This will use Retro* without a constant-valued oracle function. To specify the oracle function, you can +do + +.. code-block:: yaml + + properties: + search_algorithm: aizynthfinder.search.retrostar.search_tree.SearchTree + molecule_cost: + aizynthfinder.search.retrostar.cost.RetroStarCost: + model_path: retrostar_value_model.pickle + +The pickle file can be downloaded from `here `_ + + +Using multiple expansion policies +--------------------------------- + +AiZynthFinder can use multiple expansion policies. This gives an example how a general USPTO and a RingBreaker model +can be used together + +.. code-block:: yaml + + properties: + additive_expansion: True + policy: + files: + uspto: + - uspto_keras_model.hdf5 + - uspto_unique_templates.csv.gz + ringbreaker: + - uspto_ringbreaker_keras_model.hdf5 + - uspto_ringbreaker_unique_templates.csv.gz + + +and then to use this with ``aizynthcli`` do something like this + +.. code-block:: + + aizynthcli --smiles smiles.txt --config config.yml --policy uspto ringbreaker + + +Output more routes +------------------ + +The number of routes in the output of ``aizynthcli`` can be controlled from the configuration file. + +This is how you can extract at least 25 routes but not more than 50 per target + +.. code-block:: yaml + + properties: + post_processing: + min_routes: 25 + max_routes: 50 + +Alternatively, you can extract all solved routes. If a target is unsolved, it will return the number +of routes specified by ``min_routes`` and ``max_routes``. + +.. code-block:: yaml + + properties: + post_processing: + min_routes: 5 + max_routes: 10 + all_routes: True + diff --git a/docs/index.rst b/docs/index.rst index 00bdcd9..be2a965 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,14 +1,24 @@ aizynthfinder documentation =========================== -aizynthfinder is a tool for retrosynthetic planning. The algorithm is based on a Monte Carlo tree search that recursively breaks down a molecule to purchasable precursors. The tree search is guided by a policy that suggests possible precursors by utilizing a neural network trained on a library of known reaction templates. +aizynthfinder is a tool for retrosynthetic planning. The default algorithm is based on a Monte Carlo tree search that recursively breaks down a molecule to purchasable precursors. The tree search is guided by a policy that suggests possible precursors by utilizing a neural network trained on a library of known reaction templates. Introduction ------------ +You run retrosynthesis experiments you need a trained model and a stock collection. You can download a public available model based on USPTO and a stock collection from ZINC database. + +.. code-block:: + + download_public_data . + +This will download the data to your current directory. The ``config.yml`` file can be used directly with the interfaces. + + There are two main interfaces provided by the package: -a script that performs tree search in batch mode and -an interface that is providing a GUI within a Jupyter notebook. + + * a script that performs tree search in batch mode and + * an interface that is providing a GUI within a Jupyter notebook. The GUI interface should be run in a Jupyter notebook. This is a simple example of the code in a Jupyter notebook cell. @@ -33,24 +43,22 @@ The batch-mode script is called ``aizynthcli`` and can be executed like: .. code-block:: bash - aizynthcli --config config_local.yml --policy full_uspto --stock ACD eMolecules --smiles smiles.txt + aizynthcli --config config.yml --smiles smiles.txt -where `config_local.yml` contains configurations such as paths to policy models and stocks (see :doc:`here `), -`full_uspto` is the chosen policy model, `ACD` and `eMolecules` are the chosen stocks and `smiles.txt` is a simple text -file with SMILES (one on each row). If the ``--policy`` or ``--stock`` arguments are omitted, the first policy and all stocks -in the configuration file are auto-selected. +where `config.yml` contains configurations such as paths to policy models and stocks (see :doc:`here `), and `smiles.txt` is a simple text +file with SMILES (one on each row). If you just want to perform the tree search on a single molecule. You can directly specify it on the command-line within quotes: .. code-block:: bash - aizynthcli --config config_local.yml --policy full_uspto --stock ACD Addendum --smiles "COc1cccc(OC(=O)/C=C/c2cc(OC)c(OC)c(OC)c2)c1" + aizynthcli --config config.yml --smiles "COc1cccc(OC(=O)/C=C/c2cc(OC)c(OC)c(OC)c2)c1" The output is some statistics about the tree search, the scores of the top-ranked routes, and the reaction tree -of the top-ranked routes. When smiles are provided in a text file the results are stored in an HDF5 file, +of the top-ranked routes. When smiles are provided in a text file the results are stored in a JSON file, whereas if the SMILEs is provided on the command-line it is printed directly to the prompt (except the reaction trees, which are written to a JSON file). @@ -64,6 +72,7 @@ whereas if the SMILEs is provided on the command-line it is printed directly to configuration stocks scoring + howto training aizynthfinder sequences diff --git a/docs/python_interface.rst b/docs/python_interface.rst index c06a4eb..df283b9 100644 --- a/docs/python_interface.rst +++ b/docs/python_interface.rst @@ -76,7 +76,7 @@ out all the reactants SMILES strings reactants_smiles = [] for reaction_tuple in reactions: - reactants_smiles.append([mol.smiles for mol in reaction_tuple[0].reactants]) + reactants_smiles.append([mol.smiles for mol in reaction_tuple[0].reactants[0]) or you can put all the metadata of all the reactions in a pandas dataframe diff --git a/docs/training.rst b/docs/training.rst index 195c4fe..9be7a05 100644 --- a/docs/training.rst +++ b/docs/training.rst @@ -1,6 +1,12 @@ Training ======== +**------------------------------------------------------------------------------------------------------------------------------------------** + +**The use of this functionality is now discouraged and the users should have a look at the AiZynthTrain package for training their models** + +**------------------------------------------------------------------------------------------------------------------------------------------** + This page explains the training tools available in the `aizynthfinder` package. Prerequisites diff --git a/env-dev.yml b/env-dev.yml index c5cbd91..a5aa37f 100644 --- a/env-dev.yml +++ b/env-dev.yml @@ -3,8 +3,5 @@ channels: - https://conda.anaconda.org/conda-forge - defaults dependencies: - - python>=3.6,<3.10 - - graphviz>=2.38,<3.0 - - pytables>=3.7.0,<4.0.0 - - rdkit=>2019.09.1 - - poetry>=1.1.4,<2.0 + - python>=3.8,<3.10 + - poetry>=1.1.4,<2.0 \ No newline at end of file diff --git a/env-users.yml b/env-users.yml index fb22379..4d72754 100644 --- a/env-users.yml +++ b/env-users.yml @@ -3,10 +3,9 @@ channels: - conda-forge - defaults dependencies: - - python>=3.6,<3.10 - - graphviz>=2.38,<3.0 - - rdkit=>2019.09.1 - - pytables>=3.7.0,<4.0.0 - - pip>=20.0 + - python>=3.8,<3.10 + - git + - pip>=20.0 - pip: - - https://github.com/MolecularAI/aizynthfinder/archive/v3.4.0.tar.gz + - https://github.com/MolecularAI/aizynthfinder/archive/v3.6.0.tar.gz + \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 8161f66..1b450bc 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,31 +1,26 @@ [[package]] name = "absl-py" -version = "1.0.0" +version = "1.3.0" description = "Abseil Python Common Libraries, see https://github.com/abseil/abseil-py." category = "main" optional = false python-versions = ">=3.6" -[package.dependencies] -six = "*" - [[package]] name = "aiohttp" -version = "3.8.1" +version = "3.8.3" description = "Async http client/server framework (asyncio)" category = "main" -optional = false +optional = true python-versions = ">=3.6" [package.dependencies] aiosignal = ">=1.1.2" async-timeout = ">=4.0.0a3,<5.0" -asynctest = {version = "0.13.0", markers = "python_version < \"3.8\""} attrs = ">=17.3.0" charset-normalizer = ">=2.0,<3.0" frozenlist = ">=1.1.1" multidict = ">=4.5,<7.0" -typing-extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""} yarl = ">=1.0,<2.0" [package.extras] @@ -33,11 +28,11 @@ speedups = ["aiodns", "brotli", "cchardet"] [[package]] name = "aiosignal" -version = "1.2.0" +version = "1.3.1" description = "aiosignal: a list of registered asynchronous callbacks" category = "main" -optional = false -python-versions = ">=3.6" +optional = true +python-versions = ">=3.7" [package.dependencies] frozenlist = ">=1.1.0" @@ -52,11 +47,11 @@ python-versions = "*" [[package]] name = "alembic" -version = "1.7.7" +version = "1.8.1" description = "A database migration tool for SQLAlchemy." category = "main" -optional = false -python-versions = ">=3.6" +optional = true +python-versions = ">=3.7" [package.dependencies] importlib-metadata = {version = "*", markers = "python_version < \"3.9\""} @@ -67,6 +62,23 @@ SQLAlchemy = ">=1.3.0" [package.extras] tz = ["python-dateutil"] +[[package]] +name = "anyio" +version = "3.6.2" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "main" +optional = false +python-versions = ">=3.6.2" + +[package.dependencies] +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["packaging", "sphinx-rtd-theme", "sphinx-autodoc-typehints (>=1.2.0)"] +test = ["coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "contextlib2", "uvloop (<0.15)", "mock (>=4)", "uvloop (>=0.15)"] +trio = ["trio (>=0.16,<0.22)"] + [[package]] name = "appnope" version = "0.1.3" @@ -80,7 +92,7 @@ name = "apted" version = "1.0.3" description = "APTED algorithm for the Tree Edit Distance" category = "main" -optional = false +optional = true python-versions = "*" [[package]] @@ -93,7 +105,6 @@ python-versions = ">=3.6" [package.dependencies] argon2-cffi-bindings = "*" -typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] dev = ["pre-commit", "cogapp", "tomli", "coverage[toml] (>=5.0.2)", "hypothesis", "pytest", "sphinx", "sphinx-notfound-page", "furo"] @@ -117,17 +128,30 @@ tests = ["pytest"] [[package]] name = "astroid" -version = "2.11.3" +version = "2.12.13" description = "An abstract syntax tree for Python with inference support." category = "dev" optional = false -python-versions = ">=3.6.2" +python-versions = ">=3.7.2" [package.dependencies] lazy-object-proxy = ">=1.4.0" -typed-ast = {version = ">=1.4.0,<2.0", markers = "implementation_name == \"cpython\" and python_version < \"3.8\""} typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} -wrapt = ">=1.11,<2" +wrapt = {version = ">=1.11,<2", markers = "python_version < \"3.11\""} + +[[package]] +name = "asttokens" +version = "2.1.0" +description = "Annotate AST trees with source code positions" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +six = "*" + +[package.extras] +test = ["astroid (<=2.5.3)", "pytest"] [[package]] name = "astunparse" @@ -145,23 +169,12 @@ name = "async-timeout" version = "4.0.2" description = "Timeout context manager for asyncio programs" category = "main" -optional = false +optional = true python-versions = ">=3.6" -[package.dependencies] -typing-extensions = {version = ">=3.6.5", markers = "python_version < \"3.8\""} - -[[package]] -name = "asynctest" -version = "0.13.0" -description = "Enhance the standard unittest package with features for testing asyncio libraries" -category = "main" -optional = false -python-versions = ">=3.5" - [[package]] name = "atomicwrites" -version = "1.4.0" +version = "1.4.1" description = "Atomic file writes." category = "dev" optional = false @@ -169,29 +182,29 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "attrs" -version = "21.4.0" +version = "22.1.0" description = "Classes Without Boilerplate" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.5" [package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] +dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"] docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"] [[package]] name = "autopage" -version = "0.5.0" +version = "0.5.1" description = "A library to provide automatic paging for console output" category = "main" -optional = false +optional = true python-versions = ">=3.6" [[package]] name = "babel" -version = "2.10.1" +version = "2.11.0" description = "Internationalization utilities" category = "dev" optional = false @@ -225,19 +238,18 @@ lxml = ["lxml"] [[package]] name = "black" -version = "22.3.0" +version = "22.10.0" description = "The uncompromising code formatter." category = "dev" optional = false -python-versions = ">=3.6.2" +python-versions = ">=3.7" [package.dependencies] click = ">=8.0.0" mypy-extensions = ">=0.4.3" pathspec = ">=0.9.0" platformdirs = ">=2" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""} +tomli = {version = ">=1.1.0", markers = "python_full_version < \"3.11.0a7\""} typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} [package.extras] @@ -248,7 +260,7 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "bleach" -version = "5.0.0" +version = "5.0.1" description = "An easy safelist-based HTML-sanitizing tool." category = "main" optional = false @@ -259,20 +271,12 @@ six = ">=1.9.0" webencodings = "*" [package.extras] -css = ["tinycss2 (>=1.1.0)"] -dev = ["pip-tools (==6.5.1)", "pytest (==7.1.1)", "flake8 (==4.0.1)", "tox (==3.24.5)", "sphinx (==4.3.2)", "twine (==4.0.0)", "wheel (==0.37.1)", "hashin (==0.17.0)", "black (==22.3.0)", "mypy (==0.942)"] - -[[package]] -name = "cached-property" -version = "1.5.2" -description = "A decorator for caching properties in classes." -category = "main" -optional = false -python-versions = "*" +css = ["tinycss2 (>=1.1.0,<1.2)"] +dev = ["build (==0.8.0)", "flake8 (==4.0.1)", "hashin (==0.17.0)", "pip-tools (==6.6.2)", "pytest (==7.1.2)", "Sphinx (==4.3.2)", "tox (==3.25.0)", "twine (==4.0.1)", "wheel (==0.37.1)", "black (==22.3.0)", "mypy (==0.961)"] [[package]] name = "cachetools" -version = "5.0.0" +version = "5.2.0" description = "Extensible memoizing collections and decorators" category = "main" optional = false @@ -280,15 +284,15 @@ python-versions = "~=3.7" [[package]] name = "certifi" -version = "2021.10.8" +version = "2022.9.24" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false -python-versions = "*" +python-versions = ">=3.6" [[package]] name = "cffi" -version = "1.15.0" +version = "1.15.1" description = "Foreign Function Interface for Python calling C code." category = "main" optional = false @@ -299,18 +303,18 @@ pycparser = "*" [[package]] name = "charset-normalizer" -version = "2.0.12" +version = "2.1.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = false -python-versions = ">=3.5.0" +python-versions = ">=3.6.0" [package.extras] unicode_backport = ["unicodedata2"] [[package]] name = "click" -version = "8.1.2" +version = "8.1.3" description = "Composable command line interface toolkit" category = "dev" optional = false @@ -318,50 +322,49 @@ python-versions = ">=3.7" [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [[package]] name = "cliff" -version = "3.10.1" +version = "4.1.0" description = "Command Line Interface Formulation Framework" category = "main" -optional = false -python-versions = ">=3.6" +optional = true +python-versions = ">=3.8" [package.dependencies] autopage = ">=0.4.0" cmd2 = ">=1.0.0" -pbr = ">=2.0.0,<2.1.0 || >2.1.0" +importlib-metadata = ">=4.4" PrettyTable = ">=0.7.2" -pyparsing = ">=2.1.0" PyYAML = ">=3.12" stevedore = ">=2.0.1" [[package]] name = "cmaes" -version = "0.8.2" +version = "0.9.0" description = "Lightweight Covariance Matrix Adaptation Evolution Strategy (CMA-ES) implementation for Python 3." category = "main" -optional = false +optional = true python-versions = ">=3.6" [package.dependencies] numpy = "*" +[package.extras] +cmawm = ["scipy"] + [[package]] name = "cmd2" -version = "2.4.1" +version = "2.4.2" description = "cmd2 - quickly build feature-rich and user-friendly interactive command line applications in Python" category = "main" -optional = false +optional = true python-versions = ">=3.6" [package.dependencies] attrs = ">=16.3.0" -importlib-metadata = {version = ">=1.6.0", markers = "python_version < \"3.8\""} pyperclip = ">=1.6" pyreadline3 = {version = "*", markers = "sys_platform == \"win32\""} -typing-extensions = {version = "*", markers = "python_version < \"3.8\""} wcwidth = ">=0.1.7" [package.extras] @@ -371,18 +374,18 @@ validate = ["flake8", "mypy (==0.902)", "types-pkg-resources"] [[package]] name = "colorama" -version = "0.4.4" +version = "0.4.6" description = "Cross-platform colored terminal text." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" [[package]] name = "colorlog" -version = "6.6.0" +version = "6.7.0" description = "Add colours to the output of Python's logging module." category = "main" -optional = false +optional = true python-versions = ">=3.6" [package.dependencies] @@ -391,9 +394,41 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} [package.extras] development = ["black", "flake8", "mypy", "pytest", "types-colorama"] +[[package]] +name = "comm" +version = "0.1.1" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +traitlets = ">5.3" + +[package.extras] +test = ["pytest"] + +[[package]] +name = "contourpy" +version = "1.0.6" +description = "Python library for calculating contours of 2D quadrilateral grids" +category = "main" +optional = true +python-versions = ">=3.7" + +[package.dependencies] +numpy = ">=1.16" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["docutils (<0.18)", "sphinx (<=5.2.0)", "sphinx-rtd-theme"] +test = ["pytest", "matplotlib", "pillow", "flake8", "isort"] +test-minimal = ["pytest"] +test-no-codebase = ["pytest", "matplotlib", "pillow"] + [[package]] name = "coverage" -version = "6.3.2" +version = "6.5.0" description = "Code coverage measurement for Python" category = "dev" optional = false @@ -407,12 +442,12 @@ name = "cycler" version = "0.11.0" description = "Composable style cycles" category = "main" -optional = false +optional = true python-versions = ">=3.6" [[package]] name = "debugpy" -version = "1.6.0" +version = "1.6.3" description = "An implementation of the Debug Adapter Protocol for Python" category = "main" optional = false @@ -450,11 +485,11 @@ dev = ["tox", "bump2version (<1)", "sphinx (<2)", "importlib-metadata (<3)", "im [[package]] name = "dill" -version = "0.3.4" +version = "0.3.6" description = "serialize all of python" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*" +python-versions = ">=3.7" [package.extras] graph = ["objgraph (>=1.7.2)"] @@ -475,9 +510,20 @@ category = "main" optional = false python-versions = ">=3.6" +[[package]] +name = "executing" +version = "1.2.0" +description = "Get the currently executing AST node of a frame, and other information" +category = "main" +optional = false +python-versions = "*" + +[package.extras] +tests = ["asttokens", "pytest", "littleutils", "rich"] + [[package]] name = "fastjsonschema" -version = "2.15.3" +version = "2.16.2" description = "Fastest Python implementation of JSON schema" category = "main" optional = false @@ -486,9 +532,21 @@ python-versions = "*" [package.extras] devel = ["colorama", "jsonschema", "json-spec", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] +[[package]] +name = "fire" +version = "0.4.0" +description = "A library for automatically generating command line interfaces." +category = "main" +optional = true +python-versions = "*" + +[package.dependencies] +six = "*" +termcolor = "*" + [[package]] name = "flatbuffers" -version = "2.0" +version = "22.11.23" description = "The FlatBuffers serialization format for Python" category = "main" optional = false @@ -496,10 +554,10 @@ python-versions = "*" [[package]] name = "fonttools" -version = "4.33.3" +version = "4.38.0" description = "Tools to manipulate font files" category = "main" -optional = false +optional = true python-versions = ">=3.7" [package.extras] @@ -518,22 +576,22 @@ woff = ["zopfli (>=0.1.4)", "brotlicffi (>=0.8.0)", "brotli (>=1.0.1)"] [[package]] name = "frozenlist" -version = "1.3.0" +version = "1.3.3" description = "A list-like structure which implements collections.abc.MutableSequence" category = "main" -optional = false +optional = true python-versions = ">=3.7" [[package]] name = "fsspec" -version = "2022.5.0" +version = "2022.11.0" description = "File-system specification" category = "main" -optional = false +optional = true python-versions = ">=3.7" [package.dependencies] -aiohttp = {version = "*", optional = true, markers = "extra == \"http\""} +aiohttp = {version = "<4.0.0a0 || >4.0.0a0,<4.0.0a1 || >4.0.0a1", optional = true, markers = "extra == \"http\""} requests = {version = "*", optional = true, markers = "extra == \"http\""} [package.extras] @@ -550,7 +608,7 @@ github = ["requests"] gs = ["gcsfs"] gui = ["panel"] hdfs = ["pyarrow (>=1)"] -http = ["requests", "aiohttp"] +http = ["requests", "aiohttp (!=4.0.0a0,!=4.0.0a1)"] libarchive = ["libarchive-c"] oci = ["ocifs"] s3 = ["s3fs"] @@ -561,7 +619,7 @@ tqdm = ["tqdm"] [[package]] name = "gast" -version = "0.5.3" +version = "0.4.0" description = "Python AST that abstracts the underlying Python version" category = "main" optional = false @@ -569,7 +627,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "google-auth" -version = "2.6.6" +version = "2.14.1" description = "Google Authentication Library" category = "main" optional = false @@ -583,7 +641,8 @@ six = ">=1.9.0" [package.extras] aiohttp = ["requests (>=2.20.0,<3.0.0dev)", "aiohttp (>=3.6.2,<4.0.0dev)"] -pyopenssl = ["pyopenssl (>=20.0.0)"] +enterprise_cert = ["cryptography (==36.0.2)", "pyopenssl (==22.0.0)"] +pyopenssl = ["pyopenssl (>=20.0.0)", "cryptography (>=38.0.3)"] reauth = ["pyu2f (>=0.1.5)"] [[package]] @@ -614,44 +673,41 @@ six = "*" [[package]] name = "greenlet" -version = "1.1.2" +version = "2.0.1" description = "Lightweight in-process concurrent programming" category = "main" -optional = false +optional = true python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" [package.extras] -docs = ["sphinx"] +docs = ["sphinx", "docutils (<0.18)"] +test = ["objgraph", "psutil", "faulthandler"] [[package]] name = "grpcio" -version = "1.45.0" +version = "1.51.0" description = "HTTP/2-based RPC framework" category = "main" optional = false -python-versions = ">=3.6" - -[package.dependencies] -six = ">=1.5.2" +python-versions = ">=3.7" [package.extras] -protobuf = ["grpcio-tools (>=1.45.0)"] +protobuf = ["grpcio-tools (>=1.51.0)"] [[package]] name = "h5py" -version = "3.6.0" +version = "3.7.0" description = "Read and write HDF5 files from Python" category = "main" optional = false python-versions = ">=3.7" [package.dependencies] -cached-property = {version = "*", markers = "python_version < \"3.8\""} numpy = ">=1.14.5" [[package]] name = "idna" -version = "3.3" +version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" category = "main" optional = false @@ -659,7 +715,7 @@ python-versions = ">=3.5" [[package]] name = "imagesize" -version = "1.3.0" +version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" category = "dev" optional = false @@ -667,24 +723,23 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "importlib-metadata" -version = "4.11.3" +version = "5.1.0" description = "Read metadata from Python packages" category = "main" optional = false python-versions = ">=3.7" [package.dependencies] -typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] +docs = ["sphinx (>=3.5)", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "furo", "jaraco.tidelift (>=1.4)"] perf = ["ipython"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "flake8 (<5)", "pytest-cov", "pytest-enabler (>=1.3)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "pytest-flake8", "importlib-resources (>=1.3)"] [[package]] name = "importlib-resources" -version = "5.7.1" +version = "5.10.0" description = "Read resources from Python packages" category = "main" optional = false @@ -694,8 +749,8 @@ python-versions = ">=3.7" zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] +docs = ["sphinx (>=3.5)", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "furo", "jaraco.tidelift (>=1.4)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "flake8 (<5)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] [[package]] name = "iniconfig" @@ -707,7 +762,7 @@ python-versions = "*" [[package]] name = "invoke" -version = "1.7.0" +version = "1.7.3" description = "Pythonic task execution" category = "dev" optional = false @@ -715,14 +770,15 @@ python-versions = "*" [[package]] name = "ipykernel" -version = "6.13.0" +version = "6.18.0" description = "IPython Kernel for Jupyter" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" [package.dependencies] appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1" debugpy = ">=1.0" ipython = ">=7.23.1" jupyter-client = ">=6.1.12" @@ -730,19 +786,21 @@ matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" psutil = "*" +pyzmq = ">=17" tornado = ">=6.1" traitlets = ">=5.1.0" [package.extras] -test = ["pytest (>=6.0)", "pytest-cov", "flaky", "ipyparallel", "pre-commit", "pytest-timeout"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest-asyncio", "pytest-cov", "pytest-timeout", "pytest (>=7.0)"] [[package]] name = "ipython" -version = "7.32.0" +version = "8.6.0" description = "IPython: Productive Interactive Computing" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" [package.dependencies] appnope = {version = "*", markers = "sys_platform == \"darwin\""} @@ -753,20 +811,23 @@ jedi = ">=0.16" matplotlib-inline = "*" pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} pickleshare = "*" -prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0" -pygments = "*" -traitlets = ">=4.2" +prompt-toolkit = ">3.0.1,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5" [package.extras] -all = ["Sphinx (>=1.3)", "ipykernel", "ipyparallel", "ipywidgets", "nbconvert", "nbformat", "nose (>=0.10.1)", "notebook", "numpy (>=1.17)", "pygments", "qtconsole", "requests", "testpath"] -doc = ["Sphinx (>=1.3)"] +all = ["black", "ipykernel", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "docrepr", "matplotlib", "stack-data", "pytest (<7)", "typing-extensions", "pytest (<7.1)", "pytest-asyncio", "testpath", "nbconvert", "nbformat", "ipywidgets", "notebook", "ipyparallel", "qtconsole", "curio", "matplotlib (!=3.2.0)", "numpy (>=1.20)", "pandas", "trio"] +black = ["black"] +doc = ["ipykernel", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "docrepr", "matplotlib", "stack-data", "pytest (<7)", "typing-extensions", "pytest (<7.1)", "pytest-asyncio", "testpath"] kernel = ["ipykernel"] nbconvert = ["nbconvert"] nbformat = ["nbformat"] -notebook = ["notebook", "ipywidgets"] +notebook = ["ipywidgets", "notebook"] parallel = ["ipyparallel"] qtconsole = ["qtconsole"] -test = ["nose (>=0.10.1)", "requests", "testpath", "pygments", "nbformat", "ipykernel", "numpy (>=1.17)"] +test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] +test_extra = ["pytest (<7.1)", "pytest-asyncio", "testpath", "curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.20)", "pandas", "trio"] [[package]] name = "ipython-genutils" @@ -778,7 +839,7 @@ python-versions = "*" [[package]] name = "ipywidgets" -version = "7.7.0" +version = "7.7.2" description = "IPython HTML widgets for Jupyter" category = "main" optional = false @@ -788,8 +849,7 @@ python-versions = "*" ipykernel = ">=4.5.1" ipython = {version = ">=4.0.0", markers = "python_version >= \"3.3\""} ipython-genutils = ">=0.2.0,<0.3.0" -jupyterlab-widgets = {version = ">=1.0.0", markers = "python_version >= \"3.6\""} -nbformat = ">=4.2.0" +jupyterlab-widgets = {version = ">=1.0.0,<3", markers = "python_version >= \"3.6\""} traitlets = ">=4.3.1" widgetsnbextension = ">=3.6.0,<3.7.0" @@ -812,7 +872,7 @@ plugins = ["setuptools"] [[package]] name = "jedi" -version = "0.18.1" +version = "0.18.2" description = "An autocompletion tool for Python that can be used for text editors." category = "main" optional = false @@ -822,12 +882,13 @@ python-versions = ">=3.6" parso = ">=0.8.0,<0.9.0" [package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx-rtd-theme (==0.4.3)", "sphinx (==1.8.5)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] -testing = ["Django (<3.1)", "colorama", "docopt", "pytest (<7.0.0)"] +testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] [[package]] name = "jinja2" -version = "3.1.1" +version = "3.1.2" description = "A very fast and expressive template engine." category = "main" optional = false @@ -841,15 +902,15 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "joblib" -version = "1.1.0" +version = "1.2.0" description = "Lightweight pipelining with Python functions" category = "main" -optional = false -python-versions = ">=3.6" +optional = true +python-versions = ">=3.7" [[package]] name = "jsonschema" -version = "4.4.0" +version = "4.17.1" description = "An implementation of JSON Schema validation for Python" category = "main" optional = false @@ -857,14 +918,13 @@ python-versions = ">=3.7" [package.dependencies] attrs = ">=17.4.0" -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} +pkgutil-resolve-name = {version = ">=1.3.10", markers = "python_version < \"3.9\""} pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" -typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] -format_nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] [[package]] name = "jupyter" @@ -884,7 +944,7 @@ qtconsole = "*" [[package]] name = "jupyter-client" -version = "7.3.0" +version = "7.4.7" description = "Jupyter protocol implementation and client libraries" category = "main" optional = false @@ -895,21 +955,21 @@ entrypoints = "*" jupyter-core = ">=4.9.2" nest-asyncio = ">=1.5.4" python-dateutil = ">=2.8.2" -pyzmq = ">=22.3" -tornado = ">=6.0" +pyzmq = ">=23.0" +tornado = ">=6.2" traitlets = "*" [package.extras] -doc = ["ipykernel", "myst-parser", "sphinx (>=1.3.6)", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] -test = ["codecov", "coverage", "ipykernel (>=6.5)", "ipython", "mypy", "pre-commit", "pytest", "pytest-asyncio (>=0.18)", "pytest-cov", "pytest-timeout"] +doc = ["ipykernel", "myst-parser", "sphinx-rtd-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt"] +test = ["codecov", "coverage", "ipykernel (>=6.12)", "ipython", "mypy", "pre-commit", "pytest", "pytest-asyncio (>=0.18)", "pytest-cov", "pytest-timeout"] [[package]] name = "jupyter-console" -version = "6.4.3" +version = "6.4.4" description = "Jupyter terminal console" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] ipykernel = "*" @@ -923,19 +983,49 @@ test = ["pexpect"] [[package]] name = "jupyter-core" -version = "4.10.0" +version = "5.0.0" description = "Jupyter core package. A base package on which Jupyter projects rely." category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" [package.dependencies] +platformdirs = "*" pywin32 = {version = ">=1.0", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} traitlets = "*" [package.extras] test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] +[[package]] +name = "jupyter-server" +version = "1.23.3" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +anyio = ">=3.1.0,<4" +argon2-cffi = "*" +jinja2 = "*" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.7.0" +nbconvert = ">=6.4.4" +nbformat = ">=5.2.0" +packaging = "*" +prometheus-client = "*" +pywinpty = {version = "*", markers = "os_name == \"nt\""} +pyzmq = ">=17" +Send2Trash = "*" +terminado = ">=0.8.3" +tornado = ">=6.1.0" +traitlets = ">=5.1" +websocket-client = "*" + +[package.extras] +test = ["coverage", "ipykernel", "pre-commit", "pytest-console-scripts", "pytest-cov", "pytest-mock", "pytest-timeout", "pytest-tornasync", "pytest (>=7.0)", "requests"] + [[package]] name = "jupyterlab-pygments" version = "0.2.2" @@ -946,7 +1036,7 @@ python-versions = ">=3.7" [[package]] name = "jupyterlab-widgets" -version = "1.1.0" +version = "1.1.1" description = "A JupyterLab extension." category = "main" optional = false @@ -954,7 +1044,7 @@ python-versions = ">=3.6" [[package]] name = "jupytext" -version = "1.13.8" +version = "1.14.1" description = "Jupyter notebooks as Markdown documents, Julia, Python or R scripts" category = "main" optional = false @@ -973,66 +1063,56 @@ toml = ["toml"] [[package]] name = "keras" -version = "2.8.0" +version = "2.11.0" description = "Deep learning for humans." category = "main" optional = false -python-versions = "*" - -[[package]] -name = "keras-preprocessing" -version = "1.1.2" -description = "Easy data preprocessing and data augmentation for deep learning models" -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -numpy = ">=1.9.1" -six = ">=1.9.0" - -[package.extras] -image = ["scipy (>=0.14)", "Pillow (>=5.2.0)"] -pep8 = ["flake8"] -tests = ["pandas", "pillow", "tensorflow", "keras", "pytest", "pytest-xdist", "pytest-cov"] +python-versions = ">=3.7" [[package]] name = "kiwisolver" -version = "1.4.2" +version = "1.4.4" description = "A fast implementation of the Cassowary constraint solver" category = "main" -optional = false +optional = true python-versions = ">=3.7" -[package.dependencies] -typing-extensions = {version = "*", markers = "python_version < \"3.8\""} - [[package]] name = "lazy-object-proxy" -version = "1.7.1" +version = "1.8.0" description = "A fast and thorough lazy object proxy." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [[package]] name = "libclang" -version = "14.0.1" +version = "14.0.6" description = "Clang Python Bindings, mirrored from the official LLVM repo: https://github.com/llvm/llvm-project/tree/main/clang/bindings/python, to make the installation process easier." category = "main" optional = false python-versions = "*" +[[package]] +name = "lightning-utilities" +version = "0.3.0" +description = "PyTorch Lightning Sample project." +category = "main" +optional = true +python-versions = ">=3.7" + +[package.dependencies] +fire = "*" + [[package]] name = "mako" -version = "1.2.0" +version = "1.2.4" description = "A super-fast templating language that borrows the best ideas from the existing templating languages." category = "main" -optional = false +optional = true python-versions = ">=3.7" [package.dependencies] -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} MarkupSafe = ">=0.9.2" [package.extras] @@ -1042,11 +1122,11 @@ testing = ["pytest"] [[package]] name = "markdown" -version = "3.3.6" +version = "3.4.1" description = "Python implementation of Markdown." category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} @@ -1064,7 +1144,6 @@ python-versions = ">=3.7" [package.dependencies] mdurl = ">=0.1,<1.0" -typing_extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""} [package.extras] benchmarking = ["psutil", "pytest", "pytest-benchmark (>=3.2,<4.0)"] @@ -1086,26 +1165,27 @@ python-versions = ">=3.7" [[package]] name = "matplotlib" -version = "3.5.1" +version = "3.6.2" description = "Python plotting package" category = "main" -optional = false -python-versions = ">=3.7" +optional = true +python-versions = ">=3.8" [package.dependencies] +contourpy = ">=1.0.1" cycler = ">=0.10" fonttools = ">=4.22.0" kiwisolver = ">=1.0.1" -numpy = ">=1.17" +numpy = ">=1.19" packaging = ">=20.0" pillow = ">=6.2.0" pyparsing = ">=2.2.1" python-dateutil = ">=2.7" -setuptools_scm = ">=4" +setuptools_scm = ">=7" [[package]] name = "matplotlib-inline" -version = "0.1.3" +version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" category = "main" optional = false @@ -1124,23 +1204,23 @@ python-versions = ">=3.6" [[package]] name = "mdit-py-plugins" -version = "0.3.0" +version = "0.3.1" description = "Collection of plugins for markdown-it-py" category = "main" optional = false -python-versions = "~=3.6" +python-versions = ">=3.7" [package.dependencies] markdown-it-py = ">=1.0.0,<3.0.0" [package.extras] -code_style = ["pre-commit (==2.6)"] -rtd = ["myst-parser (>=0.14.0,<0.15.0)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] -testing = ["coverage", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"] +code_style = ["pre-commit"] +rtd = ["attrs", "myst-parser (>=0.16.1,<0.17.0)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "mdurl" -version = "0.1.1" +version = "0.1.2" description = "Markdown URL utilities" category = "main" optional = false @@ -1148,15 +1228,15 @@ python-versions = ">=3.7" [[package]] name = "mistune" -version = "0.8.4" -description = "The fastest markdown parser in pure Python" +version = "2.0.4" +description = "A sane Markdown parser with useful plugins and renderers" category = "main" optional = false python-versions = "*" [[package]] name = "more-itertools" -version = "8.12.0" +version = "8.14.0" description = "More routines for operating on iterables, beyond itertools" category = "main" optional = false @@ -1167,7 +1247,7 @@ name = "multidict" version = "6.0.2" description = "multidict implementation" category = "main" -optional = false +optional = true python-versions = ">=3.7" [[package]] @@ -1194,9 +1274,41 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "nbclassic" +version = "0.4.8" +description = "A web-based notebook environment for interactive computing" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +argon2-cffi = "*" +ipykernel = "*" +ipython-genutils = "*" +jinja2 = "*" +jupyter-client = ">=6.1.1" +jupyter-core = ">=4.6.1" +jupyter-server = ">=1.8" +nbconvert = ">=5" +nbformat = "*" +nest-asyncio = ">=1.5" +notebook-shim = ">=0.1.0" +prometheus-client = "*" +pyzmq = ">=17" +Send2Trash = ">=1.8.0" +terminado = ">=0.8.3" +tornado = ">=6.1" +traitlets = ">=4.2.1" + +[package.extras] +docs = ["sphinx", "nbsphinx", "sphinxcontrib-github-alt", "sphinx-rtd-theme", "myst-parser"] +json-logging = ["json-logging"] +test = ["pytest", "coverage", "requests", "testpath", "nbval", "pytest-playwright", "pytest-cov", "pytest-tornasync", "requests-unixsocket"] + [[package]] name = "nbclient" -version = "0.6.0" +version = "0.7.0" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." category = "main" optional = false @@ -1206,15 +1318,15 @@ python-versions = ">=3.7.0" jupyter-client = ">=6.1.5" nbformat = ">=5.0" nest-asyncio = "*" -traitlets = ">=5.0.0" +traitlets = ">=5.2.2" [package.extras] -sphinx = ["mock", "moto", "myst-parser", "Sphinx (>=1.7)", "sphinx-book-theme"] -test = ["black", "check-manifest", "flake8", "ipykernel", "ipython (<8.0.0)", "ipywidgets (<8.0.0)", "mypy", "pip (>=18.1)", "pre-commit", "pytest (>=4.1)", "pytest-asyncio", "pytest-cov (>=2.6.1)", "setuptools (>=60.0)", "testpath", "twine (>=1.11.0)", "xmltodict"] +sphinx = ["autodoc-traits", "mock", "moto", "myst-parser", "Sphinx (>=1.7)", "sphinx-book-theme"] +test = ["black", "check-manifest", "flake8", "ipykernel", "ipython", "ipywidgets", "mypy", "nbconvert", "pip (>=18.1)", "pre-commit", "pytest (>=4.1)", "pytest-asyncio", "pytest-cov (>=2.6.1)", "setuptools (>=60.0)", "testpath", "twine (>=1.11.0)", "xmltodict"] [[package]] name = "nbconvert" -version = "6.5.0" +version = "7.2.5" description = "Converting Jupyter Notebooks" category = "main" optional = false @@ -1224,12 +1336,12 @@ python-versions = ">=3.7" beautifulsoup4 = "*" bleach = "*" defusedxml = "*" -entrypoints = ">=0.2.2" +importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} jinja2 = ">=3.0" jupyter-core = ">=4.7" jupyterlab-pygments = "*" -MarkupSafe = ">=2.0" -mistune = ">=0.8.1,<2" +markupsafe = ">=2.0" +mistune = ">=2.0.3,<3" nbclient = ">=0.5.0" nbformat = ">=5.1" packaging = "*" @@ -1239,15 +1351,17 @@ tinycss2 = "*" traitlets = ">=5.0" [package.extras] -all = ["pytest", "pytest-cov", "pytest-dependency", "ipykernel", "ipywidgets (>=7)", "pre-commit", "pyppeteer (>=1,<1.1)", "tornado (>=6.1)", "sphinx (>=1.5.1)", "sphinx-rtd-theme", "nbsphinx (>=0.2.12)", "ipython"] -docs = ["sphinx (>=1.5.1)", "sphinx-rtd-theme", "nbsphinx (>=0.2.12)", "ipython"] +all = ["ipykernel", "ipython", "ipywidgets (>=7)", "myst-parser", "nbsphinx (>=0.2.12)", "pre-commit", "pyppeteer (>=1,<1.1)", "pyqtwebengine (>=5.15)", "pytest", "pytest-cov", "pytest-dependency", "sphinx-rtd-theme", "sphinx (==5.0.2)", "tornado (>=6.1)"] +docs = ["ipython", "myst-parser", "nbsphinx (>=0.2.12)", "sphinx-rtd-theme", "sphinx (==5.0.2)"] +qtpdf = ["pyqtwebengine (>=5.15)"] +qtpng = ["pyqtwebengine (>=5.15)"] serve = ["tornado (>=6.1)"] -test = ["pytest", "pytest-cov", "pytest-dependency", "ipykernel", "ipywidgets (>=7)", "pre-commit", "pyppeteer (>=1,<1.1)"] +test = ["ipykernel", "ipywidgets (>=7)", "pre-commit", "pyppeteer (>=1,<1.1)", "pytest", "pytest-cov", "pytest-dependency"] webpdf = ["pyppeteer (>=1,<1.1)"] [[package]] name = "nbformat" -version = "5.3.0" +version = "5.7.0" description = "The Jupyter Notebook format" category = "main" optional = false @@ -1257,14 +1371,14 @@ python-versions = ">=3.7" fastjsonschema = "*" jsonschema = ">=2.6" jupyter-core = "*" -traitlets = ">=4.1" +traitlets = ">=5.1" [package.extras] -test = ["check-manifest", "testpath", "pytest", "pre-commit"] +test = ["check-manifest", "pep440", "pre-commit", "pytest", "testpath"] [[package]] name = "nest-asyncio" -version = "1.5.5" +version = "1.5.6" description = "Patch asyncio to allow nested event loops" category = "main" optional = false @@ -1272,22 +1386,22 @@ python-versions = ">=3.5" [[package]] name = "networkx" -version = "2.6.3" +version = "2.8.8" description = "Python package for creating and manipulating graphs and networks" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" [package.extras] -default = ["numpy (>=1.19)", "scipy (>=1.5,!=1.6.1)", "matplotlib (>=3.3)", "pandas (>=1.1)"] -developer = ["black (==21.5b1)", "pre-commit (>=2.12)"] -doc = ["sphinx (>=4.0,<5.0)", "pydata-sphinx-theme (>=0.6,<1.0)", "sphinx-gallery (>=0.9,<1.0)", "numpydoc (>=1.1)", "pillow (>=8.2)", "nb2plots (>=0.6)", "texext (>=0.6.6)"] -extra = ["lxml (>=4.5)", "pygraphviz (>=1.7)", "pydot (>=1.4.1)"] -test = ["pytest (>=6.2)", "pytest-cov (>=2.12)", "codecov (>=2.1)"] +default = ["numpy (>=1.19)", "scipy (>=1.8)", "matplotlib (>=3.4)", "pandas (>=1.3)"] +developer = ["pre-commit (>=2.20)", "mypy (>=0.982)"] +doc = ["sphinx (>=5.2)", "pydata-sphinx-theme (>=0.11)", "sphinx-gallery (>=0.11)", "numpydoc (>=1.5)", "pillow (>=9.2)", "nb2plots (>=0.6)", "texext (>=0.6.6)"] +extra = ["lxml (>=4.6)", "pygraphviz (>=1.9)", "pydot (>=1.4.2)", "sympy (>=1.10)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)", "codecov (>=2.1)"] [[package]] name = "notebook" -version = "6.4.12" +version = "6.5.2" description = "A web-based notebook environment for interactive computing" category = "main" optional = false @@ -1300,6 +1414,7 @@ ipython-genutils = "*" jinja2 = "*" jupyter-client = ">=5.3.4" jupyter-core = ">=4.6.1" +nbclassic = ">=0.4.7" nbconvert = ">=5" nbformat = "*" nest-asyncio = ">=1.5" @@ -1313,31 +1428,76 @@ traitlets = ">=4.2.1" [package.extras] docs = ["sphinx", "nbsphinx", "sphinxcontrib-github-alt", "sphinx-rtd-theme", "myst-parser"] json-logging = ["json-logging"] -test = ["pytest", "coverage", "requests", "testpath", "nbval", "selenium", "pytest-cov", "requests-unixsocket"] +test = ["pytest", "coverage", "requests", "testpath", "nbval", "selenium (==4.1.5)", "pytest-cov", "requests-unixsocket"] + +[[package]] +name = "notebook-shim" +version = "0.2.2" +description = "A shim layer for notebook traits and config" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-tornasync"] [[package]] name = "numexpr" -version = "2.8.1" +version = "2.8.4" description = "Fast numerical expression evaluator for NumPy" category = "main" optional = false -python-versions = "*" +python-versions = ">=3.7" [package.dependencies] numpy = ">=1.13.3" -packaging = "*" [[package]] name = "numpy" -version = "1.21.6" +version = "1.23.5" description = "NumPy is the fundamental package for array computing with Python." category = "main" optional = false -python-versions = ">=3.7,<3.11" +python-versions = ">=3.8" + +[[package]] +name = "nvidia-cublas-cu11" +version = "11.10.3.66" +description = "CUBLAS native runtime libraries" +category = "main" +optional = true +python-versions = ">=3" + +[[package]] +name = "nvidia-cuda-nvrtc-cu11" +version = "11.7.99" +description = "NVRTC native runtime libraries" +category = "main" +optional = true +python-versions = ">=3" + +[[package]] +name = "nvidia-cuda-runtime-cu11" +version = "11.7.99" +description = "CUDA Runtime native Libraries" +category = "main" +optional = true +python-versions = ">=3" + +[[package]] +name = "nvidia-cudnn-cu11" +version = "8.5.0.96" +description = "cuDNN runtime libraries" +category = "main" +optional = true +python-versions = ">=3" [[package]] name = "oauthlib" -version = "3.2.0" +version = "3.2.2" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" category = "main" optional = false @@ -1365,10 +1525,10 @@ tests = ["pytest", "pytest-cov", "pytest-pep8"] [[package]] name = "optuna" -version = "2.10.0" +version = "2.10.1" description = "A hyperparameter optimization framework" category = "main" -optional = false +optional = true python-versions = ">=3.6" [package.dependencies] @@ -1388,7 +1548,7 @@ benchmark = ["asv", "virtualenv"] checking = ["black", "hacking", "isort", "mypy (==0.790)", "blackdoc"] codecov = ["codecov", "pytest-cov"] doctest = ["cma", "matplotlib (>=3.0.0)", "pandas", "plotly (>=4.0.0)", "scikit-learn (>=0.24.2,<1.0.0)", "scikit-optimize", "mlflow"] -document = ["sphinx (<4.0.0)", "sphinx-rtd-theme", "sphinx-copybutton", "sphinx-gallery", "sphinx-plotly-directive", "pillow", "matplotlib", "scikit-learn (<1.0.0)", "plotly (>=4.0.0)", "pandas", "lightgbm", "torch (==1.8.0)", "torchvision (==0.9.0)", "torchaudio (==0.8.0)", "thop"] +document = ["Jinja2 (<3.0.0)", "MarkupSafe (<=2.0.1)", "sphinx (<=3.5.4)", "sphinx-rtd-theme (<=1.0.0)", "sphinx-copybutton (<=0.4.0)", "sphinx-gallery (<=0.10.0)", "sphinx-plotly-directive (<=0.1.3)", "pillow", "matplotlib", "scikit-learn (<1.0.0)", "plotly (>=4.0.0)", "pandas", "lightgbm", "torch (==1.8.0)", "torchvision (==0.9.0)", "torchaudio (==0.8.0)", "thop"] experimental = ["redis"] integration = ["chainer (>=5.0.0)", "cma", "lightgbm", "mlflow", "wandb", "mpi4py", "mxnet", "pandas", "scikit-learn (>=0.24.2,<1.0.0)", "scikit-optimize", "xgboost", "tensorflow", "tensorflow-datasets", "pytorch-ignite", "pytorch-lightning (>=1.0.2)", "skorch", "catalyst (>=21.3)", "torchaudio (==0.8.0)", "allennlp (>=2.2.0,<2.7.0)", "fastai", "botorch (>=0.4.0)", "torch (==1.8.0+cpu)", "torchvision (==0.9.0+cpu)", "torch (==1.8.0)", "torchvision (==0.9.0)"] optional = ["bokeh (<2.0.0)", "matplotlib (>=3.0.0)", "pandas", "plotly (>=4.0.0)", "redis", "scikit-learn (>=0.24.2,<1.0.0)"] @@ -1408,19 +1568,19 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" [[package]] name = "pandas" -version = "1.1.5" +version = "1.5.2" description = "Powerful data structures for data analysis, time series, and statistics" category = "main" optional = false -python-versions = ">=3.6.1" +python-versions = ">=3.8" [package.dependencies] -numpy = ">=1.15.4" -python-dateutil = ">=2.7.3" -pytz = ">=2017.2" +numpy = {version = ">=1.20.3", markers = "python_version < \"3.10\""} +python-dateutil = ">=2.8.1" +pytz = ">=2020.1" [package.extras] -test = ["pytest (>=4.0.2)", "pytest-xdist", "hypothesis (>=3.58)"] +test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] [[package]] name = "pandocfilters" @@ -1444,18 +1604,18 @@ testing = ["docopt", "pytest (<6.0.0)"] [[package]] name = "pathspec" -version = "0.9.0" +version = "0.10.2" description = "Utility library for gitignore style pattern matching of file paths." category = "dev" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.7" [[package]] name = "pbr" -version = "5.8.1" +version = "5.11.0" description = "Python Build Reasonableness" category = "main" -optional = false +optional = true python-versions = ">=2.6" [[package]] @@ -1479,27 +1639,35 @@ python-versions = "*" [[package]] name = "pillow" -version = "9.1.0" +version = "9.3.0" description = "Python Imaging Library (Fork)" category = "main" optional = false python-versions = ">=3.7" [package.extras] -docs = ["olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinx-rtd-theme (>=1.0)", "sphinxext-opengraph"] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] +[[package]] +name = "pkgutil-resolve-name" +version = "1.3.10" +description = "Resolve a name to an object." +category = "main" +optional = false +python-versions = ">=3.6" + [[package]] name = "platformdirs" -version = "2.5.2" -description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" +version = "2.5.4" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "main" optional = false python-versions = ">=3.7" [package.extras] -docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"] -test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytest (>=6)"] +docs = ["furo (>=2022.9.29)", "proselint (>=0.13)", "sphinx-autodoc-typehints (>=1.19.4)", "sphinx (>=5.3)"] +test = ["appdirs (==1.4.4)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "pytest (>=7.2)"] [[package]] name = "pluggy" @@ -1509,23 +1677,19 @@ category = "dev" optional = false python-versions = ">=3.6" -[package.dependencies] -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} - [package.extras] dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] [[package]] name = "prettytable" -version = "3.2.0" +version = "3.5.0" description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format" category = "main" -optional = false +optional = true python-versions = ">=3.7" [package.dependencies] -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} wcwidth = "*" [package.extras] @@ -1533,7 +1697,7 @@ tests = ["pytest", "pytest-cov", "pytest-lazy-fixture"] [[package]] name = "prometheus-client" -version = "0.14.1" +version = "0.15.0" description = "Python client for the Prometheus monitoring system." category = "main" optional = false @@ -1544,7 +1708,7 @@ twisted = ["twisted"] [[package]] name = "prompt-toolkit" -version = "3.0.29" +version = "3.0.33" description = "Library for building powerful interactive command lines in Python" category = "main" optional = false @@ -1555,22 +1719,22 @@ wcwidth = "*" [[package]] name = "protobuf" -version = "3.20.1" +version = "3.19.6" description = "Protocol Buffers" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.5" [[package]] name = "psutil" -version = "5.9.0" +version = "5.9.4" description = "Cross-platform lib for process and system monitoring in Python." category = "main" optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [package.extras] -test = ["ipaddress", "mock", "unittest2", "enum34", "pywin32", "wmi"] +test = ["ipaddress", "mock", "enum34", "pywin32", "wmi"] [[package]] name = "ptyprocess" @@ -1580,6 +1744,17 @@ category = "main" optional = false python-versions = "*" +[[package]] +name = "pure-eval" +version = "0.2.2" +description = "Safely evaluate AST nodes without side effects" +category = "main" +optional = false +python-versions = "*" + +[package.extras] +tests = ["pytest"] + [[package]] name = "py" version = "1.11.0" @@ -1617,62 +1792,59 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pydantic" -version = "1.9.0" -description = "Data validation and settings management using python 3.6 type hinting" +version = "1.10.2" +description = "Data validation and settings management using python type hints" category = "main" -optional = false -python-versions = ">=3.6.1" +optional = true +python-versions = ">=3.7" [package.dependencies] -typing-extensions = ">=3.7.4.3" +typing-extensions = ">=4.1.0" [package.extras] dotenv = ["python-dotenv (>=0.10.4)"] email = ["email-validator (>=1.0.3)"] -[[package]] -name = "pydeprecate" -version = "0.3.2" -description = "Deprecation tooling" -category = "main" -optional = false -python-versions = ">=3.6" - [[package]] name = "pygments" -version = "2.12.0" +version = "2.13.0" description = "Pygments is a syntax highlighting package written in Python." category = "main" optional = false python-versions = ">=3.6" +[package.extras] +plugins = ["importlib-metadata"] + [[package]] name = "pylint" -version = "2.13.7" +version = "2.15.6" description = "python code static checker" category = "dev" optional = false -python-versions = ">=3.6.2" +python-versions = ">=3.7.2" [package.dependencies] -astroid = ">=2.11.3,<=2.12.0-dev0" -colorama = {version = "*", markers = "sys_platform == \"win32\""} +astroid = ">=2.12.12,<=2.14.0-dev0" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = ">=0.2" isort = ">=4.2.5,<6" mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +tomlkit = ">=0.10.1" typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} [package.extras] -testutil = ["gitpython (>3)"] +spelling = ["pyenchant (>=3.2,<4.0)"] +testutils = ["gitpython (>3)"] [[package]] name = "pymongo" -version = "3.12.3" +version = "3.13.0" description = "Python driver for MongoDB " category = "main" -optional = false +optional = true python-versions = "*" [package.extras] @@ -1687,7 +1859,7 @@ zstd = ["zstandard"] [[package]] name = "pyparsing" -version = "3.0.8" +version = "3.0.9" description = "pyparsing module - Classes and methods to define and execute parsing grammars" category = "main" optional = false @@ -1701,7 +1873,7 @@ name = "pyperclip" version = "1.8.2" description = "A cross-platform clipboard module for Python. (Only handles plain text for now.)" category = "main" -optional = false +optional = true python-versions = "*" [[package]] @@ -1709,12 +1881,12 @@ name = "pyreadline3" version = "3.4.1" description = "A python implementation of GNU readline." category = "main" -optional = false +optional = true python-versions = "*" [[package]] name = "pyrsistent" -version = "0.18.1" +version = "0.19.2" description = "Persistent/Functional/Immutable data structures" category = "main" optional = false @@ -1732,7 +1904,6 @@ python-versions = ">=3.6" atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} iniconfig = "*" packaging = "*" pluggy = ">=0.12,<2.0" @@ -1773,14 +1944,14 @@ testing = ["fields", "hunter", "process-tests", "six", "pytest-xdist", "virtuale [[package]] name = "pytest-datadir" -version = "1.3.1" +version = "1.4.1" description = "pytest plugin for test data directories and files" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.6" [package.dependencies] -pytest = ">=2.7.0" +pytest = ">=5.0" [[package]] name = "pytest-mccabe" @@ -1796,7 +1967,7 @@ pytest = ">=5.4.0" [[package]] name = "pytest-mock" -version = "3.7.0" +version = "3.10.0" description = "Thin-wrapper around the mock package for easier use with pytest" category = "dev" optional = false @@ -1821,40 +1992,43 @@ six = ">=1.5" [[package]] name = "pytorch-lightning" -version = "1.6.2" +version = "1.8.3.post0" description = "PyTorch Lightning is the lightweight PyTorch wrapper for ML researchers. Scale your models. Write less boilerplate." category = "main" -optional = false +optional = true python-versions = ">=3.7" [package.dependencies] -fsspec = {version = ">=2021.05.0,<2021.06.0 || >2021.06.0", extras = ["http"]} +fsspec = {version = ">2021.06.0", extras = ["http"]} +lightning-utilities = ">=0.3.0,<0.4.0" numpy = ">=1.17.2" packaging = ">=17.0" -pyDeprecate = ">=0.3.1,<0.4.0" PyYAML = ">=5.4" -tensorboard = ">=2.2.0" -torch = ">=1.8" -torchmetrics = ">=0.4.1" -tqdm = ">=4.41.0" +tensorboardX = ">=2.2" +torch = ">=1.9" +torchmetrics = ">=0.7.0" +tqdm = ">=4.57.0" typing-extensions = ">=4.0.0" [package.extras] -all = ["matplotlib (>3.1)", "horovod (>=0.21.2,!=0.24.0)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)", "neptune-client (>=0.10.0)", "comet-ml (>=3.1.12)", "mlflow (>=1.0.0)", "test-tube (>=0.7.5)", "wandb (>=0.8.21)", "coverage (>5.2.0,<6.3)", "codecov (>=2.1)", "pytest (>=6.0)", "pytest-rerunfailures (>=10.2)", "twine (==3.2)", "mypy (>=0.920)", "flake8 (>=3.9.2)", "pre-commit (>=1.0)", "pytest-forked", "sklearn", "jsonargparse", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "pandas", "torchvision (>=0.9)", "gym[classic_control] (>=0.17.0)", "ipython"] -cpu = ["matplotlib (>3.1)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)", "neptune-client (>=0.10.0)", "comet-ml (>=3.1.12)", "mlflow (>=1.0.0)", "test-tube (>=0.7.5)", "wandb (>=0.8.21)", "coverage (>5.2.0,<6.3)", "codecov (>=2.1)", "pytest (>=6.0)", "pytest-rerunfailures (>=10.2)", "twine (==3.2)", "mypy (>=0.920)", "flake8 (>=3.9.2)", "pre-commit (>=1.0)", "pytest-forked", "sklearn", "jsonargparse", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "pandas", "torchvision (>=0.9)", "gym[classic_control] (>=0.17.0)", "ipython"] -cpu-extra = ["matplotlib (>3.1)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)"] -dev = ["matplotlib (>3.1)", "horovod (>=0.21.2,!=0.24.0)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)", "neptune-client (>=0.10.0)", "comet-ml (>=3.1.12)", "mlflow (>=1.0.0)", "test-tube (>=0.7.5)", "wandb (>=0.8.21)", "coverage (>5.2.0,<6.3)", "codecov (>=2.1)", "pytest (>=6.0)", "pytest-rerunfailures (>=10.2)", "twine (==3.2)", "mypy (>=0.920)", "flake8 (>=3.9.2)", "pre-commit (>=1.0)", "pytest-forked", "sklearn", "jsonargparse", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "pandas"] -examples = ["torchvision (>=0.9)", "gym[classic_control] (>=0.17.0)", "ipython"] -extra = ["matplotlib (>3.1)", "horovod (>=0.21.2,!=0.24.0)", "torchtext (>=0.9)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.7.1)", "gcsfs (>=2021.5.0)", "rich (>=10.2.2,<10.15.0 || >=10.16.0)"] -loggers = ["neptune-client (>=0.10.0)", "comet-ml (>=3.1.12)", "mlflow (>=1.0.0)", "test-tube (>=0.7.5)", "wandb (>=0.8.21)"] -test = ["coverage (>5.2.0,<6.3)", "codecov (>=2.1)", "pytest (>=6.0)", "pytest-rerunfailures (>=10.2)", "twine (==3.2)", "mypy (>=0.920)", "flake8 (>=3.9.2)", "pre-commit (>=1.0)", "pytest-forked", "sklearn", "jsonargparse", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "pandas"] +all = ["matplotlib (>3.1)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.15.2)", "rich (>=10.14.0,!=10.15.0.a)", "coverage (==6.5.0)", "codecov (==2.1.12)", "pytest (==7.2.0)", "pytest-cov (==4.0.0)", "pytest-forked (==1.4.0)", "pytest-rerunfailures (==10.2)", "pre-commit (==2.20.0)", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "psutil", "pandas (>1.0)", "fastapi", "uvicorn", "tensorboard (>=2.9.1)", "protobuf (<=3.20.1)", "torchvision (>=0.10)", "gym[classic_control] (>=0.17.0)", "ipython", "colossalai (>=0.1.10)", "fairscale (>=0.4.5)", "deepspeed (>=0.6.0)", "horovod (>=0.21.2,!=0.24.0)", "hivemind (>=1.0.1)"] +colossalai = ["colossalai (>=0.1.10)"] +deepspeed = ["deepspeed (>=0.6.0)"] +dev = ["matplotlib (>3.1)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.15.2)", "rich (>=10.14.0,!=10.15.0.a)", "coverage (==6.5.0)", "codecov (==2.1.12)", "pytest (==7.2.0)", "pytest-cov (==4.0.0)", "pytest-forked (==1.4.0)", "pytest-rerunfailures (==10.2)", "pre-commit (==2.20.0)", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "psutil", "pandas (>1.0)", "fastapi", "uvicorn", "tensorboard (>=2.9.1)", "protobuf (<=3.20.1)"] +examples = ["torchvision (>=0.10)", "gym[classic_control] (>=0.17.0)", "ipython"] +extra = ["matplotlib (>3.1)", "omegaconf (>=2.0.5)", "hydra-core (>=1.0.5)", "jsonargparse[signatures] (>=4.15.2)", "rich (>=10.14.0,!=10.15.0.a)"] +fairscale = ["fairscale (>=0.4.5)"] +hivemind = ["hivemind (>=1.0.1)"] +horovod = ["horovod (>=0.21.2,!=0.24.0)"] +strategies = ["colossalai (>=0.1.10)", "fairscale (>=0.4.5)", "deepspeed (>=0.6.0)", "horovod (>=0.21.2,!=0.24.0)", "hivemind (>=1.0.1)"] +test = ["coverage (==6.5.0)", "codecov (==2.1.12)", "pytest (==7.2.0)", "pytest-cov (==4.0.0)", "pytest-forked (==1.4.0)", "pytest-rerunfailures (==10.2)", "pre-commit (==2.20.0)", "cloudpickle (>=1.3)", "scikit-learn (>0.22.1)", "onnxruntime", "psutil", "pandas (>1.0)", "fastapi", "uvicorn", "tensorboard (>=2.9.1)", "protobuf (<=3.20.1)"] [[package]] name = "pytorch-tree-lstm" version = "0.1.3" description = "A Tree-LSTM model package for PyTorch" category = "main" -optional = false +optional = true python-versions = ">=3" [package.dependencies] @@ -1863,7 +2037,7 @@ torch = "*" [[package]] name = "pytz" -version = "2022.1" +version = "2022.6" description = "World timezone definitions, modern and historical" category = "main" optional = false @@ -1871,7 +2045,7 @@ python-versions = "*" [[package]] name = "pywin32" -version = "303" +version = "305" description = "Python for Window Extensions" category = "main" optional = false @@ -1879,7 +2053,7 @@ python-versions = "*" [[package]] name = "pywinpty" -version = "2.0.5" +version = "2.0.9" description = "Pseudo terminal support for Windows from Python." category = "main" optional = false @@ -1895,7 +2069,7 @@ python-versions = ">=3.6" [[package]] name = "pyzmq" -version = "22.3.0" +version = "24.0.1" description = "Python bindings for 0MQ" category = "main" optional = false @@ -1907,7 +2081,7 @@ py = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "qtconsole" -version = "5.3.0" +version = "5.4.0" description = "Jupyter Qt console" category = "main" optional = false @@ -1921,7 +2095,7 @@ jupyter-core = "*" pygments = "*" pyzmq = ">=17.1" qtpy = ">=2.0.1" -traitlets = "*" +traitlets = "<5.2.1 || >5.2.1,<5.2.2 || >5.2.2" [package.extras] doc = ["Sphinx (>=1.3)"] @@ -1929,17 +2103,17 @@ test = ["flaky", "pytest", "pytest-qt"] [[package]] name = "qtpy" -version = "2.0.1" +version = "2.3.0" description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] packaging = "*" [package.extras] -test = ["pytest (>=6.0.0)", "pytest-cov (>=3.0.0)", "pytest-qt"] +test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] [[package]] name = "rdchiral" @@ -1949,23 +2123,35 @@ category = "main" optional = false python-versions = ">=3.5" +[[package]] +name = "rdkit" +version = "2022.9.1" +description = "A collection of chemoinformatics and machine-learning software written in C++ and Python" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +numpy = "*" +Pillow = "*" + [[package]] name = "requests" -version = "2.27.1" +version = "2.28.1" description = "Python HTTP for Humans." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.7, <4" [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} -idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} +charset-normalizer = ">=2,<3" +idna = ">=2.5,<4" urllib3 = ">=1.21.1,<1.27" [package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] -use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "requests-oauthlib" @@ -1984,30 +2170,28 @@ rsa = ["oauthlib[signedtoken] (>=3.0.0)"] [[package]] name = "route-distances" -version = "1.0.1" +version = "1.1.0" description = "Models for calculating distances between synthesis routes" category = "main" -optional = false -python-versions = ">=3.7,<3.10" +optional = true +python-versions = ">=3.8,<3.10" [package.dependencies] apted = ">=1.0.3,<2.0.0" optuna = ">=2.5.0,<3.0.0" +pandas = ">=1.5.0,<2.0.0" pydantic = ">=1.8.0,<2.0.0" python-dateutil = ">=2.8.2,<3.0.0" pytorch-lightning = ">=1.6.0,<2.0.0" pytorch-tree-lstm = ">=0.1.3,<0.2.0" +rdkit = ">=2022.3.3,<2023.0.0" scikit-learn = ">0.21.0" tables = ">=3.6.0,<4.0.0" torch = ">=1.7.1,<2.0.0" -[package.source] -type = "url" -url = "https://github.com/MolecularAI/route-distances/archive/refs/tags/v1.0.1.tar.gz" - [[package]] name = "rsa" -version = "4.8" +version = "4.9" description = "Pure-Python RSA implementation" category = "main" optional = false @@ -2018,34 +2202,39 @@ pyasn1 = ">=0.1.3" [[package]] name = "scikit-learn" -version = "1.0.2" +version = "1.1.3" description = "A set of python modules for machine learning and data mining" category = "main" -optional = false -python-versions = ">=3.7" +optional = true +python-versions = ">=3.8" [package.dependencies] -joblib = ">=0.11" -numpy = ">=1.14.6" -scipy = ">=1.1.0" +joblib = ">=1.0.0" +numpy = ">=1.17.3" +scipy = ">=1.3.2" threadpoolctl = ">=2.0.0" [package.extras] -benchmark = ["matplotlib (>=2.2.3)", "pandas (>=0.25.0)", "memory-profiler (>=0.57.0)"] -docs = ["matplotlib (>=2.2.3)", "scikit-image (>=0.14.5)", "pandas (>=0.25.0)", "seaborn (>=0.9.0)", "memory-profiler (>=0.57.0)", "sphinx (>=4.0.1)", "sphinx-gallery (>=0.7.0)", "numpydoc (>=1.0.0)", "Pillow (>=7.1.2)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)"] -examples = ["matplotlib (>=2.2.3)", "scikit-image (>=0.14.5)", "pandas (>=0.25.0)", "seaborn (>=0.9.0)"] -tests = ["matplotlib (>=2.2.3)", "scikit-image (>=0.14.5)", "pandas (>=0.25.0)", "pytest (>=5.0.1)", "pytest-cov (>=2.9.0)", "flake8 (>=3.8.2)", "black (>=21.6b0)", "mypy (>=0.770)", "pyamg (>=4.0.0)"] +benchmark = ["matplotlib (>=3.1.2)", "pandas (>=1.0.5)", "memory-profiler (>=0.57.0)"] +docs = ["matplotlib (>=3.1.2)", "scikit-image (>=0.16.2)", "pandas (>=1.0.5)", "seaborn (>=0.9.0)", "memory-profiler (>=0.57.0)", "sphinx (>=4.0.1)", "sphinx-gallery (>=0.7.0)", "numpydoc (>=1.2.0)", "Pillow (>=7.1.2)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)"] +examples = ["matplotlib (>=3.1.2)", "scikit-image (>=0.16.2)", "pandas (>=1.0.5)", "seaborn (>=0.9.0)"] +tests = ["matplotlib (>=3.1.2)", "scikit-image (>=0.16.2)", "pandas (>=1.0.5)", "pytest (>=5.0.1)", "pytest-cov (>=2.9.0)", "flake8 (>=3.8.2)", "black (>=22.3.0)", "mypy (>=0.961)", "pyamg (>=4.0.0)", "numpydoc (>=1.2.0)"] [[package]] name = "scipy" -version = "1.7.3" -description = "SciPy: Scientific Library for Python" +version = "1.9.3" +description = "Fundamental algorithms for scientific computing in Python" category = "main" -optional = false -python-versions = ">=3.7,<3.11" +optional = true +python-versions = ">=3.8" [package.dependencies] -numpy = ">=1.16.5,<1.23.0" +numpy = ">=1.18.5,<1.26.0" + +[package.extras] +test = ["pytest", "pytest-cov", "pytest-xdist", "asv", "mpmath", "gmpy2", "threadpoolctl", "scikit-umfpack"] +doc = ["sphinx (!=4.1.0)", "pydata-sphinx-theme (==0.9.0)", "sphinx-panels (>=0.5.2)", "matplotlib (>2)", "numpydoc", "sphinx-tabs"] +dev = ["mypy", "typing-extensions", "pycodestyle", "flake8"] [[package]] name = "send2trash" @@ -2062,15 +2251,16 @@ win32 = ["pywin32"] [[package]] name = "setuptools-scm" -version = "6.4.2" +version = "7.0.5" description = "the blessed package to manage your versions by scm tags" category = "main" -optional = false -python-versions = ">=3.6" +optional = true +python-versions = ">=3.7" [package.dependencies] packaging = ">=20.0" tomli = ">=1.0.0" +typing-extensions = "*" [package.extras] test = ["pytest (>=6.2)", "virtualenv (>20)"] @@ -2084,6 +2274,14 @@ category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +[[package]] +name = "sniffio" +version = "1.3.0" +description = "Sniff out which async library your code is running under" +category = "main" +optional = false +python-versions = ">=3.7" + [[package]] name = "snowballstemmer" version = "2.2.0" @@ -2205,22 +2403,21 @@ test = ["pytest"] [[package]] name = "sqlalchemy" -version = "1.4.36" +version = "1.4.44" description = "Database Abstraction Library" category = "main" -optional = false +optional = true python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" [package.dependencies] greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [package.extras] aiomysql = ["greenlet (!=0.4.17)", "aiomysql"] aiosqlite = ["typing_extensions (!=3.10.0.1)", "greenlet (!=0.4.17)", "aiosqlite"] asyncio = ["greenlet (!=0.4.17)"] asyncmy = ["greenlet (!=0.4.17)", "asyncmy (>=0.2.3,!=0.2.4)"] -mariadb_connector = ["mariadb (>=1.0.1)"] +mariadb_connector = ["mariadb (>=1.0.1,!=1.1.2)"] mssql = ["pyodbc"] mssql_pymssql = ["pymssql"] mssql_pyodbc = ["pyodbc"] @@ -2230,22 +2427,37 @@ mysql_connector = ["mysql-connector-python"] oracle = ["cx_oracle (>=7,<8)", "cx_oracle (>=7)"] postgresql = ["psycopg2 (>=2.7)"] postgresql_asyncpg = ["greenlet (!=0.4.17)", "asyncpg"] -postgresql_pg8000 = ["pg8000 (>=1.16.6)"] +postgresql_pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)"] postgresql_psycopg2binary = ["psycopg2-binary"] postgresql_psycopg2cffi = ["psycopg2cffi"] pymysql = ["pymysql (<1)", "pymysql"] sqlcipher = ["sqlcipher3-binary"] +[[package]] +name = "stack-data" +version = "0.6.1" +description = "Extract data from python stack frames and tracebacks for informative displays" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["pytest", "typeguard", "pygments", "littleutils", "cython"] + [[package]] name = "stevedore" -version = "3.5.0" +version = "4.1.1" description = "Manage dynamic plugins for Python applications" category = "main" -optional = false -python-versions = ">=3.6" +optional = true +python-versions = ">=3.8" [package.dependencies] -importlib-metadata = {version = ">=1.7.0", markers = "python_version < \"3.8\""} pbr = ">=2.0.0,<2.1.0 || >2.1.0" [[package]] @@ -2266,11 +2478,11 @@ doc = ["sphinx (>=1.1)", "sphinx-rtd-theme", "numpydoc", "ipython"] [[package]] name = "tensorboard" -version = "2.8.0" +version = "2.11.0" description = "TensorBoard lets you watch Tensors Flow" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] absl-py = ">=0.4" @@ -2279,11 +2491,11 @@ google-auth-oauthlib = ">=0.4.1,<0.5" grpcio = ">=1.24.3" markdown = ">=2.6.8" numpy = ">=1.12.0" -protobuf = ">=3.6.0" +protobuf = ">=3.9.2,<4" requests = ">=2.21.0,<3" tensorboard-data-server = ">=0.6.0,<0.7.0" tensorboard-plugin-wit = ">=1.6.0" -werkzeug = ">=0.11.15" +werkzeug = ">=1.0.1" [[package]] name = "tensorboard-data-server" @@ -2301,75 +2513,98 @@ category = "main" optional = false python-versions = "*" +[[package]] +name = "tensorboardx" +version = "2.5.1" +description = "TensorBoardX lets you watch Tensors Flow without Tensorflow" +category = "main" +optional = true +python-versions = "*" + +[package.dependencies] +numpy = "*" +protobuf = ">=3.8.0,<=3.20.1" + [[package]] name = "tensorflow" -version = "2.8.0" +version = "2.11.0" description = "TensorFlow is an open source machine learning framework for everyone." category = "main" optional = false -python-versions = "*" +python-versions = ">=3.7" [package.dependencies] -absl-py = ">=0.4.0" +absl-py = ">=1.0.0" astunparse = ">=1.6.0" -flatbuffers = ">=1.12" -gast = ">=0.2.1" +flatbuffers = ">=2.0" +gast = ">=0.2.1,<=0.4.0" google-pasta = ">=0.1.1" grpcio = ">=1.24.3,<2.0" h5py = ">=2.9.0" -keras = ">=2.8.0rc0,<2.9" -keras-preprocessing = ">=1.1.1" -libclang = ">=9.0.1" +keras = ">=2.11.0,<2.12" +libclang = ">=13.0.0" numpy = ">=1.20" opt-einsum = ">=2.3.2" -protobuf = ">=3.9.2" +packaging = "*" +protobuf = ">=3.9.2,<3.20" six = ">=1.12.0" -tensorboard = ">=2.8,<2.9" -tensorflow-io-gcs-filesystem = ">=0.23.1" +tensorboard = ">=2.11,<2.12" +tensorflow-estimator = ">=2.11.0,<2.12" +tensorflow-io-gcs-filesystem = {version = ">=0.23.1", markers = "platform_machine != \"arm64\" or platform_system != \"Darwin\""} termcolor = ">=1.1.0" -tf-estimator-nightly = "2.8.0.dev2021122109" typing-extensions = ">=3.6.6" wrapt = ">=1.11.0" +[[package]] +name = "tensorflow-estimator" +version = "2.11.0" +description = "TensorFlow Estimator." +category = "main" +optional = false +python-versions = ">=3.7" + [[package]] name = "tensorflow-io-gcs-filesystem" -version = "0.25.0" +version = "0.28.0" description = "TensorFlow IO" category = "main" optional = false python-versions = ">=3.7, <3.11" [package.extras] -tensorflow = ["tensorflow (>=2.8.0,<2.9.0)"] -tensorflow-aarch64 = ["tensorflow-aarch64 (>=2.8.0,<2.9.0)"] -tensorflow-cpu = ["tensorflow-cpu (>=2.8.0,<2.9.0)"] -tensorflow-gpu = ["tensorflow-gpu (>=2.8.0,<2.9.0)"] -tensorflow-rocm = ["tensorflow-rocm (>=2.8.0,<2.9.0)"] +tensorflow = ["tensorflow (>=2.11.0,<2.12.0)"] +tensorflow-aarch64 = ["tensorflow-aarch64 (>=2.11.0,<2.12.0)"] +tensorflow-cpu = ["tensorflow-cpu (>=2.11.0,<2.12.0)"] +tensorflow-gpu = ["tensorflow-gpu (>=2.11.0,<2.12.0)"] +tensorflow-rocm = ["tensorflow-rocm (>=2.11.0,<2.12.0)"] [[package]] name = "tensorflow-serving-api" -version = "2.8.0" +version = "2.11.0" description = "TensorFlow Serving Python API." category = "main" -optional = false -python-versions = "*" +optional = true +python-versions = ">=3.7" [package.dependencies] -grpcio = ">=1.0,<2" -protobuf = ">=3.6.0" -tensorflow = ">=2.8.0,<3" +grpcio = ">=1.24.3,<2.0" +protobuf = ">=3.9.2,<3.20" +tensorflow = ">=2.11.0,<3" [[package]] name = "termcolor" -version = "1.1.0" -description = "ANSII Color formatting for output in terminal." +version = "2.1.1" +description = "ANSI color formatting for output in terminal" category = "main" optional = false -python-versions = "*" +python-versions = ">=3.7" + +[package.extras] +tests = ["pytest", "pytest-cov"] [[package]] name = "terminado" -version = "0.13.3" +version = "0.17.0" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." category = "main" optional = false @@ -2378,25 +2613,18 @@ python-versions = ">=3.7" [package.dependencies] ptyprocess = {version = "*", markers = "os_name != \"nt\""} pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} -tornado = ">=4" +tornado = ">=6.1.0" [package.extras] -test = ["pytest"] - -[[package]] -name = "tf-estimator-nightly" -version = "2.8.0.dev2021122109" -description = "TensorFlow Estimator." -category = "main" -optional = false -python-versions = "*" +docs = ["pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest-timeout", "pytest (>=7.0)"] [[package]] name = "threadpoolctl" version = "3.1.0" description = "threadpoolctl" category = "main" -optional = false +optional = true python-versions = ">=3.6" [[package]] @@ -2404,23 +2632,23 @@ name = "timeout-decorator" version = "0.5.0" description = "Timeout decorator" category = "main" -optional = false +optional = true python-versions = "*" [[package]] name = "tinycss2" -version = "1.1.1" +version = "1.2.1" description = "A tiny CSS parser" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] webencodings = ">=0.4" [package.extras] doc = ["sphinx", "sphinx-rtd-theme"] -test = ["pytest", "pytest-cov", "pytest-flake8", "pytest-isort", "coverage"] +test = ["pytest", "isort", "flake8"] [[package]] name = "toml" @@ -2438,52 +2666,67 @@ category = "main" optional = false python-versions = ">=3.7" +[[package]] +name = "tomlkit" +version = "0.11.6" +description = "Style preserving TOML library" +category = "dev" +optional = false +python-versions = ">=3.6" + [[package]] name = "torch" -version = "1.11.0" +version = "1.13.0" description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" category = "main" -optional = false +optional = true python-versions = ">=3.7.0" [package.dependencies] +nvidia-cublas-cu11 = "11.10.3.66" +nvidia-cuda-nvrtc-cu11 = "11.7.99" +nvidia-cuda-runtime-cu11 = "11.7.99" +nvidia-cudnn-cu11 = "8.5.0.96" typing-extensions = "*" +[package.extras] +opt-einsum = ["opt-einsum (>=3.3)"] + [[package]] name = "torchmetrics" -version = "0.8.1" +version = "0.10.3" description = "PyTorch native Metrics" category = "main" -optional = false -python-versions = ">=3.6" +optional = true +python-versions = ">=3.7" [package.dependencies] numpy = ">=1.17.2" packaging = "*" -pyDeprecate = ">=0.3.0,<0.4.0" torch = ">=1.3.1" +typing-extensions = {version = "*", markers = "python_version < \"3.9\""} [package.extras] -all = ["pystoi", "pesq (>=0.0.3)", "torchvision (>=0.8)", "myst-parser", "docutils (>=0.16)", "sphinx-copybutton (>=0.3)", "nbsphinx (>=0.8)", "sphinxcontrib-fulltoc (>=1.0)", "sphinx-autodoc-typehints (>=1.0)", "sphinx-paramlinks (>=0.5.1)", "sphinx (>=4.0)", "sphinxcontrib-mockautodoc", "sphinx-togglebutton (>=0.2)", "pandoc (>=1.0)", "scipy", "lpips", "torchvision", "torch-fidelity", "pytorch-lightning (>=1.5)", "coverage (>5.2)", "torch-complex", "rouge-score (>=0.0.4)", "cloudpickle (>=1.3)", "sacrebleu (>=2.0.0)", "pytest-cov (>2.10)", "requests", "check-manifest", "mypy (>=0.790)", "twine (>=3.2)", "psutil", "pypesq", "jiwer (>=2.3.0)", "scikit-image (>0.17.1)", "fire", "pytest-doctestplus (>=0.9.0)", "bert-score (==0.3.10)", "transformers (>=4.0)", "pytest (>=6.0.0,<7.0.0)", "pre-commit (>=1.0)", "scikit-learn (>=0.24)", "mir-eval (>=0.6)", "pytorch-msssim", "codecov (>=2.1)", "fast-bss-eval (>=0.1.0)", "phmdoctest (>=1.1.1)", "nltk (>=3.6)", "regex (>=2021.9.24)", "tqdm (>=4.41.0)"] -audio = ["pystoi", "pesq (>=0.0.3)"] -detection = ["torchvision (>=0.8)"] -docs = ["myst-parser", "docutils (>=0.16)", "sphinx-copybutton (>=0.3)", "nbsphinx (>=0.8)", "sphinxcontrib-fulltoc (>=1.0)", "sphinx-autodoc-typehints (>=1.0)", "sphinx-paramlinks (>=0.5.1)", "sphinx (>=4.0)", "sphinxcontrib-mockautodoc", "sphinx-togglebutton (>=0.2)", "pandoc (>=1.0)"] -image = ["scipy", "lpips", "torchvision", "torch-fidelity"] +all = ["pystoi", "pycocotools", "torchvision (>=0.8)", "torchvision", "lpips", "scipy", "torch-fidelity", "pytorch-lightning (>=1.5)", "nltk (>=3.6)", "tqdm (>=4.41.0)", "regex (>=2021.9.24)"] +audio = ["pystoi"] +detection = ["pycocotools", "torchvision (>=0.8)"] +docs = ["myst-parser", "pandoc (>=1.0)", "sphinxcontrib-fulltoc (>=1.0)", "docutils (>=0.16)", "sphinx-autodoc-typehints (>=1.0)", "sphinx-copybutton (>=0.3)", "sphinx-paramlinks (>=0.5.1)", "nbsphinx (>=0.8)", "sphinx-togglebutton (>=0.2)", "sphinx (>=4.0,<5.0)", "sphinxcontrib-mockautodoc"] +image = ["torchvision", "lpips", "scipy", "torch-fidelity"] integrate = ["pytorch-lightning (>=1.5)"] -test = ["coverage (>5.2)", "torch-complex", "rouge-score (>=0.0.4)", "cloudpickle (>=1.3)", "sacrebleu (>=2.0.0)", "pytest-cov (>2.10)", "requests", "check-manifest", "mypy (>=0.790)", "twine (>=3.2)", "psutil", "pypesq", "jiwer (>=2.3.0)", "scikit-image (>0.17.1)", "fire", "pytest-doctestplus (>=0.9.0)", "bert-score (==0.3.10)", "transformers (>=4.0)", "pytest (>=6.0.0,<7.0.0)", "pre-commit (>=1.0)", "scikit-learn (>=0.24)", "mir-eval (>=0.6)", "pytorch-msssim", "codecov (>=2.1)", "fast-bss-eval (>=0.1.0)", "phmdoctest (>=1.1.1)"] -text = ["nltk (>=3.6)", "regex (>=2021.9.24)", "tqdm (>=4.41.0)"] +test = ["rouge-score (>=0.0.4)", "netcal", "requests", "transformers (>=4.0)", "fire", "scikit-image (>0.17.1)", "pypesq (>1.2)", "scikit-learn (>1.0,<1.1.1)", "pytest (>=6.0.0,<7.0.0)", "fast-bss-eval (>=0.1.0)", "pytest-doctestplus (>=0.9.0)", "cloudpickle (>=1.3)", "pytorch-msssim (==0.2.1)", "huggingface-hub (<0.7)", "check-manifest", "pytest-timeout", "bert-score (==0.3.10)", "jiwer (>=2.3.0)", "coverage (>5.2)", "sacrebleu (>=2.0.0)", "torch-complex", "psutil", "pycocotools", "phmdoctest (>=1.1.1)", "pytest-cov (>2.10)", "pre-commit (>=1.0)", "mir-eval (>=0.6)"] +text = ["nltk (>=3.6)", "tqdm (>=4.41.0)", "regex (>=2021.9.24)"] [[package]] name = "tornado" -version = "6.1" +version = "6.2" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." category = "main" optional = false -python-versions = ">= 3.5" +python-versions = ">= 3.7" [[package]] name = "tqdm" -version = "4.64.0" +version = "4.64.1" description = "Fast, Extensible Progress Meter" category = "main" optional = false @@ -2500,14 +2743,15 @@ telegram = ["requests"] [[package]] name = "traitlets" -version = "5.1.1" -description = "Traitlets Python configuration system" +version = "5.5.0" +description = "" category = "main" optional = false python-versions = ">=3.7" [package.extras] -test = ["pytest"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest"] [[package]] name = "typed-ast" @@ -2519,7 +2763,7 @@ python-versions = "*" [[package]] name = "typing-extensions" -version = "4.2.0" +version = "4.4.0" description = "Backported and Experimental Type Hints for Python 3.7+" category = "main" optional = false @@ -2527,15 +2771,15 @@ python-versions = ">=3.7" [[package]] name = "urllib3" -version = "1.26.9" +version = "1.26.13" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" [package.extras] brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] -secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] +secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "urllib3-secure-extra", "ipaddress"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] @@ -2554,20 +2798,36 @@ category = "main" optional = false python-versions = "*" +[[package]] +name = "websocket-client" +version = "1.4.2" +description = "WebSocket client for Python with low level API options" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["Sphinx (>=3.4)", "sphinx-rtd-theme (>=0.5)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + [[package]] name = "werkzeug" -version = "2.1.1" +version = "2.2.2" description = "The comprehensive WSGI web application library." category = "main" optional = false python-versions = ">=3.7" +[package.dependencies] +MarkupSafe = ">=2.1.1" + [package.extras] watchdog = ["watchdog"] [[package]] name = "widgetsnbextension" -version = "3.6.0" +version = "3.6.1" description = "IPython HTML widgets for Jupyter" category = "main" optional = false @@ -2578,7 +2838,7 @@ notebook = ">=4.4.1" [[package]] name = "wrapt" -version = "1.14.0" +version = "1.14.1" description = "Module for decorators, wrappers and monkey patching." category = "main" optional = false @@ -2586,2235 +2846,254 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" [[package]] name = "yarl" -version = "1.7.2" +version = "1.8.1" description = "Yet another URL library" category = "main" -optional = false -python-versions = ">=3.6" +optional = true +python-versions = ">=3.7" [package.dependencies] idna = ">=2.0" multidict = ">=4.0" -typing-extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""} [[package]] name = "zipp" -version = "3.8.0" +version = "3.10.0" description = "Backport of pathlib-compatible object wrapper for zip files" category = "main" optional = false python-versions = ">=3.7" [package.extras] -docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] +docs = ["sphinx (>=3.5)", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "furo", "jaraco.tidelift (>=1.4)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "flake8 (<5)", "pytest-cov", "pytest-enabler (>=1.3)", "jaraco.itertools", "func-timeout", "jaraco.functools", "more-itertools", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"] + +[extras] +all = ["grpcio", "tensorflow-serving-api", "pymongo", "route-distances", "scipy", "matplotlib", "timeout-decorator"] [metadata] lock-version = "1.1" -python-versions = ">=3.7,<3.10" -content-hash = "277e1166793c9badac7bebefb027b89652df3744b3aca1e9962fc3135731b2f4" +python-versions = ">=3.8,<3.10" +content-hash = "49af842e15db0730537b57a34b88b01a638116aa34b3de3e35a8fceb4f9f8ba7" [metadata.files] -absl-py = [ - {file = "absl-py-1.0.0.tar.gz", hash = "sha256:ac511215c01ee9ae47b19716599e8ccfa746f2e18de72bdf641b79b22afa27ea"}, - {file = "absl_py-1.0.0-py3-none-any.whl", hash = "sha256:84e6dcdc69c947d0c13e5457d056bd43cade4c2393dce00d684aedea77ddc2a3"}, -] -aiohttp = [ - {file = "aiohttp-3.8.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1ed0b6477896559f17b9eaeb6d38e07f7f9ffe40b9f0f9627ae8b9926ae260a8"}, - {file = "aiohttp-3.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7dadf3c307b31e0e61689cbf9e06be7a867c563d5a63ce9dca578f956609abf8"}, - {file = "aiohttp-3.8.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a79004bb58748f31ae1cbe9fa891054baaa46fb106c2dc7af9f8e3304dc30316"}, - {file = "aiohttp-3.8.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12de6add4038df8f72fac606dff775791a60f113a725c960f2bab01d8b8e6b15"}, - {file = "aiohttp-3.8.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6f0d5f33feb5f69ddd57a4a4bd3d56c719a141080b445cbf18f238973c5c9923"}, - {file = "aiohttp-3.8.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eaba923151d9deea315be1f3e2b31cc39a6d1d2f682f942905951f4e40200922"}, - {file = "aiohttp-3.8.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:099ebd2c37ac74cce10a3527d2b49af80243e2a4fa39e7bce41617fbc35fa3c1"}, - {file = "aiohttp-3.8.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2e5d962cf7e1d426aa0e528a7e198658cdc8aa4fe87f781d039ad75dcd52c516"}, - {file = "aiohttp-3.8.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:fa0ffcace9b3aa34d205d8130f7873fcfefcb6a4dd3dd705b0dab69af6712642"}, - {file = "aiohttp-3.8.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:61bfc23df345d8c9716d03717c2ed5e27374e0fe6f659ea64edcd27b4b044cf7"}, - {file = "aiohttp-3.8.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:31560d268ff62143e92423ef183680b9829b1b482c011713ae941997921eebc8"}, - {file = "aiohttp-3.8.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:01d7bdb774a9acc838e6b8f1d114f45303841b89b95984cbb7d80ea41172a9e3"}, - {file = "aiohttp-3.8.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:97ef77eb6b044134c0b3a96e16abcb05ecce892965a2124c566af0fd60f717e2"}, - {file = "aiohttp-3.8.1-cp310-cp310-win32.whl", hash = "sha256:c2aef4703f1f2ddc6df17519885dbfa3514929149d3ff900b73f45998f2532fa"}, - {file = "aiohttp-3.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:713ac174a629d39b7c6a3aa757b337599798da4c1157114a314e4e391cd28e32"}, - {file = "aiohttp-3.8.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:473d93d4450880fe278696549f2e7aed8cd23708c3c1997981464475f32137db"}, - {file = "aiohttp-3.8.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99b5eeae8e019e7aad8af8bb314fb908dd2e028b3cdaad87ec05095394cce632"}, - {file = "aiohttp-3.8.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af642b43ce56c24d063325dd2cf20ee012d2b9ba4c3c008755a301aaea720ad"}, - {file = "aiohttp-3.8.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3630c3ef435c0a7c549ba170a0633a56e92629aeed0e707fec832dee313fb7a"}, - {file = "aiohttp-3.8.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4a4a4e30bf1edcad13fb0804300557aedd07a92cabc74382fdd0ba6ca2661091"}, - {file = "aiohttp-3.8.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6f8b01295e26c68b3a1b90efb7a89029110d3a4139270b24fda961893216c440"}, - {file = "aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a25fa703a527158aaf10dafd956f7d42ac6d30ec80e9a70846253dd13e2f067b"}, - {file = "aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:5bfde62d1d2641a1f5173b8c8c2d96ceb4854f54a44c23102e2ccc7e02f003ec"}, - {file = "aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:51467000f3647d519272392f484126aa716f747859794ac9924a7aafa86cd411"}, - {file = "aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:03a6d5349c9ee8f79ab3ff3694d6ce1cfc3ced1c9d36200cb8f08ba06bd3b782"}, - {file = "aiohttp-3.8.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:102e487eeb82afac440581e5d7f8f44560b36cf0bdd11abc51a46c1cd88914d4"}, - {file = "aiohttp-3.8.1-cp36-cp36m-win32.whl", hash = "sha256:4aed991a28ea3ce320dc8ce655875e1e00a11bdd29fe9444dd4f88c30d558602"}, - {file = "aiohttp-3.8.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b0e20cddbd676ab8a64c774fefa0ad787cc506afd844de95da56060348021e96"}, - {file = "aiohttp-3.8.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:37951ad2f4a6df6506750a23f7cbabad24c73c65f23f72e95897bb2cecbae676"}, - {file = "aiohttp-3.8.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c23b1ad869653bc818e972b7a3a79852d0e494e9ab7e1a701a3decc49c20d51"}, - {file = "aiohttp-3.8.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:15b09b06dae900777833fe7fc4b4aa426556ce95847a3e8d7548e2d19e34edb8"}, - {file = "aiohttp-3.8.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:477c3ea0ba410b2b56b7efb072c36fa91b1e6fc331761798fa3f28bb224830dd"}, - {file = "aiohttp-3.8.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2f2f69dca064926e79997f45b2f34e202b320fd3782f17a91941f7eb85502ee2"}, - {file = "aiohttp-3.8.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ef9612483cb35171d51d9173647eed5d0069eaa2ee812793a75373447d487aa4"}, - {file = "aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6d69f36d445c45cda7b3b26afef2fc34ef5ac0cdc75584a87ef307ee3c8c6d00"}, - {file = "aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:55c3d1072704d27401c92339144d199d9de7b52627f724a949fc7d5fc56d8b93"}, - {file = "aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:b9d00268fcb9f66fbcc7cd9fe423741d90c75ee029a1d15c09b22d23253c0a44"}, - {file = "aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:07b05cd3305e8a73112103c834e91cd27ce5b4bd07850c4b4dbd1877d3f45be7"}, - {file = "aiohttp-3.8.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c34dc4958b232ef6188c4318cb7b2c2d80521c9a56c52449f8f93ab7bc2a8a1c"}, - {file = "aiohttp-3.8.1-cp37-cp37m-win32.whl", hash = "sha256:d2f9b69293c33aaa53d923032fe227feac867f81682f002ce33ffae978f0a9a9"}, - {file = "aiohttp-3.8.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6ae828d3a003f03ae31915c31fa684b9890ea44c9c989056fea96e3d12a9fa17"}, - {file = "aiohttp-3.8.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0c7ebbbde809ff4e970824b2b6cb7e4222be6b95a296e46c03cf050878fc1785"}, - {file = "aiohttp-3.8.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8b7ef7cbd4fec9a1e811a5de813311ed4f7ac7d93e0fda233c9b3e1428f7dd7b"}, - {file = "aiohttp-3.8.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c3d6a4d0619e09dcd61021debf7059955c2004fa29f48788a3dfaf9c9901a7cd"}, - {file = "aiohttp-3.8.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:718626a174e7e467f0558954f94af117b7d4695d48eb980146016afa4b580b2e"}, - {file = "aiohttp-3.8.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:589c72667a5febd36f1315aa6e5f56dd4aa4862df295cb51c769d16142ddd7cd"}, - {file = "aiohttp-3.8.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ed076098b171573161eb146afcb9129b5ff63308960aeca4b676d9d3c35e700"}, - {file = "aiohttp-3.8.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:086f92daf51a032d062ec5f58af5ca6a44d082c35299c96376a41cbb33034675"}, - {file = "aiohttp-3.8.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:11691cf4dc5b94236ccc609b70fec991234e7ef8d4c02dd0c9668d1e486f5abf"}, - {file = "aiohttp-3.8.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:31d1e1c0dbf19ebccbfd62eff461518dcb1e307b195e93bba60c965a4dcf1ba0"}, - {file = "aiohttp-3.8.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:11a67c0d562e07067c4e86bffc1553f2cf5b664d6111c894671b2b8712f3aba5"}, - {file = "aiohttp-3.8.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:bb01ba6b0d3f6c68b89fce7305080145d4877ad3acaed424bae4d4ee75faa950"}, - {file = "aiohttp-3.8.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:44db35a9e15d6fe5c40d74952e803b1d96e964f683b5a78c3cc64eb177878155"}, - {file = "aiohttp-3.8.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:844a9b460871ee0a0b0b68a64890dae9c415e513db0f4a7e3cab41a0f2fedf33"}, - {file = "aiohttp-3.8.1-cp38-cp38-win32.whl", hash = "sha256:7d08744e9bae2ca9c382581f7dce1273fe3c9bae94ff572c3626e8da5b193c6a"}, - {file = "aiohttp-3.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:04d48b8ce6ab3cf2097b1855e1505181bdd05586ca275f2505514a6e274e8e75"}, - {file = "aiohttp-3.8.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f5315a2eb0239185af1bddb1abf472d877fede3cc8d143c6cddad37678293237"}, - {file = "aiohttp-3.8.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a996d01ca39b8dfe77440f3cd600825d05841088fd6bc0144cc6c2ec14cc5f74"}, - {file = "aiohttp-3.8.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:13487abd2f761d4be7c8ff9080de2671e53fff69711d46de703c310c4c9317ca"}, - {file = "aiohttp-3.8.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea302f34477fda3f85560a06d9ebdc7fa41e82420e892fc50b577e35fc6a50b2"}, - {file = "aiohttp-3.8.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2f635ce61a89c5732537a7896b6319a8fcfa23ba09bec36e1b1ac0ab31270d2"}, - {file = "aiohttp-3.8.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e999f2d0e12eea01caeecb17b653f3713d758f6dcc770417cf29ef08d3931421"}, - {file = "aiohttp-3.8.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0770e2806a30e744b4e21c9d73b7bee18a1cfa3c47991ee2e5a65b887c49d5cf"}, - {file = "aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd"}, - {file = "aiohttp-3.8.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6c7cefb4b0640703eb1069835c02486669312bf2f12b48a748e0a7756d0de33d"}, - {file = "aiohttp-3.8.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:71927042ed6365a09a98a6377501af5c9f0a4d38083652bcd2281a06a5976724"}, - {file = "aiohttp-3.8.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:28d490af82bc6b7ce53ff31337a18a10498303fe66f701ab65ef27e143c3b0ef"}, - {file = "aiohttp-3.8.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:b6613280ccedf24354406caf785db748bebbddcf31408b20c0b48cb86af76866"}, - {file = "aiohttp-3.8.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:81e3d8c34c623ca4e36c46524a3530e99c0bc95ed068fd6e9b55cb721d408fb2"}, - {file = "aiohttp-3.8.1-cp39-cp39-win32.whl", hash = "sha256:7187a76598bdb895af0adbd2fb7474d7f6025d170bc0a1130242da817ce9e7d1"}, - {file = "aiohttp-3.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:1c182cb873bc91b411e184dab7a2b664d4fea2743df0e4d57402f7f3fa644bac"}, - {file = "aiohttp-3.8.1.tar.gz", hash = "sha256:fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578"}, -] -aiosignal = [ - {file = "aiosignal-1.2.0-py3-none-any.whl", hash = "sha256:26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a"}, - {file = "aiosignal-1.2.0.tar.gz", hash = "sha256:78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2"}, -] -alabaster = [ - {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, - {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, -] -alembic = [ - {file = "alembic-1.7.7-py3-none-any.whl", hash = "sha256:29be0856ec7591c39f4e1cb10f198045d890e6e2274cf8da80cb5e721a09642b"}, - {file = "alembic-1.7.7.tar.gz", hash = "sha256:4961248173ead7ce8a21efb3de378f13b8398e6630fab0eb258dc74a8af24c58"}, -] -appnope = [ - {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, - {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, -] -apted = [ - {file = "apted-1.0.3-py3-none-any.whl", hash = "sha256:74193369d023649d335269e67c4df07f922959e5ac2597de1b79af4e694150e8"}, - {file = "apted-1.0.3.tar.gz", hash = "sha256:befa5181e2d4457fa88e54995a82604ee048bb2fbc781ea97d8e1856b4715ce9"}, -] -argon2-cffi = [ - {file = "argon2-cffi-21.3.0.tar.gz", hash = "sha256:d384164d944190a7dd7ef22c6aa3ff197da12962bd04b17f64d4e93d934dba5b"}, - {file = "argon2_cffi-21.3.0-py3-none-any.whl", hash = "sha256:8c976986f2c5c0e5000919e6de187906cfd81fb1c72bf9d88c01177e77da7f80"}, -] -argon2-cffi-bindings = [ - {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, - {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, - {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, - {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, - {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, -] -astroid = [ - {file = "astroid-2.11.3-py3-none-any.whl", hash = "sha256:f1af57483cd17e963b2eddce8361e00fc593d1520fe19948488e94ff6476bd71"}, - {file = "astroid-2.11.3.tar.gz", hash = "sha256:4e5ba10571e197785e312966ea5efb2f5783176d4c1a73fa922d474ae2be59f7"}, -] -astunparse = [ - {file = "astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8"}, - {file = "astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872"}, -] -async-timeout = [ - {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"}, - {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"}, -] -asynctest = [ - {file = "asynctest-0.13.0-py3-none-any.whl", hash = "sha256:5da6118a7e6d6b54d83a8f7197769d046922a44d2a99c21382f0a6e4fadae676"}, - {file = "asynctest-0.13.0.tar.gz", hash = "sha256:c27862842d15d83e6a34eb0b2866c323880eb3a75e4485b079ea11748fd77fac"}, -] -atomicwrites = [ - {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, - {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, -] -attrs = [ - {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"}, - {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, -] -autopage = [ - {file = "autopage-0.5.0-py3-none-any.whl", hash = "sha256:57232860f28a1867cdd54b5ea510e292c53d6dfb613f781c5120200666550b06"}, - {file = "autopage-0.5.0.tar.gz", hash = "sha256:5305b43cc0798170d7124e5a2feecf969e45f4a0baf75cb351138114eaf76b83"}, -] -babel = [ - {file = "Babel-2.10.1-py3-none-any.whl", hash = "sha256:3f349e85ad3154559ac4930c3918247d319f21910d5ce4b25d439ed8693b98d2"}, - {file = "Babel-2.10.1.tar.gz", hash = "sha256:98aeaca086133efb3e1e2aad0396987490c8425929ddbcfe0550184fdc54cd13"}, -] -backcall = [ - {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, - {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, -] -beautifulsoup4 = [ - {file = "beautifulsoup4-4.11.1-py3-none-any.whl", hash = "sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30"}, - {file = "beautifulsoup4-4.11.1.tar.gz", hash = "sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693"}, -] -black = [ - {file = "black-22.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2497f9c2386572e28921fa8bec7be3e51de6801f7459dffd6e62492531c47e09"}, - {file = "black-22.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5795a0375eb87bfe902e80e0c8cfaedf8af4d49694d69161e5bd3206c18618bb"}, - {file = "black-22.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e3556168e2e5c49629f7b0f377070240bd5511e45e25a4497bb0073d9dda776a"}, - {file = "black-22.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67c8301ec94e3bcc8906740fe071391bce40a862b7be0b86fb5382beefecd968"}, - {file = "black-22.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:fd57160949179ec517d32ac2ac898b5f20d68ed1a9c977346efbac9c2f1e779d"}, - {file = "black-22.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cc1e1de68c8e5444e8f94c3670bb48a2beef0e91dddfd4fcc29595ebd90bb9ce"}, - {file = "black-22.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2fc92002d44746d3e7db7cf9313cf4452f43e9ea77a2c939defce3b10b5c82"}, - {file = "black-22.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:a6342964b43a99dbc72f72812bf88cad8f0217ae9acb47c0d4f141a6416d2d7b"}, - {file = "black-22.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:328efc0cc70ccb23429d6be184a15ce613f676bdfc85e5fe8ea2a9354b4e9015"}, - {file = "black-22.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06f9d8846f2340dfac80ceb20200ea5d1b3f181dd0556b47af4e8e0b24fa0a6b"}, - {file = "black-22.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4efa5fad66b903b4a5f96d91461d90b9507a812b3c5de657d544215bb7877a"}, - {file = "black-22.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8477ec6bbfe0312c128e74644ac8a02ca06bcdb8982d4ee06f209be28cdf163"}, - {file = "black-22.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:637a4014c63fbf42a692d22b55d8ad6968a946b4a6ebc385c5505d9625b6a464"}, - {file = "black-22.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:863714200ada56cbc366dc9ae5291ceb936573155f8bf8e9de92aef51f3ad0f0"}, - {file = "black-22.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10dbe6e6d2988049b4655b2b739f98785a884d4d6b85bc35133a8fb9a2233176"}, - {file = "black-22.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:cee3e11161dde1b2a33a904b850b0899e0424cc331b7295f2a9698e79f9a69a0"}, - {file = "black-22.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5891ef8abc06576985de8fa88e95ab70641de6c1fca97e2a15820a9b69e51b20"}, - {file = "black-22.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:30d78ba6bf080eeaf0b7b875d924b15cd46fec5fd044ddfbad38c8ea9171043a"}, - {file = "black-22.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ee8f1f7228cce7dffc2b464f07ce769f478968bfb3dd1254a4c2eeed84928aad"}, - {file = "black-22.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ee227b696ca60dd1c507be80a6bc849a5a6ab57ac7352aad1ffec9e8b805f21"}, - {file = "black-22.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:9b542ced1ec0ceeff5b37d69838106a6348e60db7b8fdd245294dc1d26136265"}, - {file = "black-22.3.0-py3-none-any.whl", hash = "sha256:bc58025940a896d7e5356952228b68f793cf5fcb342be703c3a2669a1488cb72"}, - {file = "black-22.3.0.tar.gz", hash = "sha256:35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79"}, -] -bleach = [ - {file = "bleach-5.0.0-py3-none-any.whl", hash = "sha256:08a1fe86d253b5c88c92cc3d810fd8048a16d15762e1e5b74d502256e5926aa1"}, - {file = "bleach-5.0.0.tar.gz", hash = "sha256:c6d6cc054bdc9c83b48b8083e236e5f00f238428666d2ce2e083eaa5fd568565"}, -] -cached-property = [ - {file = "cached-property-1.5.2.tar.gz", hash = "sha256:9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130"}, - {file = "cached_property-1.5.2-py2.py3-none-any.whl", hash = "sha256:df4f613cf7ad9a588cc381aaf4a512d26265ecebd5eb9e1ba12f1319eb85a6a0"}, -] -cachetools = [ - {file = "cachetools-5.0.0-py3-none-any.whl", hash = "sha256:8fecd4203a38af17928be7b90689d8083603073622229ca7077b72d8e5a976e4"}, - {file = "cachetools-5.0.0.tar.gz", hash = "sha256:486471dfa8799eb7ec503a8059e263db000cdda20075ce5e48903087f79d5fd6"}, -] -certifi = [ - {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"}, - {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"}, -] -cffi = [ - {file = "cffi-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962"}, - {file = "cffi-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0"}, - {file = "cffi-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14"}, - {file = "cffi-1.15.0-cp27-cp27m-win32.whl", hash = "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474"}, - {file = "cffi-1.15.0-cp27-cp27m-win_amd64.whl", hash = "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6"}, - {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27"}, - {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023"}, - {file = "cffi-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2"}, - {file = "cffi-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e"}, - {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7"}, - {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3"}, - {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c"}, - {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962"}, - {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382"}, - {file = "cffi-1.15.0-cp310-cp310-win32.whl", hash = "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55"}, - {file = "cffi-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0"}, - {file = "cffi-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e"}, - {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39"}, - {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc"}, - {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032"}, - {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8"}, - {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605"}, - {file = "cffi-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e"}, - {file = "cffi-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc"}, - {file = "cffi-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636"}, - {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4"}, - {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997"}, - {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b"}, - {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2"}, - {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7"}, - {file = "cffi-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66"}, - {file = "cffi-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029"}, - {file = "cffi-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880"}, - {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20"}, - {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024"}, - {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e"}, - {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728"}, - {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6"}, - {file = "cffi-1.15.0-cp38-cp38-win32.whl", hash = "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c"}, - {file = "cffi-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443"}, - {file = "cffi-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a"}, - {file = "cffi-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37"}, - {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a"}, - {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e"}, - {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796"}, - {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df"}, - {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8"}, - {file = "cffi-1.15.0-cp39-cp39-win32.whl", hash = "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a"}, - {file = "cffi-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139"}, - {file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"}, -] -charset-normalizer = [ - {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"}, - {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"}, -] -click = [ - {file = "click-8.1.2-py3-none-any.whl", hash = "sha256:24e1a4a9ec5bf6299411369b208c1df2188d9eb8d916302fe6bf03faed227f1e"}, - {file = "click-8.1.2.tar.gz", hash = "sha256:479707fe14d9ec9a0757618b7a100a0ae4c4e236fac5b7f80ca68028141a1a72"}, -] -cliff = [ - {file = "cliff-3.10.1-py3-none-any.whl", hash = "sha256:a21da482714b9f0b0e9bafaaf2f6a8b3b14161bb47f62e10e28d2fe4ff4b1626"}, - {file = "cliff-3.10.1.tar.gz", hash = "sha256:045aee3f3c64471965d7ad507ce8474a4e2f20815fbb5405a770f8596a2a00a0"}, -] -cmaes = [ - {file = "cmaes-0.8.2-py3-none-any.whl", hash = "sha256:9c4127be8942da3ac6857a7564d18a4a655462d77aa2d551a8e88063b23e0699"}, - {file = "cmaes-0.8.2.tar.gz", hash = "sha256:1c04ba23ded925ef13b96f42cfbd667a905ea5b80754c750e6448b9fcda96a5d"}, -] -cmd2 = [ - {file = "cmd2-2.4.1-py3-none-any.whl", hash = "sha256:e6f49b0854b6aec2f20073bae99f1deede16c24b36fde682045d73c80c4cfb51"}, - {file = "cmd2-2.4.1.tar.gz", hash = "sha256:f3b0467daca18fca0dc7838de7726a72ab64127a018a377a86a6ed8ebfdbb25f"}, -] -colorama = [ - {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, - {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, -] -colorlog = [ - {file = "colorlog-6.6.0-py2.py3-none-any.whl", hash = "sha256:351c51e866c86c3217f08e4b067a7974a678be78f07f85fc2d55b8babde6d94e"}, - {file = "colorlog-6.6.0.tar.gz", hash = "sha256:344f73204009e4c83c5b6beb00b3c45dc70fcdae3c80db919e0a4171d006fde8"}, -] -coverage = [ - {file = "coverage-6.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9b27d894748475fa858f9597c0ee1d4829f44683f3813633aaf94b19cb5453cf"}, - {file = "coverage-6.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:37d1141ad6b2466a7b53a22e08fe76994c2d35a5b6b469590424a9953155afac"}, - {file = "coverage-6.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9987b0354b06d4df0f4d3e0ec1ae76d7ce7cbca9a2f98c25041eb79eec766f1"}, - {file = "coverage-6.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:26e2deacd414fc2f97dd9f7676ee3eaecd299ca751412d89f40bc01557a6b1b4"}, - {file = "coverage-6.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4dd8bafa458b5c7d061540f1ee9f18025a68e2d8471b3e858a9dad47c8d41903"}, - {file = "coverage-6.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:46191097ebc381fbf89bdce207a6c107ac4ec0890d8d20f3360345ff5976155c"}, - {file = "coverage-6.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6f89d05e028d274ce4fa1a86887b071ae1755082ef94a6740238cd7a8178804f"}, - {file = "coverage-6.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:58303469e9a272b4abdb9e302a780072c0633cdcc0165db7eec0f9e32f901e05"}, - {file = "coverage-6.3.2-cp310-cp310-win32.whl", hash = "sha256:2fea046bfb455510e05be95e879f0e768d45c10c11509e20e06d8fcaa31d9e39"}, - {file = "coverage-6.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:a2a8b8bcc399edb4347a5ca8b9b87e7524c0967b335fbb08a83c8421489ddee1"}, - {file = "coverage-6.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f1555ea6d6da108e1999b2463ea1003fe03f29213e459145e70edbaf3e004aaa"}, - {file = "coverage-6.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5f4e1edcf57ce94e5475fe09e5afa3e3145081318e5fd1a43a6b4539a97e518"}, - {file = "coverage-6.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a15dc0a14008f1da3d1ebd44bdda3e357dbabdf5a0b5034d38fcde0b5c234b7"}, - {file = "coverage-6.3.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21b7745788866028adeb1e0eca3bf1101109e2dc58456cb49d2d9b99a8c516e6"}, - {file = "coverage-6.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8ce257cac556cb03be4a248d92ed36904a59a4a5ff55a994e92214cde15c5bad"}, - {file = "coverage-6.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b0be84e5a6209858a1d3e8d1806c46214e867ce1b0fd32e4ea03f4bd8b2e3359"}, - {file = "coverage-6.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:acf53bc2cf7282ab9b8ba346746afe703474004d9e566ad164c91a7a59f188a4"}, - {file = "coverage-6.3.2-cp37-cp37m-win32.whl", hash = "sha256:8bdde1177f2311ee552f47ae6e5aa7750c0e3291ca6b75f71f7ffe1f1dab3dca"}, - {file = "coverage-6.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b31651d018b23ec463e95cf10070d0b2c548aa950a03d0b559eaa11c7e5a6fa3"}, - {file = "coverage-6.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07e6db90cd9686c767dcc593dff16c8c09f9814f5e9c51034066cad3373b914d"}, - {file = "coverage-6.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2c6dbb42f3ad25760010c45191e9757e7dce981cbfb90e42feef301d71540059"}, - {file = "coverage-6.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c76aeef1b95aff3905fb2ae2d96e319caca5b76fa41d3470b19d4e4a3a313512"}, - {file = "coverage-6.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cf5cfcb1521dc3255d845d9dca3ff204b3229401994ef8d1984b32746bb45ca"}, - {file = "coverage-6.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8fbbdc8d55990eac1b0919ca69eb5a988a802b854488c34b8f37f3e2025fa90d"}, - {file = "coverage-6.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ec6bc7fe73a938933d4178c9b23c4e0568e43e220aef9472c4f6044bfc6dd0f0"}, - {file = "coverage-6.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:9baff2a45ae1f17c8078452e9e5962e518eab705e50a0aa8083733ea7d45f3a6"}, - {file = "coverage-6.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fd9e830e9d8d89b20ab1e5af09b32d33e1a08ef4c4e14411e559556fd788e6b2"}, - {file = "coverage-6.3.2-cp38-cp38-win32.whl", hash = "sha256:f7331dbf301b7289013175087636bbaf5b2405e57259dd2c42fdcc9fcc47325e"}, - {file = "coverage-6.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:68353fe7cdf91f109fc7d474461b46e7f1f14e533e911a2a2cbb8b0fc8613cf1"}, - {file = "coverage-6.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b78e5afb39941572209f71866aa0b206c12f0109835aa0d601e41552f9b3e620"}, - {file = "coverage-6.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4e21876082ed887baed0146fe222f861b5815455ada3b33b890f4105d806128d"}, - {file = "coverage-6.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34626a7eee2a3da12af0507780bb51eb52dca0e1751fd1471d0810539cefb536"}, - {file = "coverage-6.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1ebf730d2381158ecf3dfd4453fbca0613e16eaa547b4170e2450c9707665ce7"}, - {file = "coverage-6.3.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd6fe30bd519694b356cbfcaca9bd5c1737cddd20778c6a581ae20dc8c04def2"}, - {file = "coverage-6.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:96f8a1cb43ca1422f36492bebe63312d396491a9165ed3b9231e778d43a7fca4"}, - {file = "coverage-6.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:dd035edafefee4d573140a76fdc785dc38829fe5a455c4bb12bac8c20cfc3d69"}, - {file = "coverage-6.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5ca5aeb4344b30d0bec47481536b8ba1181d50dbe783b0e4ad03c95dc1296684"}, - {file = "coverage-6.3.2-cp39-cp39-win32.whl", hash = "sha256:f5fa5803f47e095d7ad8443d28b01d48c0359484fec1b9d8606d0e3282084bc4"}, - {file = "coverage-6.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:9548f10d8be799551eb3a9c74bbf2b4934ddb330e08a73320123c07f95cc2d92"}, - {file = "coverage-6.3.2-pp36.pp37.pp38-none-any.whl", hash = "sha256:18d520c6860515a771708937d2f78f63cc47ab3b80cb78e86573b0a760161faf"}, - {file = "coverage-6.3.2.tar.gz", hash = "sha256:03e2a7826086b91ef345ff18742ee9fc47a6839ccd517061ef8fa1976e652ce9"}, -] -cycler = [ - {file = "cycler-0.11.0-py3-none-any.whl", hash = "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3"}, - {file = "cycler-0.11.0.tar.gz", hash = "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"}, -] -debugpy = [ - {file = "debugpy-1.6.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:eb1946efac0c0c3d411cea0b5ac772fbde744109fd9520fb0c5a51979faf05ad"}, - {file = "debugpy-1.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e3513399177dd37af4c1332df52da5da1d0c387e5927dc4c0709e26ee7302e8f"}, - {file = "debugpy-1.6.0-cp310-cp310-win32.whl", hash = "sha256:5c492235d6b68f879df3bdbdb01f25c15be15682665517c2c7d0420e5658d71f"}, - {file = "debugpy-1.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:40de9ba137d355538432209d05e0f5fe5d0498dce761c39119ad4b950b51db31"}, - {file = "debugpy-1.6.0-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:0d383b91efee57dbb923ba20801130cf60450a0eda60bce25bccd937de8e323a"}, - {file = "debugpy-1.6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1ff853e60e77e1c16f85a31adb8360bb2d98ca588d7ed645b7f0985b240bdb5e"}, - {file = "debugpy-1.6.0-cp37-cp37m-win32.whl", hash = "sha256:8e972c717d95f56b6a3a7a29a5ede1ee8f2c3802f6f0e678203b0778eb322bf1"}, - {file = "debugpy-1.6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:a8aaeb53e87225141fda7b9081bd87155c1debc13e2f5a532d341112d1983b65"}, - {file = "debugpy-1.6.0-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:132defb585b518955358321d0f42f6aa815aa15b432be27db654807707c70b2f"}, - {file = "debugpy-1.6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8ee75844242b4537beb5899f3e60a578454d1f136b99e8d57ac424573797b94a"}, - {file = "debugpy-1.6.0-cp38-cp38-win32.whl", hash = "sha256:a65a2499761d47df3e9ea9567109be6e73d412e00ac3ffcf74839f3ddfcdf028"}, - {file = "debugpy-1.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:bd980d533d0ddfc451e03a3bb32acb2900049fec39afc3425b944ebf0889be62"}, - {file = "debugpy-1.6.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:245c7789a012f86210847ec7ee9f38c30a30d4c2223c3e111829a76c9006a5d0"}, - {file = "debugpy-1.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0e3aa2368883e83e7b689ddff3cafb595f7b711f6a065886b46a96a7fef874e7"}, - {file = "debugpy-1.6.0-cp39-cp39-win32.whl", hash = "sha256:72bcfa97f3afa0064afc77ab811f48ad4a06ac330f290b675082c24437730366"}, - {file = "debugpy-1.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:30abefefd2ff5a5481162d613cb70e60e2fa80a5eb4c994717c0f008ed25d2e1"}, - {file = "debugpy-1.6.0-py2.py3-none-any.whl", hash = "sha256:4de7777842da7e08652f2776c552070bbdd758557fdec73a15d7be0e4aab95ce"}, - {file = "debugpy-1.6.0.zip", hash = "sha256:7b79c40852991f7b6c3ea65845ed0f5f6b731c37f4f9ad9c61e2ab4bd48a9275"}, -] -decorator = [ - {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, - {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, -] -defusedxml = [ - {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, - {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, -] -deprecated = [ - {file = "Deprecated-1.2.13-py2.py3-none-any.whl", hash = "sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d"}, - {file = "Deprecated-1.2.13.tar.gz", hash = "sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d"}, -] -dill = [ - {file = "dill-0.3.4-py2.py3-none-any.whl", hash = "sha256:7e40e4a70304fd9ceab3535d36e58791d9c4a776b38ec7f7ec9afc8d3dca4d4f"}, - {file = "dill-0.3.4.zip", hash = "sha256:9f9734205146b2b353ab3fec9af0070237b6ddae78452af83d2fca84d739e675"}, -] -docutils = [ - {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, - {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, -] -entrypoints = [ - {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, - {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, -] -fastjsonschema = [ - {file = "fastjsonschema-2.15.3-py3-none-any.whl", hash = "sha256:ddb0b1d8243e6e3abb822bd14e447a89f4ab7439342912d590444831fa00b6a0"}, - {file = "fastjsonschema-2.15.3.tar.gz", hash = "sha256:0a572f0836962d844c1fc435e200b2e4f4677e4e6611a2e3bdd01ba697c275ec"}, -] -flatbuffers = [ - {file = "flatbuffers-2.0-py2.py3-none-any.whl", hash = "sha256:3751954f0604580d3219ae49a85fafec9d85eec599c0b96226e1bc0b48e57474"}, - {file = "flatbuffers-2.0.tar.gz", hash = "sha256:12158ab0272375eab8db2d663ae97370c33f152b27801fa6024e1d6105fd4dd2"}, -] -fonttools = [ - {file = "fonttools-4.33.3-py3-none-any.whl", hash = "sha256:f829c579a8678fa939a1d9e9894d01941db869de44390adb49ce67055a06cc2a"}, - {file = "fonttools-4.33.3.zip", hash = "sha256:c0fdcfa8ceebd7c1b2021240bd46ef77aa8e7408cf10434be55df52384865f8e"}, -] -frozenlist = [ - {file = "frozenlist-1.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d2257aaba9660f78c7b1d8fea963b68f3feffb1a9d5d05a18401ca9eb3e8d0a3"}, - {file = "frozenlist-1.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4a44ebbf601d7bac77976d429e9bdb5a4614f9f4027777f9e54fd765196e9d3b"}, - {file = "frozenlist-1.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:45334234ec30fc4ea677f43171b18a27505bfb2dba9aca4398a62692c0ea8868"}, - {file = "frozenlist-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47be22dc27ed933d55ee55845d34a3e4e9f6fee93039e7f8ebadb0c2f60d403f"}, - {file = "frozenlist-1.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:03a7dd1bfce30216a3f51a84e6dd0e4a573d23ca50f0346634916ff105ba6e6b"}, - {file = "frozenlist-1.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:691ddf6dc50480ce49f68441f1d16a4c3325887453837036e0fb94736eae1e58"}, - {file = "frozenlist-1.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bde99812f237f79eaf3f04ebffd74f6718bbd216101b35ac7955c2d47c17da02"}, - {file = "frozenlist-1.3.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a202458d1298ced3768f5a7d44301e7c86defac162ace0ab7434c2e961166e8"}, - {file = "frozenlist-1.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b9e3e9e365991f8cc5f5edc1fd65b58b41d0514a6a7ad95ef5c7f34eb49b3d3e"}, - {file = "frozenlist-1.3.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:04cb491c4b1c051734d41ea2552fde292f5f3a9c911363f74f39c23659c4af78"}, - {file = "frozenlist-1.3.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:436496321dad302b8b27ca955364a439ed1f0999311c393dccb243e451ff66aa"}, - {file = "frozenlist-1.3.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:754728d65f1acc61e0f4df784456106e35afb7bf39cfe37227ab00436fb38676"}, - {file = "frozenlist-1.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6eb275c6385dd72594758cbe96c07cdb9bd6becf84235f4a594bdf21e3596c9d"}, - {file = "frozenlist-1.3.0-cp310-cp310-win32.whl", hash = "sha256:e30b2f9683812eb30cf3f0a8e9f79f8d590a7999f731cf39f9105a7c4a39489d"}, - {file = "frozenlist-1.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:f7353ba3367473d1d616ee727945f439e027f0bb16ac1a750219a8344d1d5d3c"}, - {file = "frozenlist-1.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:88aafd445a233dbbf8a65a62bc3249a0acd0d81ab18f6feb461cc5a938610d24"}, - {file = "frozenlist-1.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4406cfabef8f07b3b3af0f50f70938ec06d9f0fc26cbdeaab431cbc3ca3caeaa"}, - {file = "frozenlist-1.3.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8cf829bd2e2956066dd4de43fd8ec881d87842a06708c035b37ef632930505a2"}, - {file = "frozenlist-1.3.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:603b9091bd70fae7be28bdb8aa5c9990f4241aa33abb673390a7f7329296695f"}, - {file = "frozenlist-1.3.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25af28b560e0c76fa41f550eacb389905633e7ac02d6eb3c09017fa1c8cdfde1"}, - {file = "frozenlist-1.3.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94c7a8a9fc9383b52c410a2ec952521906d355d18fccc927fca52ab575ee8b93"}, - {file = "frozenlist-1.3.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:65bc6e2fece04e2145ab6e3c47428d1bbc05aede61ae365b2c1bddd94906e478"}, - {file = "frozenlist-1.3.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:3f7c935c7b58b0d78c0beea0c7358e165f95f1fd8a7e98baa40d22a05b4a8141"}, - {file = "frozenlist-1.3.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd89acd1b8bb4f31b47072615d72e7f53a948d302b7c1d1455e42622de180eae"}, - {file = "frozenlist-1.3.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:6983a31698490825171be44ffbafeaa930ddf590d3f051e397143a5045513b01"}, - {file = "frozenlist-1.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:adac9700675cf99e3615eb6a0eb5e9f5a4143c7d42c05cea2e7f71c27a3d0846"}, - {file = "frozenlist-1.3.0-cp37-cp37m-win32.whl", hash = "sha256:0c36e78b9509e97042ef869c0e1e6ef6429e55817c12d78245eb915e1cca7468"}, - {file = "frozenlist-1.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:57f4d3f03a18facacb2a6bcd21bccd011e3b75d463dc49f838fd699d074fabd1"}, - {file = "frozenlist-1.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8c905a5186d77111f02144fab5b849ab524f1e876a1e75205cd1386a9be4b00a"}, - {file = "frozenlist-1.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b5009062d78a8c6890d50b4e53b0ddda31841b3935c1937e2ed8c1bda1c7fb9d"}, - {file = "frozenlist-1.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2fdc3cd845e5a1f71a0c3518528bfdbfe2efaf9886d6f49eacc5ee4fd9a10953"}, - {file = "frozenlist-1.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92e650bd09b5dda929523b9f8e7f99b24deac61240ecc1a32aeba487afcd970f"}, - {file = "frozenlist-1.3.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:40dff8962b8eba91fd3848d857203f0bd704b5f1fa2b3fc9af64901a190bba08"}, - {file = "frozenlist-1.3.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:768efd082074bb203c934e83a61654ed4931ef02412c2fbdecea0cff7ecd0274"}, - {file = "frozenlist-1.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:006d3595e7d4108a12025ddf415ae0f6c9e736e726a5db0183326fd191b14c5e"}, - {file = "frozenlist-1.3.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:871d42623ae15eb0b0e9df65baeee6976b2e161d0ba93155411d58ff27483ad8"}, - {file = "frozenlist-1.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aff388be97ef2677ae185e72dc500d19ecaf31b698986800d3fc4f399a5e30a5"}, - {file = "frozenlist-1.3.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:9f892d6a94ec5c7b785e548e42722e6f3a52f5f32a8461e82ac3e67a3bd073f1"}, - {file = "frozenlist-1.3.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:e982878792c971cbd60ee510c4ee5bf089a8246226dea1f2138aa0bb67aff148"}, - {file = "frozenlist-1.3.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:c6c321dd013e8fc20735b92cb4892c115f5cdb82c817b1e5b07f6b95d952b2f0"}, - {file = "frozenlist-1.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:30530930410855c451bea83f7b272fb1c495ed9d5cc72895ac29e91279401db3"}, - {file = "frozenlist-1.3.0-cp38-cp38-win32.whl", hash = "sha256:40ec383bc194accba825fbb7d0ef3dda5736ceab2375462f1d8672d9f6b68d07"}, - {file = "frozenlist-1.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:f20baa05eaa2bcd5404c445ec51aed1c268d62600362dc6cfe04fae34a424bd9"}, - {file = "frozenlist-1.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0437fe763fb5d4adad1756050cbf855bbb2bf0d9385c7bb13d7a10b0dd550486"}, - {file = "frozenlist-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b684c68077b84522b5c7eafc1dc735bfa5b341fb011d5552ebe0968e22ed641c"}, - {file = "frozenlist-1.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:93641a51f89473837333b2f8100f3f89795295b858cd4c7d4a1f18e299dc0a4f"}, - {file = "frozenlist-1.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6d32ff213aef0fd0bcf803bffe15cfa2d4fde237d1d4838e62aec242a8362fa"}, - {file = "frozenlist-1.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31977f84828b5bb856ca1eb07bf7e3a34f33a5cddce981d880240ba06639b94d"}, - {file = "frozenlist-1.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3c62964192a1c0c30b49f403495911298810bada64e4f03249ca35a33ca0417a"}, - {file = "frozenlist-1.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4eda49bea3602812518765810af732229b4291d2695ed24a0a20e098c45a707b"}, - {file = "frozenlist-1.3.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acb267b09a509c1df5a4ca04140da96016f40d2ed183cdc356d237286c971b51"}, - {file = "frozenlist-1.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e1e26ac0a253a2907d654a37e390904426d5ae5483150ce3adedb35c8c06614a"}, - {file = "frozenlist-1.3.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f96293d6f982c58ebebb428c50163d010c2f05de0cde99fd681bfdc18d4b2dc2"}, - {file = "frozenlist-1.3.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e84cb61b0ac40a0c3e0e8b79c575161c5300d1d89e13c0e02f76193982f066ed"}, - {file = "frozenlist-1.3.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:ff9310f05b9d9c5c4dd472983dc956901ee6cb2c3ec1ab116ecdde25f3ce4951"}, - {file = "frozenlist-1.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d26b650b71fdc88065b7a21f8ace70175bcf3b5bdba5ea22df4bfd893e795a3b"}, - {file = "frozenlist-1.3.0-cp39-cp39-win32.whl", hash = "sha256:01a73627448b1f2145bddb6e6c2259988bb8aee0fb361776ff8604b99616cd08"}, - {file = "frozenlist-1.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:772965f773757a6026dea111a15e6e2678fbd6216180f82a48a40b27de1ee2ab"}, - {file = "frozenlist-1.3.0.tar.gz", hash = "sha256:ce6f2ba0edb7b0c1d8976565298ad2deba6f8064d2bebb6ffce2ca896eb35b0b"}, -] -fsspec = [ - {file = "fsspec-2022.5.0-py3-none-any.whl", hash = "sha256:2c198c50eb541a80bbd03540b07602c4a957366f3fb416a1f270d34bd4ff0926"}, - {file = "fsspec-2022.5.0.tar.gz", hash = "sha256:7a5459c75c44e760fbe6a3ccb1f37e81e023cde7da8ba20401258d877ec483b4"}, -] -gast = [ - {file = "gast-0.5.3-py3-none-any.whl", hash = "sha256:211aac1e58c167b25d3504998f2db694454a24bb1fb1225bce99420166f21d6a"}, - {file = "gast-0.5.3.tar.gz", hash = "sha256:cfbea25820e653af9c7d1807f659ce0a0a9c64f2439421a7bba4f0983f532dea"}, -] -google-auth = [ - {file = "google-auth-2.6.6.tar.gz", hash = "sha256:1ba4938e032b73deb51e59c4656a00e0939cf0b1112575099f136babb4563312"}, - {file = "google_auth-2.6.6-py2.py3-none-any.whl", hash = "sha256:349ac49b18b01019453cc99c11c92ed772739778c92f184002b7ab3a5b7ac77d"}, -] -google-auth-oauthlib = [ - {file = "google-auth-oauthlib-0.4.6.tar.gz", hash = "sha256:a90a072f6993f2c327067bf65270046384cda5a8ecb20b94ea9a687f1f233a7a"}, - {file = "google_auth_oauthlib-0.4.6-py2.py3-none-any.whl", hash = "sha256:3f2a6e802eebbb6fb736a370fbf3b055edcb6b52878bf2f26330b5e041316c73"}, -] -google-pasta = [ - {file = "google-pasta-0.2.0.tar.gz", hash = "sha256:c9f2c8dfc8f96d0d5808299920721be30c9eec37f2389f28904f454565c8a16e"}, - {file = "google_pasta-0.2.0-py2-none-any.whl", hash = "sha256:4612951da876b1a10fe3960d7226f0c7682cf901e16ac06e473b267a5afa8954"}, - {file = "google_pasta-0.2.0-py3-none-any.whl", hash = "sha256:b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed"}, -] -greenlet = [ - {file = "greenlet-1.1.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6"}, - {file = "greenlet-1.1.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:aec52725173bd3a7b56fe91bc56eccb26fbdff1386ef123abb63c84c5b43b63a"}, - {file = "greenlet-1.1.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:833e1551925ed51e6b44c800e71e77dacd7e49181fdc9ac9a0bf3714d515785d"}, - {file = "greenlet-1.1.2-cp27-cp27m-win32.whl", hash = "sha256:aa5b467f15e78b82257319aebc78dd2915e4c1436c3c0d1ad6f53e47ba6e2713"}, - {file = "greenlet-1.1.2-cp27-cp27m-win_amd64.whl", hash = "sha256:40b951f601af999a8bf2ce8c71e8aaa4e8c6f78ff8afae7b808aae2dc50d4c40"}, - {file = "greenlet-1.1.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:95e69877983ea39b7303570fa6760f81a3eec23d0e3ab2021b7144b94d06202d"}, - {file = "greenlet-1.1.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:356b3576ad078c89a6107caa9c50cc14e98e3a6c4874a37c3e0273e4baf33de8"}, - {file = "greenlet-1.1.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:8639cadfda96737427330a094476d4c7a56ac03de7265622fcf4cfe57c8ae18d"}, - {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97e5306482182170ade15c4b0d8386ded995a07d7cc2ca8f27958d34d6736497"}, - {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6a36bb9474218c7a5b27ae476035497a6990e21d04c279884eb10d9b290f1b1"}, - {file = "greenlet-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abb7a75ed8b968f3061327c433a0fbd17b729947b400747c334a9c29a9af6c58"}, - {file = "greenlet-1.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b336501a05e13b616ef81ce329c0e09ac5ed8c732d9ba7e3e983fcc1a9e86965"}, - {file = "greenlet-1.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:14d4f3cd4e8b524ae9b8aa567858beed70c392fdec26dbdb0a8a418392e71708"}, - {file = "greenlet-1.1.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:17ff94e7a83aa8671a25bf5b59326ec26da379ace2ebc4411d690d80a7fbcf23"}, - {file = "greenlet-1.1.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9f3cba480d3deb69f6ee2c1825060177a22c7826431458c697df88e6aeb3caee"}, - {file = "greenlet-1.1.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:fa877ca7f6b48054f847b61d6fa7bed5cebb663ebc55e018fda12db09dcc664c"}, - {file = "greenlet-1.1.2-cp35-cp35m-win32.whl", hash = "sha256:7cbd7574ce8e138bda9df4efc6bf2ab8572c9aff640d8ecfece1b006b68da963"}, - {file = "greenlet-1.1.2-cp35-cp35m-win_amd64.whl", hash = "sha256:903bbd302a2378f984aef528f76d4c9b1748f318fe1294961c072bdc7f2ffa3e"}, - {file = "greenlet-1.1.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:049fe7579230e44daef03a259faa24511d10ebfa44f69411d99e6a184fe68073"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:dd0b1e9e891f69e7675ba5c92e28b90eaa045f6ab134ffe70b52e948aa175b3c"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:7418b6bfc7fe3331541b84bb2141c9baf1ec7132a7ecd9f375912eca810e714e"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9d29ca8a77117315101425ec7ec2a47a22ccf59f5593378fc4077ac5b754fce"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21915eb821a6b3d9d8eefdaf57d6c345b970ad722f856cd71739493ce003ad08"}, - {file = "greenlet-1.1.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eff9d20417ff9dcb0d25e2defc2574d10b491bf2e693b4e491914738b7908168"}, - {file = "greenlet-1.1.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b8c008de9d0daba7b6666aa5bbfdc23dcd78cafc33997c9b7741ff6353bafb7f"}, - {file = "greenlet-1.1.2-cp36-cp36m-win32.whl", hash = "sha256:32ca72bbc673adbcfecb935bb3fb1b74e663d10a4b241aaa2f5a75fe1d1f90aa"}, - {file = "greenlet-1.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f0214eb2a23b85528310dad848ad2ac58e735612929c8072f6093f3585fd342d"}, - {file = "greenlet-1.1.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:b92e29e58bef6d9cfd340c72b04d74c4b4e9f70c9fa7c78b674d1fec18896dc4"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fdcec0b8399108577ec290f55551d926d9a1fa6cad45882093a7a07ac5ec147b"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:93f81b134a165cc17123626ab8da2e30c0455441d4ab5576eed73a64c025b25c"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e12bdc622676ce47ae9abbf455c189e442afdde8818d9da983085df6312e7a1"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c790abda465726cfb8bb08bd4ca9a5d0a7bd77c7ac1ca1b839ad823b948ea28"}, - {file = "greenlet-1.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f276df9830dba7a333544bd41070e8175762a7ac20350786b322b714b0e654f5"}, - {file = "greenlet-1.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c5d5b35f789a030ebb95bff352f1d27a93d81069f2adb3182d99882e095cefe"}, - {file = "greenlet-1.1.2-cp37-cp37m-win32.whl", hash = "sha256:64e6175c2e53195278d7388c454e0b30997573f3f4bd63697f88d855f7a6a1fc"}, - {file = "greenlet-1.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b11548073a2213d950c3f671aa88e6f83cda6e2fb97a8b6317b1b5b33d850e06"}, - {file = "greenlet-1.1.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:9633b3034d3d901f0a46b7939f8c4d64427dfba6bbc5a36b1a67364cf148a1b0"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:eb6ea6da4c787111adf40f697b4e58732ee0942b5d3bd8f435277643329ba627"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:f3acda1924472472ddd60c29e5b9db0cec629fbe3c5c5accb74d6d6d14773478"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e859fcb4cbe93504ea18008d1df98dee4f7766db66c435e4882ab35cf70cac43"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00e44c8afdbe5467e4f7b5851be223be68adb4272f44696ee71fe46b7036a711"}, - {file = "greenlet-1.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec8c433b3ab0419100bd45b47c9c8551248a5aee30ca5e9d399a0b57ac04651b"}, - {file = "greenlet-1.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2bde6792f313f4e918caabc46532aa64aa27a0db05d75b20edfc5c6f46479de2"}, - {file = "greenlet-1.1.2-cp38-cp38-win32.whl", hash = "sha256:288c6a76705dc54fba69fbcb59904ae4ad768b4c768839b8ca5fdadec6dd8cfd"}, - {file = "greenlet-1.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:8d2f1fb53a421b410751887eb4ff21386d119ef9cde3797bf5e7ed49fb51a3b3"}, - {file = "greenlet-1.1.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:166eac03e48784a6a6e0e5f041cfebb1ab400b394db188c48b3a84737f505b67"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:572e1787d1460da79590bf44304abbc0a2da944ea64ec549188fa84d89bba7ab"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:be5f425ff1f5f4b3c1e33ad64ab994eed12fc284a6ea71c5243fd564502ecbe5"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1692f7d6bc45e3200844be0dba153612103db241691088626a33ff1f24a0d88"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7227b47e73dedaa513cdebb98469705ef0d66eb5a1250144468e9c3097d6b59b"}, - {file = "greenlet-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff61ff178250f9bb3cd89752df0f1dd0e27316a8bd1465351652b1b4a4cdfd3"}, - {file = "greenlet-1.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0051c6f1f27cb756ffc0ffbac7d2cd48cb0362ac1736871399a739b2885134d3"}, - {file = "greenlet-1.1.2-cp39-cp39-win32.whl", hash = "sha256:f70a9e237bb792c7cc7e44c531fd48f5897961701cdaa06cf22fc14965c496cf"}, - {file = "greenlet-1.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:013d61294b6cd8fe3242932c1c5e36e5d1db2c8afb58606c5a67efce62c1f5fd"}, - {file = "greenlet-1.1.2.tar.gz", hash = "sha256:e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a"}, -] -grpcio = [ - {file = "grpcio-1.45.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:0d74a159df9401747e57960f0772f4371486e3281919004efa9df8a82985abee"}, - {file = "grpcio-1.45.0-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:4e6d15bfdfa28e5f6d524dd3b29c7dc129cfc578505b067aa97574490c5b70fe"}, - {file = "grpcio-1.45.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:44615be86e5540a18f5e4ca5a0f428d4b1efb800d255cfd9f902a11daca8fd74"}, - {file = "grpcio-1.45.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8b452f715e2cae9e75cb309f59a37f82e5b25f51f0bfc3cd1462de86265cef05"}, - {file = "grpcio-1.45.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db1c45daa35c64f17498af1ba6eb1d0a8d88a8a0b6b322f960ab461e7ef0419e"}, - {file = "grpcio-1.45.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:678a673fe811dad3ed5bd2e2352b79851236e4d718aeaeffc10f372a55954d8d"}, - {file = "grpcio-1.45.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a5c8a08aff0af770c977dcede62fbed53ae7b99adbc184d5299d148bb04652f1"}, - {file = "grpcio-1.45.0-cp310-cp310-win32.whl", hash = "sha256:1d764c8a190719301ec6f3b6ddeb48a234604e337d0fbb3184a4ddcda2aca9da"}, - {file = "grpcio-1.45.0-cp310-cp310-win_amd64.whl", hash = "sha256:797f5b750be6ff2905b9d0529a00c1f873d8035a5d01a9801910ace5f0d52a18"}, - {file = "grpcio-1.45.0-cp36-cp36m-linux_armv7l.whl", hash = "sha256:b46772b7eb58c6cb0b468b56d59618694d2c2f2cee2e5b4e83ae9729a46b8af0"}, - {file = "grpcio-1.45.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:2f135e5c8e9acd14f3090fd86dccb9d7c26aea7bfbd4528e8a86ff621d39e610"}, - {file = "grpcio-1.45.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:16603b9544a4af135ce4d594a7396602fbe62d1ccaa484b05cb1814c17a3e559"}, - {file = "grpcio-1.45.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ccba925045c00acc9ce2cc645b6fa9d19767dbb16c9c49921013da412b1d3415"}, - {file = "grpcio-1.45.0-cp36-cp36m-manylinux_2_17_aarch64.whl", hash = "sha256:7262b9d96db79e29049c7eb2b75b03f2b9485fd838209b5ff8e3cca73b2a706c"}, - {file = "grpcio-1.45.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a1c1098f35c33b985c312cacea39e2aa66f7ac1462579eed1d3aed2e51fff00d"}, - {file = "grpcio-1.45.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b18c86a9cfbedd0c4e083690fecc82027b3f938100ed0af8db77d52a171eb1e"}, - {file = "grpcio-1.45.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:638364d3603df9e4a1dbc2151b5fe1b491ceecda4e1672be86724e1dfa79c44d"}, - {file = "grpcio-1.45.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8de79eac582431cb6d05ff5652e68089c40aa0e604ec1630fa52ac926bc44f1b"}, - {file = "grpcio-1.45.0-cp36-cp36m-win32.whl", hash = "sha256:6cf5f1827c182ef9b503d7d01e503c1067f4499d45af792d95ccd1d8b0bea30d"}, - {file = "grpcio-1.45.0-cp36-cp36m-win_amd64.whl", hash = "sha256:4f1a22744f93b38d393b7a83cb607029ac5e2de680cab39957ffdd116590a178"}, - {file = "grpcio-1.45.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:321f84dbc788481f7a3cd12636a133ba5f4d17e57f1c906de5a22fd709c971b5"}, - {file = "grpcio-1.45.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:a33ed7d3e52ddc839e2f020592a4371d805c2ae820fb63b12525058e1810fe46"}, - {file = "grpcio-1.45.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f9f28d8c5343602e1510d4839e38568bcd0ca6353bd98ad9941787584a371a1d"}, - {file = "grpcio-1.45.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3a40dbb8aac60cf6a86583e2ba74fc2c286f1abc7a3404b25dcd12a49b9f7d8b"}, - {file = "grpcio-1.45.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:b00ce58323dde47d2ea240d10ee745471b9966429c97d9e6567c8d56e02b0372"}, - {file = "grpcio-1.45.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd4944f35f1e5ab54804c3e37d24921ecc01908ef871cdce6bd52995ea4f985c"}, - {file = "grpcio-1.45.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc135b77f384a84bac67a37947886986be136356446338d64160a30c85f20c6d"}, - {file = "grpcio-1.45.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:35ae55460514ed404ceaa95533b9a79989691b562faf012fc8fb143d8fd16e47"}, - {file = "grpcio-1.45.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:779db3d00c8da1d3efa942387cb0fea9ac6d50124d656024f82f9faefdd016e3"}, - {file = "grpcio-1.45.0-cp37-cp37m-win32.whl", hash = "sha256:aea67bd3cbf93db552c725bc0b4db0acdc6a284d036d1cc32d638305e0f01fd9"}, - {file = "grpcio-1.45.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7fe3ac700cc5ecba9dc9072c0e6cfd2f964ea9f273ce1111eaa27d13aa20ec32"}, - {file = "grpcio-1.45.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:259c126821fefcda298c020a0d83c4a4edac3cf10b1af12a62d250f8192ea1d1"}, - {file = "grpcio-1.45.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:5d05cd1b2b0975bb000ba97ca465565158dc211616c9bbbef5d1b77871974687"}, - {file = "grpcio-1.45.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6f2e044a715507fd13c70c928cd90daf8d0295c936a81fd9065a24e58ba7cc7d"}, - {file = "grpcio-1.45.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4d37c526b86c46d229f6117df5dca2510de597ab73c5956bc379ca41f8a1db84"}, - {file = "grpcio-1.45.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:6df338b8d2c328ba91a25e28786d10059dea3bc9115fa1ddad30ba5d459e714a"}, - {file = "grpcio-1.45.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:042921a824e90bf2974dbef7d89937096181298294799fb53e5576d9958884c7"}, - {file = "grpcio-1.45.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb23ed6ed84ae312df03e96c7a7cd3aa5f7e3a1ad7066fdb6cd47f1bd334196c"}, - {file = "grpcio-1.45.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:79582ec821ef10162348170a6e912d93ea257c749320a162dfc3a132ef25ac1b"}, - {file = "grpcio-1.45.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d14d372ea5a51d5ab991aa6d499a26e5a1e3b3f3af93f41826ea610f8a276c9e"}, - {file = "grpcio-1.45.0-cp38-cp38-win32.whl", hash = "sha256:b54444cf4212935a7b98cd26a30ad3a036389e4fd2ff3e461b176af876c7e20b"}, - {file = "grpcio-1.45.0-cp38-cp38-win_amd64.whl", hash = "sha256:da395720d6e9599c754f862f3f75bc0e8ff29fa55259e082e442a9cc916ffbc3"}, - {file = "grpcio-1.45.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:add03308fa2d434628aeaa445e0c75cdb9535f39128eb949b1483ae83fafade6"}, - {file = "grpcio-1.45.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:250d8f18332f3dbd4db00efa91d33d336e58362e9c80e6946d45ecf5e82d95ec"}, - {file = "grpcio-1.45.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dfca4dfd307b449d0a1e92bc7fbb5224ccf16db384aab412ba6766fc56bdffb6"}, - {file = "grpcio-1.45.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b7f2dc8831045eb0c892bb947e1cba2b1ed639e79a54abff7c4ad90bdd329f78"}, - {file = "grpcio-1.45.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:2355493a9e71f15d9004b2ab87892cb532e9e98db6882fced2912115eb5631af"}, - {file = "grpcio-1.45.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2798e42d62a0296982276d0bab96fc7d6772cd148357154348355304d6216763"}, - {file = "grpcio-1.45.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fe6acb1439127e0bee773f8a9a3ece290cb4cac4fe8d46b10bc8dda250a990c"}, - {file = "grpcio-1.45.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6774272a59b9ee16fb0d4f53e23716953a22bbb3efe12fdf9a4ee3eec2c4f81f"}, - {file = "grpcio-1.45.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52f61fcb17d92b87ba47d54b3c9deae09d4f0216a3ea277b7df4b6c1794e6556"}, - {file = "grpcio-1.45.0-cp39-cp39-win32.whl", hash = "sha256:3992c690228126e5652c7a1f61863c1ebfd71369cf2adb0fce86fee1d82d2d27"}, - {file = "grpcio-1.45.0-cp39-cp39-win_amd64.whl", hash = "sha256:220867a53e53b2e201e98c55061e3053e31c0ce613625087242be684d3e8612a"}, - {file = "grpcio-1.45.0.tar.gz", hash = "sha256:ff2c8b965b0fc25cf281961aa46619c10900543effe3f806ef818231c40aaff3"}, -] -h5py = [ - {file = "h5py-3.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a5320837c60870911645e9a935099bdb2be6a786fcf0dac5c860f3b679e2de55"}, - {file = "h5py-3.6.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98646e659bf8591a2177e12a4461dced2cad72da0ba4247643fd118db88880d2"}, - {file = "h5py-3.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:5996ff5adefd2d68c330a4265b6ef92e51b2fc674834a5990add5033bf109e20"}, - {file = "h5py-3.6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c9a5529343a619fea777b7caa27d493595b28b5af8b005e8d1817559fcccf493"}, - {file = "h5py-3.6.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e2b49c48df05e19bb20b400b7ff7dc6f1ee36b84dc717c3771c468b33697b466"}, - {file = "h5py-3.6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd9447633b0bafaf82190d9a8d56f3cb2e8d30169483aee67d800816e028190a"}, - {file = "h5py-3.6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1c5acc660c458421e88c4c5fe092ce15923adfac4c732af1ac4fced683a5ea97"}, - {file = "h5py-3.6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:35ab552c6f0a93365b3cb5664a5305f3920daa0a43deb5b2c547c52815ec46b9"}, - {file = "h5py-3.6.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:542781d50e1182b8fb619b1265dfe1c765e18215f818b0ab28b2983c28471325"}, - {file = "h5py-3.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f39242960b8d7f86f3056cc2546aa3047ff4835985f6483229af8f029e9c8db"}, - {file = "h5py-3.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:8ecedf16c613973622a334701f67edcc0249469f9daa0576e994fb20ac0405db"}, - {file = "h5py-3.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d8cacad89aa7daf3626fce106f7f2662ac35b14849df22d252d0d8fab9dc1c0b"}, - {file = "h5py-3.6.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dbaa1ed9768bf9ff04af0919acc55746e62b28333644f0251f38768313f31745"}, - {file = "h5py-3.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:954c5c39a09b5302f69f752c3bbf165d368a65c8d200f7d5655e0fa6368a75e6"}, - {file = "h5py-3.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:9fd8a14236fdd092a20c0bdf25c3aba3777718d266fabb0fdded4fcf252d1630"}, - {file = "h5py-3.6.0.tar.gz", hash = "sha256:8752d2814a92aba4e2b2a5922d2782d0029102d99caaf3c201a566bc0b40db29"}, -] -idna = [ - {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, - {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, -] -imagesize = [ - {file = "imagesize-1.3.0-py2.py3-none-any.whl", hash = "sha256:1db2f82529e53c3e929e8926a1fa9235aa82d0bd0c580359c67ec31b2fddaa8c"}, - {file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"}, -] -importlib-metadata = [ - {file = "importlib_metadata-4.11.3-py3-none-any.whl", hash = "sha256:1208431ca90a8cca1a6b8af391bb53c1a2db74e5d1cef6ddced95d4b2062edc6"}, - {file = "importlib_metadata-4.11.3.tar.gz", hash = "sha256:ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539"}, -] -importlib-resources = [ - {file = "importlib_resources-5.7.1-py3-none-any.whl", hash = "sha256:e447dc01619b1e951286f3929be820029d48c75eb25d265c28b92a16548212b8"}, - {file = "importlib_resources-5.7.1.tar.gz", hash = "sha256:b6062987dfc51f0fcb809187cffbd60f35df7acb4589091f154214af6d0d49d3"}, -] -iniconfig = [ - {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, - {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, -] -invoke = [ - {file = "invoke-1.7.0-py3-none-any.whl", hash = "sha256:a5159fc63dba6ca2a87a1e33d282b99cea69711b03c64a35bb4e1c53c6c4afa0"}, - {file = "invoke-1.7.0.tar.gz", hash = "sha256:e332e49de40463f2016315f51df42313855772be86435686156bc18f45b5cc6c"}, -] -ipykernel = [ - {file = "ipykernel-6.13.0-py3-none-any.whl", hash = "sha256:2b0987af43c0d4b62cecb13c592755f599f96f29aafe36c01731aaa96df30d39"}, - {file = "ipykernel-6.13.0.tar.gz", hash = "sha256:0e28273e290858393e86e152b104e5506a79c13d25b951ac6eca220051b4be60"}, -] -ipython = [ - {file = "ipython-7.32.0-py3-none-any.whl", hash = "sha256:86df2cf291c6c70b5be6a7b608650420e89180c8ec74f376a34e2dc15c3400e7"}, - {file = "ipython-7.32.0.tar.gz", hash = "sha256:468abefc45c15419e3c8e8c0a6a5c115b2127bafa34d7c641b1d443658793909"}, -] -ipython-genutils = [ - {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, - {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, -] -ipywidgets = [ - {file = "ipywidgets-7.7.0-py2.py3-none-any.whl", hash = "sha256:e58ff58bc94d481e91ecb6e13a5cb96a87b6b8ade135e055603d0ca24593df38"}, - {file = "ipywidgets-7.7.0.tar.gz", hash = "sha256:ab4a5596855a88b83761921c768707d65e5847068139bc1729ddfe834703542a"}, -] -isort = [ - {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, - {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, -] -jedi = [ - {file = "jedi-0.18.1-py2.py3-none-any.whl", hash = "sha256:637c9635fcf47945ceb91cd7f320234a7be540ded6f3e99a50cb6febdfd1ba8d"}, - {file = "jedi-0.18.1.tar.gz", hash = "sha256:74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab"}, -] -jinja2 = [ - {file = "Jinja2-3.1.1-py3-none-any.whl", hash = "sha256:539835f51a74a69f41b848a9645dbdc35b4f20a3b601e2d9a7e22947b15ff119"}, - {file = "Jinja2-3.1.1.tar.gz", hash = "sha256:640bed4bb501cbd17194b3cace1dc2126f5b619cf068a726b98192a0fde74ae9"}, -] -joblib = [ - {file = "joblib-1.1.0-py2.py3-none-any.whl", hash = "sha256:f21f109b3c7ff9d95f8387f752d0d9c34a02aa2f7060c2135f465da0e5160ff6"}, - {file = "joblib-1.1.0.tar.gz", hash = "sha256:4158fcecd13733f8be669be0683b96ebdbbd38d23559f54dca7205aea1bf1e35"}, -] -jsonschema = [ - {file = "jsonschema-4.4.0-py3-none-any.whl", hash = "sha256:77281a1f71684953ee8b3d488371b162419767973789272434bbc3f29d9c8823"}, - {file = "jsonschema-4.4.0.tar.gz", hash = "sha256:636694eb41b3535ed608fe04129f26542b59ed99808b4f688aa32dcf55317a83"}, -] -jupyter = [ - {file = "jupyter-1.0.0-py2.py3-none-any.whl", hash = "sha256:5b290f93b98ffbc21c0c7e749f054b3267782166d72fa5e3ed1ed4eaf34a2b78"}, - {file = "jupyter-1.0.0.tar.gz", hash = "sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f"}, - {file = "jupyter-1.0.0.zip", hash = "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7"}, -] -jupyter-client = [ - {file = "jupyter_client-7.3.0-py3-none-any.whl", hash = "sha256:671dd2d90d03f41716b09627a4eb06bb37875f92bf6563cc2ce4fe71c61c5cda"}, - {file = "jupyter_client-7.3.0.tar.gz", hash = "sha256:3bcc8e08a294d0fa9406e48cfe17e11ef0efdb7c504fe8cc335128e3ef8f3dac"}, -] -jupyter-console = [ - {file = "jupyter_console-6.4.3-py3-none-any.whl", hash = "sha256:e630bcb682c0088dda45688ad7c2424d4a825c8acf494cb036ced03ed0424841"}, - {file = "jupyter_console-6.4.3.tar.gz", hash = "sha256:55f32626b0be647a85e3217ddcdb22db69efc79e8b403b9771eb9ecc696019b5"}, -] -jupyter-core = [ - {file = "jupyter_core-4.10.0-py3-none-any.whl", hash = "sha256:e7f5212177af7ab34179690140f188aa9bf3d322d8155ed972cbded19f55b6f3"}, - {file = "jupyter_core-4.10.0.tar.gz", hash = "sha256:a6de44b16b7b31d7271130c71a6792c4040f077011961138afed5e5e73181aec"}, -] -jupyterlab-pygments = [ - {file = "jupyterlab_pygments-0.2.2-py2.py3-none-any.whl", hash = "sha256:2405800db07c9f770863bcf8049a529c3dd4d3e28536638bd7c1c01d2748309f"}, - {file = "jupyterlab_pygments-0.2.2.tar.gz", hash = "sha256:7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d"}, -] -jupyterlab-widgets = [ - {file = "jupyterlab_widgets-1.1.0-py3-none-any.whl", hash = "sha256:c2a9bd3789f120f64d73268c066ed3b000c56bc1dda217be5cdc43e7b4ebad3f"}, - {file = "jupyterlab_widgets-1.1.0.tar.gz", hash = "sha256:d5f41bc1713795385f718d44dcba47e1e1473c6289f28a95aa6b2c0782ee372a"}, -] -jupytext = [ - {file = "jupytext-1.13.8-py3-none-any.whl", hash = "sha256:625d2d2012763cc87d3f0dd60383516cec442c11894f53ad0c5ee5aa2a52caa2"}, - {file = "jupytext-1.13.8.tar.gz", hash = "sha256:60148537de5aa08bb9cbe8797500a49360b7a8eb6667736ae5b80e3ec7ba084d"}, -] -keras = [ - {file = "keras-2.8.0-py2.py3-none-any.whl", hash = "sha256:744d39dc6577dcd80ff4a4d41549e92b77d6a17e0edd58a431d30656e29bc94e"}, -] -keras-preprocessing = [ - {file = "Keras_Preprocessing-1.1.2-py2.py3-none-any.whl", hash = "sha256:7b82029b130ff61cc99b55f3bd27427df4838576838c5b2f65940e4fcec99a7b"}, - {file = "Keras_Preprocessing-1.1.2.tar.gz", hash = "sha256:add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3"}, -] -kiwisolver = [ - {file = "kiwisolver-1.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6e395ece147f0692ca7cdb05a028d31b83b72c369f7b4a2c1798f4b96af1e3d8"}, - {file = "kiwisolver-1.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0b7f50a1a25361da3440f07c58cd1d79957c2244209e4f166990e770256b6b0b"}, - {file = "kiwisolver-1.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3c032c41ae4c3a321b43a3650e6ecc7406b99ff3e5279f24c9b310f41bc98479"}, - {file = "kiwisolver-1.4.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1dcade8f6fe12a2bb4efe2cbe22116556e3b6899728d3b2a0d3b367db323eacc"}, - {file = "kiwisolver-1.4.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0e45e780a74416ef2f173189ef4387e44b5494f45e290bcb1f03735faa6779bf"}, - {file = "kiwisolver-1.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d2bb56309fb75a811d81ed55fbe2208aa77a3a09ff5f546ca95e7bb5fac6eff"}, - {file = "kiwisolver-1.4.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69b2d6c12f2ad5f55104a36a356192cfb680c049fe5e7c1f6620fc37f119cdc2"}, - {file = "kiwisolver-1.4.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:262c248c60f22c2b547683ad521e8a3db5909c71f679b93876921549107a0c24"}, - {file = "kiwisolver-1.4.2-cp310-cp310-win32.whl", hash = "sha256:1008346a7741620ab9cc6c96e8ad9b46f7a74ce839dbb8805ddf6b119d5fc6c2"}, - {file = "kiwisolver-1.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:6ece2e12e4b57bc5646b354f436416cd2a6f090c1dadcd92b0ca4542190d7190"}, - {file = "kiwisolver-1.4.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b978afdb913ca953cf128d57181da2e8798e8b6153be866ae2a9c446c6162f40"}, - {file = "kiwisolver-1.4.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f88c4b8e449908eeddb3bbd4242bd4dc2c7a15a7aa44bb33df893203f02dc2d"}, - {file = "kiwisolver-1.4.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e348f1904a4fab4153407f7ccc27e43b2a139752e8acf12e6640ba683093dd96"}, - {file = "kiwisolver-1.4.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c839bf28e45d7ddad4ae8f986928dbf5a6d42ff79760d54ec8ada8fb263e097c"}, - {file = "kiwisolver-1.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8ae5a071185f1a93777c79a9a1e67ac46544d4607f18d07131eece08d415083a"}, - {file = "kiwisolver-1.4.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:c222f91a45da9e01a9bc4f760727ae49050f8e8345c4ff6525495f7a164c8973"}, - {file = "kiwisolver-1.4.2-cp37-cp37m-win32.whl", hash = "sha256:a4e8f072db1d6fb7a7cc05a6dbef8442c93001f4bb604f1081d8c2db3ca97159"}, - {file = "kiwisolver-1.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:be9a650890fb60393e60aacb65878c4a38bb334720aa5ecb1c13d0dac54dd73b"}, - {file = "kiwisolver-1.4.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8ec2e55bf31b43aabe32089125dca3b46fdfe9f50afbf0756ae11e14c97b80ca"}, - {file = "kiwisolver-1.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d1078ba770d6165abed3d9a1be1f9e79b61515de1dd00d942fa53bba79f01ae"}, - {file = "kiwisolver-1.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cbb5eb4a2ea1ffec26268d49766cafa8f957fe5c1b41ad00733763fae77f9436"}, - {file = "kiwisolver-1.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e6cda72db409eefad6b021e8a4f964965a629f577812afc7860c69df7bdb84a"}, - {file = "kiwisolver-1.4.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b1605c7c38cc6a85212dfd6a641f3905a33412e49f7c003f35f9ac6d71f67720"}, - {file = "kiwisolver-1.4.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81237957b15469ea9151ec8ca08ce05656090ffabc476a752ef5ad7e2644c526"}, - {file = "kiwisolver-1.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:240009fdf4fa87844f805e23f48995537a8cb8f8c361e35fda6b5ac97fcb906f"}, - {file = "kiwisolver-1.4.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:240c2d51d098395c012ddbcb9bd7b3ba5de412a1d11840698859f51d0e643c4f"}, - {file = "kiwisolver-1.4.2-cp38-cp38-win32.whl", hash = "sha256:8b6086aa6936865962b2cee0e7aaecf01ab6778ce099288354a7229b4d9f1408"}, - {file = "kiwisolver-1.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:0d98dca86f77b851350c250f0149aa5852b36572514d20feeadd3c6b1efe38d0"}, - {file = "kiwisolver-1.4.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:91eb4916271655dfe3a952249cb37a5c00b6ba68b4417ee15af9ba549b5ba61d"}, - {file = "kiwisolver-1.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fa4d97d7d2b2c082e67907c0b8d9f31b85aa5d3ba0d33096b7116f03f8061261"}, - {file = "kiwisolver-1.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:71469b5845b9876b8d3d252e201bef6f47bf7456804d2fbe9a1d6e19e78a1e65"}, - {file = "kiwisolver-1.4.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8ff3033e43e7ca1389ee59fb7ecb8303abb8713c008a1da49b00869e92e3dd7c"}, - {file = "kiwisolver-1.4.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:89b57c2984f4464840e4b768affeff6b6809c6150d1166938ade3e22fbe22db8"}, - {file = "kiwisolver-1.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffbdb9a96c536f0405895b5e21ee39ec579cb0ed97bdbd169ae2b55f41d73219"}, - {file = "kiwisolver-1.4.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a830a03970c462d1a2311c90e05679da56d3bd8e78a4ba9985cb78ef7836c9f"}, - {file = "kiwisolver-1.4.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f74f2a13af201559e3d32b9ddfc303c94ae63d63d7f4326d06ce6fe67e7a8255"}, - {file = "kiwisolver-1.4.2-cp39-cp39-win32.whl", hash = "sha256:e677cc3626287f343de751e11b1e8a5b915a6ac897e8aecdbc996cd34de753a0"}, - {file = "kiwisolver-1.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:b3e251e5c38ac623c5d786adb21477f018712f8c6fa54781bd38aa1c60b60fc2"}, - {file = "kiwisolver-1.4.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0c380bb5ae20d829c1a5473cfcae64267b73aaa4060adc091f6df1743784aae0"}, - {file = "kiwisolver-1.4.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:484f2a5f0307bc944bc79db235f41048bae4106ffa764168a068d88b644b305d"}, - {file = "kiwisolver-1.4.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e8afdf533b613122e4bbaf3c1e42c2a5e9e2d1dd3a0a017749a7658757cb377"}, - {file = "kiwisolver-1.4.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:42f6ef9b640deb6f7d438e0a371aedd8bef6ddfde30683491b2e6f568b4e884e"}, - {file = "kiwisolver-1.4.2.tar.gz", hash = "sha256:7f606d91b8a8816be476513a77fd30abe66227039bd6f8b406c348cb0247dcc9"}, -] -lazy-object-proxy = [ - {file = "lazy-object-proxy-1.7.1.tar.gz", hash = "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win32.whl", hash = "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9"}, - {file = "lazy_object_proxy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb"}, - {file = "lazy_object_proxy-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69"}, - {file = "lazy_object_proxy-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win32.whl", hash = "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55"}, - {file = "lazy_object_proxy-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f"}, - {file = "lazy_object_proxy-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61"}, - {file = "lazy_object_proxy-1.7.1-pp37.pp38-none-any.whl", hash = "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84"}, -] -libclang = [ - {file = "libclang-14.0.1-py2.py3-none-macosx_10_9_x86_64.whl", hash = "sha256:a00c5f433af032979ac0cf03bcba59cf5247cb01fa04ef2380bf9668e84d50a9"}, - {file = "libclang-14.0.1-py2.py3-none-macosx_11_0_arm64.whl", hash = "sha256:52634f51635e8fc710febde1d7c59d3756b14531bd9ab60df54397ccc08cc4a8"}, - {file = "libclang-14.0.1-py2.py3-none-manylinux1_x86_64.whl", hash = "sha256:02bacd219959601c627872f2c7c7090ce57cf6bd497618388e41813c7ee75a3a"}, - {file = "libclang-14.0.1-py2.py3-none-manylinux2014_aarch64.whl", hash = "sha256:9d44b8e4b063ea4c7e78c925f083c05ab14440d63ed1bad13d4ca62d2908d277"}, - {file = "libclang-14.0.1-py2.py3-none-manylinux2014_armv7l.whl", hash = "sha256:7c7b8c7c82c0cdc088052c6b7b2be4a45b6b06f5f856e7e7058e598f05c09910"}, - {file = "libclang-14.0.1-py2.py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:58b9679868b2d6b5172ded26026c2f71306c4cabd6d15b93b597446fd677eb98"}, - {file = "libclang-14.0.1-py2.py3-none-win_amd64.whl", hash = "sha256:1a4f0d5959c801c975950926cffb9b45521c890d7c4b730d8a1f688d75b25de9"}, -] -mako = [ - {file = "Mako-1.2.0-py3-none-any.whl", hash = "sha256:23aab11fdbbb0f1051b93793a58323ff937e98e34aece1c4219675122e57e4ba"}, - {file = "Mako-1.2.0.tar.gz", hash = "sha256:9a7c7e922b87db3686210cf49d5d767033a41d4010b284e747682c92bddd8b39"}, -] -markdown = [ - {file = "Markdown-3.3.6-py3-none-any.whl", hash = "sha256:9923332318f843411e9932237530df53162e29dc7a4e2b91e35764583c46c9a3"}, - {file = "Markdown-3.3.6.tar.gz", hash = "sha256:76df8ae32294ec39dcf89340382882dfa12975f87f45c3ed1ecdb1e8cefc7006"}, -] -markdown-it-py = [ - {file = "markdown-it-py-2.1.0.tar.gz", hash = "sha256:cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da"}, - {file = "markdown_it_py-2.1.0-py3-none-any.whl", hash = "sha256:93de681e5c021a432c63147656fe21790bc01231e0cd2da73626f1aa3ac0fe27"}, -] -markupsafe = [ - {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, - {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, -] -matplotlib = [ - {file = "matplotlib-3.5.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:456cc8334f6d1124e8ff856b42d2cc1c84335375a16448189999496549f7182b"}, - {file = "matplotlib-3.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8a77906dc2ef9b67407cec0bdbf08e3971141e535db888974a915be5e1e3efc6"}, - {file = "matplotlib-3.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e70ae6475cfd0fad3816dcbf6cac536dc6f100f7474be58d59fa306e6e768a4"}, - {file = "matplotlib-3.5.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53273c5487d1c19c3bc03b9eb82adaf8456f243b97ed79d09dded747abaf1235"}, - {file = "matplotlib-3.5.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e3b6f3fd0d8ca37861c31e9a7cab71a0ef14c639b4c95654ea1dd153158bf0df"}, - {file = "matplotlib-3.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8c87cdaf06fd7b2477f68909838ff4176f105064a72ca9d24d3f2a29f73d393"}, - {file = "matplotlib-3.5.1-cp310-cp310-win32.whl", hash = "sha256:e2f28a07b4f82abb40267864ad7b3a4ed76f1b1663e81c7efc84a9b9248f672f"}, - {file = "matplotlib-3.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:d70a32ee1f8b55eed3fd4e892f0286df8cccc7e0475c11d33b5d0a148f5c7599"}, - {file = "matplotlib-3.5.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:68fa30cec89b6139dc559ed6ef226c53fd80396da1919a1b5ef672c911aaa767"}, - {file = "matplotlib-3.5.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e3484d8455af3fdb0424eae1789af61f6a79da0c80079125112fd5c1b604218"}, - {file = "matplotlib-3.5.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e293b16cf303fe82995e41700d172a58a15efc5331125d08246b520843ef21ee"}, - {file = "matplotlib-3.5.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:e3520a274a0e054e919f5b3279ee5dbccf5311833819ccf3399dab7c83e90a25"}, - {file = "matplotlib-3.5.1-cp37-cp37m-win32.whl", hash = "sha256:2252bfac85cec7af4a67e494bfccf9080bcba8a0299701eab075f48847cca907"}, - {file = "matplotlib-3.5.1-cp37-cp37m-win_amd64.whl", hash = "sha256:abf67e05a1b7f86583f6ebd01f69b693b9c535276f4e943292e444855870a1b8"}, - {file = "matplotlib-3.5.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6c094e4bfecd2fa7f9adffd03d8abceed7157c928c2976899de282f3600f0a3d"}, - {file = "matplotlib-3.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:506b210cc6e66a0d1c2bb765d055f4f6bc2745070fb1129203b67e85bbfa5c18"}, - {file = "matplotlib-3.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b04fc29bcef04d4e2d626af28d9d892be6aba94856cb46ed52bcb219ceac8943"}, - {file = "matplotlib-3.5.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:577ed20ec9a18d6bdedb4616f5e9e957b4c08563a9f985563a31fd5b10564d2a"}, - {file = "matplotlib-3.5.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e486f60db0cd1c8d68464d9484fd2a94011c1ac8593d765d0211f9daba2bd535"}, - {file = "matplotlib-3.5.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b71f3a7ca935fc759f2aed7cec06cfe10bc3100fadb5dbd9c435b04e557971e1"}, - {file = "matplotlib-3.5.1-cp38-cp38-win32.whl", hash = "sha256:d24e5bb8028541ce25e59390122f5e48c8506b7e35587e5135efcb6471b4ac6c"}, - {file = "matplotlib-3.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:778d398c4866d8e36ee3bf833779c940b5f57192fa0a549b3ad67bc4c822771b"}, - {file = "matplotlib-3.5.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bb1c613908f11bac270bc7494d68b1ef6e7c224b7a4204d5dacf3522a41e2bc3"}, - {file = "matplotlib-3.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:edf5e4e1d5fb22c18820e8586fb867455de3b109c309cb4fce3aaed85d9468d1"}, - {file = "matplotlib-3.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:40e0d7df05e8efe60397c69b467fc8f87a2affeb4d562fe92b72ff8937a2b511"}, - {file = "matplotlib-3.5.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a350ca685d9f594123f652ba796ee37219bf72c8e0fc4b471473d87121d6d34"}, - {file = "matplotlib-3.5.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3e66497cd990b1a130e21919b004da2f1dc112132c01ac78011a90a0f9229778"}, - {file = "matplotlib-3.5.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:87900c67c0f1728e6db17c6809ec05c025c6624dcf96a8020326ea15378fe8e7"}, - {file = "matplotlib-3.5.1-cp39-cp39-win32.whl", hash = "sha256:b8a4fb2a0c5afbe9604f8a91d7d0f27b1832c3e0b5e365f95a13015822b4cd65"}, - {file = "matplotlib-3.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:fe8d40c434a8e2c68d64c6d6a04e77f21791a93ff6afe0dce169597c110d3079"}, - {file = "matplotlib-3.5.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:34a1fc29f8f96e78ec57a5eff5e8d8b53d3298c3be6df61e7aa9efba26929522"}, - {file = "matplotlib-3.5.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b19a761b948e939a9e20173aaae76070025f0024fc8f7ba08bef22a5c8573afc"}, - {file = "matplotlib-3.5.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6803299cbf4665eca14428d9e886de62e24f4223ac31ab9c5d6d5339a39782c7"}, - {file = "matplotlib-3.5.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:14334b9902ec776461c4b8c6516e26b450f7ebe0b3ef8703bf5cdfbbaecf774a"}, - {file = "matplotlib-3.5.1.tar.gz", hash = "sha256:b2e9810e09c3a47b73ce9cab5a72243a1258f61e7900969097a817232246ce1c"}, -] -matplotlib-inline = [ - {file = "matplotlib-inline-0.1.3.tar.gz", hash = "sha256:a04bfba22e0d1395479f866853ec1ee28eea1485c1d69a6faf00dc3e24ff34ee"}, - {file = "matplotlib_inline-0.1.3-py3-none-any.whl", hash = "sha256:aed605ba3b72462d64d475a21a9296f400a19c4f74a31b59103d2a99ffd5aa5c"}, -] -mccabe = [ - {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, - {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, -] -mdit-py-plugins = [ - {file = "mdit-py-plugins-0.3.0.tar.gz", hash = "sha256:ecc24f51eeec6ab7eecc2f9724e8272c2fb191c2e93cf98109120c2cace69750"}, - {file = "mdit_py_plugins-0.3.0-py3-none-any.whl", hash = "sha256:b1279701cee2dbf50e188d3da5f51fee8d78d038cdf99be57c6b9d1aa93b4073"}, -] -mdurl = [ - {file = "mdurl-0.1.1-py3-none-any.whl", hash = "sha256:6a8f6804087b7128040b2fb2ebe242bdc2affaeaa034d5fc9feeed30b443651b"}, - {file = "mdurl-0.1.1.tar.gz", hash = "sha256:f79c9709944df218a4cdb0fcc0b0c7ead2f44594e3e84dc566606f04ad749c20"}, -] -mistune = [ - {file = "mistune-0.8.4-py2.py3-none-any.whl", hash = "sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4"}, - {file = "mistune-0.8.4.tar.gz", hash = "sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e"}, -] -more-itertools = [ - {file = "more-itertools-8.12.0.tar.gz", hash = "sha256:7dc6ad46f05f545f900dd59e8dfb4e84a4827b97b3cfecb175ea0c7d247f6064"}, - {file = "more_itertools-8.12.0-py3-none-any.whl", hash = "sha256:43e6dd9942dffd72661a2c4ef383ad7da1e6a3e968a927ad7a6083ab410a688b"}, -] -multidict = [ - {file = "multidict-6.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b9e95a740109c6047602f4db4da9949e6c5945cefbad34a1299775ddc9a62e2"}, - {file = "multidict-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac0e27844758d7177989ce406acc6a83c16ed4524ebc363c1f748cba184d89d3"}, - {file = "multidict-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:041b81a5f6b38244b34dc18c7b6aba91f9cdaf854d9a39e5ff0b58e2b5773b9c"}, - {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fdda29a3c7e76a064f2477c9aab1ba96fd94e02e386f1e665bca1807fc5386f"}, - {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3368bf2398b0e0fcbf46d85795adc4c259299fec50c1416d0f77c0a843a3eed9"}, - {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4f052ee022928d34fe1f4d2bc743f32609fb79ed9c49a1710a5ad6b2198db20"}, - {file = "multidict-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:225383a6603c086e6cef0f2f05564acb4f4d5f019a4e3e983f572b8530f70c88"}, - {file = "multidict-6.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50bd442726e288e884f7be9071016c15a8742eb689a593a0cac49ea093eef0a7"}, - {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:47e6a7e923e9cada7c139531feac59448f1f47727a79076c0b1ee80274cd8eee"}, - {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0556a1d4ea2d949efe5fd76a09b4a82e3a4a30700553a6725535098d8d9fb672"}, - {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:626fe10ac87851f4cffecee161fc6f8f9853f0f6f1035b59337a51d29ff3b4f9"}, - {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:8064b7c6f0af936a741ea1efd18690bacfbae4078c0c385d7c3f611d11f0cf87"}, - {file = "multidict-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2d36e929d7f6a16d4eb11b250719c39560dd70545356365b494249e2186bc389"}, - {file = "multidict-6.0.2-cp310-cp310-win32.whl", hash = "sha256:fcb91630817aa8b9bc4a74023e4198480587269c272c58b3279875ed7235c293"}, - {file = "multidict-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:8cbf0132f3de7cc6c6ce00147cc78e6439ea736cee6bca4f068bcf892b0fd658"}, - {file = "multidict-6.0.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:05f6949d6169878a03e607a21e3b862eaf8e356590e8bdae4227eedadacf6e51"}, - {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2c2e459f7050aeb7c1b1276763364884595d47000c1cddb51764c0d8976e608"}, - {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0509e469d48940147e1235d994cd849a8f8195e0bca65f8f5439c56e17872a3"}, - {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:514fe2b8d750d6cdb4712346a2c5084a80220821a3e91f3f71eec11cf8d28fd4"}, - {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19adcfc2a7197cdc3987044e3f415168fc5dc1f720c932eb1ef4f71a2067e08b"}, - {file = "multidict-6.0.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9d153e7f1f9ba0b23ad1568b3b9e17301e23b042c23870f9ee0522dc5cc79e8"}, - {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:aef9cc3d9c7d63d924adac329c33835e0243b5052a6dfcbf7732a921c6e918ba"}, - {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4571f1beddff25f3e925eea34268422622963cd8dc395bb8778eb28418248e43"}, - {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:d48b8ee1d4068561ce8033d2c344cf5232cb29ee1a0206a7b828c79cbc5982b8"}, - {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:45183c96ddf61bf96d2684d9fbaf6f3564d86b34cb125761f9a0ef9e36c1d55b"}, - {file = "multidict-6.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:75bdf08716edde767b09e76829db8c1e5ca9d8bb0a8d4bd94ae1eafe3dac5e15"}, - {file = "multidict-6.0.2-cp37-cp37m-win32.whl", hash = "sha256:a45e1135cb07086833ce969555df39149680e5471c04dfd6a915abd2fc3f6dbc"}, - {file = "multidict-6.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6f3cdef8a247d1eafa649085812f8a310e728bdf3900ff6c434eafb2d443b23a"}, - {file = "multidict-6.0.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0327292e745a880459ef71be14e709aaea2f783f3537588fb4ed09b6c01bca60"}, - {file = "multidict-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e875b6086e325bab7e680e4316d667fc0e5e174bb5611eb16b3ea121c8951b86"}, - {file = "multidict-6.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:feea820722e69451743a3d56ad74948b68bf456984d63c1a92e8347b7b88452d"}, - {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cc57c68cb9139c7cd6fc39f211b02198e69fb90ce4bc4a094cf5fe0d20fd8b0"}, - {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:497988d6b6ec6ed6f87030ec03280b696ca47dbf0648045e4e1d28b80346560d"}, - {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:89171b2c769e03a953d5969b2f272efa931426355b6c0cb508022976a17fd376"}, - {file = "multidict-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:684133b1e1fe91eda8fa7447f137c9490a064c6b7f392aa857bba83a28cfb693"}, - {file = "multidict-6.0.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd9fc9c4849a07f3635ccffa895d57abce554b467d611a5009ba4f39b78a8849"}, - {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e07c8e79d6e6fd37b42f3250dba122053fddb319e84b55dd3a8d6446e1a7ee49"}, - {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4070613ea2227da2bfb2c35a6041e4371b0af6b0be57f424fe2318b42a748516"}, - {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:47fbeedbf94bed6547d3aa632075d804867a352d86688c04e606971595460227"}, - {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:5774d9218d77befa7b70d836004a768fb9aa4fdb53c97498f4d8d3f67bb9cfa9"}, - {file = "multidict-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2957489cba47c2539a8eb7ab32ff49101439ccf78eab724c828c1a54ff3ff98d"}, - {file = "multidict-6.0.2-cp38-cp38-win32.whl", hash = "sha256:e5b20e9599ba74391ca0cfbd7b328fcc20976823ba19bc573983a25b32e92b57"}, - {file = "multidict-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:8004dca28e15b86d1b1372515f32eb6f814bdf6f00952699bdeb541691091f96"}, - {file = "multidict-6.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2e4a0785b84fb59e43c18a015ffc575ba93f7d1dbd272b4cdad9f5134b8a006c"}, - {file = "multidict-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6701bf8a5d03a43375909ac91b6980aea74b0f5402fbe9428fc3f6edf5d9677e"}, - {file = "multidict-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a007b1638e148c3cfb6bf0bdc4f82776cef0ac487191d093cdc316905e504071"}, - {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07a017cfa00c9890011628eab2503bee5872f27144936a52eaab449be5eaf032"}, - {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c207fff63adcdf5a485969131dc70e4b194327666b7e8a87a97fbc4fd80a53b2"}, - {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:373ba9d1d061c76462d74e7de1c0c8e267e9791ee8cfefcf6b0b2495762c370c"}, - {file = "multidict-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfba7c6d5d7c9099ba21f84662b037a0ffd4a5e6b26ac07d19e423e6fdf965a9"}, - {file = "multidict-6.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19d9bad105dfb34eb539c97b132057a4e709919ec4dd883ece5838bcbf262b80"}, - {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:de989b195c3d636ba000ee4281cd03bb1234635b124bf4cd89eeee9ca8fcb09d"}, - {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7c40b7bbece294ae3a87c1bc2abff0ff9beef41d14188cda94ada7bcea99b0fb"}, - {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:d16cce709ebfadc91278a1c005e3c17dd5f71f5098bfae1035149785ea6e9c68"}, - {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:a2c34a93e1d2aa35fbf1485e5010337c72c6791407d03aa5f4eed920343dd360"}, - {file = "multidict-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:feba80698173761cddd814fa22e88b0661e98cb810f9f986c54aa34d281e4937"}, - {file = "multidict-6.0.2-cp39-cp39-win32.whl", hash = "sha256:23b616fdc3c74c9fe01d76ce0d1ce872d2d396d8fa8e4899398ad64fb5aa214a"}, - {file = "multidict-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:4bae31803d708f6f15fd98be6a6ac0b6958fcf68fda3c77a048a4f9073704aae"}, - {file = "multidict-6.0.2.tar.gz", hash = "sha256:5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013"}, -] -mypy = [ - {file = "mypy-0.800-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:e1c84c65ff6d69fb42958ece5b1255394714e0aac4df5ffe151bc4fe19c7600a"}, - {file = "mypy-0.800-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:947126195bfe4709c360e89b40114c6746ae248f04d379dca6f6ab677aa07641"}, - {file = "mypy-0.800-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:b95068a3ce3b50332c40e31a955653be245666a4bc7819d3c8898aa9fb9ea496"}, - {file = "mypy-0.800-cp35-cp35m-win_amd64.whl", hash = "sha256:ca7ad5aed210841f1e77f5f2f7d725b62c78fa77519312042c719ed2ab937876"}, - {file = "mypy-0.800-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e32b7b282c4ed4e378bba8b8dfa08e1cfa6f6574067ef22f86bee5b1039de0c9"}, - {file = "mypy-0.800-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:e497a544391f733eca922fdcb326d19e894789cd4ff61d48b4b195776476c5cf"}, - {file = "mypy-0.800-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:5615785d3e2f4f03ab7697983d82c4b98af5c321614f51b8f1034eb9ebe48363"}, - {file = "mypy-0.800-cp36-cp36m-win_amd64.whl", hash = "sha256:2b216eacca0ec0ee124af9429bfd858d5619a0725ee5f88057e6e076f9eb1a7b"}, - {file = "mypy-0.800-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e3b8432f8df19e3c11235c4563a7250666dc9aa7cdda58d21b4177b20256ca9f"}, - {file = "mypy-0.800-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d16c54b0dffb861dc6318a8730952265876d90c5101085a4bc56913e8521ba19"}, - {file = "mypy-0.800-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:0d2fc8beb99cd88f2d7e20d69131353053fbecea17904ee6f0348759302c52fa"}, - {file = "mypy-0.800-cp37-cp37m-win_amd64.whl", hash = "sha256:aa9d4901f3ee1a986a3a79fe079ffbf7f999478c281376f48faa31daaa814e86"}, - {file = "mypy-0.800-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:319ee5c248a7c3f94477f92a729b7ab06bf8a6d04447ef3aa8c9ba2aa47c6dcf"}, - {file = "mypy-0.800-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:74f5aa50d0866bc6fb8e213441c41e466c86678c800700b87b012ed11c0a13e0"}, - {file = "mypy-0.800-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:a301da58d566aca05f8f449403c710c50a9860782148332322decf73a603280b"}, - {file = "mypy-0.800-cp38-cp38-win_amd64.whl", hash = "sha256:b9150db14a48a8fa114189bfe49baccdff89da8c6639c2717750c7ae62316738"}, - {file = "mypy-0.800-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f5fdf935a46aa20aa937f2478480ebf4be9186e98e49cc3843af9a5795a49a25"}, - {file = "mypy-0.800-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:6f8425fecd2ba6007e526209bb985ce7f49ed0d2ac1cc1a44f243380a06a84fb"}, - {file = "mypy-0.800-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:5ff616787122774f510caeb7b980542a7cc2222be3f00837a304ea85cd56e488"}, - {file = "mypy-0.800-cp39-cp39-win_amd64.whl", hash = "sha256:90b6f46dc2181d74f80617deca611925d7e63007cf416397358aa42efb593e07"}, - {file = "mypy-0.800-py3-none-any.whl", hash = "sha256:3e0c159a7853e3521e3f582adb1f3eac66d0b0639d434278e2867af3a8c62653"}, - {file = "mypy-0.800.tar.gz", hash = "sha256:e0202e37756ed09daf4b0ba64ad2c245d357659e014c3f51d8cd0681ba66940a"}, -] -mypy-extensions = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, -] -nbclient = [ - {file = "nbclient-0.6.0-py3-none-any.whl", hash = "sha256:2eed35fc954716cdf0a01ea8cbdd9f9316761479008570059e2f5de29e139423"}, - {file = "nbclient-0.6.0.tar.gz", hash = "sha256:3f89a403c6badf24d2855a455b69a80985b3b27e04111243fdb6a88a28d27031"}, -] -nbconvert = [ - {file = "nbconvert-6.5.0-py3-none-any.whl", hash = "sha256:c56dd0b8978a1811a5654f74c727ff16ca87dd5a43abd435a1c49b840fcd8360"}, - {file = "nbconvert-6.5.0.tar.gz", hash = "sha256:223e46e27abe8596b8aed54301fadbba433b7ffea8196a68fd7b1ff509eee99d"}, -] -nbformat = [ - {file = "nbformat-5.3.0-py3-none-any.whl", hash = "sha256:38856d97de49e8292e2d5d8f595e9d26f02abfd87e075d450af4511870b40538"}, - {file = "nbformat-5.3.0.tar.gz", hash = "sha256:fcc5ab8cb74e20b19570b5be809e2dba9b82836fd2761a89066ad43394ba29f5"}, -] -nest-asyncio = [ - {file = "nest_asyncio-1.5.5-py3-none-any.whl", hash = "sha256:b98e3ec1b246135e4642eceffa5a6c23a3ab12c82ff816a92c612d68205813b2"}, - {file = "nest_asyncio-1.5.5.tar.gz", hash = "sha256:e442291cd942698be619823a17a86a5759eabe1f8613084790de189fe9e16d65"}, -] -networkx = [ - {file = "networkx-2.6.3-py3-none-any.whl", hash = "sha256:80b6b89c77d1dfb64a4c7854981b60aeea6360ac02c6d4e4913319e0a313abef"}, - {file = "networkx-2.6.3.tar.gz", hash = "sha256:c0946ed31d71f1b732b5aaa6da5a0388a345019af232ce2f49c766e2d6795c51"}, -] -notebook = [ - {file = "notebook-6.4.12-py3-none-any.whl", hash = "sha256:8c07a3bb7640e371f8a609bdbb2366a1976c6a2589da8ef917f761a61e3ad8b1"}, - {file = "notebook-6.4.12.tar.gz", hash = "sha256:6268c9ec9048cff7a45405c990c29ac9ca40b0bc3ec29263d218c5e01f2b4e86"}, -] -numexpr = [ - {file = "numexpr-2.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d148e99483e15de22d0acd5100136d39a336e91c8f8d37bf2e84e9f0ab4c0610"}, - {file = "numexpr-2.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebf31aeed426840aefe1e94c89bb0b7530a72be36444ed4c73e4411865b79be5"}, - {file = "numexpr-2.8.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3bab5add6628fa8bb66fba7b1f0eed5d8d0ce05fdd2dcc326dde8a297a961c46"}, - {file = "numexpr-2.8.1-cp310-cp310-win32.whl", hash = "sha256:79ec94295aa57f5a9d212116bb7359744cd2f9e05d477df0dee383b7f44b9588"}, - {file = "numexpr-2.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:cfd89f63028f8df3c9b11bf2c98085184f967a09f543a77c3335f4a0ec54f124"}, - {file = "numexpr-2.8.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:517f299c4bc8491b5117aa276e8f3cf7ee2e89223922e92e2ea78a32985d5087"}, - {file = "numexpr-2.8.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9f046cb5752f08a9291dc1fd37a9cfd15770262188bb984e4418490fef9c9ec"}, - {file = "numexpr-2.8.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:6bce8a183afe157c25385d27be314be22f06ba644c89b611d20e2570a06bd5dd"}, - {file = "numexpr-2.8.1-cp36-cp36m-win32.whl", hash = "sha256:1639561d056d2d790a56ddab7e7df40b6181ad50338b50fba94aa42874a00958"}, - {file = "numexpr-2.8.1-cp36-cp36m-win_amd64.whl", hash = "sha256:a97a087a5f5e56cd81c69215918fdaca60eb478a099daa757455e4ff887f7600"}, - {file = "numexpr-2.8.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bd402e43b8baf6436b7c2c14541f69eb4f97f023469585a7ad258c49622ff619"}, - {file = "numexpr-2.8.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48258db3ba89ad028744e07b09dde963f82da7f081849d3a003bb0b96b112d4f"}, - {file = "numexpr-2.8.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4eb79d9026f013cf8d16de8be74911c74c0c09362627bf4b39e2b7f1f3188c28"}, - {file = "numexpr-2.8.1-cp37-cp37m-win32.whl", hash = "sha256:fd6905bc80a11908e363c9821cbf8aeeca4dca5b6a2eea90a97b055bc73443e6"}, - {file = "numexpr-2.8.1-cp37-cp37m-win_amd64.whl", hash = "sha256:da180aaec7f6c387540b251f6ec2b8d280220c0e45731778853c8b0d86c4ae22"}, - {file = "numexpr-2.8.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b57d3ab7054409d9b4d2148241ae70d738c0b0daeb1a0efd5ea89b9279752e22"}, - {file = "numexpr-2.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7b64b125161e722c9dc8a27df282e755bd9a5adf826b2e3e1f038e3dfdc3307"}, - {file = "numexpr-2.8.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a591f99ecbb413749725e8da4e52e663f0939dd5fbf1ae5a7c6c50ba734f57de"}, - {file = "numexpr-2.8.1-cp38-cp38-win32.whl", hash = "sha256:80db25e2934fd1a1b787440d5fa7946adb79a1289d7dc64e2c8bcd6ceae660ad"}, - {file = "numexpr-2.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:d2b4b6379763ec5d794d4aaa1834ae00f1bba82a36d0b99c6e2d559302a21e85"}, - {file = "numexpr-2.8.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ab6b2cb64bc9391f77f08203fda5af3647ed2abcefb928cc6282727854f97735"}, - {file = "numexpr-2.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2247d92da60b85de619e797e59a80e9c7302fba82dcd0525de8f7dd729a0d60f"}, - {file = "numexpr-2.8.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5d0c98c4d8bcc25962e5859176e5728f69209cffb9b7f64bf6d1c801fe350946"}, - {file = "numexpr-2.8.1-cp39-cp39-win32.whl", hash = "sha256:24fb5b2c17273a76e7de9cea7817c54262198657998a093fceb4030f273524c7"}, - {file = "numexpr-2.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:920c6a3088790573765e103e20592864977aa4b4d1b819c298fa9d88771cde1b"}, - {file = "numexpr-2.8.1.tar.gz", hash = "sha256:cd779aa44dd986c4ef10163519239602b027be06a527946656207acf1f58113b"}, -] -numpy = [ - {file = "numpy-1.21.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8737609c3bbdd48e380d463134a35ffad3b22dc56295eff6f79fd85bd0eeeb25"}, - {file = "numpy-1.21.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fdffbfb6832cd0b300995a2b08b8f6fa9f6e856d562800fea9182316d99c4e8e"}, - {file = "numpy-1.21.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3820724272f9913b597ccd13a467cc492a0da6b05df26ea09e78b171a0bb9da6"}, - {file = "numpy-1.21.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f17e562de9edf691a42ddb1eb4a5541c20dd3f9e65b09ded2beb0799c0cf29bb"}, - {file = "numpy-1.21.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f30427731561ce75d7048ac254dbe47a2ba576229250fb60f0fb74db96501a1"}, - {file = "numpy-1.21.6-cp310-cp310-win32.whl", hash = "sha256:d4bf4d43077db55589ffc9009c0ba0a94fa4908b9586d6ccce2e0b164c86303c"}, - {file = "numpy-1.21.6-cp310-cp310-win_amd64.whl", hash = "sha256:d136337ae3cc69aa5e447e78d8e1514be8c3ec9b54264e680cf0b4bd9011574f"}, - {file = "numpy-1.21.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6aaf96c7f8cebc220cdfc03f1d5a31952f027dda050e5a703a0d1c396075e3e7"}, - {file = "numpy-1.21.6-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:67c261d6c0a9981820c3a149d255a76918278a6b03b6a036800359aba1256d46"}, - {file = "numpy-1.21.6-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a6be4cb0ef3b8c9250c19cc122267263093eee7edd4e3fa75395dfda8c17a8e2"}, - {file = "numpy-1.21.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7c4068a8c44014b2d55f3c3f574c376b2494ca9cc73d2f1bd692382b6dffe3db"}, - {file = "numpy-1.21.6-cp37-cp37m-win32.whl", hash = "sha256:7c7e5fa88d9ff656e067876e4736379cc962d185d5cd808014a8a928d529ef4e"}, - {file = "numpy-1.21.6-cp37-cp37m-win_amd64.whl", hash = "sha256:bcb238c9c96c00d3085b264e5c1a1207672577b93fa666c3b14a45240b14123a"}, - {file = "numpy-1.21.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:82691fda7c3f77c90e62da69ae60b5ac08e87e775b09813559f8901a88266552"}, - {file = "numpy-1.21.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:643843bcc1c50526b3a71cd2ee561cf0d8773f062c8cbaf9ffac9fdf573f83ab"}, - {file = "numpy-1.21.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:357768c2e4451ac241465157a3e929b265dfac85d9214074985b1786244f2ef3"}, - {file = "numpy-1.21.6-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9f411b2c3f3d76bba0865b35a425157c5dcf54937f82bbeb3d3c180789dd66a6"}, - {file = "numpy-1.21.6-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4aa48afdce4660b0076a00d80afa54e8a97cd49f457d68a4342d188a09451c1a"}, - {file = "numpy-1.21.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6a96eef20f639e6a97d23e57dd0c1b1069a7b4fd7027482a4c5c451cd7732f4"}, - {file = "numpy-1.21.6-cp38-cp38-win32.whl", hash = "sha256:5c3c8def4230e1b959671eb959083661b4a0d2e9af93ee339c7dada6759a9470"}, - {file = "numpy-1.21.6-cp38-cp38-win_amd64.whl", hash = "sha256:bf2ec4b75d0e9356edea834d1de42b31fe11f726a81dfb2c2112bc1eaa508fcf"}, - {file = "numpy-1.21.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4391bd07606be175aafd267ef9bea87cf1b8210c787666ce82073b05f202add1"}, - {file = "numpy-1.21.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:67f21981ba2f9d7ba9ade60c9e8cbaa8cf8e9ae51673934480e45cf55e953673"}, - {file = "numpy-1.21.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ee5ec40fdd06d62fe5d4084bef4fd50fd4bb6bfd2bf519365f569dc470163ab0"}, - {file = "numpy-1.21.6-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1dbe1c91269f880e364526649a52eff93ac30035507ae980d2fed33aaee633ac"}, - {file = "numpy-1.21.6-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d9caa9d5e682102453d96a0ee10c7241b72859b01a941a397fd965f23b3e016b"}, - {file = "numpy-1.21.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58459d3bad03343ac4b1b42ed14d571b8743dc80ccbf27444f266729df1d6f5b"}, - {file = "numpy-1.21.6-cp39-cp39-win32.whl", hash = "sha256:7f5ae4f304257569ef3b948810816bc87c9146e8c446053539947eedeaa32786"}, - {file = "numpy-1.21.6-cp39-cp39-win_amd64.whl", hash = "sha256:e31f0bb5928b793169b87e3d1e070f2342b22d5245c755e2b81caa29756246c3"}, - {file = "numpy-1.21.6-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dd1c8f6bd65d07d3810b90d02eba7997e32abbdf1277a481d698969e921a3be0"}, - {file = "numpy-1.21.6.zip", hash = "sha256:ecb55251139706669fdec2ff073c98ef8e9a84473e51e716211b41aa0f18e656"}, -] -oauthlib = [ - {file = "oauthlib-3.2.0-py3-none-any.whl", hash = "sha256:6db33440354787f9b7f3a6dbd4febf5d0f93758354060e802f6c06cb493022fe"}, - {file = "oauthlib-3.2.0.tar.gz", hash = "sha256:23a8208d75b902797ea29fd31fa80a15ed9dc2c6c16fe73f5d346f83f6fa27a2"}, -] -opt-einsum = [ - {file = "opt_einsum-3.3.0-py3-none-any.whl", hash = "sha256:2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147"}, - {file = "opt_einsum-3.3.0.tar.gz", hash = "sha256:59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549"}, -] -optuna = [ - {file = "optuna-2.10.0-py3-none-any.whl", hash = "sha256:457ff8b12b459dc1eeb0178389ff9e5c4da41764cc91152fe324bfd56f88d43f"}, - {file = "optuna-2.10.0.tar.gz", hash = "sha256:04c3100a4fe88a71dc72f69d8a10ec9db7c9a0c884feaf932b68632b00686a8d"}, -] -packaging = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, -] -pandas = [ - {file = "pandas-1.1.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:bf23a3b54d128b50f4f9d4675b3c1857a688cc6731a32f931837d72effb2698d"}, - {file = "pandas-1.1.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:5a780260afc88268a9d3ac3511d8f494fdcf637eece62fb9eb656a63d53eb7ca"}, - {file = "pandas-1.1.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:b61080750d19a0122469ab59b087380721d6b72a4e7d962e4d7e63e0c4504814"}, - {file = "pandas-1.1.5-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:0de3ddb414d30798cbf56e642d82cac30a80223ad6fe484d66c0ce01a84d6f2f"}, - {file = "pandas-1.1.5-cp36-cp36m-win32.whl", hash = "sha256:70865f96bb38fec46f7ebd66d4b5cfd0aa6b842073f298d621385ae3898d28b5"}, - {file = "pandas-1.1.5-cp36-cp36m-win_amd64.whl", hash = "sha256:19a2148a1d02791352e9fa637899a78e371a3516ac6da5c4edc718f60cbae648"}, - {file = "pandas-1.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:26fa92d3ac743a149a31b21d6f4337b0594b6302ea5575b37af9ca9611e8981a"}, - {file = "pandas-1.1.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:c16d59c15d946111d2716856dd5479221c9e4f2f5c7bc2d617f39d870031e086"}, - {file = "pandas-1.1.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:3be7a7a0ca71a2640e81d9276f526bca63505850add10206d0da2e8a0a325dae"}, - {file = "pandas-1.1.5-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:573fba5b05bf2c69271a32e52399c8de599e4a15ab7cec47d3b9c904125ab788"}, - {file = "pandas-1.1.5-cp37-cp37m-win32.whl", hash = "sha256:21b5a2b033380adbdd36b3116faaf9a4663e375325831dac1b519a44f9e439bb"}, - {file = "pandas-1.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:24c7f8d4aee71bfa6401faeba367dd654f696a77151a8a28bc2013f7ced4af98"}, - {file = "pandas-1.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2860a97cbb25444ffc0088b457da0a79dc79f9c601238a3e0644312fcc14bf11"}, - {file = "pandas-1.1.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:5008374ebb990dad9ed48b0f5d0038124c73748f5384cc8c46904dace27082d9"}, - {file = "pandas-1.1.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2c2f7c670ea4e60318e4b7e474d56447cf0c7d83b3c2a5405a0dbb2600b9c48e"}, - {file = "pandas-1.1.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:0a643bae4283a37732ddfcecab3f62dd082996021b980f580903f4e8e01b3c5b"}, - {file = "pandas-1.1.5-cp38-cp38-win32.whl", hash = "sha256:5447ea7af4005b0daf695a316a423b96374c9c73ffbd4533209c5ddc369e644b"}, - {file = "pandas-1.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:4c62e94d5d49db116bef1bd5c2486723a292d79409fc9abd51adf9e05329101d"}, - {file = "pandas-1.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:731568be71fba1e13cae212c362f3d2ca8932e83cb1b85e3f1b4dd77d019254a"}, - {file = "pandas-1.1.5-cp39-cp39-manylinux1_i686.whl", hash = "sha256:c61c043aafb69329d0f961b19faa30b1dab709dd34c9388143fc55680059e55a"}, - {file = "pandas-1.1.5-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:2b1c6cd28a0dfda75c7b5957363333f01d370936e4c6276b7b8e696dd500582a"}, - {file = "pandas-1.1.5-cp39-cp39-win32.whl", hash = "sha256:c94ff2780a1fd89f190390130d6d36173ca59fcfb3fe0ff596f9a56518191ccb"}, - {file = "pandas-1.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:edda9bacc3843dfbeebaf7a701763e68e741b08fccb889c003b0a52f0ee95782"}, - {file = "pandas-1.1.5.tar.gz", hash = "sha256:f10fc41ee3c75a474d3bdf68d396f10782d013d7f67db99c0efbfd0acb99701b"}, -] -pandocfilters = [ - {file = "pandocfilters-1.5.0-py2.py3-none-any.whl", hash = "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"}, - {file = "pandocfilters-1.5.0.tar.gz", hash = "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38"}, -] -parso = [ - {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, - {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, -] -pathspec = [ - {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, - {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, -] -pbr = [ - {file = "pbr-5.8.1-py2.py3-none-any.whl", hash = "sha256:27108648368782d07bbf1cb468ad2e2eeef29086affd14087a6d04b7de8af4ec"}, - {file = "pbr-5.8.1.tar.gz", hash = "sha256:66bc5a34912f408bb3925bf21231cb6f59206267b7f63f3503ef865c1a292e25"}, -] -pexpect = [ - {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, - {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, -] -pickleshare = [ - {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, - {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, -] -pillow = [ - {file = "Pillow-9.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:af79d3fde1fc2e33561166d62e3b63f0cc3e47b5a3a2e5fea40d4917754734ea"}, - {file = "Pillow-9.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:55dd1cf09a1fd7c7b78425967aacae9b0d70125f7d3ab973fadc7b5abc3de652"}, - {file = "Pillow-9.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66822d01e82506a19407d1afc104c3fcea3b81d5eb11485e593ad6b8492f995a"}, - {file = "Pillow-9.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5eaf3b42df2bcda61c53a742ee2c6e63f777d0e085bbc6b2ab7ed57deb13db7"}, - {file = "Pillow-9.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01ce45deec9df310cbbee11104bae1a2a43308dd9c317f99235b6d3080ddd66e"}, - {file = "Pillow-9.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:aea7ce61328e15943d7b9eaca87e81f7c62ff90f669116f857262e9da4057ba3"}, - {file = "Pillow-9.1.0-cp310-cp310-win32.whl", hash = "sha256:7a053bd4d65a3294b153bdd7724dce864a1d548416a5ef61f6d03bf149205160"}, - {file = "Pillow-9.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:97bda660702a856c2c9e12ec26fc6d187631ddfd896ff685814ab21ef0597033"}, - {file = "Pillow-9.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:21dee8466b42912335151d24c1665fcf44dc2ee47e021d233a40c3ca5adae59c"}, - {file = "Pillow-9.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b6d4050b208c8ff886fd3db6690bf04f9a48749d78b41b7a5bf24c236ab0165"}, - {file = "Pillow-9.1.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5cfca31ab4c13552a0f354c87fbd7f162a4fafd25e6b521bba93a57fe6a3700a"}, - {file = "Pillow-9.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed742214068efa95e9844c2d9129e209ed63f61baa4d54dbf4cf8b5e2d30ccf2"}, - {file = "Pillow-9.1.0-cp37-cp37m-win32.whl", hash = "sha256:c9efef876c21788366ea1f50ecb39d5d6f65febe25ad1d4c0b8dff98843ac244"}, - {file = "Pillow-9.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:de344bcf6e2463bb25179d74d6e7989e375f906bcec8cb86edb8b12acbc7dfef"}, - {file = "Pillow-9.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:17869489de2fce6c36690a0c721bd3db176194af5f39249c1ac56d0bb0fcc512"}, - {file = "Pillow-9.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:25023a6209a4d7c42154073144608c9a71d3512b648a2f5d4465182cb93d3477"}, - {file = "Pillow-9.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8782189c796eff29dbb37dd87afa4ad4d40fc90b2742704f94812851b725964b"}, - {file = "Pillow-9.1.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:463acf531f5d0925ca55904fa668bb3461c3ef6bc779e1d6d8a488092bdee378"}, - {file = "Pillow-9.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f42364485bfdab19c1373b5cd62f7c5ab7cc052e19644862ec8f15bb8af289e"}, - {file = "Pillow-9.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3fddcdb619ba04491e8f771636583a7cc5a5051cd193ff1aa1ee8616d2a692c5"}, - {file = "Pillow-9.1.0-cp38-cp38-win32.whl", hash = "sha256:4fe29a070de394e449fd88ebe1624d1e2d7ddeed4c12e0b31624561b58948d9a"}, - {file = "Pillow-9.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:c24f718f9dd73bb2b31a6201e6db5ea4a61fdd1d1c200f43ee585fc6dcd21b34"}, - {file = "Pillow-9.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fb89397013cf302f282f0fc998bb7abf11d49dcff72c8ecb320f76ea6e2c5717"}, - {file = "Pillow-9.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c870193cce4b76713a2b29be5d8327c8ccbe0d4a49bc22968aa1e680930f5581"}, - {file = "Pillow-9.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69e5ddc609230d4408277af135c5b5c8fe7a54b2bdb8ad7c5100b86b3aab04c6"}, - {file = "Pillow-9.1.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35be4a9f65441d9982240e6966c1eaa1c654c4e5e931eaf580130409e31804d4"}, - {file = "Pillow-9.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82283af99c1c3a5ba1da44c67296d5aad19f11c535b551a5ae55328a317ce331"}, - {file = "Pillow-9.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a325ac71914c5c043fa50441b36606e64a10cd262de12f7a179620f579752ff8"}, - {file = "Pillow-9.1.0-cp39-cp39-win32.whl", hash = "sha256:a598d8830f6ef5501002ae85c7dbfcd9c27cc4efc02a1989369303ba85573e58"}, - {file = "Pillow-9.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:0c51cb9edac8a5abd069fd0758ac0a8bfe52c261ee0e330f363548aca6893595"}, - {file = "Pillow-9.1.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a336a4f74baf67e26f3acc4d61c913e378e931817cd1e2ef4dfb79d3e051b481"}, - {file = "Pillow-9.1.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb1b89b11256b5b6cad5e7593f9061ac4624f7651f7a8eb4dfa37caa1dfaa4d0"}, - {file = "Pillow-9.1.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:255c9d69754a4c90b0ee484967fc8818c7ff8311c6dddcc43a4340e10cd1636a"}, - {file = "Pillow-9.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5a3ecc026ea0e14d0ad7cd990ea7f48bfcb3eb4271034657dc9d06933c6629a7"}, - {file = "Pillow-9.1.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5b0ff59785d93b3437c3703e3c64c178aabada51dea2a7f2c5eccf1bcf565a3"}, - {file = "Pillow-9.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7110ec1701b0bf8df569a7592a196c9d07c764a0a74f65471ea56816f10e2c8"}, - {file = "Pillow-9.1.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:8d79c6f468215d1a8415aa53d9868a6b40c4682165b8cb62a221b1baa47db458"}, - {file = "Pillow-9.1.0.tar.gz", hash = "sha256:f401ed2bbb155e1ade150ccc63db1a4f6c1909d3d378f7d1235a44e90d75fb97"}, -] -platformdirs = [ - {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, - {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, -] -pluggy = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, -] -prettytable = [ - {file = "prettytable-3.2.0-py3-none-any.whl", hash = "sha256:f6c5ec87c3ef9df5bba1d32d826c1b862ecad0344dddb6082e3562caf71fe085"}, - {file = "prettytable-3.2.0.tar.gz", hash = "sha256:ae7d96c64100543dc61662b40a28f3b03c0f94a503ed121c6fca2782c5816f81"}, -] -prometheus-client = [ - {file = "prometheus_client-0.14.1-py3-none-any.whl", hash = "sha256:522fded625282822a89e2773452f42df14b5a8e84a86433e3f8a189c1d54dc01"}, - {file = "prometheus_client-0.14.1.tar.gz", hash = "sha256:5459c427624961076277fdc6dc50540e2bacb98eebde99886e59ec55ed92093a"}, -] -prompt-toolkit = [ - {file = "prompt_toolkit-3.0.29-py3-none-any.whl", hash = "sha256:62291dad495e665fca0bda814e342c69952086afb0f4094d0893d357e5c78752"}, - {file = "prompt_toolkit-3.0.29.tar.gz", hash = "sha256:bd640f60e8cecd74f0dc249713d433ace2ddc62b65ee07f96d358e0b152b6ea7"}, -] -protobuf = [ - {file = "protobuf-3.20.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3cc797c9d15d7689ed507b165cd05913acb992d78b379f6014e013f9ecb20996"}, - {file = "protobuf-3.20.1-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:ff8d8fa42675249bb456f5db06c00de6c2f4c27a065955917b28c4f15978b9c3"}, - {file = "protobuf-3.20.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cd68be2559e2a3b84f517fb029ee611546f7812b1fdd0aa2ecc9bc6ec0e4fdde"}, - {file = "protobuf-3.20.1-cp310-cp310-win32.whl", hash = "sha256:9016d01c91e8e625141d24ec1b20fed584703e527d28512aa8c8707f105a683c"}, - {file = "protobuf-3.20.1-cp310-cp310-win_amd64.whl", hash = "sha256:32ca378605b41fd180dfe4e14d3226386d8d1b002ab31c969c366549e66a2bb7"}, - {file = "protobuf-3.20.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:9be73ad47579abc26c12024239d3540e6b765182a91dbc88e23658ab71767153"}, - {file = "protobuf-3.20.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:097c5d8a9808302fb0da7e20edf0b8d4703274d140fd25c5edabddcde43e081f"}, - {file = "protobuf-3.20.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e250a42f15bf9d5b09fe1b293bdba2801cd520a9f5ea2d7fb7536d4441811d20"}, - {file = "protobuf-3.20.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:cdee09140e1cd184ba9324ec1df410e7147242b94b5f8b0c64fc89e38a8ba531"}, - {file = "protobuf-3.20.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:af0ebadc74e281a517141daad9d0f2c5d93ab78e9d455113719a45a49da9db4e"}, - {file = "protobuf-3.20.1-cp37-cp37m-win32.whl", hash = "sha256:755f3aee41354ae395e104d62119cb223339a8f3276a0cd009ffabfcdd46bb0c"}, - {file = "protobuf-3.20.1-cp37-cp37m-win_amd64.whl", hash = "sha256:62f1b5c4cd6c5402b4e2d63804ba49a327e0c386c99b1675c8a0fefda23b2067"}, - {file = "protobuf-3.20.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:06059eb6953ff01e56a25cd02cca1a9649a75a7e65397b5b9b4e929ed71d10cf"}, - {file = "protobuf-3.20.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:cb29edb9eab15742d791e1025dd7b6a8f6fcb53802ad2f6e3adcb102051063ab"}, - {file = "protobuf-3.20.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:69ccfdf3657ba59569c64295b7d51325f91af586f8d5793b734260dfe2e94e2c"}, - {file = "protobuf-3.20.1-cp38-cp38-win32.whl", hash = "sha256:dd5789b2948ca702c17027c84c2accb552fc30f4622a98ab5c51fcfe8c50d3e7"}, - {file = "protobuf-3.20.1-cp38-cp38-win_amd64.whl", hash = "sha256:77053d28427a29987ca9caf7b72ccafee011257561259faba8dd308fda9a8739"}, - {file = "protobuf-3.20.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6f50601512a3d23625d8a85b1638d914a0970f17920ff39cec63aaef80a93fb7"}, - {file = "protobuf-3.20.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:284f86a6207c897542d7e956eb243a36bb8f9564c1742b253462386e96c6b78f"}, - {file = "protobuf-3.20.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7403941f6d0992d40161aa8bb23e12575637008a5a02283a930addc0508982f9"}, - {file = "protobuf-3.20.1-cp39-cp39-win32.whl", hash = "sha256:db977c4ca738dd9ce508557d4fce0f5aebd105e158c725beec86feb1f6bc20d8"}, - {file = "protobuf-3.20.1-cp39-cp39-win_amd64.whl", hash = "sha256:7e371f10abe57cee5021797126c93479f59fccc9693dafd6bd5633ab67808a91"}, - {file = "protobuf-3.20.1-py2.py3-none-any.whl", hash = "sha256:adfc6cf69c7f8c50fd24c793964eef18f0ac321315439d94945820612849c388"}, - {file = "protobuf-3.20.1.tar.gz", hash = "sha256:adc31566d027f45efe3f44eeb5b1f329da43891634d61c75a5944e9be6dd42c9"}, -] -psutil = [ - {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:55ce319452e3d139e25d6c3f85a1acf12d1607ddedea5e35fb47a552c051161b"}, - {file = "psutil-5.9.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:7336292a13a80eb93c21f36bde4328aa748a04b68c13d01dfddd67fc13fd0618"}, - {file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:cb8d10461c1ceee0c25a64f2dd54872b70b89c26419e147a05a10b753ad36ec2"}, - {file = "psutil-5.9.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:7641300de73e4909e5d148e90cc3142fb890079e1525a840cf0dfd39195239fd"}, - {file = "psutil-5.9.0-cp27-none-win32.whl", hash = "sha256:ea42d747c5f71b5ccaa6897b216a7dadb9f52c72a0fe2b872ef7d3e1eacf3ba3"}, - {file = "psutil-5.9.0-cp27-none-win_amd64.whl", hash = "sha256:ef216cc9feb60634bda2f341a9559ac594e2eeaadd0ba187a4c2eb5b5d40b91c"}, - {file = "psutil-5.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90a58b9fcae2dbfe4ba852b57bd4a1dded6b990a33d6428c7614b7d48eccb492"}, - {file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff0d41f8b3e9ebb6b6110057e40019a432e96aae2008951121ba4e56040b84f3"}, - {file = "psutil-5.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:742c34fff804f34f62659279ed5c5b723bb0195e9d7bd9907591de9f8f6558e2"}, - {file = "psutil-5.9.0-cp310-cp310-win32.whl", hash = "sha256:8293942e4ce0c5689821f65ce6522ce4786d02af57f13c0195b40e1edb1db61d"}, - {file = "psutil-5.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:9b51917c1af3fa35a3f2dabd7ba96a2a4f19df3dec911da73875e1edaf22a40b"}, - {file = "psutil-5.9.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e9805fed4f2a81de98ae5fe38b75a74c6e6ad2df8a5c479594c7629a1fe35f56"}, - {file = "psutil-5.9.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c51f1af02334e4b516ec221ee26b8fdf105032418ca5a5ab9737e8c87dafe203"}, - {file = "psutil-5.9.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32acf55cb9a8cbfb29167cd005951df81b567099295291bcfd1027365b36591d"}, - {file = "psutil-5.9.0-cp36-cp36m-win32.whl", hash = "sha256:e5c783d0b1ad6ca8a5d3e7b680468c9c926b804be83a3a8e95141b05c39c9f64"}, - {file = "psutil-5.9.0-cp36-cp36m-win_amd64.whl", hash = "sha256:d62a2796e08dd024b8179bd441cb714e0f81226c352c802fca0fd3f89eeacd94"}, - {file = "psutil-5.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3d00a664e31921009a84367266b35ba0aac04a2a6cad09c550a89041034d19a0"}, - {file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7779be4025c540d1d65a2de3f30caeacc49ae7a2152108adeaf42c7534a115ce"}, - {file = "psutil-5.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:072664401ae6e7c1bfb878c65d7282d4b4391f1bc9a56d5e03b5a490403271b5"}, - {file = "psutil-5.9.0-cp37-cp37m-win32.whl", hash = "sha256:df2c8bd48fb83a8408c8390b143c6a6fa10cb1a674ca664954de193fdcab36a9"}, - {file = "psutil-5.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1d7b433519b9a38192dfda962dd8f44446668c009833e1429a52424624f408b4"}, - {file = "psutil-5.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c3400cae15bdb449d518545cbd5b649117de54e3596ded84aacabfbb3297ead2"}, - {file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2237f35c4bbae932ee98902a08050a27821f8f6dfa880a47195e5993af4702d"}, - {file = "psutil-5.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1070a9b287846a21a5d572d6dddd369517510b68710fca56b0e9e02fd24bed9a"}, - {file = "psutil-5.9.0-cp38-cp38-win32.whl", hash = "sha256:76cebf84aac1d6da5b63df11fe0d377b46b7b500d892284068bacccf12f20666"}, - {file = "psutil-5.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:3151a58f0fbd8942ba94f7c31c7e6b310d2989f4da74fcbf28b934374e9bf841"}, - {file = "psutil-5.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:539e429da49c5d27d5a58e3563886057f8fc3868a5547b4f1876d9c0f007bccf"}, - {file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58c7d923dc209225600aec73aa2c4ae8ea33b1ab31bc11ef8a5933b027476f07"}, - {file = "psutil-5.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3611e87eea393f779a35b192b46a164b1d01167c9d323dda9b1e527ea69d697d"}, - {file = "psutil-5.9.0-cp39-cp39-win32.whl", hash = "sha256:4e2fb92e3aeae3ec3b7b66c528981fd327fb93fd906a77215200404444ec1845"}, - {file = "psutil-5.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:7d190ee2eaef7831163f254dc58f6d2e2a22e27382b936aab51c835fc080c3d3"}, - {file = "psutil-5.9.0.tar.gz", hash = "sha256:869842dbd66bb80c3217158e629d6fceaecc3a3166d3d1faee515b05dd26ca25"}, -] -ptyprocess = [ - {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, - {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, -] -py = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] -pyasn1 = [ - {file = "pyasn1-0.4.8-py2.4.egg", hash = "sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3"}, - {file = "pyasn1-0.4.8-py2.5.egg", hash = "sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf"}, - {file = "pyasn1-0.4.8-py2.6.egg", hash = "sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00"}, - {file = "pyasn1-0.4.8-py2.7.egg", hash = "sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8"}, - {file = "pyasn1-0.4.8-py2.py3-none-any.whl", hash = "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d"}, - {file = "pyasn1-0.4.8-py3.1.egg", hash = "sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86"}, - {file = "pyasn1-0.4.8-py3.2.egg", hash = "sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7"}, - {file = "pyasn1-0.4.8-py3.3.egg", hash = "sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576"}, - {file = "pyasn1-0.4.8-py3.4.egg", hash = "sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12"}, - {file = "pyasn1-0.4.8-py3.5.egg", hash = "sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2"}, - {file = "pyasn1-0.4.8-py3.6.egg", hash = "sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359"}, - {file = "pyasn1-0.4.8-py3.7.egg", hash = "sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776"}, - {file = "pyasn1-0.4.8.tar.gz", hash = "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba"}, -] -pyasn1-modules = [ - {file = "pyasn1-modules-0.2.8.tar.gz", hash = "sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e"}, - {file = "pyasn1_modules-0.2.8-py2.4.egg", hash = "sha256:0fe1b68d1e486a1ed5473f1302bd991c1611d319bba158e98b106ff86e1d7199"}, - {file = "pyasn1_modules-0.2.8-py2.5.egg", hash = "sha256:fe0644d9ab041506b62782e92b06b8c68cca799e1a9636ec398675459e031405"}, - {file = "pyasn1_modules-0.2.8-py2.6.egg", hash = "sha256:a99324196732f53093a84c4369c996713eb8c89d360a496b599fb1a9c47fc3eb"}, - {file = "pyasn1_modules-0.2.8-py2.7.egg", hash = "sha256:0845a5582f6a02bb3e1bde9ecfc4bfcae6ec3210dd270522fee602365430c3f8"}, - {file = "pyasn1_modules-0.2.8-py2.py3-none-any.whl", hash = "sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74"}, - {file = "pyasn1_modules-0.2.8-py3.1.egg", hash = "sha256:f39edd8c4ecaa4556e989147ebf219227e2cd2e8a43c7e7fcb1f1c18c5fd6a3d"}, - {file = "pyasn1_modules-0.2.8-py3.2.egg", hash = "sha256:b80486a6c77252ea3a3e9b1e360bc9cf28eaac41263d173c032581ad2f20fe45"}, - {file = "pyasn1_modules-0.2.8-py3.3.egg", hash = "sha256:65cebbaffc913f4fe9e4808735c95ea22d7a7775646ab690518c056784bc21b4"}, - {file = "pyasn1_modules-0.2.8-py3.4.egg", hash = "sha256:15b7c67fabc7fc240d87fb9aabf999cf82311a6d6fb2c70d00d3d0604878c811"}, - {file = "pyasn1_modules-0.2.8-py3.5.egg", hash = "sha256:426edb7a5e8879f1ec54a1864f16b882c2837bfd06eee62f2c982315ee2473ed"}, - {file = "pyasn1_modules-0.2.8-py3.6.egg", hash = "sha256:cbac4bc38d117f2a49aeedec4407d23e8866ea4ac27ff2cf7fb3e5b570df19e0"}, - {file = "pyasn1_modules-0.2.8-py3.7.egg", hash = "sha256:c29a5e5cc7a3f05926aff34e097e84f8589cd790ce0ed41b67aed6857b26aafd"}, -] -pycparser = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, -] -pydantic = [ - {file = "pydantic-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cb23bcc093697cdea2708baae4f9ba0e972960a835af22560f6ae4e7e47d33f5"}, - {file = "pydantic-1.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1d5278bd9f0eee04a44c712982343103bba63507480bfd2fc2790fa70cd64cf4"}, - {file = "pydantic-1.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab624700dc145aa809e6f3ec93fb8e7d0f99d9023b713f6a953637429b437d37"}, - {file = "pydantic-1.9.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c8d7da6f1c1049eefb718d43d99ad73100c958a5367d30b9321b092771e96c25"}, - {file = "pydantic-1.9.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3c3b035103bd4e2e4a28da9da7ef2fa47b00ee4a9cf4f1a735214c1bcd05e0f6"}, - {file = "pydantic-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3011b975c973819883842c5ab925a4e4298dffccf7782c55ec3580ed17dc464c"}, - {file = "pydantic-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:086254884d10d3ba16da0588604ffdc5aab3f7f09557b998373e885c690dd398"}, - {file = "pydantic-1.9.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:0fe476769acaa7fcddd17cadd172b156b53546ec3614a4d880e5d29ea5fbce65"}, - {file = "pydantic-1.9.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8e9dcf1ac499679aceedac7e7ca6d8641f0193c591a2d090282aaf8e9445a46"}, - {file = "pydantic-1.9.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1e4c28f30e767fd07f2ddc6f74f41f034d1dd6bc526cd59e63a82fe8bb9ef4c"}, - {file = "pydantic-1.9.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:c86229333cabaaa8c51cf971496f10318c4734cf7b641f08af0a6fbf17ca3054"}, - {file = "pydantic-1.9.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:c0727bda6e38144d464daec31dff936a82917f431d9c39c39c60a26567eae3ed"}, - {file = "pydantic-1.9.0-cp36-cp36m-win_amd64.whl", hash = "sha256:dee5ef83a76ac31ab0c78c10bd7d5437bfdb6358c95b91f1ba7ff7b76f9996a1"}, - {file = "pydantic-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9c9bdb3af48e242838f9f6e6127de9be7063aad17b32215ccc36a09c5cf1070"}, - {file = "pydantic-1.9.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ee7e3209db1e468341ef41fe263eb655f67f5c5a76c924044314e139a1103a2"}, - {file = "pydantic-1.9.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0b6037175234850ffd094ca77bf60fb54b08b5b22bc85865331dd3bda7a02fa1"}, - {file = "pydantic-1.9.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b2571db88c636d862b35090ccf92bf24004393f85c8870a37f42d9f23d13e032"}, - {file = "pydantic-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8b5ac0f1c83d31b324e57a273da59197c83d1bb18171e512908fe5dc7278a1d6"}, - {file = "pydantic-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:bbbc94d0c94dd80b3340fc4f04fd4d701f4b038ebad72c39693c794fd3bc2d9d"}, - {file = "pydantic-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e0896200b6a40197405af18828da49f067c2fa1f821491bc8f5bde241ef3f7d7"}, - {file = "pydantic-1.9.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7bdfdadb5994b44bd5579cfa7c9b0e1b0e540c952d56f627eb227851cda9db77"}, - {file = "pydantic-1.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:574936363cd4b9eed8acdd6b80d0143162f2eb654d96cb3a8ee91d3e64bf4cf9"}, - {file = "pydantic-1.9.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c556695b699f648c58373b542534308922c46a1cda06ea47bc9ca45ef5b39ae6"}, - {file = "pydantic-1.9.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:f947352c3434e8b937e3aa8f96f47bdfe6d92779e44bb3f41e4c213ba6a32145"}, - {file = "pydantic-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5e48ef4a8b8c066c4a31409d91d7ca372a774d0212da2787c0d32f8045b1e034"}, - {file = "pydantic-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:96f240bce182ca7fe045c76bcebfa0b0534a1bf402ed05914a6f1dadff91877f"}, - {file = "pydantic-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:815ddebb2792efd4bba5488bc8fde09c29e8ca3227d27cf1c6990fc830fd292b"}, - {file = "pydantic-1.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6c5b77947b9e85a54848343928b597b4f74fc364b70926b3c4441ff52620640c"}, - {file = "pydantic-1.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c68c3bc88dbda2a6805e9a142ce84782d3930f8fdd9655430d8576315ad97ce"}, - {file = "pydantic-1.9.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a79330f8571faf71bf93667d3ee054609816f10a259a109a0738dac983b23c3"}, - {file = "pydantic-1.9.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f5a64b64ddf4c99fe201ac2724daada8595ada0d102ab96d019c1555c2d6441d"}, - {file = "pydantic-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a733965f1a2b4090a5238d40d983dcd78f3ecea221c7af1497b845a9709c1721"}, - {file = "pydantic-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:2cc6a4cb8a118ffec2ca5fcb47afbacb4f16d0ab8b7350ddea5e8ef7bcc53a16"}, - {file = "pydantic-1.9.0-py3-none-any.whl", hash = "sha256:085ca1de245782e9b46cefcf99deecc67d418737a1fd3f6a4f511344b613a5b3"}, - {file = "pydantic-1.9.0.tar.gz", hash = "sha256:742645059757a56ecd886faf4ed2441b9c0cd406079c2b4bee51bcc3fbcd510a"}, -] -pydeprecate = [ - {file = "pyDeprecate-0.3.2-py3-none-any.whl", hash = "sha256:ed86b68ed837e6465245904a3de2f59bf9eef78ac7a2502ee280533d04802457"}, - {file = "pyDeprecate-0.3.2.tar.gz", hash = "sha256:d481116cc5d7f6c473e7c4be820efdd9b90a16b594b350276e9e66a6cb5bdd29"}, -] -pygments = [ - {file = "Pygments-2.12.0-py3-none-any.whl", hash = "sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519"}, - {file = "Pygments-2.12.0.tar.gz", hash = "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb"}, -] -pylint = [ - {file = "pylint-2.13.7-py3-none-any.whl", hash = "sha256:13ddbbd8872c804574149e81197c28877eba75224ba6b76cd8652fc31df55c1c"}, - {file = "pylint-2.13.7.tar.gz", hash = "sha256:911d3a97c808f7554643bcc5416028cfdc42eae34ed129b150741888c688d5d5"}, -] -pymongo = [ - {file = "pymongo-3.12.3-cp27-cp27m-macosx_10_14_intel.whl", hash = "sha256:c164eda0be9048f83c24b9b2656900041e069ddf72de81c17d874d0c32f6079f"}, - {file = "pymongo-3.12.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:a055d29f1302892a9389a382bed10a3f77708bcf3e49bfb76f7712fa5f391cc6"}, - {file = "pymongo-3.12.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:8c7ad5cab282f53b9d78d51504330d1c88c83fbe187e472c07e6908a0293142e"}, - {file = "pymongo-3.12.3-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a766157b195a897c64945d4ff87b050bb0e763bb78f3964e996378621c703b00"}, - {file = "pymongo-3.12.3-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:c8d6bf6fcd42cde2f02efb8126812a010c297eacefcd090a609639d2aeda6185"}, - {file = "pymongo-3.12.3-cp27-cp27m-win32.whl", hash = "sha256:5fdffb0cfeb4dc8646a5381d32ec981ae8472f29c695bf09e8f7a8edb2db12ca"}, - {file = "pymongo-3.12.3-cp27-cp27m-win_amd64.whl", hash = "sha256:648fcfd8e019b122b7be0e26830a3a2224d57c3e934f19c1e53a77b8380e6675"}, - {file = "pymongo-3.12.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:3f0ac6e0203bd88863649e6ed9c7cfe53afab304bc8225f2597c4c0a74e4d1f0"}, - {file = "pymongo-3.12.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:71c0db2c313ea8a80825fb61b7826b8015874aec29ee6364ade5cb774fe4511b"}, - {file = "pymongo-3.12.3-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5b779e87300635b8075e8d5cfd4fdf7f46078cd7610c381d956bca5556bb8f97"}, - {file = "pymongo-3.12.3-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:351a2efe1c9566c348ad0076f4bf541f4905a0ebe2d271f112f60852575f3c16"}, - {file = "pymongo-3.12.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0a02313e71b7c370c43056f6b16c45effbb2d29a44d24403a3d5ba6ed322fa3f"}, - {file = "pymongo-3.12.3-cp310-cp310-manylinux1_i686.whl", hash = "sha256:d3082e5c4d7b388792124f5e805b469109e58f1ab1eb1fbd8b998e8ab766ffb7"}, - {file = "pymongo-3.12.3-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:514e78d20d8382d5b97f32b20c83d1d0452c302c9a135f0a9022236eb9940fda"}, - {file = "pymongo-3.12.3-cp310-cp310-manylinux2014_i686.whl", hash = "sha256:b1b5be40ebf52c3c67ee547e2c4435ed5bc6352f38d23e394520b686641a6be4"}, - {file = "pymongo-3.12.3-cp310-cp310-manylinux2014_ppc64le.whl", hash = "sha256:58db209da08a502ce6948841d522dcec80921d714024354153d00b054571993c"}, - {file = "pymongo-3.12.3-cp310-cp310-manylinux2014_s390x.whl", hash = "sha256:5296e5e69243ffd76bd919854c4da6630ae52e46175c804bc4c0e050d937b705"}, - {file = "pymongo-3.12.3-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:51d1d061df3995c2332ae78f036492cc188cb3da8ef122caeab3631a67bb477e"}, - {file = "pymongo-3.12.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:463b974b7f49d65a16ca1435bc1c25a681bb7d630509dd23b2e819ed36da0b7f"}, - {file = "pymongo-3.12.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e099b79ccf7c40f18b149a64d3d10639980035f9ceb223169dd806ff1bb0d9cc"}, - {file = "pymongo-3.12.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27e5ea64332385385b75414888ce9d1a9806be8616d7cef4ef409f4f256c6d06"}, - {file = "pymongo-3.12.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed7d11330e443aeecab23866055e08a5a536c95d2c25333aeb441af2dbac38d2"}, - {file = "pymongo-3.12.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93111fd4e08fa889c126aa8baf5c009a941880a539c87672e04583286517450a"}, - {file = "pymongo-3.12.3-cp310-cp310-win32.whl", hash = "sha256:2301051701b27aff2cbdf83fae22b7ca883c9563dfd088033267291b46196643"}, - {file = "pymongo-3.12.3-cp310-cp310-win_amd64.whl", hash = "sha256:c7e8221278e5f9e2b6d3893cfc3a3e46c017161a57bb0e6f244826e4cee97916"}, - {file = "pymongo-3.12.3-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:7b4a9fcd95e978cd3c96cdc2096aa54705266551422cf0883c12a4044def31c6"}, - {file = "pymongo-3.12.3-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:06b64cdf5121f86b78a84e61b8f899b6988732a8d304b503ea1f94a676221c06"}, - {file = "pymongo-3.12.3-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:c8f7dd025cb0bf19e2f60a64dfc24b513c8330e0cfe4a34ccf941eafd6194d9e"}, - {file = "pymongo-3.12.3-cp34-cp34m-win32.whl", hash = "sha256:ab23b0545ec71ea346bf50a5d376d674f56205b729980eaa62cdb7871805014b"}, - {file = "pymongo-3.12.3-cp34-cp34m-win_amd64.whl", hash = "sha256:1b5cb75d2642ff7db823f509641f143f752c0d1ab03166cafea1e42e50469834"}, - {file = "pymongo-3.12.3-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:fc2048d13ff427605fea328cbe5369dce549b8c7657b0e22051a5b8831170af6"}, - {file = "pymongo-3.12.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c5f83bb59d0ff60c6fdb1f8a7b0288fbc4640b1f0fd56f5ae2387749c35d34e3"}, - {file = "pymongo-3.12.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:6632b1c63d58cddc72f43ab9f17267354ddce563dd5e11eadabd222dcc808808"}, - {file = "pymongo-3.12.3-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3fedad05147b40ff8a93fcd016c421e6c159f149a2a481cfa0b94bfa3e473bab"}, - {file = "pymongo-3.12.3-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:208a61db8b8b647fb5b1ff3b52b4ed6dbced01eac3b61009958adb203596ee99"}, - {file = "pymongo-3.12.3-cp35-cp35m-win32.whl", hash = "sha256:3100a2352bdded6232b385ceda0c0a4624598c517d52c2d8cf014b7abbebd84d"}, - {file = "pymongo-3.12.3-cp35-cp35m-win_amd64.whl", hash = "sha256:3492ae1f97209c66af70e863e6420e6301cecb0a51a5efa701058aa73a8ca29e"}, - {file = "pymongo-3.12.3-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:87e18f29bac4a6be76a30e74de9c9005475e27100acf0830679420ce1fd9a6fd"}, - {file = "pymongo-3.12.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:b3e08aef4ea05afbc0a70cd23c13684e7f5e074f02450964ec5cfa1c759d33d2"}, - {file = "pymongo-3.12.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:e66b3c9f8b89d4fd58a59c04fdbf10602a17c914fbaaa5e6ea593f1d54b06362"}, - {file = "pymongo-3.12.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:5d67dbc8da2dac1644d71c1839d12d12aa333e266a9964d5b1a49feed036bc94"}, - {file = "pymongo-3.12.3-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:a351986d6c9006308f163c359ced40f80b6cffb42069f3e569b979829951038d"}, - {file = "pymongo-3.12.3-cp36-cp36m-manylinux2014_ppc64le.whl", hash = "sha256:5296669bff390135528001b4e48d33a7acaffcd361d98659628ece7f282f11aa"}, - {file = "pymongo-3.12.3-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:9d5b66d457d2c5739c184a777455c8fde7ab3600a56d8bbebecf64f7c55169e1"}, - {file = "pymongo-3.12.3-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:1c771f1a8b3cd2d697baaf57e9cfa4ae42371cacfbea42ea01d9577c06d92f96"}, - {file = "pymongo-3.12.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81a3ebc33b1367f301d1c8eda57eec4868e951504986d5d3fe437479dcdac5b2"}, - {file = "pymongo-3.12.3-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cf113a46d81cff0559d57aa66ffa473d57d1a9496f97426318b6b5b14fdec1c"}, - {file = "pymongo-3.12.3-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64b9122be1c404ce4eb367ad609b590394587a676d84bfed8e03c3ce76d70560"}, - {file = "pymongo-3.12.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c6c71e198b36f0f0dfe354f06d3655ecfa30d69493a1da125a9a54668aad652"}, - {file = "pymongo-3.12.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33ab8c031f788609924e329003088831045f683931932a52a361d4a955b7dce2"}, - {file = "pymongo-3.12.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e2b4c95c47fb81b19ea77dc1c50d23af3eba87c9628fcc2e03d44124a3d336ea"}, - {file = "pymongo-3.12.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4e0a3ea7fd01cf0a36509f320226bd8491e0f448f00b8cb89f601c109f6874e1"}, - {file = "pymongo-3.12.3-cp36-cp36m-win32.whl", hash = "sha256:dfec57f15f53d677b8e4535695ff3f37df7f8fe431f2efa8c3c8c4025b53d1eb"}, - {file = "pymongo-3.12.3-cp36-cp36m-win_amd64.whl", hash = "sha256:c22591cff80188dd8543be0b559d0c807f7288bd353dc0bcfe539b4588b3a5cd"}, - {file = "pymongo-3.12.3-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:7738147cd9dbd6d18d5593b3491b4620e13b61de975fd737283e4ad6c255c273"}, - {file = "pymongo-3.12.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:be1f10145f7ea76e3e836fdc5c8429c605675bdcddb0bca9725ee6e26874c00c"}, - {file = "pymongo-3.12.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:295a5beaecb7bf054c1c6a28749ed72b19f4d4b61edcd8a0815d892424baf780"}, - {file = "pymongo-3.12.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:320f8734553c50cffe8a8e1ae36dfc7d7be1941c047489db20a814d2a170d7b5"}, - {file = "pymongo-3.12.3-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:5d20072d81cbfdd8e15e6a0c91fc7e3a4948c71e0adebfc67d3b4bcbe8602711"}, - {file = "pymongo-3.12.3-cp37-cp37m-manylinux2014_ppc64le.whl", hash = "sha256:2c46a0afef69d61938a6fe32c3afd75b91dec3ab3056085dc72abbeedcc94166"}, - {file = "pymongo-3.12.3-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:5f530f35e1a57d4360eddcbed6945aecdaee2a491cd3f17025e7b5f2eea88ee7"}, - {file = "pymongo-3.12.3-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:6526933760ee1e6090db808f1690a111ec409699c1990efc96f134d26925c37f"}, - {file = "pymongo-3.12.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95d15cf81cd2fb926f2a6151a9f94c7aacc102b415e72bc0e040e29332b6731c"}, - {file = "pymongo-3.12.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d52a70350ec3dfc39b513df12b03b7f4c8f8ec6873bbf958299999db7b05eb1"}, - {file = "pymongo-3.12.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9252c991e8176b5a2fa574c5ab9a841679e315f6e576eb7cf0bd958f3e39b0ad"}, - {file = "pymongo-3.12.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:145d78c345a38011497e55aff22c0f8edd40ee676a6810f7e69563d68a125e83"}, - {file = "pymongo-3.12.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a8e0a086dbbee406cc6f603931dfe54d1cb2fba585758e06a2de01037784b737"}, - {file = "pymongo-3.12.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f6d5443104f89a840250087863c91484a72f254574848e951d1bdd7d8b2ce7c9"}, - {file = "pymongo-3.12.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6f93dbfa5a461107bc3f5026e0d5180499e13379e9404f07a9f79eb5e9e1303d"}, - {file = "pymongo-3.12.3-cp37-cp37m-win32.whl", hash = "sha256:c9d212e2af72d5c8d082775a43eb726520e95bf1c84826440f74225843975136"}, - {file = "pymongo-3.12.3-cp37-cp37m-win_amd64.whl", hash = "sha256:320a1fe403dd83a35709fcf01083d14bc1462e9789b711201349a9158db3a87e"}, - {file = "pymongo-3.12.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a1ba93be779a9b8e5e44f5c133dc1db4313661cead8a2fd27661e6cb8d942ee9"}, - {file = "pymongo-3.12.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:4294f2c1cd069b793e31c2e6d7ac44b121cf7cedccd03ebcc30f3fc3417b314a"}, - {file = "pymongo-3.12.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:845b178bd127bb074835d2eac635b980c58ec5e700ebadc8355062df708d5a71"}, - {file = "pymongo-3.12.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:176fdca18391e1206c32fb1d8265628a84d28333c20ad19468d91e3e98312cd1"}, - {file = "pymongo-3.12.3-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:28bfd5244d32faf3e49b5a8d1fab0631e922c26e8add089312e4be19fb05af50"}, - {file = "pymongo-3.12.3-cp38-cp38-manylinux2014_ppc64le.whl", hash = "sha256:f38b35ecd2628bf0267761ed659e48af7e620a7fcccfccf5774e7308fb18325c"}, - {file = "pymongo-3.12.3-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:cebb3d8bcac4a6b48be65ebbc5c9881ed4a738e27bb96c86d9d7580a1fb09e05"}, - {file = "pymongo-3.12.3-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:80710d7591d579442c67a3bc7ae9dcba9ff95ea8414ac98001198d894fc4ff46"}, - {file = "pymongo-3.12.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89d7baa847383b9814de640c6f1a8553d125ec65e2761ad146ea2e75a7ad197c"}, - {file = "pymongo-3.12.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:602284e652bb56ca8760f8e88a5280636c5b63d7946fca1c2fe0f83c37dffc64"}, - {file = "pymongo-3.12.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bfc2d763d05ec7211313a06e8571236017d3e61d5fef97fcf34ec4b36c0b6556"}, - {file = "pymongo-3.12.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a6e4dccae8ef5dd76052647d78f02d5d0ffaff1856277d951666c54aeba3ad2"}, - {file = "pymongo-3.12.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1fc4d3985868860b6585376e511bb32403c5ffb58b0ed913496c27fd791deea"}, - {file = "pymongo-3.12.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e4e5d163e6644c2bc84dd9f67bfa89288c23af26983d08fefcc2cbc22f6e57e6"}, - {file = "pymongo-3.12.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:8d92c6bb9174d47c2257528f64645a00bbc6324a9ff45a626192797aff01dc14"}, - {file = "pymongo-3.12.3-cp38-cp38-win32.whl", hash = "sha256:b0db9a4691074c347f5d7ee830ab3529bc5ad860939de21c1f9c403daf1eda9a"}, - {file = "pymongo-3.12.3-cp38-cp38-win_amd64.whl", hash = "sha256:d81047341ab56061aa4b6823c54d4632579c3b16e675089e8f520e9b918a133b"}, - {file = "pymongo-3.12.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:07398d8a03545b98282f459f2603a6bb271f4448d484ed7f411121a519a7ea48"}, - {file = "pymongo-3.12.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:b7df0d99e189b7027d417d4bfd9b8c53c9c7ed5a0a1495d26a6f547d820eca88"}, - {file = "pymongo-3.12.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:a283425e6a474facd73072d8968812d1d9058490a5781e022ccf8895500b83ce"}, - {file = "pymongo-3.12.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:2577b8161eeae4dd376d13100b2137d883c10bb457dd08935f60c9f9d4b5c5f6"}, - {file = "pymongo-3.12.3-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:517b09b1dd842390a965a896d1327c55dfe78199c9f5840595d40facbcd81854"}, - {file = "pymongo-3.12.3-cp39-cp39-manylinux2014_ppc64le.whl", hash = "sha256:2567885ff0c8c7c0887ba6cefe4ae4af96364a66a7069f924ce0cd12eb971d04"}, - {file = "pymongo-3.12.3-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:71c5c200fd37a5322706080b09c3ec8907cf01c377a7187f354fc9e9e13abc73"}, - {file = "pymongo-3.12.3-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:14dee106a10b77224bba5efeeb6aee025aabe88eb87a2b850c46d3ee55bdab4a"}, - {file = "pymongo-3.12.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f340a2a908644ea6cccd399be0fb308c66e05d2800107345f9f0f0d59e1731c4"}, - {file = "pymongo-3.12.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b4c535f524c9d8c86c3afd71d199025daa070859a2bdaf94a298120b0de16db"}, - {file = "pymongo-3.12.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8455176fd1b86de97d859fed4ae0ef867bf998581f584c7a1a591246dfec330f"}, - {file = "pymongo-3.12.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf254a1a95e95fdf4eaa25faa1ea450a6533ed7a997f9f8e49ab971b61ea514d"}, - {file = "pymongo-3.12.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a8a3540e21213cb8ce232e68a7d0ee49cdd35194856c50b8bd87eeb572fadd42"}, - {file = "pymongo-3.12.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0e7a5d0b9077e8c3e57727f797ee8adf12e1d5e7534642230d98980d160d1320"}, - {file = "pymongo-3.12.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:0be605bfb8461384a4cb81e80f51eb5ca1b89851f2d0e69a75458c788a7263a4"}, - {file = "pymongo-3.12.3-cp39-cp39-win32.whl", hash = "sha256:2157d68f85c28688e8b723bbe70c8013e0aba5570e08c48b3562f74d33fc05c4"}, - {file = "pymongo-3.12.3-cp39-cp39-win_amd64.whl", hash = "sha256:dfa217bf8cf3ff6b30c8e6a89014e0c0e7b50941af787b970060ae5ba04a4ce5"}, - {file = "pymongo-3.12.3-py2.7-macosx-10.14-intel.egg", hash = "sha256:d81299f63dc33cc172c26faf59cc54dd795fc6dd5821a7676cca112a5ee8bbd6"}, - {file = "pymongo-3.12.3.tar.gz", hash = "sha256:0a89cadc0062a5e53664dde043f6c097172b8c1c5f0094490095282ff9995a5f"}, -] -pyparsing = [ - {file = "pyparsing-3.0.8-py3-none-any.whl", hash = "sha256:ef7b523f6356f763771559412c0d7134753f037822dad1b16945b7b846f7ad06"}, - {file = "pyparsing-3.0.8.tar.gz", hash = "sha256:7bf433498c016c4314268d95df76c81b842a4cb2b276fa3312cfb1e1d85f6954"}, -] -pyperclip = [ - {file = "pyperclip-1.8.2.tar.gz", hash = "sha256:105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57"}, -] -pyreadline3 = [ - {file = "pyreadline3-3.4.1-py3-none-any.whl", hash = "sha256:b0efb6516fd4fb07b45949053826a62fa4cb353db5be2bbb4a7aa1fdd1e345fb"}, - {file = "pyreadline3-3.4.1.tar.gz", hash = "sha256:6f3d1f7b8a31ba32b73917cefc1f28cc660562f39aea8646d30bd6eff21f7bae"}, -] -pyrsistent = [ - {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, - {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, - {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e"}, - {file = "pyrsistent-0.18.1-cp310-cp310-win32.whl", hash = "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6"}, - {file = "pyrsistent-0.18.1-cp310-cp310-win_amd64.whl", hash = "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-win32.whl", hash = "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8"}, - {file = "pyrsistent-0.18.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286"}, - {file = "pyrsistent-0.18.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6"}, - {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec"}, - {file = "pyrsistent-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c"}, - {file = "pyrsistent-0.18.1-cp38-cp38-win32.whl", hash = "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca"}, - {file = "pyrsistent-0.18.1-cp38-cp38-win_amd64.whl", hash = "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a"}, - {file = "pyrsistent-0.18.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5"}, - {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045"}, - {file = "pyrsistent-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c"}, - {file = "pyrsistent-0.18.1-cp39-cp39-win32.whl", hash = "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc"}, - {file = "pyrsistent-0.18.1-cp39-cp39-win_amd64.whl", hash = "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07"}, - {file = "pyrsistent-0.18.1.tar.gz", hash = "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"}, -] -pytest = [ - {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, - {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, -] -pytest-black = [ - {file = "pytest-black-0.3.12.tar.gz", hash = "sha256:1d339b004f764d6cd0f06e690f6dd748df3d62e6fe1a692d6a5500ac2c5b75a5"}, -] -pytest-cov = [ - {file = "pytest-cov-2.12.1.tar.gz", hash = "sha256:261ceeb8c227b726249b376b8526b600f38667ee314f910353fa318caa01f4d7"}, - {file = "pytest_cov-2.12.1-py2.py3-none-any.whl", hash = "sha256:261bb9e47e65bd099c89c3edf92972865210c36813f80ede5277dceb77a4a62a"}, -] -pytest-datadir = [ - {file = "pytest-datadir-1.3.1.tar.gz", hash = "sha256:d3af1e738df87515ee509d6135780f25a15959766d9c2b2dbe02bf4fb979cb18"}, - {file = "pytest_datadir-1.3.1-py2.py3-none-any.whl", hash = "sha256:1847ed0efe0bc54cac40ab3fba6d651c2f03d18dd01f2a582979604d32e7621e"}, -] -pytest-mccabe = [ - {file = "pytest-mccabe-2.0.tar.gz", hash = "sha256:050a1f1c145202ea87f0c0ad7b529f088098040fe2eb8e5d797d36be86e0fa20"}, - {file = "pytest_mccabe-2.0-py2.py3-none-any.whl", hash = "sha256:9b1708efd52b8724dedcfe48ec668ab5bda2f7ffb1c85a2edcd4f36541307d04"}, -] -pytest-mock = [ - {file = "pytest-mock-3.7.0.tar.gz", hash = "sha256:5112bd92cc9f186ee96e1a92efc84969ea494939c3aead39c50f421c4cc69534"}, - {file = "pytest_mock-3.7.0-py3-none-any.whl", hash = "sha256:6cff27cec936bf81dc5ee87f07132b807bcda51106b5ec4b90a04331cba76231"}, -] -python-dateutil = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, -] -pytorch-lightning = [ - {file = "pytorch-lightning-1.6.2.tar.gz", hash = "sha256:ccb5e8593837afc9ecf914ee66bf171ee0e08a8d6673531a617b0a61863a9611"}, - {file = "pytorch_lightning-1.6.2-py3-none-any.whl", hash = "sha256:c590bdc6cc630689bd40abf5543ad7456f418d059f48b4a726c3867edae805ab"}, -] -pytorch-tree-lstm = [ - {file = "pytorch-tree-lstm-0.1.3.tar.gz", hash = "sha256:b8026d31f51fe05baed9595258b2908e3fd8c33f0568db657c5db5006c2b6b2c"}, - {file = "pytorch_tree_lstm-0.1.3-py3-none-any.whl", hash = "sha256:4a4ee5eb5d21d59f47776e4ce51fd71c5ed1c8f20959d6024d8f0e93f1906a9f"}, -] -pytz = [ - {file = "pytz-2022.1-py2.py3-none-any.whl", hash = "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c"}, - {file = "pytz-2022.1.tar.gz", hash = "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7"}, -] -pywin32 = [ - {file = "pywin32-303-cp310-cp310-win32.whl", hash = "sha256:6fed4af057039f309263fd3285d7b8042d41507343cd5fa781d98fcc5b90e8bb"}, - {file = "pywin32-303-cp310-cp310-win_amd64.whl", hash = "sha256:51cb52c5ec6709f96c3f26e7795b0bf169ee0d8395b2c1d7eb2c029a5008ed51"}, - {file = "pywin32-303-cp311-cp311-win32.whl", hash = "sha256:d9b5d87ca944eb3aa4cd45516203ead4b37ab06b8b777c54aedc35975dec0dee"}, - {file = "pywin32-303-cp311-cp311-win_amd64.whl", hash = "sha256:fcf44032f5b14fcda86028cdf49b6ebdaea091230eb0a757282aa656e4732439"}, - {file = "pywin32-303-cp36-cp36m-win32.whl", hash = "sha256:aad484d52ec58008ca36bd4ad14a71d7dd0a99db1a4ca71072213f63bf49c7d9"}, - {file = "pywin32-303-cp36-cp36m-win_amd64.whl", hash = "sha256:2a09632916b6bb231ba49983fe989f2f625cea237219530e81a69239cd0c4559"}, - {file = "pywin32-303-cp37-cp37m-win32.whl", hash = "sha256:b1675d82bcf6dbc96363fca747bac8bff6f6e4a447a4287ac652aa4b9adc796e"}, - {file = "pywin32-303-cp37-cp37m-win_amd64.whl", hash = "sha256:c268040769b48a13367221fced6d4232ed52f044ffafeda247bd9d2c6bdc29ca"}, - {file = "pywin32-303-cp38-cp38-win32.whl", hash = "sha256:5f9ec054f5a46a0f4dfd72af2ce1372f3d5a6e4052af20b858aa7df2df7d355b"}, - {file = "pywin32-303-cp38-cp38-win_amd64.whl", hash = "sha256:793bf74fce164bcffd9d57bb13c2c15d56e43c9542a7b9687b4fccf8f8a41aba"}, - {file = "pywin32-303-cp39-cp39-win32.whl", hash = "sha256:7d3271c98434617a11921c5ccf74615794d97b079e22ed7773790822735cc352"}, - {file = "pywin32-303-cp39-cp39-win_amd64.whl", hash = "sha256:79cbb862c11b9af19bcb682891c1b91942ec2ff7de8151e2aea2e175899cda34"}, -] -pywinpty = [ - {file = "pywinpty-2.0.5-cp310-none-win_amd64.whl", hash = "sha256:f86c76e2881c37e69678cbbf178109f8da1fa8584db24d58e1b9369b0276cfcb"}, - {file = "pywinpty-2.0.5-cp37-none-win_amd64.whl", hash = "sha256:ff9b52f182650cfdf3db1b264a6fe0963eb9d996a7a1fa843ac406c1e32111f8"}, - {file = "pywinpty-2.0.5-cp38-none-win_amd64.whl", hash = "sha256:651ee1467bd7eb6f64d44dbc954b7ab7d15ab6d8adacc4e13299692c67c5d5d2"}, - {file = "pywinpty-2.0.5-cp39-none-win_amd64.whl", hash = "sha256:e59a508ae78374febada3e53b5bbc90b5ad07ae68cbfd72a2e965f9793ae04f3"}, - {file = "pywinpty-2.0.5.tar.gz", hash = "sha256:e125d3f1804d8804952b13e33604ad2ca8b9b2cac92b27b521c005d1604794f8"}, -] -pyyaml = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, -] -pyzmq = [ - {file = "pyzmq-22.3.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:6b217b8f9dfb6628f74b94bdaf9f7408708cb02167d644edca33f38746ca12dd"}, - {file = "pyzmq-22.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2841997a0d85b998cbafecb4183caf51fd19c4357075dfd33eb7efea57e4c149"}, - {file = "pyzmq-22.3.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f89468059ebc519a7acde1ee50b779019535db8dcf9b8c162ef669257fef7a93"}, - {file = "pyzmq-22.3.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea12133df25e3a6918718fbb9a510c6ee5d3fdd5a346320421aac3882f4feeea"}, - {file = "pyzmq-22.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c532fd68b93998aab92356be280deec5de8f8fe59cd28763d2cc8a58747b7f"}, - {file = "pyzmq-22.3.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:f907c7359ce8bf7f7e63c82f75ad0223384105f5126f313400b7e8004d9b33c3"}, - {file = "pyzmq-22.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:902319cfe23366595d3fa769b5b751e6ee6750a0a64c5d9f757d624b2ac3519e"}, - {file = "pyzmq-22.3.0-cp310-cp310-win32.whl", hash = "sha256:67db33bea0a29d03e6eeec55a8190e033318cee3cbc732ba8fd939617cbf762d"}, - {file = "pyzmq-22.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:7661fc1d5cb73481cf710a1418a4e1e301ed7d5d924f91c67ba84b2a1b89defd"}, - {file = "pyzmq-22.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79244b9e97948eaf38695f4b8e6fc63b14b78cc37f403c6642ba555517ac1268"}, - {file = "pyzmq-22.3.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab888624ed68930442a3f3b0b921ad7439c51ba122dbc8c386e6487a658e4a4e"}, - {file = "pyzmq-22.3.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:18cd854b423fce44951c3a4d3e686bac8f1243d954f579e120a1714096637cc0"}, - {file = "pyzmq-22.3.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:de8df0684398bd74ad160afdc2a118ca28384ac6f5e234eb0508858d8d2d9364"}, - {file = "pyzmq-22.3.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:62bcade20813796c426409a3e7423862d50ff0639f5a2a95be4b85b09a618666"}, - {file = "pyzmq-22.3.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:ea5a79e808baef98c48c884effce05c31a0698c1057de8fc1c688891043c1ce1"}, - {file = "pyzmq-22.3.0-cp36-cp36m-win32.whl", hash = "sha256:3c1895c95be92600233e476fe283f042e71cf8f0b938aabf21b7aafa62a8dac9"}, - {file = "pyzmq-22.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:851977788b9caa8ed011f5f643d3ee8653af02c5fc723fa350db5125abf2be7b"}, - {file = "pyzmq-22.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b4ebed0977f92320f6686c96e9e8dd29eed199eb8d066936bac991afc37cbb70"}, - {file = "pyzmq-22.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42abddebe2c6a35180ca549fadc7228d23c1e1f76167c5ebc8a936b5804ea2df"}, - {file = "pyzmq-22.3.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1e41b32d6f7f9c26bc731a8b529ff592f31fc8b6ef2be9fa74abd05c8a342d7"}, - {file = "pyzmq-22.3.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:be4e0f229cf3a71f9ecd633566bd6f80d9fa6afaaff5489492be63fe459ef98c"}, - {file = "pyzmq-22.3.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:08c4e315a76ef26eb833511ebf3fa87d182152adf43dedee8d79f998a2162a0b"}, - {file = "pyzmq-22.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:badb868fff14cfd0e200eaa845887b1011146a7d26d579aaa7f966c203736b92"}, - {file = "pyzmq-22.3.0-cp37-cp37m-win32.whl", hash = "sha256:7c58f598d9fcc52772b89a92d72bf8829c12d09746a6d2c724c5b30076c1f11d"}, - {file = "pyzmq-22.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2b97502c16a5ec611cd52410bdfaab264997c627a46b0f98d3f666227fd1ea2d"}, - {file = "pyzmq-22.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d728b08448e5ac3e4d886b165385a262883c34b84a7fe1166277fe675e1c197a"}, - {file = "pyzmq-22.3.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:480b9931bfb08bf8b094edd4836271d4d6b44150da051547d8c7113bf947a8b0"}, - {file = "pyzmq-22.3.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7dc09198e4073e6015d9a8ea093fc348d4e59de49382476940c3dd9ae156fba8"}, - {file = "pyzmq-22.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ca6cd58f62a2751728016d40082008d3b3412a7f28ddfb4a2f0d3c130f69e74"}, - {file = "pyzmq-22.3.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:468bd59a588e276961a918a3060948ae68f6ff5a7fa10bb2f9160c18fe341067"}, - {file = "pyzmq-22.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c88fa7410e9fc471e0858638f403739ee869924dd8e4ae26748496466e27ac59"}, - {file = "pyzmq-22.3.0-cp38-cp38-win32.whl", hash = "sha256:c0f84360dcca3481e8674393bdf931f9f10470988f87311b19d23cda869bb6b7"}, - {file = "pyzmq-22.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:f762442bab706fd874064ca218b33a1d8e40d4938e96c24dafd9b12e28017f45"}, - {file = "pyzmq-22.3.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:954e73c9cd4d6ae319f1c936ad159072b6d356a92dcbbabfd6e6204b9a79d356"}, - {file = "pyzmq-22.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f43b4a2e6218371dd4f41e547bd919ceeb6ebf4abf31a7a0669cd11cd91ea973"}, - {file = "pyzmq-22.3.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:acebba1a23fb9d72b42471c3771b6f2f18dcd46df77482612054bd45c07dfa36"}, - {file = "pyzmq-22.3.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cf98fd7a6c8aaa08dbc699ffae33fd71175696d78028281bc7b832b26f00ca57"}, - {file = "pyzmq-22.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d072f7dfbdb184f0786d63bda26e8a0882041b1e393fbe98940395f7fab4c5e2"}, - {file = "pyzmq-22.3.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:53f4fd13976789ffafedd4d46f954c7bb01146121812b72b4ddca286034df966"}, - {file = "pyzmq-22.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d1b5d457acbadcf8b27561deeaa386b0217f47626b29672fa7bd31deb6e91e1b"}, - {file = "pyzmq-22.3.0-cp39-cp39-win32.whl", hash = "sha256:e6a02cf7271ee94674a44f4e62aa061d2d049001c844657740e156596298b70b"}, - {file = "pyzmq-22.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:d3dcb5548ead4f1123851a5ced467791f6986d68c656bc63bfff1bf9e36671e2"}, - {file = "pyzmq-22.3.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3a4c9886d61d386b2b493377d980f502186cd71d501fffdba52bd2a0880cef4f"}, - {file = "pyzmq-22.3.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:80e043a89c6cadefd3a0712f8a1322038e819ebe9dbac7eca3bce1721bcb63bf"}, - {file = "pyzmq-22.3.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1621e7a2af72cced1f6ec8ca8ca91d0f76ac236ab2e8828ac8fe909512d566cb"}, - {file = "pyzmq-22.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:d6157793719de168b199194f6b6173f0ccd3bf3499e6870fac17086072e39115"}, - {file = "pyzmq-22.3.0.tar.gz", hash = "sha256:8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c"}, -] -qtconsole = [ - {file = "qtconsole-5.3.0-py3-none-any.whl", hash = "sha256:75f2ded876444454edcb5a53262149e33b53db3a4a53116b7c3df52830905b0f"}, - {file = "qtconsole-5.3.0.tar.gz", hash = "sha256:8e3520fdc75e46abc4cc6cffeca16fa2652754109b8ae839fa28e27d1eba5625"}, -] -qtpy = [ - {file = "QtPy-2.0.1-py3-none-any.whl", hash = "sha256:d93f2c98e97387fcc9d623d509772af5b6c15ab9d8f9f4c5dfbad9a73ad34812"}, - {file = "QtPy-2.0.1.tar.gz", hash = "sha256:adfd073ffbd2de81dc7aaa0b983499ef5c59c96adcfdcc9dea60d42ca885eb8f"}, -] -rdchiral = [ - {file = "rdchiral-1.1.0-py3-none-any.whl", hash = "sha256:9a0cc69cd8ed60cba61f55de70b36c93e6130208ab3c3911a819e46bf0f50e91"}, - {file = "rdchiral-1.1.0.tar.gz", hash = "sha256:433e23b99cbb81fe4701d3abb84ec3ecd979e4486464f1d7058cf1beb5abf822"}, -] -requests = [ - {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, - {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, -] -requests-oauthlib = [ - {file = "requests-oauthlib-1.3.1.tar.gz", hash = "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"}, - {file = "requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5"}, -] +absl-py = [] +aiohttp = [] +aiosignal = [] +alabaster = [] +alembic = [] +anyio = [] +appnope = [] +apted = [] +argon2-cffi = [] +argon2-cffi-bindings = [] +astroid = [] +asttokens = [] +astunparse = [] +async-timeout = [] +atomicwrites = [] +attrs = [] +autopage = [] +babel = [] +backcall = [] +beautifulsoup4 = [] +black = [] +bleach = [] +cachetools = [] +certifi = [] +cffi = [] +charset-normalizer = [] +click = [] +cliff = [] +cmaes = [] +cmd2 = [] +colorama = [] +colorlog = [] +comm = [] +contourpy = [] +coverage = [] +cycler = [] +debugpy = [] +decorator = [] +defusedxml = [] +deprecated = [] +dill = [] +docutils = [] +entrypoints = [] +executing = [] +fastjsonschema = [] +fire = [] +flatbuffers = [] +fonttools = [] +frozenlist = [] +fsspec = [] +gast = [] +google-auth = [] +google-auth-oauthlib = [] +google-pasta = [] +greenlet = [] +grpcio = [] +h5py = [] +idna = [] +imagesize = [] +importlib-metadata = [] +importlib-resources = [] +iniconfig = [] +invoke = [] +ipykernel = [] +ipython = [] +ipython-genutils = [] +ipywidgets = [] +isort = [] +jedi = [] +jinja2 = [] +joblib = [] +jsonschema = [] +jupyter = [] +jupyter-client = [] +jupyter-console = [] +jupyter-core = [] +jupyter-server = [] +jupyterlab-pygments = [] +jupyterlab-widgets = [] +jupytext = [] +keras = [] +kiwisolver = [] +lazy-object-proxy = [] +libclang = [] +lightning-utilities = [] +mako = [] +markdown = [] +markdown-it-py = [] +markupsafe = [] +matplotlib = [] +matplotlib-inline = [] +mccabe = [] +mdit-py-plugins = [] +mdurl = [] +mistune = [] +more-itertools = [] +multidict = [] +mypy = [] +mypy-extensions = [] +nbclassic = [] +nbclient = [] +nbconvert = [] +nbformat = [] +nest-asyncio = [] +networkx = [] +notebook = [] +notebook-shim = [] +numexpr = [] +numpy = [] +nvidia-cublas-cu11 = [] +nvidia-cuda-nvrtc-cu11 = [] +nvidia-cuda-runtime-cu11 = [] +nvidia-cudnn-cu11 = [] +oauthlib = [] +opt-einsum = [] +optuna = [] +packaging = [] +pandas = [] +pandocfilters = [] +parso = [] +pathspec = [] +pbr = [] +pexpect = [] +pickleshare = [] +pillow = [] +pkgutil-resolve-name = [] +platformdirs = [] +pluggy = [] +prettytable = [] +prometheus-client = [] +prompt-toolkit = [] +protobuf = [] +psutil = [] +ptyprocess = [] +pure-eval = [] +py = [] +pyasn1 = [] +pyasn1-modules = [] +pycparser = [] +pydantic = [] +pygments = [] +pylint = [] +pymongo = [] +pyparsing = [] +pyperclip = [] +pyreadline3 = [] +pyrsistent = [] +pytest = [] +pytest-black = [] +pytest-cov = [] +pytest-datadir = [] +pytest-mccabe = [] +pytest-mock = [] +python-dateutil = [] +pytorch-lightning = [] +pytorch-tree-lstm = [] +pytz = [] +pywin32 = [] +pywinpty = [] +pyyaml = [] +pyzmq = [] +qtconsole = [] +qtpy = [] +rdchiral = [] +rdkit = [] +requests = [] +requests-oauthlib = [] route-distances = [] -rsa = [ - {file = "rsa-4.8-py3-none-any.whl", hash = "sha256:95c5d300c4e879ee69708c428ba566c59478fd653cc3a22243eeb8ed846950bb"}, - {file = "rsa-4.8.tar.gz", hash = "sha256:5c6bd9dc7a543b7fe4304a631f8a8a3b674e2bbfc49c2ae96200cdbe55df6b17"}, -] -scikit-learn = [ - {file = "scikit-learn-1.0.2.tar.gz", hash = "sha256:b5870959a5484b614f26d31ca4c17524b1b0317522199dc985c3b4256e030767"}, - {file = "scikit_learn-1.0.2-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:da3c84694ff693b5b3194d8752ccf935a665b8b5edc33a283122f4273ca3e687"}, - {file = "scikit_learn-1.0.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:75307d9ea39236cad7eea87143155eea24d48f93f3a2f9389c817f7019f00705"}, - {file = "scikit_learn-1.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f14517e174bd7332f1cca2c959e704696a5e0ba246eb8763e6c24876d8710049"}, - {file = "scikit_learn-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9aac97e57c196206179f674f09bc6bffcd0284e2ba95b7fe0b402ac3f986023"}, - {file = "scikit_learn-1.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:d93d4c28370aea8a7cbf6015e8a669cd5d69f856cc2aa44e7a590fb805bb5583"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:85260fb430b795d806251dd3bb05e6f48cdc777ac31f2bcf2bc8bbed3270a8f5"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a053a6a527c87c5c4fa7bf1ab2556fa16d8345cf99b6c5a19030a4a7cd8fd2c0"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:245c9b5a67445f6f044411e16a93a554edc1efdcce94d3fc0bc6a4b9ac30b752"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:158faf30684c92a78e12da19c73feff9641a928a8024b4fa5ec11d583f3d8a87"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:08ef968f6b72033c16c479c966bf37ccd49b06ea91b765e1cc27afefe723920b"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16455ace947d8d9e5391435c2977178d0ff03a261571e67f627c8fee0f9d431a"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-win32.whl", hash = "sha256:2f3b453e0b149898577e301d27e098dfe1a36943f7bb0ad704d1e548efc3b448"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:46f431ec59dead665e1370314dbebc99ead05e1c0a9df42f22d6a0e00044820f"}, - {file = "scikit_learn-1.0.2-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:ff3fa8ea0e09e38677762afc6e14cad77b5e125b0ea70c9bba1992f02c93b028"}, - {file = "scikit_learn-1.0.2-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:9369b030e155f8188743eb4893ac17a27f81d28a884af460870c7c072f114243"}, - {file = "scikit_learn-1.0.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7d6b2475f1c23a698b48515217eb26b45a6598c7b1840ba23b3c5acece658dbb"}, - {file = "scikit_learn-1.0.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:285db0352e635b9e3392b0b426bc48c3b485512d3b4ac3c7a44ec2a2ba061e66"}, - {file = "scikit_learn-1.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cb33fe1dc6f73dc19e67b264dbb5dde2a0539b986435fdd78ed978c14654830"}, - {file = "scikit_learn-1.0.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b1391d1a6e2268485a63c3073111fe3ba6ec5145fc957481cfd0652be571226d"}, - {file = "scikit_learn-1.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc3744dabc56b50bec73624aeca02e0def06b03cb287de26836e730659c5d29c"}, - {file = "scikit_learn-1.0.2-cp38-cp38-win32.whl", hash = "sha256:a999c9f02ff9570c783069f1074f06fe7386ec65b84c983db5aeb8144356a355"}, - {file = "scikit_learn-1.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:7626a34eabbf370a638f32d1a3ad50526844ba58d63e3ab81ba91e2a7c6d037e"}, - {file = "scikit_learn-1.0.2-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:a90b60048f9ffdd962d2ad2fb16367a87ac34d76e02550968719eb7b5716fd10"}, - {file = "scikit_learn-1.0.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:7a93c1292799620df90348800d5ac06f3794c1316ca247525fa31169f6d25855"}, - {file = "scikit_learn-1.0.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:eabceab574f471de0b0eb3f2ecf2eee9f10b3106570481d007ed1c84ebf6d6a1"}, - {file = "scikit_learn-1.0.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:55f2f3a8414e14fbee03782f9fe16cca0f141d639d2b1c1a36779fa069e1db57"}, - {file = "scikit_learn-1.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80095a1e4b93bd33261ef03b9bc86d6db649f988ea4dbcf7110d0cded8d7213d"}, - {file = "scikit_learn-1.0.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa38a1b9b38ae1fad2863eff5e0d69608567453fdfc850c992e6e47eb764e846"}, - {file = "scikit_learn-1.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff746a69ff2ef25f62b36338c615dd15954ddc3ab8e73530237dd73235e76d62"}, - {file = "scikit_learn-1.0.2-cp39-cp39-win32.whl", hash = "sha256:e174242caecb11e4abf169342641778f68e1bfaba80cd18acd6bc84286b9a534"}, - {file = "scikit_learn-1.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:b54a62c6e318ddbfa7d22c383466d38d2ee770ebdb5ddb668d56a099f6eaf75f"}, -] -scipy = [ - {file = "scipy-1.7.3-1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:c9e04d7e9b03a8a6ac2045f7c5ef741be86727d8f49c45db45f244bdd2bcff17"}, - {file = "scipy-1.7.3-1-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:b0e0aeb061a1d7dcd2ed59ea57ee56c9b23dd60100825f98238c06ee5cc4467e"}, - {file = "scipy-1.7.3-1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:b78a35c5c74d336f42f44106174b9851c783184a85a3fe3e68857259b37b9ffb"}, - {file = "scipy-1.7.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:173308efba2270dcd61cd45a30dfded6ec0085b4b6eb33b5eb11ab443005e088"}, - {file = "scipy-1.7.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:21b66200cf44b1c3e86495e3a436fc7a26608f92b8d43d344457c54f1c024cbc"}, - {file = "scipy-1.7.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceebc3c4f6a109777c0053dfa0282fddb8893eddfb0d598574acfb734a926168"}, - {file = "scipy-1.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7eaea089345a35130bc9a39b89ec1ff69c208efa97b3f8b25ea5d4c41d88094"}, - {file = "scipy-1.7.3-cp310-cp310-win_amd64.whl", hash = "sha256:304dfaa7146cffdb75fbf6bb7c190fd7688795389ad060b970269c8576d038e9"}, - {file = "scipy-1.7.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:033ce76ed4e9f62923e1f8124f7e2b0800db533828c853b402c7eec6e9465d80"}, - {file = "scipy-1.7.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4d242d13206ca4302d83d8a6388c9dfce49fc48fdd3c20efad89ba12f785bf9e"}, - {file = "scipy-1.7.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8499d9dd1459dc0d0fe68db0832c3d5fc1361ae8e13d05e6849b358dc3f2c279"}, - {file = "scipy-1.7.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca36e7d9430f7481fc7d11e015ae16fbd5575615a8e9060538104778be84addf"}, - {file = "scipy-1.7.3-cp37-cp37m-win32.whl", hash = "sha256:e2c036492e673aad1b7b0d0ccdc0cb30a968353d2c4bf92ac8e73509e1bf212c"}, - {file = "scipy-1.7.3-cp37-cp37m-win_amd64.whl", hash = "sha256:866ada14a95b083dd727a845a764cf95dd13ba3dc69a16b99038001b05439709"}, - {file = "scipy-1.7.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:65bd52bf55f9a1071398557394203d881384d27b9c2cad7df9a027170aeaef93"}, - {file = "scipy-1.7.3-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:f99d206db1f1ae735a8192ab93bd6028f3a42f6fa08467d37a14eb96c9dd34a3"}, - {file = "scipy-1.7.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5f2cfc359379c56b3a41b17ebd024109b2049f878badc1e454f31418c3a18436"}, - {file = "scipy-1.7.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb7ae2c4dbdb3c9247e07acc532f91077ae6dbc40ad5bd5dca0bb5a176ee9bda"}, - {file = "scipy-1.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95c2d250074cfa76715d58830579c64dff7354484b284c2b8b87e5a38321672c"}, - {file = "scipy-1.7.3-cp38-cp38-win32.whl", hash = "sha256:87069cf875f0262a6e3187ab0f419f5b4280d3dcf4811ef9613c605f6e4dca95"}, - {file = "scipy-1.7.3-cp38-cp38-win_amd64.whl", hash = "sha256:7edd9a311299a61e9919ea4192dd477395b50c014cdc1a1ac572d7c27e2207fa"}, - {file = "scipy-1.7.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eef93a446114ac0193a7b714ce67659db80caf940f3232bad63f4c7a81bc18df"}, - {file = "scipy-1.7.3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:eb326658f9b73c07081300daba90a8746543b5ea177184daed26528273157294"}, - {file = "scipy-1.7.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:93378f3d14fff07572392ce6a6a2ceb3a1f237733bd6dcb9eb6a2b29b0d19085"}, - {file = "scipy-1.7.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edad1cf5b2ce1912c4d8ddad20e11d333165552aba262c882e28c78bbc09dbf6"}, - {file = "scipy-1.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d1cc2c19afe3b5a546ede7e6a44ce1ff52e443d12b231823268019f608b9b12"}, - {file = "scipy-1.7.3-cp39-cp39-win32.whl", hash = "sha256:2c56b820d304dffcadbbb6cbfbc2e2c79ee46ea291db17e288e73cd3c64fefa9"}, - {file = "scipy-1.7.3-cp39-cp39-win_amd64.whl", hash = "sha256:3f78181a153fa21c018d346f595edd648344751d7f03ab94b398be2ad083ed3e"}, - {file = "scipy-1.7.3.tar.gz", hash = "sha256:ab5875facfdef77e0a47d5fd39ea178b58e60e454a4c85aa1e52fcb80db7babf"}, -] -send2trash = [ - {file = "Send2Trash-1.8.0-py3-none-any.whl", hash = "sha256:f20eaadfdb517eaca5ce077640cb261c7d2698385a6a0f072a4a5447fd49fa08"}, - {file = "Send2Trash-1.8.0.tar.gz", hash = "sha256:d2c24762fd3759860a0aff155e45871447ea58d2be6bdd39b5c8f966a0c99c2d"}, -] -setuptools-scm = [ - {file = "setuptools_scm-6.4.2-py3-none-any.whl", hash = "sha256:acea13255093849de7ccb11af9e1fb8bde7067783450cee9ef7a93139bddf6d4"}, - {file = "setuptools_scm-6.4.2.tar.gz", hash = "sha256:6833ac65c6ed9711a4d5d2266f8024cfa07c533a0e55f4c12f6eff280a5a9e30"}, -] -six = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] -snowballstemmer = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] -soupsieve = [ - {file = "soupsieve-2.3.2.post1-py3-none-any.whl", hash = "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759"}, - {file = "soupsieve-2.3.2.post1.tar.gz", hash = "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d"}, -] -sphinx = [ - {file = "Sphinx-4.5.0-py3-none-any.whl", hash = "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226"}, - {file = "Sphinx-4.5.0.tar.gz", hash = "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6"}, -] -sphinxcontrib-applehelp = [ - {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, - {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, -] -sphinxcontrib-devhelp = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, -] -sphinxcontrib-htmlhelp = [ - {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, - {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, -] -sphinxcontrib-jsmath = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] -sphinxcontrib-qthelp = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, -] -sphinxcontrib-serializinghtml = [ - {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, - {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, -] -sqlalchemy = [ - {file = "SQLAlchemy-1.4.36-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:81e53bd383c2c33de9d578bfcc243f559bd3801a0e57f2bcc9a943c790662e0c"}, - {file = "SQLAlchemy-1.4.36-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6e1fe00ee85c768807f2a139b83469c1e52a9ffd58a6eb51aa7aeb524325ab18"}, - {file = "SQLAlchemy-1.4.36-cp27-cp27m-win32.whl", hash = "sha256:d57ac32f8dc731fddeb6f5d1358b4ca5456e72594e664769f0a9163f13df2a31"}, - {file = "SQLAlchemy-1.4.36-cp27-cp27m-win_amd64.whl", hash = "sha256:fca8322e04b2dde722fcb0558682740eebd3bd239bea7a0d0febbc190e99dc15"}, - {file = "SQLAlchemy-1.4.36-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:53d2d9ee93970c969bc4e3c78b1277d7129554642f6ffea039c282c7dc4577bc"}, - {file = "SQLAlchemy-1.4.36-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:f0394a3acfb8925db178f7728adb38c027ed7e303665b225906bfa8099dc1ce8"}, - {file = "SQLAlchemy-1.4.36-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c606d8238feae2f360b8742ffbe67741937eb0a05b57f536948d198a3def96"}, - {file = "SQLAlchemy-1.4.36-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8d07fe2de0325d06e7e73281e9a9b5e259fbd7cbfbe398a0433cbb0082ad8fa7"}, - {file = "SQLAlchemy-1.4.36-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5041474dcab7973baa91ec1f3112049a9dd4652898d6a95a6a895ff5c58beb6b"}, - {file = "SQLAlchemy-1.4.36-cp310-cp310-win32.whl", hash = "sha256:be094460930087e50fd08297db9d7aadaed8408ad896baf758e9190c335632da"}, - {file = "SQLAlchemy-1.4.36-cp310-cp310-win_amd64.whl", hash = "sha256:64d796e9af522162f7f2bf7a3c5531a0a550764c426782797bbeed809d0646c5"}, - {file = "SQLAlchemy-1.4.36-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:a0ae3aa2e86a4613f2d4c49eb7da23da536e6ce80b2bfd60bbb2f55fc02b0b32"}, - {file = "SQLAlchemy-1.4.36-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d50cb71c1dbed70646d521a0975fb0f92b7c3f84c61fa59e07be23a1aaeecfc"}, - {file = "SQLAlchemy-1.4.36-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:16abf35af37a3d5af92725fc9ec507dd9e9183d261c2069b6606d60981ed1c6e"}, - {file = "SQLAlchemy-1.4.36-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5864a83bd345871ad9699ce466388f836db7572003d67d9392a71998092210e3"}, - {file = "SQLAlchemy-1.4.36-cp36-cp36m-win32.whl", hash = "sha256:fbf8c09fe9728168f8cc1b40c239eab10baf9c422c18be7f53213d70434dea43"}, - {file = "SQLAlchemy-1.4.36-cp36-cp36m-win_amd64.whl", hash = "sha256:6e859fa96605027bd50d8e966db1c4e1b03e7b3267abbc4b89ae658c99393c58"}, - {file = "SQLAlchemy-1.4.36-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:166a3887ec355f7d2f12738f7fa25dc8ac541867147a255f790f2f41f614cb44"}, - {file = "SQLAlchemy-1.4.36-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e885548da361aa3f8a9433db4cfb335b2107e533bf314359ae3952821d84b3e"}, - {file = "SQLAlchemy-1.4.36-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5c90ef955d429966d84326d772eb34333178737ebb669845f1d529eb00c75e72"}, - {file = "SQLAlchemy-1.4.36-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a052bd9f53004f8993c624c452dfad8ec600f572dd0ed0445fbe64b22f5570e"}, - {file = "SQLAlchemy-1.4.36-cp37-cp37m-win32.whl", hash = "sha256:dce3468bf1fc12374a1a732c9efd146ce034f91bb0482b602a9311cb6166a920"}, - {file = "SQLAlchemy-1.4.36-cp37-cp37m-win_amd64.whl", hash = "sha256:6cb4c4f57a20710cea277edf720d249d514e587f796b75785ad2c25e1c0fed26"}, - {file = "SQLAlchemy-1.4.36-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:e74ce103b81c375c3853b436297952ef8d7863d801dcffb6728d01544e5191b5"}, - {file = "SQLAlchemy-1.4.36-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b20c4178ead9bc398be479428568ff31b6c296eb22e75776273781a6551973f"}, - {file = "SQLAlchemy-1.4.36-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:af2587ae11400157753115612d6c6ad255143efba791406ad8a0cbcccf2edcb3"}, - {file = "SQLAlchemy-1.4.36-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83cf3077712be9f65c9aaa0b5bc47bc1a44789fd45053e2e3ecd59ff17c63fe9"}, - {file = "SQLAlchemy-1.4.36-cp38-cp38-win32.whl", hash = "sha256:ce20f5da141f8af26c123ebaa1b7771835ca6c161225ce728962a79054f528c3"}, - {file = "SQLAlchemy-1.4.36-cp38-cp38-win_amd64.whl", hash = "sha256:316c7e5304dda3e3ad711569ac5d02698bbc71299b168ac56a7076b86259f7ea"}, - {file = "SQLAlchemy-1.4.36-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:f522214f6749bc073262529c056f7dfd660f3b5ec4180c5354d985eb7219801e"}, - {file = "SQLAlchemy-1.4.36-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ecac4db8c1aa4a269f5829df7e706639a24b780d2ac46b3e485cbbd27ec0028"}, - {file = "SQLAlchemy-1.4.36-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b3db741beaa983d4cbf9087558620e7787106319f7e63a066990a70657dd6b35"}, - {file = "SQLAlchemy-1.4.36-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ec89bf98cc6a0f5d1e28e3ad28e9be6f3b4bdbd521a4053c7ae8d5e1289a8a1"}, - {file = "SQLAlchemy-1.4.36-cp39-cp39-win32.whl", hash = "sha256:e12532c4d3f614678623da5d852f038ace1f01869b89f003ed6fe8c793f0c6a3"}, - {file = "SQLAlchemy-1.4.36-cp39-cp39-win_amd64.whl", hash = "sha256:cb441ca461bf97d00877b607f132772644b623518b39ced54da433215adce691"}, - {file = "SQLAlchemy-1.4.36.tar.gz", hash = "sha256:64678ac321d64a45901ef2e24725ec5e783f1f4a588305e196431447e7ace243"}, -] -stevedore = [ - {file = "stevedore-3.5.0-py3-none-any.whl", hash = "sha256:a547de73308fd7e90075bb4d301405bebf705292fa90a90fc3bcf9133f58616c"}, - {file = "stevedore-3.5.0.tar.gz", hash = "sha256:f40253887d8712eaa2bb0ea3830374416736dc8ec0e22f5a65092c1174c44335"}, -] -tables = [ - {file = "tables-3.7.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2262d400fd0a29b11414e95a85817e987056543f25d62d80cac730d7b3567bf3"}, - {file = "tables-3.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c74db2d5402f68093292cf89dda6124578ae2a8df796fb236a50f505245f294"}, - {file = "tables-3.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a4627309c69ff8936ce641e2e2b48c19e7b4a5fd6649861233ac73621267afb"}, - {file = "tables-3.7.0-cp310-cp310-win32.whl", hash = "sha256:e445f7da56d692f663fa1a1a9e9059ddf5eebb9e99efecb38ef7b3ea0d541b4d"}, - {file = "tables-3.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:38055a11f80acfe0670262595fdcdae1ac607a554355692a6abf26f20e54ec5f"}, - {file = "tables-3.7.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:1d12a3a7b06620267504ec8315d05ee13f84db76a48ecaf4cefd9aba909a791a"}, - {file = "tables-3.7.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8d9ebe9df7dd294c11632ed74ac450f73703f59fc76ea9db28388a2a655e434"}, - {file = "tables-3.7.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e7d5aaf8c2723dcd471a3fe1730e1f30e1d2b145939d49f70e36c52199994e0"}, - {file = "tables-3.7.0-cp36-cp36m-win32.whl", hash = "sha256:db8e9e49038916ba461f57793840075719066fef9cbf9813a6be1e6590e795c9"}, - {file = "tables-3.7.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2c568304e11d5ea3cbbb1b489bc0edacde5b9943e2714667c83009fae8823f14"}, - {file = "tables-3.7.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8b0d4317a5f7c9086a8a567bd2173dfa736e85f06d3aab172c4c540319fbd264"}, - {file = "tables-3.7.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:084bbd93038340aed132056435993f020672984c55ace27aedecd09abf0f8fd2"}, - {file = "tables-3.7.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e48c74dfa4765b312861f7d4c6e8eb7dcea7fe7674c95bd04cf6d738e04470af"}, - {file = "tables-3.7.0-cp37-cp37m-win32.whl", hash = "sha256:78f146aa4a6518cd8664661c421083d71fec1c7956eb7eebeee2ded351ce9289"}, - {file = "tables-3.7.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e89746e56dc5c47dadae8a639e08820835f0522e709b3914436e47e04fe67cea"}, - {file = "tables-3.7.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:90bdfe44aec11cf207e37d7e767852f949cfc918d409210f0e12cd675b28c23e"}, - {file = "tables-3.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1286143ac2bd5a51adda0f72f4496e53a085faba91c44c28dc38d1e9803d979"}, - {file = "tables-3.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69e1bc63c9a6dcd4f2a820aba7ca24a35aae08814b90deb18ed67b2c171872c0"}, - {file = "tables-3.7.0-cp38-cp38-win32.whl", hash = "sha256:0f404df7740dabaafa6f18ff279503ecacc1241c5f451b8a4609c01e6102c440"}, - {file = "tables-3.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:1ccb258296c580192a4dd4763ce937ca913d0fe4e3606dc289808117868cc1a8"}, - {file = "tables-3.7.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9d0f2fb26caab50ef42e2f91d76024a3041e158773844d725a0f85514d58a6b0"}, - {file = "tables-3.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2546e28c07c04b59c2cbf2986604ceb8abf9d14d5da8b501d51c4577bf843b52"}, - {file = "tables-3.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d23e1f70c32ce26532048c9d33c44597989766ee6acac4a19f2eb33d09dab8e6"}, - {file = "tables-3.7.0-cp39-cp39-win32.whl", hash = "sha256:b973d787f417b751c7daa10f2c09798bb37b0527ff62dd29cedc75c31c3f0db9"}, - {file = "tables-3.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:3c2350f0047685f5932fb0af09806ed0089d042d550292ff1e68d796da0d90fb"}, - {file = "tables-3.7.0.tar.gz", hash = "sha256:e92a887ad6f2a983e564a69902de4a7645c30069fc01abd353ec5da255c5e1fe"}, -] -tensorboard = [ - {file = "tensorboard-2.8.0-py3-none-any.whl", hash = "sha256:65a338e4424e9079f2604923bdbe301792adce2ace1be68da6b3ddf005170def"}, -] -tensorboard-data-server = [ - {file = "tensorboard_data_server-0.6.1-py3-none-any.whl", hash = "sha256:809fe9887682d35c1f7d1f54f0f40f98bb1f771b14265b453ca051e2ce58fca7"}, - {file = "tensorboard_data_server-0.6.1-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:fa8cef9be4fcae2f2363c88176638baf2da19c5ec90addb49b1cde05c95c88ee"}, - {file = "tensorboard_data_server-0.6.1-py3-none-manylinux2010_x86_64.whl", hash = "sha256:d8237580755e58eff68d1f3abefb5b1e39ae5c8b127cc40920f9c4fb33f4b98a"}, -] -tensorboard-plugin-wit = [ - {file = "tensorboard_plugin_wit-1.8.1-py3-none-any.whl", hash = "sha256:ff26bdd583d155aa951ee3b152b3d0cffae8005dc697f72b44a8e8c2a77a8cbe"}, -] -tensorflow = [ - {file = "tensorflow-2.8.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:78c3ba2e0c952aa9eb388200f1923e40287f9357492a464188ca3043e35edc52"}, - {file = "tensorflow-2.8.0-cp310-cp310-manylinux2010_x86_64.whl", hash = "sha256:2a520538e77a52fb428acb05e300c960844fd1d2c3918ca8ca14127edba6f83b"}, - {file = "tensorflow-2.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:b7170844ae6b048d82a9d7a61b2fa627f2e16cb829267bf0ce4b3a0de0a61054"}, - {file = "tensorflow-2.8.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:fa4a723368d5f748b6f4ec305cf7c26b98e4a6a8c2ce1425f8ae10383a37bcfc"}, - {file = "tensorflow-2.8.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:05fb161c6b2a6c4b8317a703a0a6d7f7aa6b5e3c6ea31bbc4f44ef96b89c3344"}, - {file = "tensorflow-2.8.0-cp37-cp37m-win_amd64.whl", hash = "sha256:291fa84f1022914580810ad76732fb254e44a8a609128e1c58873a12b2f81559"}, - {file = "tensorflow-2.8.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:dd0f9f113ebc21b73fcd349db1629e187b8686395b8146d100eb1706a943bbc0"}, - {file = "tensorflow-2.8.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:8489b4f1771e146f752b0eaeb57acf183bd07357e4550464e7dff18b3b656b5d"}, - {file = "tensorflow-2.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:da38d4043185267e7316ae5dc98d18e89c8af4170859f64798e7a3607fd606e3"}, - {file = "tensorflow-2.8.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:52f225fecc688281b3ae2cba2b52d3ed6215ed4a3ffb686b9cfd09885ca65563"}, - {file = "tensorflow-2.8.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:9d91a989e5455ae713c03fd7236071ab3f232ad8ff2831f2658072933546091f"}, - {file = "tensorflow-2.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:b360c13b3e58b9a5c0780cbdb6b549eea73f620275fa203f8508fe418ae02735"}, -] -tensorflow-io-gcs-filesystem = [ - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:b7aeae64dd4db1c8c0a4a7581af421fe16fd7704385017c6e4b89c041cef9830"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cbcf8c973637140dceaacfe04b0e4a010f6d41d468cccfbf2e328fed7c6b3c46"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4307f25069f6afd7ecebbecd8603491b379af39b98ed74e5395282ef017ca5b2"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp310-cp310-win_amd64.whl", hash = "sha256:5ade6c5fadc067d576ff6b8b2d125ed7f60f4ecb6f9e6480b3cf28037cd74030"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:f62edcf9a44ebf178233a189cc8f8d7f07ae156a87123a29530e803159cc0a27"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:30b7489472d1f635df202b7f9910a00354dc791d3f4c8d99ae517f58e0cdbd12"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ae065451e915dcf00c730355ecd5a954e47593d71df5865f5224cd915fd8cb3"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1d1de2dbed94fb3763b020cc31b79dc9185aafc3855976ac5d0ad10967143d3c"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:8cab4ecb376a871bc98124dfee9be53a7387808a7f65438f8adecc1b31e4d228"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a6ce3f487b43b2e8e3e5e0cf9bdeb5cd67c68f5932ea74be0cdba099e3f13050"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cfa39909e9e7f408ec2ed19ced70566ef10211eb18dec63e5ad6d42f88a3976"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp38-cp38-win_amd64.whl", hash = "sha256:643dd1b3e8942d381efc04013d8b4cd694ba558446eea9a9877096182bdb85e5"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:3da161baf459980960c2130a5085d8fb3391d4d69f52bc1787c45210218a8576"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:660e4e837057c0ab96661f56a401bb14e8bc58c3a0d57c54383c3dc7c1a06119"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53611b66d7604976af2410502c05e1230fd1d856a18c5b391266d0bc9a1a14a6"}, - {file = "tensorflow_io_gcs_filesystem-0.25.0-cp39-cp39-win_amd64.whl", hash = "sha256:e7b15047cce35cd16fe4708ebe384c3a0077201cd2745e20df4204683c84e464"}, -] -tensorflow-serving-api = [ - {file = "tensorflow_serving_api-2.8.0-py2.py3-none-any.whl", hash = "sha256:d0790df170c582b2bddd894c7469787f873437ea8936bef7e034f86ed91bd6b4"}, -] -termcolor = [ - {file = "termcolor-1.1.0.tar.gz", hash = "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"}, -] -terminado = [ - {file = "terminado-0.13.3-py3-none-any.whl", hash = "sha256:874d4ea3183536c1782d13c7c91342ef0cf4e5ee1d53633029cbc972c8760bd8"}, - {file = "terminado-0.13.3.tar.gz", hash = "sha256:94d1cfab63525993f7d5c9b469a50a18d0cdf39435b59785715539dd41e36c0d"}, -] -tf-estimator-nightly = [ - {file = "tf_estimator_nightly-2.8.0.dev2021122109-py2.py3-none-any.whl", hash = "sha256:0065a04e396b2890bd19761fc1de7559ceafeba12839f8db2c7e7473afaaf612"}, -] -threadpoolctl = [ - {file = "threadpoolctl-3.1.0-py3-none-any.whl", hash = "sha256:8b99adda265feb6773280df41eece7b2e6561b772d21ffd52e372f999024907b"}, - {file = "threadpoolctl-3.1.0.tar.gz", hash = "sha256:a335baacfaa4400ae1f0d8e3a58d6674d2f8828e3716bb2802c44955ad391380"}, -] -timeout-decorator = [ - {file = "timeout-decorator-0.5.0.tar.gz", hash = "sha256:6a2f2f58db1c5b24a2cc79de6345760377ad8bdc13813f5265f6c3e63d16b3d7"}, -] -tinycss2 = [ - {file = "tinycss2-1.1.1-py3-none-any.whl", hash = "sha256:fe794ceaadfe3cf3e686b22155d0da5780dd0e273471a51846d0a02bc204fec8"}, - {file = "tinycss2-1.1.1.tar.gz", hash = "sha256:b2e44dd8883c360c35dd0d1b5aad0b610e5156c2cb3b33434634e539ead9d8bf"}, -] -toml = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] -tomli = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] -torch = [ - {file = "torch-1.11.0-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:62052b50fffc29ca7afc0c04ef8206b6f1ca9d10629cb543077e12967e8d0398"}, - {file = "torch-1.11.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:866bfba29ac98dec35d893d8e17eaec149d0ac7a53be7baae5c98069897db667"}, - {file = "torch-1.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:951640fb8db308a59d9b510e7d1ad910aff92913323bbe4bc75435347ddd346d"}, - {file = "torch-1.11.0-cp310-none-macosx_10_9_x86_64.whl", hash = "sha256:5d77b5ece78fdafa5c7f42995ff9474399d22571cd6b2de21a5d666306a2ff8c"}, - {file = "torch-1.11.0-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:b5a38682769b544c875ecc34bcb81fbad5c922139b61319aacffcfd8a32f528c"}, - {file = "torch-1.11.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:f82d77695a60626f2b7382d85bc566de8a6b3e50d32080755abc040db802e419"}, - {file = "torch-1.11.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b96654d42566080a134e784705f33f8536b3b95b5dcde357ed7879b1692a5f78"}, - {file = "torch-1.11.0-cp37-cp37m-win_amd64.whl", hash = "sha256:8ee7c2e8d7f7020d5bfbc1bb91b9591044c26bbd0cee5e4f694cfd7ed8649260"}, - {file = "torch-1.11.0-cp37-none-macosx_10_9_x86_64.whl", hash = "sha256:6860b1d1bf0bb0b67a6bd47f85a0e4c825b518eea13b5d6101999dbbcbd5bc0c"}, - {file = "torch-1.11.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:4322aa29f50da7f404db06cdf30896ea67b09f673af4a985afc7162bc897864d"}, - {file = "torch-1.11.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:e4d2e0ddd652f30e94cff750220324ec45705d4ecc69658f773b3cb1c7a28dd0"}, - {file = "torch-1.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:34ce5ea4d8d85da32cdbadb50d4585106901e9f8a3527991daa70c13a09de1f7"}, - {file = "torch-1.11.0-cp38-none-macosx_10_9_x86_64.whl", hash = "sha256:0ccc85cd06227a3edf809e2c795fd5762c3d4e8a38b5c9f744c6e7cf841361bb"}, - {file = "torch-1.11.0-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:c1554e49d74f1b2c3e7202d77056ba2dd7465437585bac64062b580f714a44e9"}, - {file = "torch-1.11.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:58c7814502b1c129a650d7092033bbb0bbd64faf1a7941631aaa1aeaddc37570"}, - {file = "torch-1.11.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:831cf588f01dda9409e75576741d2823453990dee2983d670f2584b37a01adf7"}, - {file = "torch-1.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:44a1d02fd20f827f0f36dc26fdcfc45e793806a6ad52769a22260655a77a4369"}, - {file = "torch-1.11.0-cp39-none-macosx_10_9_x86_64.whl", hash = "sha256:50fd9bf85c578c871c28f1cb0ace9dfc6024401c7f399b174fb0f370899f4454"}, - {file = "torch-1.11.0-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:0e48af66ad755f0f9c5f2664028a414f57c49d6adc37e77e06fe0004da4edb61"}, -] -torchmetrics = [ - {file = "torchmetrics-0.8.1-py3-none-any.whl", hash = "sha256:8b8bb2ed4c455ae328e36b4d49d102da4ca8ceb6ca208fab8441ca1723442aff"}, - {file = "torchmetrics-0.8.1.tar.gz", hash = "sha256:836c666425fd83a9b9785d9a9b52cd988925d3f545aed1217b3192552c7558ce"}, -] -tornado = [ - {file = "tornado-6.1-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32"}, - {file = "tornado-6.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c"}, - {file = "tornado-6.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9de9e5188a782be6b1ce866e8a51bc76a0fbaa0e16613823fc38e4fc2556ad05"}, - {file = "tornado-6.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:61b32d06ae8a036a6607805e6720ef00a3c98207038444ba7fd3d169cd998910"}, - {file = "tornado-6.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:3e63498f680547ed24d2c71e6497f24bca791aca2fe116dbc2bd0ac7f191691b"}, - {file = "tornado-6.1-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:6c77c9937962577a6a76917845d06af6ab9197702a42e1346d8ae2e76b5e3675"}, - {file = "tornado-6.1-cp35-cp35m-win32.whl", hash = "sha256:6286efab1ed6e74b7028327365cf7346b1d777d63ab30e21a0f4d5b275fc17d5"}, - {file = "tornado-6.1-cp35-cp35m-win_amd64.whl", hash = "sha256:fa2ba70284fa42c2a5ecb35e322e68823288a4251f9ba9cc77be04ae15eada68"}, - {file = "tornado-6.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:0a00ff4561e2929a2c37ce706cb8233b7907e0cdc22eab98888aca5dd3775feb"}, - {file = "tornado-6.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:748290bf9112b581c525e6e6d3820621ff020ed95af6f17fedef416b27ed564c"}, - {file = "tornado-6.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:e385b637ac3acaae8022e7e47dfa7b83d3620e432e3ecb9a3f7f58f150e50921"}, - {file = "tornado-6.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:25ad220258349a12ae87ede08a7b04aca51237721f63b1808d39bdb4b2164558"}, - {file = "tornado-6.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:65d98939f1a2e74b58839f8c4dab3b6b3c1ce84972ae712be02845e65391ac7c"}, - {file = "tornado-6.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:e519d64089b0876c7b467274468709dadf11e41d65f63bba207e04217f47c085"}, - {file = "tornado-6.1-cp36-cp36m-win32.whl", hash = "sha256:b87936fd2c317b6ee08a5741ea06b9d11a6074ef4cc42e031bc6403f82a32575"}, - {file = "tornado-6.1-cp36-cp36m-win_amd64.whl", hash = "sha256:cc0ee35043162abbf717b7df924597ade8e5395e7b66d18270116f8745ceb795"}, - {file = "tornado-6.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7250a3fa399f08ec9cb3f7b1b987955d17e044f1ade821b32e5f435130250d7f"}, - {file = "tornado-6.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:ed3ad863b1b40cd1d4bd21e7498329ccaece75db5a5bf58cd3c9f130843e7102"}, - {file = "tornado-6.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:dcef026f608f678c118779cd6591c8af6e9b4155c44e0d1bc0c87c036fb8c8c4"}, - {file = "tornado-6.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:70dec29e8ac485dbf57481baee40781c63e381bebea080991893cd297742b8fd"}, - {file = "tornado-6.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:d3f7594930c423fd9f5d1a76bee85a2c36fd8b4b16921cae7e965f22575e9c01"}, - {file = "tornado-6.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:3447475585bae2e77ecb832fc0300c3695516a47d46cefa0528181a34c5b9d3d"}, - {file = "tornado-6.1-cp37-cp37m-win32.whl", hash = "sha256:e7229e60ac41a1202444497ddde70a48d33909e484f96eb0da9baf8dc68541df"}, - {file = "tornado-6.1-cp37-cp37m-win_amd64.whl", hash = "sha256:cb5ec8eead331e3bb4ce8066cf06d2dfef1bfb1b2a73082dfe8a161301b76e37"}, - {file = "tornado-6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:20241b3cb4f425e971cb0a8e4ffc9b0a861530ae3c52f2b0434e6c1b57e9fd95"}, - {file = "tornado-6.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:c77da1263aa361938476f04c4b6c8916001b90b2c2fdd92d8d535e1af48fba5a"}, - {file = "tornado-6.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:fba85b6cd9c39be262fcd23865652920832b61583de2a2ca907dbd8e8a8c81e5"}, - {file = "tornado-6.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:1e8225a1070cd8eec59a996c43229fe8f95689cb16e552d130b9793cb570a288"}, - {file = "tornado-6.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d14d30e7f46a0476efb0deb5b61343b1526f73ebb5ed84f23dc794bdb88f9d9f"}, - {file = "tornado-6.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8f959b26f2634a091bb42241c3ed8d3cedb506e7c27b8dd5c7b9f745318ddbb6"}, - {file = "tornado-6.1-cp38-cp38-win32.whl", hash = "sha256:34ca2dac9e4d7afb0bed4677512e36a52f09caa6fded70b4e3e1c89dbd92c326"}, - {file = "tornado-6.1-cp38-cp38-win_amd64.whl", hash = "sha256:6196a5c39286cc37c024cd78834fb9345e464525d8991c21e908cc046d1cc02c"}, - {file = "tornado-6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f0ba29bafd8e7e22920567ce0d232c26d4d47c8b5cf4ed7b562b5db39fa199c5"}, - {file = "tornado-6.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:33892118b165401f291070100d6d09359ca74addda679b60390b09f8ef325ffe"}, - {file = "tornado-6.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7da13da6f985aab7f6f28debab00c67ff9cbacd588e8477034c0652ac141feea"}, - {file = "tornado-6.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:e0791ac58d91ac58f694d8d2957884df8e4e2f6687cdf367ef7eb7497f79eaa2"}, - {file = "tornado-6.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:66324e4e1beede9ac79e60f88de548da58b1f8ab4b2f1354d8375774f997e6c0"}, - {file = "tornado-6.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:a48900ecea1cbb71b8c71c620dee15b62f85f7c14189bdeee54966fbd9a0c5bd"}, - {file = "tornado-6.1-cp39-cp39-win32.whl", hash = "sha256:d3d20ea5782ba63ed13bc2b8c291a053c8d807a8fa927d941bd718468f7b950c"}, - {file = "tornado-6.1-cp39-cp39-win_amd64.whl", hash = "sha256:548430be2740e327b3fe0201abe471f314741efcb0067ec4f2d7dcfb4825f3e4"}, - {file = "tornado-6.1.tar.gz", hash = "sha256:33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791"}, -] -tqdm = [ - {file = "tqdm-4.64.0-py2.py3-none-any.whl", hash = "sha256:74a2cdefe14d11442cedf3ba4e21a3b84ff9a2dbdc6cfae2c34addb2a14a5ea6"}, - {file = "tqdm-4.64.0.tar.gz", hash = "sha256:40be55d30e200777a307a7585aee69e4eabb46b4ec6a4b4a5f2d9f11e7d5408d"}, -] -traitlets = [ - {file = "traitlets-5.1.1-py3-none-any.whl", hash = "sha256:2d313cc50a42cd6c277e7d7dc8d4d7fedd06a2c215f78766ae7b1a66277e0033"}, - {file = "traitlets-5.1.1.tar.gz", hash = "sha256:059f456c5a7c1c82b98c2e8c799f39c9b8128f6d0d46941ee118daace9eb70c7"}, -] -typed-ast = [ - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6"}, - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075"}, - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528"}, - {file = "typed_ast-1.4.3-cp35-cp35m-win32.whl", hash = "sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428"}, - {file = "typed_ast-1.4.3-cp35-cp35m-win_amd64.whl", hash = "sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3"}, - {file = "typed_ast-1.4.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f"}, - {file = "typed_ast-1.4.3-cp36-cp36m-win32.whl", hash = "sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363"}, - {file = "typed_ast-1.4.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7"}, - {file = "typed_ast-1.4.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899"}, - {file = "typed_ast-1.4.3-cp37-cp37m-win32.whl", hash = "sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c"}, - {file = "typed_ast-1.4.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805"}, - {file = "typed_ast-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39"}, - {file = "typed_ast-1.4.3-cp38-cp38-win32.whl", hash = "sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927"}, - {file = "typed_ast-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40"}, - {file = "typed_ast-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3"}, - {file = "typed_ast-1.4.3-cp39-cp39-win32.whl", hash = "sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808"}, - {file = "typed_ast-1.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c"}, - {file = "typed_ast-1.4.3.tar.gz", hash = "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65"}, -] -typing-extensions = [ - {file = "typing_extensions-4.2.0-py3-none-any.whl", hash = "sha256:6657594ee297170d19f67d55c05852a874e7eb634f4f753dbd667855e07c1708"}, - {file = "typing_extensions-4.2.0.tar.gz", hash = "sha256:f1c24655a0da0d1b67f07e17a5e6b2a105894e6824b92096378bb3668ef02376"}, -] -urllib3 = [ - {file = "urllib3-1.26.9-py2.py3-none-any.whl", hash = "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14"}, - {file = "urllib3-1.26.9.tar.gz", hash = "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"}, -] -wcwidth = [ - {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, - {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, -] -webencodings = [ - {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, - {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, -] -werkzeug = [ - {file = "Werkzeug-2.1.1-py3-none-any.whl", hash = "sha256:3c5493ece8268fecdcdc9c0b112211acd006354723b280d643ec732b6d4063d6"}, - {file = "Werkzeug-2.1.1.tar.gz", hash = "sha256:f8e89a20aeabbe8a893c24a461d3ee5dad2123b05cc6abd73ceed01d39c3ae74"}, -] -widgetsnbextension = [ - {file = "widgetsnbextension-3.6.0-py2.py3-none-any.whl", hash = "sha256:4fd321cad39fdcf8a8e248a657202d42917ada8e8ed5dd3f60f073e0d54ceabd"}, - {file = "widgetsnbextension-3.6.0.tar.gz", hash = "sha256:e84a7a9fcb9baf3d57106e184a7389a8f8eb935bf741a5eb9d60aa18cc029a80"}, -] -wrapt = [ - {file = "wrapt-1.14.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:5a9a1889cc01ed2ed5f34574c90745fab1dd06ec2eee663e8ebeefe363e8efd7"}, - {file = "wrapt-1.14.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:9a3ff5fb015f6feb78340143584d9f8a0b91b6293d6b5cf4295b3e95d179b88c"}, - {file = "wrapt-1.14.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:4b847029e2d5e11fd536c9ac3136ddc3f54bc9488a75ef7d040a3900406a91eb"}, - {file = "wrapt-1.14.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:9a5a544861b21e0e7575b6023adebe7a8c6321127bb1d238eb40d99803a0e8bd"}, - {file = "wrapt-1.14.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:88236b90dda77f0394f878324cfbae05ae6fde8a84d548cfe73a75278d760291"}, - {file = "wrapt-1.14.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f0408e2dbad9e82b4c960274214af533f856a199c9274bd4aff55d4634dedc33"}, - {file = "wrapt-1.14.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:9d8c68c4145041b4eeae96239802cfdfd9ef927754a5be3f50505f09f309d8c6"}, - {file = "wrapt-1.14.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:22626dca56fd7f55a0733e604f1027277eb0f4f3d95ff28f15d27ac25a45f71b"}, - {file = "wrapt-1.14.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:65bf3eb34721bf18b5a021a1ad7aa05947a1767d1aa272b725728014475ea7d5"}, - {file = "wrapt-1.14.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:09d16ae7a13cff43660155383a2372b4aa09109c7127aa3f24c3cf99b891c330"}, - {file = "wrapt-1.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:debaf04f813ada978d7d16c7dfa16f3c9c2ec9adf4656efdc4defdf841fc2f0c"}, - {file = "wrapt-1.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:748df39ed634851350efa87690c2237a678ed794fe9ede3f0d79f071ee042561"}, - {file = "wrapt-1.14.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1807054aa7b61ad8d8103b3b30c9764de2e9d0c0978e9d3fc337e4e74bf25faa"}, - {file = "wrapt-1.14.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:763a73ab377390e2af26042f685a26787c402390f682443727b847e9496e4a2a"}, - {file = "wrapt-1.14.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8529b07b49b2d89d6917cfa157d3ea1dfb4d319d51e23030664a827fe5fd2131"}, - {file = "wrapt-1.14.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:68aeefac31c1f73949662ba8affaf9950b9938b712fb9d428fa2a07e40ee57f8"}, - {file = "wrapt-1.14.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59d7d92cee84a547d91267f0fea381c363121d70fe90b12cd88241bd9b0e1763"}, - {file = "wrapt-1.14.0-cp310-cp310-win32.whl", hash = "sha256:3a88254881e8a8c4784ecc9cb2249ff757fd94b911d5df9a5984961b96113fff"}, - {file = "wrapt-1.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:9a242871b3d8eecc56d350e5e03ea1854de47b17f040446da0e47dc3e0b9ad4d"}, - {file = "wrapt-1.14.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:a65bffd24409454b889af33b6c49d0d9bcd1a219b972fba975ac935f17bdf627"}, - {file = "wrapt-1.14.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9d9fcd06c952efa4b6b95f3d788a819b7f33d11bea377be6b8980c95e7d10775"}, - {file = "wrapt-1.14.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:db6a0ddc1282ceb9032e41853e659c9b638789be38e5b8ad7498caac00231c23"}, - {file = "wrapt-1.14.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:14e7e2c5f5fca67e9a6d5f753d21f138398cad2b1159913ec9e9a67745f09ba3"}, - {file = "wrapt-1.14.0-cp35-cp35m-win32.whl", hash = "sha256:6d9810d4f697d58fd66039ab959e6d37e63ab377008ef1d63904df25956c7db0"}, - {file = "wrapt-1.14.0-cp35-cp35m-win_amd64.whl", hash = "sha256:d808a5a5411982a09fef6b49aac62986274ab050e9d3e9817ad65b2791ed1425"}, - {file = "wrapt-1.14.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b77159d9862374da213f741af0c361720200ab7ad21b9f12556e0eb95912cd48"}, - {file = "wrapt-1.14.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36a76a7527df8583112b24adc01748cd51a2d14e905b337a6fefa8b96fc708fb"}, - {file = "wrapt-1.14.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a0057b5435a65b933cbf5d859cd4956624df37b8bf0917c71756e4b3d9958b9e"}, - {file = "wrapt-1.14.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a0a4ca02752ced5f37498827e49c414d694ad7cf451ee850e3ff160f2bee9d3"}, - {file = "wrapt-1.14.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:8c6be72eac3c14baa473620e04f74186c5d8f45d80f8f2b4eda6e1d18af808e8"}, - {file = "wrapt-1.14.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:21b1106bff6ece8cb203ef45b4f5778d7226c941c83aaaa1e1f0f4f32cc148cd"}, - {file = "wrapt-1.14.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:493da1f8b1bb8a623c16552fb4a1e164c0200447eb83d3f68b44315ead3f9036"}, - {file = "wrapt-1.14.0-cp36-cp36m-win32.whl", hash = "sha256:89ba3d548ee1e6291a20f3c7380c92f71e358ce8b9e48161401e087e0bc740f8"}, - {file = "wrapt-1.14.0-cp36-cp36m-win_amd64.whl", hash = "sha256:729d5e96566f44fccac6c4447ec2332636b4fe273f03da128fff8d5559782b06"}, - {file = "wrapt-1.14.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:891c353e95bb11abb548ca95c8b98050f3620a7378332eb90d6acdef35b401d4"}, - {file = "wrapt-1.14.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23f96134a3aa24cc50614920cc087e22f87439053d886e474638c68c8d15dc80"}, - {file = "wrapt-1.14.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6807bcee549a8cb2f38f73f469703a1d8d5d990815c3004f21ddb68a567385ce"}, - {file = "wrapt-1.14.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6915682f9a9bc4cf2908e83caf5895a685da1fbd20b6d485dafb8e218a338279"}, - {file = "wrapt-1.14.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f2f3bc7cd9c9fcd39143f11342eb5963317bd54ecc98e3650ca22704b69d9653"}, - {file = "wrapt-1.14.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:3a71dbd792cc7a3d772ef8cd08d3048593f13d6f40a11f3427c000cf0a5b36a0"}, - {file = "wrapt-1.14.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:5a0898a640559dec00f3614ffb11d97a2666ee9a2a6bad1259c9facd01a1d4d9"}, - {file = "wrapt-1.14.0-cp37-cp37m-win32.whl", hash = "sha256:167e4793dc987f77fd476862d32fa404d42b71f6a85d3b38cbce711dba5e6b68"}, - {file = "wrapt-1.14.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d066ffc5ed0be00cd0352c95800a519cf9e4b5dd34a028d301bdc7177c72daf3"}, - {file = "wrapt-1.14.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d9bdfa74d369256e4218000a629978590fd7cb6cf6893251dad13d051090436d"}, - {file = "wrapt-1.14.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2498762814dd7dd2a1d0248eda2afbc3dd9c11537bc8200a4b21789b6df6cd38"}, - {file = "wrapt-1.14.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f24ca7953f2643d59a9c87d6e272d8adddd4a53bb62b9208f36db408d7aafc7"}, - {file = "wrapt-1.14.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b835b86bd5a1bdbe257d610eecab07bf685b1af2a7563093e0e69180c1d4af1"}, - {file = "wrapt-1.14.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b21650fa6907e523869e0396c5bd591cc326e5c1dd594dcdccac089561cacfb8"}, - {file = "wrapt-1.14.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:354d9fc6b1e44750e2a67b4b108841f5f5ea08853453ecbf44c81fdc2e0d50bd"}, - {file = "wrapt-1.14.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1f83e9c21cd5275991076b2ba1cd35418af3504667affb4745b48937e214bafe"}, - {file = "wrapt-1.14.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:61e1a064906ccba038aa3c4a5a82f6199749efbbb3cef0804ae5c37f550eded0"}, - {file = "wrapt-1.14.0-cp38-cp38-win32.whl", hash = "sha256:28c659878f684365d53cf59dc9a1929ea2eecd7ac65da762be8b1ba193f7e84f"}, - {file = "wrapt-1.14.0-cp38-cp38-win_amd64.whl", hash = "sha256:b0ed6ad6c9640671689c2dbe6244680fe8b897c08fd1fab2228429b66c518e5e"}, - {file = "wrapt-1.14.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b3f7e671fb19734c872566e57ce7fc235fa953d7c181bb4ef138e17d607dc8a1"}, - {file = "wrapt-1.14.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:87fa943e8bbe40c8c1ba4086971a6fefbf75e9991217c55ed1bcb2f1985bd3d4"}, - {file = "wrapt-1.14.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4775a574e9d84e0212f5b18886cace049a42e13e12009bb0491562a48bb2b758"}, - {file = "wrapt-1.14.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9d57677238a0c5411c76097b8b93bdebb02eb845814c90f0b01727527a179e4d"}, - {file = "wrapt-1.14.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00108411e0f34c52ce16f81f1d308a571df7784932cc7491d1e94be2ee93374b"}, - {file = "wrapt-1.14.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d332eecf307fca852d02b63f35a7872de32d5ba8b4ec32da82f45df986b39ff6"}, - {file = "wrapt-1.14.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:01f799def9b96a8ec1ef6b9c1bbaf2bbc859b87545efbecc4a78faea13d0e3a0"}, - {file = "wrapt-1.14.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47045ed35481e857918ae78b54891fac0c1d197f22c95778e66302668309336c"}, - {file = "wrapt-1.14.0-cp39-cp39-win32.whl", hash = "sha256:2eca15d6b947cfff51ed76b2d60fd172c6ecd418ddab1c5126032d27f74bc350"}, - {file = "wrapt-1.14.0-cp39-cp39-win_amd64.whl", hash = "sha256:bb36fbb48b22985d13a6b496ea5fb9bb2a076fea943831643836c9f6febbcfdc"}, - {file = "wrapt-1.14.0.tar.gz", hash = "sha256:8323a43bd9c91f62bb7d4be74cc9ff10090e7ef820e27bfe8815c57e68261311"}, -] -yarl = [ - {file = "yarl-1.7.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f2a8508f7350512434e41065684076f640ecce176d262a7d54f0da41d99c5a95"}, - {file = "yarl-1.7.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:da6df107b9ccfe52d3a48165e48d72db0eca3e3029b5b8cb4fe6ee3cb870ba8b"}, - {file = "yarl-1.7.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a1d0894f238763717bdcfea74558c94e3bc34aeacd3351d769460c1a586a8b05"}, - {file = "yarl-1.7.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfe4b95b7e00c6635a72e2d00b478e8a28bfb122dc76349a06e20792eb53a523"}, - {file = "yarl-1.7.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c145ab54702334c42237a6c6c4cc08703b6aa9b94e2f227ceb3d477d20c36c63"}, - {file = "yarl-1.7.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ca56f002eaf7998b5fcf73b2421790da9d2586331805f38acd9997743114e98"}, - {file = "yarl-1.7.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1d3d5ad8ea96bd6d643d80c7b8d5977b4e2fb1bab6c9da7322616fd26203d125"}, - {file = "yarl-1.7.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:167ab7f64e409e9bdd99333fe8c67b5574a1f0495dcfd905bc7454e766729b9e"}, - {file = "yarl-1.7.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:95a1873b6c0dd1c437fb3bb4a4aaa699a48c218ac7ca1e74b0bee0ab16c7d60d"}, - {file = "yarl-1.7.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6152224d0a1eb254f97df3997d79dadd8bb2c1a02ef283dbb34b97d4f8492d23"}, - {file = "yarl-1.7.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:5bb7d54b8f61ba6eee541fba4b83d22b8a046b4ef4d8eb7f15a7e35db2e1e245"}, - {file = "yarl-1.7.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:9c1f083e7e71b2dd01f7cd7434a5f88c15213194df38bc29b388ccdf1492b739"}, - {file = "yarl-1.7.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f44477ae29025d8ea87ec308539f95963ffdc31a82f42ca9deecf2d505242e72"}, - {file = "yarl-1.7.2-cp310-cp310-win32.whl", hash = "sha256:cff3ba513db55cc6a35076f32c4cdc27032bd075c9faef31fec749e64b45d26c"}, - {file = "yarl-1.7.2-cp310-cp310-win_amd64.whl", hash = "sha256:c9c6d927e098c2d360695f2e9d38870b2e92e0919be07dbe339aefa32a090265"}, - {file = "yarl-1.7.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:9b4c77d92d56a4c5027572752aa35082e40c561eec776048330d2907aead891d"}, - {file = "yarl-1.7.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c01a89a44bb672c38f42b49cdb0ad667b116d731b3f4c896f72302ff77d71656"}, - {file = "yarl-1.7.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c19324a1c5399b602f3b6e7db9478e5b1adf5cf58901996fc973fe4fccd73eed"}, - {file = "yarl-1.7.2-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3abddf0b8e41445426d29f955b24aeecc83fa1072be1be4e0d194134a7d9baee"}, - {file = "yarl-1.7.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6a1a9fe17621af43e9b9fcea8bd088ba682c8192d744b386ee3c47b56eaabb2c"}, - {file = "yarl-1.7.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8b0915ee85150963a9504c10de4e4729ae700af11df0dc5550e6587ed7891e92"}, - {file = "yarl-1.7.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:29e0656d5497733dcddc21797da5a2ab990c0cb9719f1f969e58a4abac66234d"}, - {file = "yarl-1.7.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:bf19725fec28452474d9887a128e98dd67eee7b7d52e932e6949c532d820dc3b"}, - {file = "yarl-1.7.2-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:d6f3d62e16c10e88d2168ba2d065aa374e3c538998ed04996cd373ff2036d64c"}, - {file = "yarl-1.7.2-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:ac10bbac36cd89eac19f4e51c032ba6b412b3892b685076f4acd2de18ca990aa"}, - {file = "yarl-1.7.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:aa32aaa97d8b2ed4e54dc65d241a0da1c627454950f7d7b1f95b13985afd6c5d"}, - {file = "yarl-1.7.2-cp36-cp36m-win32.whl", hash = "sha256:87f6e082bce21464857ba58b569370e7b547d239ca22248be68ea5d6b51464a1"}, - {file = "yarl-1.7.2-cp36-cp36m-win_amd64.whl", hash = "sha256:ac35ccde589ab6a1870a484ed136d49a26bcd06b6a1c6397b1967ca13ceb3913"}, - {file = "yarl-1.7.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a467a431a0817a292121c13cbe637348b546e6ef47ca14a790aa2fa8cc93df63"}, - {file = "yarl-1.7.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ab0c3274d0a846840bf6c27d2c60ba771a12e4d7586bf550eefc2df0b56b3b4"}, - {file = "yarl-1.7.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d260d4dc495c05d6600264a197d9d6f7fc9347f21d2594926202fd08cf89a8ba"}, - {file = "yarl-1.7.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fc4dd8b01a8112809e6b636b00f487846956402834a7fd59d46d4f4267181c41"}, - {file = "yarl-1.7.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c1164a2eac148d85bbdd23e07dfcc930f2e633220f3eb3c3e2a25f6148c2819e"}, - {file = "yarl-1.7.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:67e94028817defe5e705079b10a8438b8cb56e7115fa01640e9c0bb3edf67332"}, - {file = "yarl-1.7.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:89ccbf58e6a0ab89d487c92a490cb5660d06c3a47ca08872859672f9c511fc52"}, - {file = "yarl-1.7.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:8cce6f9fa3df25f55521fbb5c7e4a736683148bcc0c75b21863789e5185f9185"}, - {file = "yarl-1.7.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:211fcd65c58bf250fb994b53bc45a442ddc9f441f6fec53e65de8cba48ded986"}, - {file = "yarl-1.7.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c10ea1e80a697cf7d80d1ed414b5cb8f1eec07d618f54637067ae3c0334133c4"}, - {file = "yarl-1.7.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:52690eb521d690ab041c3919666bea13ab9fbff80d615ec16fa81a297131276b"}, - {file = "yarl-1.7.2-cp37-cp37m-win32.whl", hash = "sha256:695ba021a9e04418507fa930d5f0704edbce47076bdcfeeaba1c83683e5649d1"}, - {file = "yarl-1.7.2-cp37-cp37m-win_amd64.whl", hash = "sha256:c17965ff3706beedafd458c452bf15bac693ecd146a60a06a214614dc097a271"}, - {file = "yarl-1.7.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fce78593346c014d0d986b7ebc80d782b7f5e19843ca798ed62f8e3ba8728576"}, - {file = "yarl-1.7.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c2a1ac41a6aa980db03d098a5531f13985edcb451bcd9d00670b03129922cd0d"}, - {file = "yarl-1.7.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:39d5493c5ecd75c8093fa7700a2fb5c94fe28c839c8e40144b7ab7ccba6938c8"}, - {file = "yarl-1.7.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1eb6480ef366d75b54c68164094a6a560c247370a68c02dddb11f20c4c6d3c9d"}, - {file = "yarl-1.7.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ba63585a89c9885f18331a55d25fe81dc2d82b71311ff8bd378fc8004202ff6"}, - {file = "yarl-1.7.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e39378894ee6ae9f555ae2de332d513a5763276a9265f8e7cbaeb1b1ee74623a"}, - {file = "yarl-1.7.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c0910c6b6c31359d2f6184828888c983d54d09d581a4a23547a35f1d0b9484b1"}, - {file = "yarl-1.7.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6feca8b6bfb9eef6ee057628e71e1734caf520a907b6ec0d62839e8293e945c0"}, - {file = "yarl-1.7.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8300401dc88cad23f5b4e4c1226f44a5aa696436a4026e456fe0e5d2f7f486e6"}, - {file = "yarl-1.7.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:788713c2896f426a4e166b11f4ec538b5736294ebf7d5f654ae445fd44270832"}, - {file = "yarl-1.7.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:fd547ec596d90c8676e369dd8a581a21227fe9b4ad37d0dc7feb4ccf544c2d59"}, - {file = "yarl-1.7.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:737e401cd0c493f7e3dd4db72aca11cfe069531c9761b8ea474926936b3c57c8"}, - {file = "yarl-1.7.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:baf81561f2972fb895e7844882898bda1eef4b07b5b385bcd308d2098f1a767b"}, - {file = "yarl-1.7.2-cp38-cp38-win32.whl", hash = "sha256:ede3b46cdb719c794427dcce9d8beb4abe8b9aa1e97526cc20de9bd6583ad1ef"}, - {file = "yarl-1.7.2-cp38-cp38-win_amd64.whl", hash = "sha256:cc8b7a7254c0fc3187d43d6cb54b5032d2365efd1df0cd1749c0c4df5f0ad45f"}, - {file = "yarl-1.7.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:580c1f15500e137a8c37053e4cbf6058944d4c114701fa59944607505c2fe3a0"}, - {file = "yarl-1.7.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3ec1d9a0d7780416e657f1e405ba35ec1ba453a4f1511eb8b9fbab81cb8b3ce1"}, - {file = "yarl-1.7.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3bf8cfe8856708ede6a73907bf0501f2dc4e104085e070a41f5d88e7faf237f3"}, - {file = "yarl-1.7.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1be4bbb3d27a4e9aa5f3df2ab61e3701ce8fcbd3e9846dbce7c033a7e8136746"}, - {file = "yarl-1.7.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:534b047277a9a19d858cde163aba93f3e1677d5acd92f7d10ace419d478540de"}, - {file = "yarl-1.7.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6ddcd80d79c96eb19c354d9dca95291589c5954099836b7c8d29278a7ec0bda"}, - {file = "yarl-1.7.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9bfcd43c65fbb339dc7086b5315750efa42a34eefad0256ba114cd8ad3896f4b"}, - {file = "yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794"}, - {file = "yarl-1.7.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044daf3012e43d4b3538562da94a88fb12a6490652dbc29fb19adfa02cf72eac"}, - {file = "yarl-1.7.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:368bcf400247318382cc150aaa632582d0780b28ee6053cd80268c7e72796dec"}, - {file = "yarl-1.7.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:bab827163113177aee910adb1f48ff7af31ee0289f434f7e22d10baf624a6dfe"}, - {file = "yarl-1.7.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0cba38120db72123db7c58322fa69e3c0efa933040ffb586c3a87c063ec7cae8"}, - {file = "yarl-1.7.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:59218fef177296451b23214c91ea3aba7858b4ae3306dde120224cfe0f7a6ee8"}, - {file = "yarl-1.7.2-cp39-cp39-win32.whl", hash = "sha256:1edc172dcca3f11b38a9d5c7505c83c1913c0addc99cd28e993efeaafdfaa18d"}, - {file = "yarl-1.7.2-cp39-cp39-win_amd64.whl", hash = "sha256:797c2c412b04403d2da075fb93c123df35239cd7b4cc4e0cd9e5839b73f52c58"}, - {file = "yarl-1.7.2.tar.gz", hash = "sha256:45399b46d60c253327a460e99856752009fcee5f5d3c80b2f7c0cae1c38d56dd"}, -] -zipp = [ - {file = "zipp-3.8.0-py3-none-any.whl", hash = "sha256:c4f6e5bbf48e74f7a38e7cc5b0480ff42b0ae5178957d564d18932525d5cf099"}, - {file = "zipp-3.8.0.tar.gz", hash = "sha256:56bf8aadb83c24db6c4b577e13de374ccfb67da2078beba1d037c17980bf43ad"}, -] +rsa = [] +scikit-learn = [] +scipy = [] +send2trash = [] +setuptools-scm = [] +six = [] +sniffio = [] +snowballstemmer = [] +soupsieve = [] +sphinx = [] +sphinxcontrib-applehelp = [] +sphinxcontrib-devhelp = [] +sphinxcontrib-htmlhelp = [] +sphinxcontrib-jsmath = [] +sphinxcontrib-qthelp = [] +sphinxcontrib-serializinghtml = [] +sqlalchemy = [] +stack-data = [] +stevedore = [] +tables = [] +tensorboard = [] +tensorboard-data-server = [] +tensorboard-plugin-wit = [] +tensorboardx = [] +tensorflow = [] +tensorflow-estimator = [] +tensorflow-io-gcs-filesystem = [] +tensorflow-serving-api = [] +termcolor = [] +terminado = [] +threadpoolctl = [] +timeout-decorator = [] +tinycss2 = [] +toml = [] +tomli = [] +tomlkit = [] +torch = [] +torchmetrics = [] +tornado = [] +tqdm = [] +traitlets = [] +typed-ast = [] +typing-extensions = [] +urllib3 = [] +wcwidth = [] +webencodings = [] +websocket-client = [] +werkzeug = [] +widgetsnbextension = [] +wrapt = [] +yarl = [] +zipp = [] diff --git a/pyproject.toml b/pyproject.toml index 8b4f7be..c070871 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,11 +1,14 @@ [tool.poetry] name = "aizynthfinder" -version = "3.4.0" +version = "3.6.0" description = "Retrosynthetic route finding using neural network guided Monte-Carlo tree search" authors = ["Molecular AI group "] license = "MIT" include = ["aizynthfinder/data/*.yml", "aizynthfinder/data/templates/*"] readme = "README.md" +homepage = "https://github.com/MolecularAI/aizynthfinder/" +repository = "https://github.com/MolecularAI/aizynthfinder/" +documentation = "https://molecularai.github.io/aizynthfinder/" [tool.pytest.ini_options] mccabe-complexity = 9 @@ -13,34 +16,34 @@ mccabe-complexity = 9 [tool.pylint.'MESSAGES CONTROL'] max-line-length = 120 max-args = 6 -max-attributes = 15 +max-attributes = 20 min-public-methods = 0 -disable = "W1201, W1203, R0401, W0707, W0221, W0603, R0801, R1735, W1514, C0209, W0237, R1732, W0602, typecheck" +disable = "W3101, R0022, W1201, W1203, R0401, W0707, W0221, W0603, R0801, R1735, W1514, C0209, W0237, R1732, W0602, R0914, typecheck" [tool.poetry.dependencies] -python = ">=3.7,<3.10" -deprecated = "^1.2.10" -grpcio = "^1.24.0" +python = ">=3.8,<3.10" ipywidgets = "^7.5.1" jinja2 = "^3.0.0" jupyter = "^1.0.0" jupytext = "^1.3.3" -matplotlib = "^3.0.0" -more-itertools = "^8.2.0" networkx = "^2.4" +more-itertools = "^8.2.0" +deprecated = "^1.2.10" pandas = "^1.0.0" pillow = "^9.0.0" -pymongo = "^3.10.1" -rdchiral = "^1.0.0" requests = "^2.23.0" -scikit-learn = ">0.21.0" -scipy = "^1.0" +rdchiral = "^1.0.0" +rdkit = "^2022.3.3" tables = "^3.6.1" tensorflow = "^2.8.0" -tensorflow-serving-api = "^2.1.0" tqdm = "^4.42.1" -timeout-decorator = "^0.5.0" -route_distances = { url = "https://github.com/MolecularAI/route-distances/archive/refs/tags/v1.0.1.tar.gz" } +grpcio = {version = "^1.24.0", optional=true} +tensorflow-serving-api = {version = "^2.1.0", optional=true} +pymongo = {version = "^3.10.1", optional=true} +route-distances = {version = "^1.1.0", optional=true} +scipy = {version = "^1.0", optional=true} +matplotlib = {version = "^3.0.0", optional=true} +timeout-decorator = {version = "^0.5.0", optional=true} [tool.poetry.dev-dependencies] black = "^22.0.0" @@ -55,19 +58,16 @@ sphinx = "^4.0.0" mypy = "^0.800" pylint = "^2.7.0" +[tool.poetry.extras] +all = ["grpcio", "tensorflow-serving-api", "pymongo", "route-distances", "scipy", "matplotlib", "timeout-decorator"] + [tool.poetry.scripts] aizynthapp = "aizynthfinder.interfaces.aizynthapp:main" aizynthcli = "aizynthfinder.interfaces.aizynthcli:main" -aizynth_training = "aizynthfinder.training.training:main" cat_aizynth_output = "aizynthfinder.tools.cat_output:main" download_public_data = "aizynthfinder.tools.download_public_data:main" -make_false_products = "aizynthfinder.training.make_false_products:main" -preprocess_expansion = "aizynthfinder.training.preprocess_expansion:main" -preprocess_filter = "aizynthfinder.training.preprocess_filter:main" -preprocess_recommender = "aizynthfinder.training.preprocess_recommender:main" -preprocess_rollout = "aizynthfinder.training.preprocess_expansion:main" smiles2stock = "aizynthfinder.tools.make_stock:main" [build-system] requires = ["poetry_core>=1.0.0"] -build-backend = "poetry.core.masonry.api" +build-backend = "poetry.core.masonry.api" \ No newline at end of file diff --git a/tests/chem/test_reaction.py b/tests/chem/test_reaction.py index 8d3f2bc..38048a9 100644 --- a/tests/chem/test_reaction.py +++ b/tests/chem/test_reaction.py @@ -41,6 +41,16 @@ def test_retro_reaction(get_action): reaction.reaction_smiles() == "CCCCOc1ccc(CC(=O)N(C)O)cc1>>CCCCOc1ccc(CC(=O)Cl)cc1.CNO" ) + assert ( + reaction.mapped_reaction_smiles().split(">>")[0] + == "[CH3:1][CH2:2][CH2:3][CH2:4][O:5][c:6]1[cH:7][cH:8][c:9]([CH2:10]" + "[C:11](=[O:12])[N:13]([CH3:14])[OH:15])[cH:16][cH:17]1" + ) + assert ( + reaction.mapped_reaction_smiles().split(">>")[1] + == "[CH3:1][CH2:2][CH2:3][CH2:4][O:5][c:6]1[cH:7][cH:8][c:9]([CH2:10]" + "[C:11](=[O:12])[Cl:18])[cH:16][cH:17]1.[NH:13]([CH3:14])[OH:15]" + ) reaction = get_action(applicable=False) assert not reaction.reactants @@ -70,13 +80,6 @@ def test_retro_reaction_with_rdkit(get_action): assert not reaction.reactants -def test_retro_reaction_with_rdkit_exception(get_action, mocker): - reaction = get_action(applicable=True, use_rdchiral=False) - mocker.patch("aizynthfinder.chem.Molecule.sanitize", side_effect=MoleculeException) - - assert not reaction.reactants - - def test_retro_reaction_fingerprint(get_action): reaction = get_action() @@ -111,7 +114,27 @@ def test_smiles_based_retroreaction(): assert len(reaction.reactants) == 1 assert reaction.reactants[0][0].smiles == "CC(=O)O" assert reaction.reactants[0][1].smiles == "CN" - assert reaction.smiles == "CNC(C)=O>>CC(=O)O.CN" + assert reaction.reaction_smiles() == "CNC(C)=O>>CC(=O)O.CN" + assert ( + reaction.mapped_reaction_smiles() + == "[CH3:1][NH:2][C:3]([CH3:4])=[O:5]>>[CH3:6][C:7](=[O:8])[OH:9].[CH3:10][NH2:11]" + ) + + +def test_smiles_based_retroreaction_w_mapping(): + mol = TreeMolecule(smiles="CNC(C)=O", parent=None, sanitize=True) + reaction = SmilesBasedRetroReaction( + mol, reactants_str="[CH3:5]C(=O)O.CN", mapped_prod_smiles="[CH3:5]NC(C)=O" + ) + + assert len(reaction.reactants) == 1 + assert reaction.reactants[0][0].smiles == "CC(=O)O" + assert reaction.reactants[0][1].smiles == "CN" + assert reaction.reaction_smiles() == "CNC(C)=O>>CC(=O)O.CN" + assert ( + reaction.mapped_reaction_smiles() + == "[CH3:1][NH:2][C:3]([CH3:4])=[O:5]>>[CH3:1][C:6](=[O:7])[OH:8].[CH3:9][NH2:10]" + ) def test_create_fixed_reaction(): @@ -145,3 +168,86 @@ def test_reaction_hash(setup_linear_reaction_tree): hash_ = hash_reactions(reactions, sort=False) assert hash_ == "567c23da4673b8b2519aeafda9b26ae949ad3e24f570968ee5f80878" + + +def test_create_atom_tracking(): + mol = TreeMolecule(smiles="[C:1][N:2]C(C)=O", parent=None) + + assert mol.tracked_atom_indices == {1: 0, 2: 1} + + +def test_inherit_atom_tracking(): + mol = TreeMolecule(smiles="[C:1][N:2]C(C)=O", parent=None, sanitize=True) + reaction = SmilesBasedRetroReaction(mol, reactants_str="[C:1]C(=O)O.C[N:2]") + + assert reaction.reactants[0][0].tracked_atom_indices == {1: 0, 2: None} + assert reaction.reactants[0][1].tracked_atom_indices == {1: None, 2: 1} + + +def test_inherit_atom_tracking_rdchiral(): + smi = "CCCCOc1ccc(C[C:1](=O)[N:2](C)O)cc1" + mol = TreeMolecule(smiles=smi, parent=None) + smarts = ( + "([#8:4]-[N;H0;D3;+0:5](-[C;D1;H3:6])-[C;H0;D3;+0:1](-[C:2])=[O;D1;H0:3])" + ">>(Cl-[C;H0;D3;+0:1](-[C:2])=[O;D1;H0:3]).([#8:4]-[NH;D2;+0:5]-[C;D1;H3:6])" + ) + rxn = TemplatedRetroReaction(mol, smarts=smarts) + + assert rxn.reactants[0][0].tracked_atom_indices == {1: 10, 2: None} + assert rxn.reactants[0][1].tracked_atom_indices == {1: None, 2: 0} + + +def test_inherit_atom_tracking_rdkit(): + smi = "CCCCOc1ccc(C[C:1](=O)[N:2](C)O)cc1" + mol = TreeMolecule(smiles=smi, parent=None) + smarts = ( + "([#8:4]-[N;H0;D3;+0:5](-[C;D1;H3:6])-[C;H0;D3;+0:1](-[C:2])=[O;D1;H0:3])" + ">>(Cl-[C;H0;D3;+0:1](-[C:2])=[O;D1;H0:3]).([#8:4]-[NH;D2;+0:5]-[C;D1;H3:6])" + ) + rxn = TemplatedRetroReaction(mol, smarts=smarts, use_rdchiral=False) + + assert rxn.reactants[0][0].tracked_atom_indices == {1: 1, 2: None} + assert rxn.reactants[0][1].tracked_atom_indices == {1: None, 2: 1} + + +def test_inherit_atom_tracking_rdchiral_growing(): + mol = TreeMolecule(parent=None, smiles="CN1C(=O)C2CNCCN2c2ccccc21", sanitize=True) + smarts = ( + "[C:2]-[NH;D2;+0:1]-[C:3]>>C-C(-C)(-C)-O-C(=O)-[N;H0;D3;+0:1](-[C:2])-[C:3]" + ) + rxn = TemplatedRetroReaction(mol, smarts=smarts) + + assert all( + atom.GetAtomMapNum() > 0 and atom.GetAtomMapNum() < 900 + for atom in rxn.reactants[0][0].mapped_mol.GetAtoms() + ) + + +def test_inherit_atom_tracking_rdkit_growing(): + mol = TreeMolecule(parent=None, smiles="CN1C(=O)C2CNCCN2c2ccccc21", sanitize=True) + smarts = ( + "[C:2]-[NH;D2;+0:1]-[C:3]>>C-C(-C)(-C)-O-C(=O)-[N;H0;D3;+0:1](-[C:2])-[C:3]" + ) + rxn = TemplatedRetroReaction(mol, smarts=smarts, use_rdchiral=False) + + assert all( + atom.GetAtomMapNum() > 0 for atom in rxn.reactants[0][0].mapped_mol.GetAtoms() + ) + + +def test_inherit_atom_tracking_smiles_growing(): + mol = TreeMolecule(parent=None, smiles="c1ccc(-c2ccccc2)cc1", sanitize=True) + rxn = SmilesBasedRetroReaction( + mol=mol, + reactants_str="Cl[c:5]1[cH:6][cH:7][cH:8][cH:9][cH:10]1.Cl[c:1]1[cH:2][cH:3][cH:4][cH:11][cH:12]1", + mapped_prod_smiles="[cH:1]1[cH:2][cH:3][c:4](-[c:5]2[cH:6][cH:7][cH:8][cH:9][cH:10]2)[cH:11][cH:12]1", + ) + + assert ( + rxn.reactants[0][0].mapped_smiles + == "[c:5]1([Cl:13])[cH:6][cH:7][cH:8][cH:9][cH:10]1" + ) + assert ( + rxn.reactants[0][1].mapped_smiles + == "[c:1]1([Cl:14])[cH:2][cH:3][cH:4][cH:11][cH:12]1" + ) diff --git a/tests/chem/test_serialization.py b/tests/chem/test_serialization.py index cee497d..6b807fa 100644 --- a/tests/chem/test_serialization.py +++ b/tests/chem/test_serialization.py @@ -33,12 +33,14 @@ def test_add_tree_mol(): "class": "TreeMolecule", "parent": id(mol1), "transform": 2, + "tracked_atom_indices": {}, }, id(mol1): { "smiles": "CCC", "class": "TreeMolecule", "parent": None, "transform": 1, + "tracked_atom_indices": {}, }, } diff --git a/tests/conftest.py b/tests/conftest.py index 74f59b9..94982c2 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -317,12 +317,9 @@ def wrapper(scorer=None): def setup_analysis_andor_tree(default_config, shared_datadir, setup_stock): # noqa setup_stock( default_config, - "Nc1ccc(NC(=S)Nc2ccccc2)cc1", - "Cc1ccc2nc3ccccc3c(Cl)c2c1", - "Nc1ccccc1", - "Nc1ccc(N=C=S)cc1", - "Cc1ccc2nc3ccccc3c(Br)c2c1", - "Nc1ccc(Br)cc1", + "O=C(Cl)c1ccc(F)cc1", + "CN1CCC(C(=O)Cl)CC1", + "Nc1cccc(I)c1F", ) class BasicAndOrTree(AndOrSearchTreeBase): diff --git a/tests/context/test_policy.py b/tests/context/test_policy.py index 86fd404..49dce5d 100644 --- a/tests/context/test_policy.py +++ b/tests/context/test_policy.py @@ -52,6 +52,25 @@ def test_load_expansion_policy(default_config, setup_template_expansion_policy): expansion_policy.load(5) +def test_load_expansion_policy_templates_from_csv( + default_config, mock_keras_model, tmpdir +): + templates_filename = str(tmpdir / "temp.csv") + + with open(templates_filename, "w") as fileobj: + fileobj.write("template_index\ttemplate\tmetadata\n") + fileobj.write("0\tAAA\tmetadata1\n") + fileobj.write("1\tBBB\tmetadata2\n") + fileobj.write("2\tCCC\tmetadata3\n") + + strategy = TemplateBasedExpansionStrategy( + "default", default_config, source="dummy.hdf5", templatefile=templates_filename + ) + + assert len(strategy.templates) == 3 + assert list(strategy.templates.columns) == ["template", "metadata"] + + def test_load_expansion_policy_from_config_files( default_config, mock_keras_model, create_dummy_templates ): diff --git a/tests/data/and_or_tree.json b/tests/data/and_or_tree.json index ab5b377..a337d21 100644 --- a/tests/data/and_or_tree.json +++ b/tests/data/and_or_tree.json @@ -1,136 +1,3110 @@ { "tree": { - "mol": 140605332219984, + "mol": 139643154371392, "children": [ { "reaction": { - "mol": 140605332219984, - "smarts": "([c:8]-[NH;D2;+0:7]-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1)>>(Cl-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1).([NH2;D1;+0:7]-[c:8])", + "mol": 139643154371392, "index": 0, - "metadata": {} + "metadata": {}, + "smarts": "([O;D1;H0:2]=[C;H0;D3;+0:1](-[c:3])-[NH;D2;+0:4]-[c:5])>>(Cl-[C;H0;D3;+0:1](=[O;D1;H0:2])-[c:3]).([NH2;D1;+0:4]-[c:5])", + "reactants": [ + [ + 139643166203664, + 139643171528960 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" }, "children": [ { - "mol": 140605332201936, + "mol": 139643166203664, "children": [] }, { - "mol": 140605332205072, - "children": [] - } - ] - }, - { - "reaction": { - "mol": 140605332219984, - "smarts": "([S;D1;H0:3]=[C;H0;D3;+0:4](-[NH;D2;+0:1]-[c:2])-[NH;D2;+0:5]-[c:6])>>([NH2;D1;+0:1]-[c:2]).([S;D1;H0:3]=[C;H0;D2;+0:4]=[N;H0;D2;+0:5]-[c:6])", - "index": 1, - "metadata": {} - }, - "children": [ - { - "mol": 140598039857296, + "mol": 139643171528960, "children": [ { "reaction": { - "mol": 140598039857296, - "smarts": "([c:8]-[NH;D2;+0:7]-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1)>>(Cl-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1).([NH2;D1;+0:7]-[c:8])", + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=[N+;H0;D3:1](-[O-])-[c:2])", + "reactants": [ + [ + 139643166201504 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166201504, + "children": [ + { + "reaction": { + "mol": 139643166201504, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[N;H0;D3;+0:3](-[C:4])-[CH3;D1;+0:1])>>(I-[CH3;D1;+0:1]).([C:2]-[NH;D2;+0:3]-[C:4])", + "reactants": [ + [ + 139643162454288 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643162454288, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643166201504, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[C;H0;D3;+0:2](=[O;H0;D1;+0:3])-[c:4])>>([C:1]-[CH;D3;+0:2](-[OH;D1;+0:3])-[c:4])", + "reactants": [ + [ + 139643162454624 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643162454624, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643166201504, + "index": 0, + "metadata": {}, + "smarts": "([#7:2]-[CH3;D1;+0:1])>>(C-C(-C)(-C)-O-[C;H0;D3;+0:1](=O)-[#7:2])", + "reactants": [ + [ + 139643162455056 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643162455056, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643166201504, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[N;H0;D3;+0:2](-[C:3])-[C;H3;D1;+0])>>([C:1]-[NH;D2;+0:2]-[C:3])", + "reactants": [ + [ + 139643162454144 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643162454144, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643166201504, + "index": 0, + "metadata": {}, + "smarts": "([#7:2]-[CH3;D1;+0:1])>>(O=[C;H0;D3;+0:1](-[#7:2])-O-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643162454048 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643162454048, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643166201504, + "index": 0, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643162455488 + ], + [ + 139643162455728 + ], + [ + 139643162455968 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643162455488, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643166201504, + "index": 1, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643162455488 + ], + [ + 139643162455728 + ], + [ + 139643162455968 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643162455728, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643166201504, + "index": 2, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643162455488 + ], + [ + 139643162455728 + ], + [ + 139643162455968 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643162455968, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643166201504, + "index": 0, + "metadata": {}, + "smarts": "([C:3]-[N;H0;D3;+0:4](-[C:5])-[CH2;D2;+0:1]-[C:2])>>(Cl-[CH2;D2;+0:1]-[C:2]).([C:3]-[NH;D2;+0:4]-[C:5])", + "reactants": [ + [ + 139643166201120 + ], + [ + 139643166202416 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166201120, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643166201504, + "index": 1, + "metadata": {}, + "smarts": "([C:3]-[N;H0;D3;+0:4](-[C:5])-[CH2;D2;+0:1]-[C:2])>>(Cl-[CH2;D2;+0:1]-[C:2]).([C:3]-[NH;D2;+0:4]-[C:5])", + "reactants": [ + [ + 139643166201120 + ], + [ + 139643166202416 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166202416, + "children": [] + } + ] + } + ] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[N;H0;D3;+0:3](-[C:4])-[CH3;D1;+0:1])>>(O=[CH2;D1;+0:1]).([C:2]-[NH;D2;+0:3]-[C:4])", + "reactants": [ + [ + 139643173163552, + 139643173165280 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173163552, + "children": [] + }, + { + "mol": 139643173165280, + "children": [ + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(C-C(-C)(-C)-O-C(=O)-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643162452464 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643162452464, + "children": [ + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=[N+;H0;D3:1](-[O-])-[c:2])", + "reactants": [ + [ + 139643166163824 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166163824, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[C;H0;D3;+0:1](=[O;D1;H0:3])-[c;H0;D3;+0:5](:[c:4]):[c:6])>>(C-O-N(-C)-[C;H0;D3;+0:1](-[C:2])=[O;D1;H0:3]).([c:4]:[cH;D2;+0:5]:[c:6])", + "reactants": [ + [ + 139643164870880, + 139643164872128 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164870880, + "children": [] + }, + { + "mol": 139643164872128, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[N;H0;D2;+0:2]=C(-c1:c:c:c:c:c:1)-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643171738528 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171738528, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(-C)(-C)-O-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643164872464 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164872464, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(F-C(-F)(-F)-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643171738432 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171738432, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Br-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643171739248 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171739248, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643171739344 + ], + [ + 139643171739536 + ], + [ + 139643171739632 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171739344, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 1, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643171739344 + ], + [ + 139643171739536 + ], + [ + 139643171739632 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171739536, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 2, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643171739344 + ], + [ + 139643171739536 + ], + [ + 139643171739632 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171739632, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643171738048 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171738048, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:4]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(F-[c;H0;D3;+0:1](:[c:2]):[c:3]).([NH3;D0;+0:4])", + "reactants": [ + [ + 139643171740112, + 139643171740688 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171740112, + "children": [] + }, + { + "mol": 139643171740688, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=C(-O-C-c1:c:c:c:c:c:1)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643171740400 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171740400, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(-C)(-C)-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643171741456 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171741456, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[N;H0;D3;+0:2](-C-c1:c:c:c:c:c:1)-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643171741024 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171741024, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(O-C(=O)-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643171740928 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171740928, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[NH;D2;+0:2]-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643171740640 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171740640, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[C;H0;D3;+0:2](=[O;H0;D1;+0:3])-[c:4])>>([C:1]-[CH;D3;+0:2](-[OH;D1;+0:3])-[c:4])", + "reactants": [ + [ + 139643171740880 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171740880, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643171740016 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171740016, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:4]-[c:5].[c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3].O=[N+;H0;D3:4](-[O-])-[c:5])", + "reactants": [ + [ + 139643164869104 + ], + [ + 139643164869056 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164869104, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 1, + "metadata": {}, + "smarts": "([NH2;D1;+0:4]-[c:5].[c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3].O=[N+;H0;D3:4](-[O-])-[c:5])", + "reactants": [ + [ + 139643164869104 + ], + [ + 139643164869056 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164869056, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:5]-[c:4]:[cH;D2;+0:3]:[cH;D2;+0:1]:[c:2])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c;H0;D3;+0:3](-Cl):[c:4]-[N+;H0;D3:5](=O)-[O-])", + "reactants": [ + [ + 139643173070016 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173070016, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:4]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Br-[c;H0;D3;+0:1](:[c:2]):[c:3]).([NH4+;D0:4])", + "reactants": [ + [ + 139643171739392, + 139643164870496 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171739392, + "children": [] + }, + { + "mol": 139643164870496, + "children": [] + } + ] + } + ] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=[N+;H0;D3:1](-[O-])-[c:2])", + "reactants": [ + [ + 139643162692720 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643162692720, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[NH;D2;+0:2]-[C:3])>>([C:1]-[N;H0;D3;+0:2](-[C:3])-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643162692240 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643162692240, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(O=C(-O-C-c1:c:c:c:c:c:1)-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643162690464 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643162690464, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(-C)(-C)-O-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643164991936 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164991936, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(C-C(=O)-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643162692624 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643162692624, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643164991840 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164991840, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(F-C(-F)(-F)-C(=O)-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643164991984 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164991984, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(C-C-O-C(=O)-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643164993136 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164993136, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(F-C(-F)(-F)-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643164992800 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164992800, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=C-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643164992944 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164992944, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3].[NH2;D1;+0:4]-[c:5])>>(C-C(-C)(-C)-O-C(=O)-[N;H0;D3;+0:1](-[C:2])-[C:3].C-C(-C)(-C)-O-C(=O)-[NH;D2;+0:4]-[c:5])", + "reactants": [ + [ + 139643164993280 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164993280, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(-C)(-C)-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643164992848 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164992848, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643164994720 + ], + [ + 139643164994864 + ], + [ + 139643164992512 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164994720, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 1, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643164994720 + ], + [ + 139643164994864 + ], + [ + 139643164992512 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164994864, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 2, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643164994720 + ], + [ + 139643164994864 + ], + [ + 139643164992512 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164992512, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(O-C(=O)-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643164992080 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164992080, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:4]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(F-[c;H0;D3;+0:1](:[c:2]):[c:3]).([NH3;D0;+0:4])", + "reactants": [ + [ + 139643164995392, + 139643164995248 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164995392, + "children": [] + }, + { + "mol": 139643164995248, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=C(-O-C-c1:c:c:c:c:c:1)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643155805712 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643155805712, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(C-C-C-C-O-C(=O)-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643164856432 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164856432, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:2](:[c:1]):[c:3])>>([c:1]:[cH;D2;+0:2]:[c:3])", + "reactants": [ + [ + 139643164857152 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164857152, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(O=C(-[O-])-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643164856960 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164856960, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(O=C(-[N;H0;D3;+0:1](-[C:2])-[C:3])-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643164857104 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164857104, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[NH;D2;+0:2]-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643164993712 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164993712, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[N;H0;D2;+0:2]=C(-c1:c:c:c:c:c:1)-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643164993664 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164993664, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[CH;D3;+0:2]1-[CH2;D2;+0:3]-[CH2;D2;+0:4]-[NH;D2;+0:5]-[CH2;D2;+0:6]-[CH2;D2;+0:7]-1)>>([C:1]-[c;H0;D3;+0:2]1:[cH;D2;+0:3]:[cH;D2;+0:4]:[n;H0;D2;+0:5]:[cH;D2;+0:6]:[cH;D2;+0:7]:1)", + "reactants": [ + [ + 139643164994192 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164994192, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([F;H0;D1;+0]-[c;H0;D3;+0:2](:[c:1]):[c:3])>>([c:1]:[cH;D2;+0:2]:[c:3])", + "reactants": [ + [ + 139643166164976 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166164976, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(C-C-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643171531312 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643171531312, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643164994768 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643164994768, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[C;H0;D3;+0:1](=[O;D1;H0:3])-[c;H0;D3;+0:5](:[c:4]):[c:6])>>(C-O-N(-C)-[C;H0;D3;+0:1](-[C:2])=[O;D1;H0:3]).([c:4]:[cH;D2;+0:5]:[c:6])", + "reactants": [ + [ + 139643166164112, + 139643166166464 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166164112, + "children": [] + }, + { + "mol": 139643166166464, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Br-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643166164448 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166164448, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(F-c1:c:c:c(-C-N-c2:n:c(-[N;H0;D3;+0:1](-[C:2])-[C:3]):n:c:c:2-c2:c:c:c(-F):c:c:2-F):c(-F):c:1)", + "reactants": [ + [ + 139643166163392 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166163392, + "children": [] + } + ] + } + ] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643173069200 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173069200, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(-C)(-C)-O-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643173069008 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173069008, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(F-C(-F)(-F)-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643173069440 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173069440, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[N;H0;D2;+0:2]=C(-c1:c:c:c:c:c:1)-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643173166960 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173166960, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, "index": 0, - "metadata": {} + "metadata": {}, + "smarts": "([C:2]-[N;H0;D3;+0:3](-[C:4])-[CH3;D1;+0:1])>>(I-[CH3;D1;+0:1]).([C:2]-[NH;D2;+0:3]-[C:4])", + "reactants": [ + [ + 139643173069680, + 139643173069968 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" }, "children": [ { - "mol": 140598039857616, + "mol": 139643173069680, "children": [] }, { - "mol": 140605332368528, + "mol": 139643173069968, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(-C)(-C)-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643173070400 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173070400, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643173070880 + ], + [ + 139643173070832 + ], + [ + 139643173068960 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173070880, "children": [] } ] }, { "reaction": { - "mol": 140598039857296, - "smarts": "([c:2]:[c;H0;D3;+0:1](:[c:3])-[NH;D2;+0:4]-[c:5])>>(Br-[c;H0;D3;+0:1](:[c:2]):[c:3]).([NH2;D1;+0:4]-[c:5])", + "mol": 139643171528960, "index": 1, - "metadata": {} + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643173070880 + ], + [ + 139643173070832 + ], + [ + 139643173068960 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173070832, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 2, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643173070880 + ], + [ + 139643173070832 + ], + [ + 139643173068960 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173068960, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[CH;D3;+0:1](-[C:3])-[C;H0;D3;+0:4](=[O;H0;D1;+0:6])-[c:5])>>(Cl-[CH;D3;+0:1](-[C:2])-[C:3]).(N#[C;H0;D2;+0:4]-[c:5]).([OH2;D0;+0:6])", + "reactants": [ + [ + 139643173070448, + 139643173070736, + 139643173069632 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" }, "children": [ { - "mol": 140605332368656, + "mol": 139643173070448, + "children": [] + }, + { + "mol": 139643173070736, "children": [] }, { - "mol": 140602867801296, + "mol": 139643173069632, "children": [] } ] - } - ] - }, - { - "mol": 140605332204496, - "children": [] - } - ] - } - ] - }, - "molecules": { - "140605332219984": { - "smiles": "Cc1ccc2nc3ccccc3c(Nc3ccc(NC(=S)Nc4ccccc4)cc3)c2c1", - "class": "TreeMolecule", - "parent": null, - "transform": 0 + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([#7:2]-[CH3;D1;+0:1])>>(C-C(-C)(-C)-O-[C;H0;D3;+0:1](=O)-[#7:2])", + "reactants": [ + [ + 139643173071264 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173071264, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643173071600 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173071600, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=C(-O-C-c1:c:c:c:c:c:1)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643173072032 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173072032, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Br-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643173070592 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173070592, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[C;H0;D3;+0:1](=[O;D1;H0:3])-[c;H0;D3;+0:5](:[c:4]):[c:6])>>(C-O-N(-C)-[C;H0;D3;+0:1](-[C:2])=[O;D1;H0:3]).([c:4]:[cH;D2;+0:5]:[c:6])", + "reactants": [ + [ + 139643173070544, + 139643173070064 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173070544, + "children": [] + }, + { + "mol": 139643173070064, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[NH;D2;+0:2]-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643173072272 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173072272, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(O-C(=O)-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643173072320 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173072320, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:4]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(F-[c;H0;D3;+0:1](:[c:2]):[c:3]).([NH3;D0;+0:4])", + "reactants": [ + [ + 139643172995808, + 139643172995136 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643172995808, + "children": [] + }, + { + "mol": 139643172995136, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[N;H0;D3;+0:2](-[C:3])-[C;H3;D1;+0])>>([C:1]-[NH;D2;+0:2]-[C:3])", + "reactants": [ + [ + 139643173072224 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173072224, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=C-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643172995568 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643172995568, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[N;H0;D3;+0:3](-[C:4])-[CH3;D1;+0:1])>>(O-[CH3;D1;+0:1]).([C:2]-[NH;D2;+0:3]-[C:4])", + "reactants": [ + [ + 139643173071648, + 139643173071360 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173071648, + "children": [] + }, + { + "mol": 139643173071360, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[C;H0;D3;+0:2](=[O;H0;D1;+0:3])-[c:4])>>([C:1]-[CH;D3;+0:2](-[OH;D1;+0:3])-[c:4])", + "reactants": [ + [ + 139643172995856 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643172995856, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:2](:[c:1]):[c:3])>>([c:1]:[cH;D2;+0:2]:[c:3])", + "reactants": [ + [ + 139643172995472 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643172995472, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[C;H0;D3;+0:1](=[O;D1;H0:3])-[c;H0;D3;+0:4](:[c:5]):[c:6])>>(Cl-[C;H0;D3;+0:1](-[C:2])=[O;D1;H0:3]).(I-[c;H0;D3;+0:4](:[c:5]):[c:6])", + "reactants": [ + [ + 139643173164800, + 139643173164224 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173164800, + "children": [] + }, + { + "mol": 139643173164224, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:5]-[c:4]:[cH;D2;+0:3]:[cH;D2;+0:1]:[c:2])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c;H0;D3;+0:3](-Cl):[c:4]-[N+;H0;D3:5](=O)-[O-])", + "reactants": [ + [ + 139643173163312 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173163312, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[N;H0;D3;+0:2](-C-c1:c:c:c:c:c:1)-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643173164848 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643173164848, + "children": [] + } + ] + } + ] + } + ] + }, + { + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([O;D1;H0:2]=[C;H0;D3;+0:1](-[c:3])-[NH;D2;+0:4]-[c:5])>>(O-[C;H0;D3;+0:1](=[O;D1;H0:2])-[c:3]).([NH2;D1;+0:4]-[c:5])", + "reactants": [ + [ + 139643157042560, + 139643157043712 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643157042560, + "children": [] + }, + { + "mol": 139643157043712, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[N;H0;D3;+0:3](-[C:4])-[CH3;D1;+0:1])>>(O=[CH2;D1;+0:1]).([C:2]-[NH;D2;+0:3]-[C:4])", + "reactants": [ + [ + 139643166200256, + 139643166201936 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166200256, + "children": [] + }, + { + "mol": 139643166201936, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([#7:2]-[CH3;D1;+0:1])>>(C-C(-C)(-C)-O-[C;H0;D3;+0:1](=O)-[#7:2])", + "reactants": [ + [ + 139643166202032 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166202032, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[N;H0;D3;+0:3](-[C:4])-[CH3;D1;+0:1])>>(I-[CH3;D1;+0:1]).([C:2]-[NH;D2;+0:3]-[C:4])", + "reactants": [ + [ + 139643166200736, + 139643166203376 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166200736, + "children": [] + }, + { + "mol": 139643166203376, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[C;H0;D3;+0:2](=[O;H0;D1;+0:3])-[c:4])>>([C:1]-[CH;D3;+0:2](-[OH;D1;+0:3])-[c:4])", + "reactants": [ + [ + 139643166200976 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166200976, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([#7:2]-[CH3;D1;+0:1])>>(O=[C;H0;D3;+0:1](-[#7:2])-O-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643166200112 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166200112, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[CH;D3;+0:1](-[C:3])-[C;H0;D3;+0:4](=[O;H0;D1;+0:6])-[c:5])>>(Cl-[CH;D3;+0:1](-[C:2])-[C:3]).(N#[C;H0;D2;+0:4]-[c:5]).([OH2;D0;+0:6])", + "reactants": [ + [ + 139643166200352, + 139643166202848, + 139643166202608 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166200352, + "children": [] + }, + { + "mol": 139643166202848, + "children": [] + }, + { + "mol": 139643166202608, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([O;D1;H0:2]=[C;H0;D3;+0:1](-[NH;D2;+0:9]-[c:10])-[c:3]1:[c:4]:[c:5]:[c:6]:[c:7]:[c:8]:1)>>(C-O-[C;H0;D3;+0:1](=[O;D1;H0:2])-[c:3]1:[c:4]:[c:5]:[c:6]:[c:7]:[c:8]:1).([NH2;D1;+0:9]-[c:10])", + "reactants": [ + [ + 139643166201024, + 139643166201744 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166201024, + "children": [] + }, + { + "mol": 139643166201744, + "children": [] + } + ] + }, + { + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([C:5]-[C;H0;D3;+0:4](=[O;D1;H0:6])-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Br-[c;H0;D3;+0:1](:[c:2]):[c:3]).(C-O-N(-C)-[C;H0;D3;+0:4](-[C:5])=[O;D1;H0:6])", + "reactants": [ + [ + 139643166202176, + 139643166201600 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "mol": 139643166202176, + "children": [] + }, + { + "mol": 139643166201600, + "children": [] + } + ] + } + ] + }, + "molecules": { + "139643154371392": { + "smiles": "CN1CCC(C(=O)c2cccc(NC(=O)c3ccc(F)cc3)c2F)CC1", + "class": "TreeMolecule", + "parent": null, + "transform": 0, + "tracked_atom_indices": {} + }, + "139643166203664": { + "smiles": "[C:14](=[O:15])([c:16]1[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]1)[Cl:900]", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643171528960": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643166201504": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643162454288": { + "smiles": "[CH3:1][I:900]=[N+:13]([c:12]1[cH:11][cH:10][cH:9][c:8]([C:6]([CH:5]2[CH2:4][CH2:3][NH:2][CH2:26][CH2:25]2)=[O:7])[c:23]1[F:24])[O-:901]", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162454624": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([CH:6]([OH:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162455056": { + "smiles": "[C:1]([N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1)([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:905]", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162454144": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162454048": { + "smiles": "[C:1]([N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1)(=[O:900])[O:901][CH2:902][c:903]1[cH:904][cH:905][cH:906][cH:907][cH:908]1", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162455488": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][c:11]([Cl:900])[c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162455728": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][c:10]([Cl:900])[cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162455968": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[c:9]([Cl:900])[cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166201120": { + "smiles": "[CH3:1][NH:2][CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]1[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]1[F:24])[CH2:25][CH2:26][Cl:900]", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166202416": { + "smiles": "[CH3:1][NH:2][CH2:26][CH2:25][CH:5]([CH2:4][CH2:3][Cl:900])[C:6](=[O:7])[c:8]1[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]1[F:24]", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643173163552": { + "smiles": "[CH2:1]=[O:900]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173165280": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643162452464": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166163824": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643164870880": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[N:902]([O:901][CH3:900])[CH3:903])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643164872128": { + "smiles": "[cH:8]1[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]1[F:24]", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171738528": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N:13]=[C:900]([c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[c:907]3[cH:908][cH:909][cH:910][cH:911][cH:912]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643164872464": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171738432": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:904]([C:901]([F:900])([F:902])[F:903])=[O:905])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171739248": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([Br:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171739344": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[c:9]([Cl:900])[cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171739536": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][c:11]([Cl:900])[c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171739632": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][c:10]([Cl:900])[cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171738048": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:901]([CH3:900])=[O:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171740112": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([F:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171740688": { + "smiles": "[NH3:13]", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171740400": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:901](=[O:900])[O:902][CH2:903][c:904]3[cH:905][cH:906][cH:907][cH:908][cH:909]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171741456": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:904]([C:901]([CH3:900])([CH3:902])[CH3:903])=[O:905])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171741024": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N:13]([CH2:900][c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[CH2:907][c:908]3[cH:909][cH:910][cH:911][cH:912][cH:913]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171740928": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([C:901]([OH:900])=[O:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171740640": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][CH2:900][c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171740880": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([CH:6]([OH:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171740016": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([Cl:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643164869104": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[c:9]([Cl:900])[cH:10][cH:11][c:12]([N+:13](=[O:901])[O-:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643164869056": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][c:10]([Cl:900])[cH:11][c:12]([N+:13](=[O:901])[O-:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643173070016": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][c:10]([Cl:900])[c:11]([Cl:901])[c:12]([N+:13](=[O:902])[O-:903])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171739392": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([Br:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643164870496": { + "smiles": "[NH4+:13]", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643162692720": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162692240": { + "smiles": "[N:2]1([CH2:900][c:901]2[cH:902][cH:903][cH:904][cH:905][cH:906]2)[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162690464": { + "smiles": "[N:2]1([C:901](=[O:900])[O:902][CH2:903][c:904]2[cH:905][cH:906][cH:907][cH:908][cH:909]2)[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164991936": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162692624": { + "smiles": "[N:2]1([C:901]([CH3:900])=[O:902])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164991840": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:901]([CH3:900])=[O:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164991984": { + "smiles": "[N:2]1([C:904]([C:901]([F:900])([F:902])[F:903])=[O:905])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164993136": { + "smiles": "[N:2]1([C:903]([O:902][CH2:901][CH3:900])=[O:904])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164992800": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:904]([C:901]([F:900])([F:902])[F:903])=[O:905])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164992944": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][CH:901]=[O:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164993280": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:912]([O:911][C:908]([CH3:907])([CH3:909])[CH3:910])=[O:913])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164992848": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:904]([C:901]([CH3:900])([CH3:902])[CH3:903])=[O:905])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164994720": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][c:10]([Cl:900])[cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164994864": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[c:9]([Cl:900])[cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164992512": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][c:11]([Cl:900])[c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164992080": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([C:901]([OH:900])=[O:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164995392": { + "smiles": "[NH3:13]", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164995248": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([F:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643155805712": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:901](=[O:900])[O:902][CH2:903][c:904]3[cH:905][cH:906][cH:907][cH:908][cH:909]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164856432": { + "smiles": "[N:2]1([C:905]([O:904][CH2:903][CH2:902][CH2:901][CH3:900])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164857152": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][cH:12][c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164856960": { + "smiles": "[N:2]1([C:901](=[O:900])[O-:902])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164857104": { + "smiles": "[N:2]1([C:901](=[O:900])[c:902]2[cH:903][cH:904][cH:905][cH:906][cH:907]2)[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164993712": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][CH2:900][c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164993664": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N:13]=[C:900]([c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[c:907]3[cH:908][cH:909][cH:910][cH:911][cH:912]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164994192": { + "smiles": "[n:2]1[cH:3][cH:4][c:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[cH:25][cH:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166164976": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[cH:23]2)[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643171531312": { + "smiles": "[N:2]1([CH2:901][CH3:900])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164994768": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([Cl:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166164112": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[N:902]([O:901][CH3:900])[CH3:903])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166166464": { + "smiles": "[cH:8]1[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]1[F:24]", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166164448": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([Br:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166163392": { + "smiles": "[N:2]1([c:909]2[n:908][c:907]([NH:906][CH2:905][c:904]3[cH:903][cH:902][c:901]([F:900])[cH:923][c:921]3[F:922])[c:912](-[c:913]3[cH:914][cH:915][c:916]([F:917])[cH:918][c:919]3[F:920])[cH:911][n:910]2)[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643173069200": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:901]([CH3:900])=[O:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173069008": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173069440": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:904]([C:901]([F:900])([F:902])[F:903])=[O:905])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173166960": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N:13]=[C:900]([c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[c:907]3[cH:908][cH:909][cH:910][cH:911][cH:912]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173069680": { + "smiles": "[CH3:1][I:900]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173069968": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070400": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:904]([C:901]([CH3:900])([CH3:902])[CH3:903])=[O:905])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070880": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[c:9]([Cl:900])[cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070832": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][c:11]([Cl:900])[c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173068960": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][c:10]([Cl:900])[cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070448": { + "smiles": "[C:6]([c:8]1[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]1[F:24])#[N:901]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070736": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([Cl:900])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173069632": { + "smiles": "[OH2:7]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173071264": { + "smiles": "[C:1]([N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1)([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:905]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173071600": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([Cl:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173072032": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:901](=[O:900])[O:902][CH2:903][c:904]3[cH:905][cH:906][cH:907][cH:908][cH:909]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070592": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([Br:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070544": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[N:902]([O:901][CH3:900])[CH3:903])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070064": { + "smiles": "[cH:8]1[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]1[F:24]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173072272": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][CH2:900][c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173072320": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([C:901]([OH:900])=[O:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643172995808": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([F:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643172995136": { + "smiles": "[NH3:13]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173072224": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643172995568": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][CH:901]=[O:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173071648": { + "smiles": "[CH3:1][OH:900]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173071360": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643172995856": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([CH:6]([OH:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643172995472": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][cH:12][c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173164800": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[Cl:900])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173164224": { + "smiles": "[c:8]1([I:901])[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]1[F:24]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173163312": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][c:10]([Cl:900])[c:11]([Cl:901])[c:12]([N+:13](=[O:902])[O-:903])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173164848": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N:13]([CH2:900][c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[CH2:907][c:908]3[cH:909][cH:910][cH:911][cH:912][cH:913]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643157042560": { + "smiles": "[C:14](=[O:15])([c:16]1[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]1)[OH:900]", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643157043712": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643166200256": { + "smiles": "[CH2:1]=[O:900]", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643166201936": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:14](=[O:15])[c:16]3[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643166202032": { + "smiles": "[C:1]([N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:14](=[O:15])[c:16]3[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]3)[c:23]2[F:24])[CH2:25][CH2:26]1)([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:905]", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643166200736": { + "smiles": "[CH3:1][I:900]", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643166203376": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:14](=[O:15])[c:16]3[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643166200976": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([CH:6]([OH:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:14](=[O:15])[c:16]3[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140605332201936": { - "smiles": "Cc1ccc2nc3ccccc3c(Cl)c2c1", + "139643166200112": { + "smiles": "[C:1]([N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:14](=[O:15])[c:16]3[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]3)[c:23]2[F:24])[CH2:25][CH2:26]1)(=[O:900])[O:901][CH2:902][c:903]1[cH:904][cH:905][cH:906][cH:907][cH:908]1", "class": "TreeMolecule", - "parent": 140605332219984, - "transform": 1 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140605332205072": { - "smiles": "Nc1ccc(NC(=S)Nc2ccccc2)cc1", + "139643166200352": { + "smiles": "[C:6]([c:8]1[cH:9][cH:10][cH:11][c:12]([NH:13][C:14](=[O:15])[c:16]2[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]2)[c:23]1[F:24])#[N:901]", "class": "TreeMolecule", - "parent": 140605332219984, - "transform": 1 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140598039857296": { - "smiles": "Cc1ccc2nc3ccccc3c(Nc3ccc(N=C=S)cc3)c2c1", + "139643166202848": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([Cl:900])[CH2:25][CH2:26]1", "class": "TreeMolecule", - "parent": 140605332219984, - "transform": 1 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140598039857616": { - "smiles": "Cc1ccc2nc3ccccc3c(Cl)c2c1", + "139643166202608": { + "smiles": "[OH2:7]", "class": "TreeMolecule", - "parent": 140598039857296, - "transform": 2 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140605332368528": { - "smiles": "Nc1ccc(N=C=S)cc1", + "139643166201024": { + "smiles": "[C:14](=[O:15])([c:16]1[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]1)[O:901][CH3:900]", "class": "TreeMolecule", - "parent": 140598039857296, - "transform": 2 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140605332368656": { - "smiles": "Cc1ccc2nc3ccccc3c(Br)c2c1", + "139643166201744": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", "class": "TreeMolecule", - "parent": 140598039857296, - "transform": 2 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140602867801296": { - "smiles": "Nc1ccc(N=C=S)cc1", + "139643166202176": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[N:903]([O:902][CH3:901])[CH3:904])[CH2:25][CH2:26]1", "class": "TreeMolecule", - "parent": 140598039857296, - "transform": 2 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140605332204496": { - "smiles": "Nc1ccccc1", + "139643166201600": { + "smiles": "[c:8]1([Br:900])[cH:9][cH:10][cH:11][c:12]([NH:13][C:14](=[O:15])[c:16]2[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]2)[c:23]1[F:24]", "class": "TreeMolecule", - "parent": 140605332219984, - "transform": 1 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} } } } \ No newline at end of file diff --git a/tests/data/combined_example_tree2.json b/tests/data/combined_example_tree2.json new file mode 100644 index 0000000..ba9a337 --- /dev/null +++ b/tests/data/combined_example_tree2.json @@ -0,0 +1,103 @@ +{ + "type": "mol", + "hide": false, + "smiles": "Cc1ccc2nc3ccccc3c(Nc3ccc(NC(=S)Nc4ccccc4)cc3)c2c1", + "is_chemical": true, + "in_stock": false, + "children": [ + { + "type": "reaction", + "hide": false, + "smiles": "[c:1]1([N:7][cH3:8])[cH:2][cH:3]:[N:4]:[cH:5][cH:6]1>>Cl[c:1]1[cH:2][cH:3]:[N:4]:[cH:5][cH:6]1.[N:7][cH3:8]", + "is_reaction": true, + "metadata": {}, + "children": [ + { + "type": "mol", + "hide": false, + "smiles": "Cc1ccc2nc3ccccc3c(Cl)c2c1", + "is_chemical": true, + "in_stock": true + }, + { + "type": "mol", + "hide": false, + "smiles": "Nc1ccc(NC(=S)Nc2ccccc2)cc1", + "is_chemical": true, + "in_stock": true + } + ] + }, + { + "type": "reaction", + "hide": false, + "smiles": "[N:1]([cH3:2])[C:4](=[S:3])[N:5][cH3:6]>>[N:1][cH3:2].[S:3]=[C:4]=[N:5][cH3:6]", + "is_reaction": true, + "metadata": {}, + "children": [ + { + "type": "mol", + "hide": false, + "smiles": "Nc1ccccc1", + "is_chemical": true, + "in_stock": false + }, + { + "type": "mol", + "hide": false, + "smiles": "Cc1ccc2nc3ccccc3c(Nc3ccc(N=C=S)cc3)c2c1", + "is_chemical": true, + "in_stock": false, + "children": [ + { + "type": "reaction", + "hide": false, + "smiles": "[c:1]1([N:7][cH3:8])[cH:2][cH:3]:[N:4]:[cH:5][cH:6]1>>Cl[c:1]1[cH:2][cH:3]:[N:4]:[cH:5][cH:6]1.[N:7][cH3:8]", + "is_reaction": true, + "metadata": {}, + "children": [ + { + "type": "mol", + "hide": false, + "smiles": "Nc1ccc(N=C=S)cc1", + "is_chemical": true, + "in_stock": false + }, + { + "type": "mol", + "hide": false, + "smiles": "Cc1ccc2nc3ccccc3c(Cl)c2c1", + "is_chemical": true, + "in_stock": true + } + ] + }, + { + "type": "reaction", + "hide": false, + "smiles": "[c:1]([cH2:2])([cH2:3])[N:4][cH3:5]>>Br[c:1]([cH2:2])[cH2:3].[N:4][cH3:5]", + "is_reaction": true, + "metadata": {}, + "children": [ + { + "type": "mol", + "hide": false, + "smiles": "Cc1ccc2nc3ccccc3c(N)c2c1", + "is_chemical": true, + "in_stock": true + }, + { + "type": "mol", + "hide": false, + "smiles": "S=C=Nc1ccc(Br)cc1", + "is_chemical": true, + "in_stock": false + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/tests/data/full_search_tree.json.gz b/tests/data/full_search_tree.json.gz index adad272..edf449b 100644 Binary files a/tests/data/full_search_tree.json.gz and b/tests/data/full_search_tree.json.gz differ diff --git a/tests/data/linear_route.json b/tests/data/linear_route.json index a4e183e..53df39d 100644 --- a/tests/data/linear_route.json +++ b/tests/data/linear_route.json @@ -1,5 +1,9 @@ { "type": "mol", + "route_metadata": { + "created_at_iteration": 1, + "is_solved": true + }, "hide": false, "smiles": "OOc1ccc(-c2ccc(NC3CCCC(C4C=CC=C4)C3)cc2)cc1", "is_chemical": true, diff --git a/tests/data/tree_for_clustering.json b/tests/data/tree_for_clustering.json index da2fff1..8bb51ef 100644 --- a/tests/data/tree_for_clustering.json +++ b/tests/data/tree_for_clustering.json @@ -2,7 +2,7 @@ "tree": { "state": { "mols": [ - 140420370898512 + 140579172428000 ] }, "children_values": [ @@ -19,24 +19,42 @@ ], "children_actions": [ { - "mol": 140420370898512, - "smarts": "([c:8]-[NH;D2;+0:7]-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1)>>(Cl-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1).([NH2;D1;+0:7]-[c:8])", + "mol": 140579172428000, "index": 0, - "metadata": {} + "metadata": {}, + "smarts": "([c:8]-[NH;D2;+0:7]-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1)>>(Cl-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1).([NH2;D1;+0:7]-[c:8])", + "reactants": [ + [ + 140579263366672, + 140579263368016 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" }, { - "mol": 140420370898512, - "smarts": "([S;D1;H0:3]=[C;H0;D3;+0:4](-[NH;D2;+0:1]-[c:2])-[NH;D2;+0:5]-[c:6])>>([NH2;D1;+0:1]-[c:2]).([S;D1;H0:3]=[C;H0;D2;+0:4]=[N;H0;D2;+0:5]-[c:6])", + "mol": 140579172428000, "index": 0, - "metadata": {} + "metadata": {}, + "smarts": "([S;D1;H0:3]=[C;H0;D3;+0:4](-[NH;D2;+0:1]-[c:2])-[NH;D2;+0:5]-[c:6])>>([NH2;D1;+0:1]-[c:2]).([S;D1;H0:3]=[C;H0;D2;+0:4]=[N;H0;D2;+0:5]-[c:6])", + "reactants": [ + [ + 140577500646512, + 140577500646080 + ], + [ + 140577500644928, + 140577500646944 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" } ], "children": [ { "state": { "mols": [ - 140420370760912, - 140420371764752 + 140579263366672, + 140579263368016 ] }, "children_values": [], @@ -45,13 +63,13 @@ "children_actions": [], "children": [], "is_expanded": false, - "is_expandable": false + "is_expandable": true }, { "state": { "mols": [ - 140417724800016, - 140417963940304 + 140577500644928, + 140577500646944 ] }, "children_values": [ @@ -68,25 +86,43 @@ ], "children_actions": [ { - "mol": 140417724800016, - "smarts": "([c:8]-[NH;D2;+0:7]-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1)>>(Cl-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1).([NH2;D1;+0:7]-[c:8])", + "mol": 140577500644928, "index": 0, - "metadata": {} + "metadata": {}, + "smarts": "([c:8]-[NH;D2;+0:7]-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1)>>(Cl-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1).([NH2;D1;+0:7]-[c:8])", + "reactants": [ + [ + 140581032331392, + 140579263264128 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" }, { - "mol": 140417724800016, - "smarts": "([c:2]:[c;H0;D3;+0:1](:[c:3])-[NH;D2;+0:4]-[c:5])>>(Br-[c;H0;D3;+0:1](:[c:2]):[c:3]).([NH2;D1;+0:4]-[c:5])", + "mol": 140577500644928, "index": 0, - "metadata": {} + "metadata": {}, + "smarts": "([c:2]:[c;H0;D3;+0:1](:[c:3])-[NH;D2;+0:4]-[c:5])>>(Br-[c;H0;D3;+0:1](:[c:2]):[c:3]).([NH2;D1;+0:4]-[c:5])", + "reactants": [ + [ + 140577571413008, + 140577571410704 + ], + [ + 140579263368160, + 140579263366576 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" } ], "children": [ { "state": { "mols": [ - 140417963940304, - 140417950541584, - 140417950615376 + 140577500646944, + 140581032331392, + 140579263264128 ] }, "children_values": [], @@ -100,9 +136,9 @@ { "state": { "mols": [ - 140417963940304, - 140417950614736, - 140417950614864 + 140577500646944, + 140579263368160, + 140579263366576 ] }, "children_values": [], @@ -122,59 +158,96 @@ "is_expandable": true }, "molecules": { - "140420370898512": { + "140579172428000": { "smiles": "Cc1ccc2nc3ccccc3c(Nc3ccc(NC(=S)Nc4ccccc4)cc3)c2c1", "class": "TreeMolecule", "parent": null, - "transform": 0 + "transform": 0, + "tracked_atom_indices": {} + }, + "140579263366672": { + "smiles": "[CH3:1][c:2]1[cH:3][cH:4][c:5]2[n:6][c:7]3[cH:8][cH:9][cH:10][cH:11][c:12]3[c:13]([Cl:900])[c:31]2[cH:32]1", + "class": "TreeMolecule", + "parent": 140579172428000, + "transform": 1, + "tracked_atom_indices": {} + }, + "140579263368016": { + "smiles": "[NH2:14][c:15]1[cH:16][cH:17][c:18]([NH:19][C:20](=[S:21])[NH:22][c:23]2[cH:24][cH:25][cH:26][cH:27][cH:28]2)[cH:29][cH:30]1", + "class": "TreeMolecule", + "parent": 140579172428000, + "transform": 1, + "tracked_atom_indices": {} + }, + "140577500646512": { + "smiles": "[C:20](=[S:21])=[N:22][c:23]1[cH:24][cH:25][cH:26][cH:27][cH:28]1", + "class": "TreeMolecule", + "parent": 140579172428000, + "transform": 1, + "tracked_atom_indices": {} + }, + "140577500646080": { + "smiles": "[CH3:1][c:2]1[cH:3][cH:4][c:5]2[n:6][c:7]3[cH:8][cH:9][cH:10][cH:11][c:12]3[c:13]([NH:14][c:15]3[cH:16][cH:17][c:18]([NH2:19])[cH:29][cH:30]3)[c:31]2[cH:32]1", + "class": "TreeMolecule", + "parent": 140579172428000, + "transform": 1, + "tracked_atom_indices": {} }, - "140420370760912": { - "smiles": "Cc1ccc2nc3ccccc3c(Cl)c2c1", + "140577500644928": { + "smiles": "[CH3:1][c:2]1[cH:3][cH:4][c:5]2[n:6][c:7]3[cH:8][cH:9][cH:10][cH:11][c:12]3[c:13]([NH:14][c:15]3[cH:16][cH:17][c:18]([N:19]=[C:20]=[S:21])[cH:29][cH:30]3)[c:31]2[cH:32]1", "class": "TreeMolecule", - "parent": 140420370898512, - "transform": 1 + "parent": 140579172428000, + "transform": 1, + "tracked_atom_indices": {} }, - "140420371764752": { - "smiles": "Nc1ccc(NC(=S)Nc2ccccc2)cc1", + "140577500646944": { + "smiles": "[NH2:22][c:23]1[cH:24][cH:25][cH:26][cH:27][cH:28]1", "class": "TreeMolecule", - "parent": 140420370898512, - "transform": 1 + "parent": 140579172428000, + "transform": 1, + "tracked_atom_indices": {} }, - "140417724800016": { - "smiles": "Cc1ccc2nc3ccccc3c(Nc3ccc(N)cc3)c2c1", + "140581032331392": { + "smiles": "[CH3:1][c:2]1[cH:3][cH:4][c:5]2[n:6][c:7]3[cH:8][cH:9][cH:10][cH:11][c:12]3[c:13]([Cl:900])[c:31]2[cH:32]1", "class": "TreeMolecule", - "parent": 140420370898512, - "transform": 1 + "parent": 140577500644928, + "transform": 2, + "tracked_atom_indices": {} }, - "140417963940304": { - "smiles": "S=C=Nc1ccccc1", + "140579263264128": { + "smiles": "[NH2:14][c:15]1[cH:16][cH:17][c:18]([N:19]=[C:20]=[S:21])[cH:29][cH:30]1", "class": "TreeMolecule", - "parent": 140420370898512, - "transform": 1 + "parent": 140577500644928, + "transform": 2, + "tracked_atom_indices": {} }, - "140417950541584": { - "smiles": "Cc1ccc2nc3ccccc3c(Cl)c2c1", + "140577571413008": { + "smiles": "[CH3:1][c:2]1[cH:3][cH:4][c:5]2[n:6][c:7]3[cH:8][cH:9][cH:10][cH:11][c:12]3[c:13]([Br:900])[c:31]2[cH:32]1", "class": "TreeMolecule", - "parent": 140417724800016, - "transform": 2 + "parent": 140577500644928, + "transform": 2, + "tracked_atom_indices": {} }, - "140417950615376": { - "smiles": "Nc1ccc(N)cc1", + "140577571410704": { + "smiles": "[NH2:14][c:15]1[cH:16][cH:17][c:18]([N:19]=[C:20]=[S:21])[cH:29][cH:30]1", "class": "TreeMolecule", - "parent": 140417724800016, - "transform": 2 + "parent": 140577500644928, + "transform": 2, + "tracked_atom_indices": {} }, - "140417950614736": { - "smiles": "Cc1ccc2nc3ccccc3c(N)c2c1", + "140579263368160": { + "smiles": "[CH3:1][c:2]1[cH:3][cH:4][c:5]2[n:6][c:7]3[cH:8][cH:9][cH:10][cH:11][c:12]3[c:13]([NH2:14])[c:31]2[cH:32]1", "class": "TreeMolecule", - "parent": 140417724800016, - "transform": 2 + "parent": 140577500644928, + "transform": 2, + "tracked_atom_indices": {} }, - "140417950614864": { - "smiles": "Nc1ccc(Br)cc1", + "140579263366576": { + "smiles": "[c:15]1([Br:900])[cH:16][cH:17][c:18]([N:19]=[C:20]=[S:21])[cH:29][cH:30]1", "class": "TreeMolecule", - "parent": 140417724800016, - "transform": 2 + "parent": 140577500644928, + "transform": 2, + "tracked_atom_indices": {} } } } \ No newline at end of file diff --git a/tests/mcts/test_node.py b/tests/mcts/test_node.py index 50d046d..4688fdb 100644 --- a/tests/mcts/test_node.py +++ b/tests/mcts/test_node.py @@ -5,6 +5,7 @@ def test_root_state_properties(generate_root): assert round(root.state.score, 4) == 0.0491 assert root.state.stock_availability == ["Not in stock"] assert hash(root.state) == hash(root2.state) + assert root.created_at_iteration is None def test_expand_root_node(setup_mcts_search): @@ -126,3 +127,18 @@ def test_expand_dead_end(setup_policies, generate_root): assert not node.is_expandable assert not node.is_expanded + + +def test_expand_recursive(setup_policies, generate_root, default_config): + """This was implemented to check that a non-recursive version + of `promising_child` did not raise a recursion exception""" + root_smiles = "CCCCOc1ccc(CC(=O)N(C)O)cc1" + expansions = {root_smiles: [{"smiles": "", "prior": 0.01} for _ in range(1000)]} + setup_policies(expansions) + default_config.cutoff_number = 1000 + node = generate_root(root_smiles, default_config) + node.expand() + + child = node.promising_child() + + assert child is None diff --git a/tests/retrostar/data/andor_tree_for_clustering.json b/tests/retrostar/data/andor_tree_for_clustering.json index 87b9669..69f2162 100644 --- a/tests/retrostar/data/andor_tree_for_clustering.json +++ b/tests/retrostar/data/andor_tree_for_clustering.json @@ -1,175 +1,3788 @@ { "tree": { "cost": 0.0, - "expandable": true, - "value": 0.0, - "mol": 140605332219984, + "expandable": false, + "value": 3.170205421745777, + "mol": 139643154371392, "children": [ { - "cost": 5.0, - "value": 5.0, - "target_value": 5.0, + "cost": 0.10074622184038162, + "value": 3.170205421745777, + "target_value": 3.170205421745777, "reaction": { - "mol": 140605332219984, - "smarts": "([c:8]-[NH;D2;+0:7]-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1)>>(Cl-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1).([NH2;D1;+0:7]-[c:8])", + "mol": 139643154371392, "index": 0, - "metadata": {} + "metadata": {}, + "smarts": "([O;D1;H0:2]=[C;H0;D3;+0:1](-[c:3])-[NH;D2;+0:4]-[c:5])>>(Cl-[C;H0;D3;+0:1](=[O;D1;H0:2])-[c:3]).([NH2;D1;+0:4]-[c:5])", + "reactants": [ + [ + 139643166203664, + 139643171528960 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" }, "children": [ { "cost": 0.0, "expandable": false, - "value": 0, - "mol": 140605332201936, + "value": 0.0, + "mol": 139643166203664, "children": [] }, { "cost": 0.0, "expandable": false, - "value": 0, - "mol": 140605332205072, - "children": [] - } - ] - }, - { - "cost": 10.0, - "value": 10.0, - "target_value": 10.0, - "reaction": { - "mol": 140605332219984, - "smarts": "([S;D1;H0:3]=[C;H0;D3;+0:4](-[NH;D2;+0:1]-[c:2])-[NH;D2;+0:5]-[c:6])>>([NH2;D1;+0:1]-[c:2]).([S;D1;H0:3]=[C;H0;D2;+0:4]=[N;H0;D2;+0:5]-[c:6])", - "index": 1, - "metadata": {} - }, - "children": [ - { - "cost": 0.0, - "expandable": true, - "value": 0.0, - "mol": 140598039857296, + "value": 3.0694591999053955, + "mol": 139643171528960, "children": [ { - "cost": 2.5, - "value": 2.5, - "target_value": 12.5, + "cost": 0.7208150029182434, + "value": 3.1994336247444153, + "target_value": 3.300179846584797, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=[N+;H0;D3:1](-[O-])-[c:2])", + "reactants": [ + [ + 139643166201504 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 2.478618621826172, + "mol": 139643166201504, + "children": [ + { + "cost": 2.478618621826172, + "value": 2.478618621826172, + "target_value": 3.300179846584797, + "reaction": { + "mol": 139643166201504, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[N;H0;D3;+0:3](-[C:4])-[CH3;D1;+0:1])>>(I-[CH3;D1;+0:1]).([C:2]-[NH;D2;+0:3]-[C:4])", + "reactants": [ + [ + 139643162454288 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643162454288, + "children": [] + } + ] + }, + { + "cost": 4.106889247894287, + "value": 4.106889247894287, + "target_value": 4.928450472652912, + "reaction": { + "mol": 139643166201504, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[C;H0;D3;+0:2](=[O;H0;D1;+0:3])-[c:4])>>([C:1]-[CH;D3;+0:2](-[OH;D1;+0:3])-[c:4])", + "reactants": [ + [ + 139643162454624 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643162454624, + "children": [] + } + ] + }, + { + "cost": 4.682793140411377, + "value": 4.682793140411377, + "target_value": 5.504354365170002, + "reaction": { + "mol": 139643166201504, + "index": 0, + "metadata": {}, + "smarts": "([#7:2]-[CH3;D1;+0:1])>>(C-C(-C)(-C)-O-[C;H0;D3;+0:1](=O)-[#7:2])", + "reactants": [ + [ + 139643162455056 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643162455056, + "children": [] + } + ] + }, + { + "cost": 5.297028541564941, + "value": 5.297028541564941, + "target_value": 6.118589766323566, + "reaction": { + "mol": 139643166201504, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[N;H0;D3;+0:2](-[C:3])-[C;H3;D1;+0])>>([C:1]-[NH;D2;+0:2]-[C:3])", + "reactants": [ + [ + 139643162454144 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643162454144, + "children": [] + } + ] + }, + { + "cost": 6.402892589569092, + "value": 6.402892589569092, + "target_value": 7.224453814327717, + "reaction": { + "mol": 139643166201504, + "index": 0, + "metadata": {}, + "smarts": "([#7:2]-[CH3;D1;+0:1])>>(O=[C;H0;D3;+0:1](-[#7:2])-O-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643162454048 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643162454048, + "children": [] + } + ] + }, + { + "cost": 6.734926223754883, + "value": 6.734926223754883, + "target_value": 7.556487448513508, + "reaction": { + "mol": 139643166201504, + "index": 0, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643162455488 + ], + [ + 139643162455728 + ], + [ + 139643162455968 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643162455488, + "children": [] + } + ] + }, + { + "cost": 6.734926223754883, + "value": 6.734926223754883, + "target_value": 7.556487448513508, + "reaction": { + "mol": 139643166201504, + "index": 1, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643162455488 + ], + [ + 139643162455728 + ], + [ + 139643162455968 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643162455728, + "children": [] + } + ] + }, + { + "cost": 6.734926223754883, + "value": 6.734926223754883, + "target_value": 7.556487448513508, + "reaction": { + "mol": 139643166201504, + "index": 2, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643162455488 + ], + [ + 139643162455728 + ], + [ + 139643162455968 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643162455968, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 7.729316599667072, + "reaction": { + "mol": 139643166201504, + "index": 0, + "metadata": {}, + "smarts": "([C:3]-[N;H0;D3;+0:4](-[C:5])-[CH2;D2;+0:1]-[C:2])>>(Cl-[CH2;D2;+0:1]-[C:2]).([C:3]-[NH;D2;+0:4]-[C:5])", + "reactants": [ + [ + 139643166201120 + ], + [ + 139643166202416 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643166201120, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 7.729316599667072, + "reaction": { + "mol": 139643166201504, + "index": 1, + "metadata": {}, + "smarts": "([C:3]-[N;H0;D3;+0:4](-[C:5])-[CH2;D2;+0:1]-[C:2])>>(Cl-[CH2;D2;+0:1]-[C:2]).([C:3]-[NH;D2;+0:4]-[C:5])", + "reactants": [ + [ + 139643166201120 + ], + [ + 139643166202416 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643166202416, + "children": [] + } + ] + } + ] + } + ] + }, + { + "cost": 2.1505701541900635, + "value": 3.151626080274582, + "target_value": 3.2523723021149635, "reaction": { - "mol": 140598039857296, - "smarts": "([c:8]-[NH;D2;+0:7]-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1)>>(Cl-[c;H0;D3;+0:1]1:[c:2]:[c:3]:[#7;a:4]:[c:5]:[c:6]:1).([NH2;D1;+0:7]-[c:8])", + "mol": 139643171528960, "index": 0, - "metadata": {} + "metadata": {}, + "smarts": "([C:2]-[N;H0;D3;+0:3](-[C:4])-[CH3;D1;+0:1])>>(O=[CH2;D1;+0:1]).([C:2]-[NH;D2;+0:3]-[C:4])", + "reactants": [ + [ + 139643173163552, + 139643173165280 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" }, "children": [ { "cost": 0.0, "expandable": false, - "value": 0, - "mol": 140598039857616, + "value": 0.0, + "mol": 139643173163552, "children": [] }, { "cost": 0.0, "expandable": false, - "value": 0, - "mol": 140605332368528, + "value": 1.0010559260845184, + "mol": 139643173165280, + "children": [ + { + "cost": 0.3793273866176605, + "value": 1.0010559260845184, + "target_value": 3.2523723021149635, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(C-C(-C)(-C)-O-C(=O)-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643162452464 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.6217285394668579, + "mol": 139643162452464, + "children": [ + { + "cost": 0.6217285394668579, + "value": 0.6217285394668579, + "target_value": 3.2523723021149635, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=[N+;H0;D3:1](-[O-])-[c:2])", + "reactants": [ + [ + 139643166163824 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643166163824, + "children": [] + } + ] + }, + { + "cost": 2.7375824451446533, + "value": 2.7375824451446533, + "target_value": 5.368226207792759, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[C;H0;D3;+0:1](=[O;D1;H0:3])-[c;H0;D3;+0:5](:[c:4]):[c:6])>>(C-O-N(-C)-[C;H0;D3;+0:1](-[C:2])=[O;D1;H0:3]).([c:4]:[cH;D2;+0:5]:[c:6])", + "reactants": [ + [ + 139643164870880, + 139643164872128 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643164870880, + "children": [] + }, + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643164872128, + "children": [] + } + ] + }, + { + "cost": 4.452865123748779, + "value": 4.452865123748779, + "target_value": 7.083508886396885, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[N;H0;D2;+0:2]=C(-c1:c:c:c:c:c:1)-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643171738528 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171738528, + "children": [] + } + ] + }, + { + "cost": 4.696177005767822, + "value": 4.696177005767822, + "target_value": 7.326820768415928, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(-C)(-C)-O-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643164872464 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164872464, + "children": [] + } + ] + }, + { + "cost": 4.707756996154785, + "value": 4.707756996154785, + "target_value": 7.338400758802891, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(F-C(-F)(-F)-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643171738432 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171738432, + "children": [] + } + ] + }, + { + "cost": 4.782713413238525, + "value": 4.782713413238525, + "target_value": 7.413357175886631, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Br-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643171739248 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171739248, + "children": [] + } + ] + }, + { + "cost": 5.140331745147705, + "value": 5.140331745147705, + "target_value": 7.770975507795811, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643171739344 + ], + [ + 139643171739536 + ], + [ + 139643171739632 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171739344, + "children": [] + } + ] + }, + { + "cost": 5.140331745147705, + "value": 5.140331745147705, + "target_value": 7.770975507795811, + "reaction": { + "mol": 139643162452464, + "index": 1, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643171739344 + ], + [ + 139643171739536 + ], + [ + 139643171739632 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171739536, + "children": [] + } + ] + }, + { + "cost": 5.140331745147705, + "value": 5.140331745147705, + "target_value": 7.770975507795811, + "reaction": { + "mol": 139643162452464, + "index": 2, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643171739344 + ], + [ + 139643171739536 + ], + [ + 139643171739632 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171739632, + "children": [] + } + ] + }, + { + "cost": 5.220434665679932, + "value": 5.220434665679932, + "target_value": 7.851078428328037, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643171738048 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171738048, + "children": [] + } + ] + }, + { + "cost": 5.325563430786133, + "value": 5.325563430786133, + "target_value": 7.956207193434238, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:4]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(F-[c;H0;D3;+0:1](:[c:2]):[c:3]).([NH3;D0;+0:4])", + "reactants": [ + [ + 139643171740112, + 139643171740688 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171740112, + "children": [] + }, + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643171740688, + "children": [] + } + ] + }, + { + "cost": 5.484682083129883, + "value": 5.484682083129883, + "target_value": 8.115325845777988, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=C(-O-C-c1:c:c:c:c:c:1)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643171740400 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171740400, + "children": [] + } + ] + }, + { + "cost": 5.642376899719238, + "value": 5.642376899719238, + "target_value": 8.273020662367344, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(-C)(-C)-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643171741456 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171741456, + "children": [] + } + ] + }, + { + "cost": 5.65239143371582, + "value": 5.65239143371582, + "target_value": 8.283035196363926, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[N;H0;D3;+0:2](-C-c1:c:c:c:c:c:1)-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643171741024 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171741024, + "children": [] + } + ] + }, + { + "cost": 5.692169189453125, + "value": 5.692169189453125, + "target_value": 8.32281295210123, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(O-C(=O)-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643171740928 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171740928, + "children": [] + } + ] + }, + { + "cost": 5.69961404800415, + "value": 5.69961404800415, + "target_value": 8.330257810652256, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[NH;D2;+0:2]-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643171740640 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171740640, + "children": [] + } + ] + }, + { + "cost": 6.433506011962891, + "value": 6.433506011962891, + "target_value": 9.064149774610996, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[C;H0;D3;+0:2](=[O;H0;D1;+0:3])-[c:4])>>([C:1]-[CH;D3;+0:2](-[OH;D1;+0:3])-[c:4])", + "reactants": [ + [ + 139643171740880 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171740880, + "children": [] + } + ] + }, + { + "cost": 6.7731475830078125, + "value": 6.7731475830078125, + "target_value": 9.403791345655918, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643171740016 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171740016, + "children": [] + } + ] + }, + { + "cost": 6.814378261566162, + "value": 6.814378261566162, + "target_value": 9.445022024214268, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:4]-[c:5].[c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3].O=[N+;H0;D3:4](-[O-])-[c:5])", + "reactants": [ + [ + 139643164869104 + ], + [ + 139643164869056 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164869104, + "children": [] + } + ] + }, + { + "cost": 6.814378261566162, + "value": 6.814378261566162, + "target_value": 9.445022024214268, + "reaction": { + "mol": 139643162452464, + "index": 1, + "metadata": {}, + "smarts": "([NH2;D1;+0:4]-[c:5].[c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3].O=[N+;H0;D3:4](-[O-])-[c:5])", + "reactants": [ + [ + 139643164869104 + ], + [ + 139643164869056 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164869056, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.538399137556553, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:5]-[c:4]:[cH;D2;+0:3]:[cH;D2;+0:1]:[c:2])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c;H0;D3;+0:3](-Cl):[c:4]-[N+;H0;D3:5](=O)-[O-])", + "reactants": [ + [ + 139643173070016 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173070016, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.538399137556553, + "reaction": { + "mol": 139643162452464, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:4]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Br-[c;H0;D3;+0:1](:[c:2]):[c:3]).([NH4+;D0:4])", + "reactants": [ + [ + 139643171739392, + 139643164870496 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171739392, + "children": [] + }, + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643164870496, + "children": [] + } + ] + } + ] + } + ] + }, + { + "cost": 2.2950503826141357, + "value": 2.2950503826141357, + "target_value": 4.546366758644581, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=[N+;H0;D3:1](-[O-])-[c:2])", + "reactants": [ + [ + 139643162692720 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643162692720, + "children": [] + } + ] + }, + { + "cost": 2.758237600326538, + "value": 2.758237600326538, + "target_value": 5.009553976356983, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[NH;D2;+0:2]-[C:3])>>([C:1]-[N;H0;D3;+0:2](-[C:3])-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643162692240 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643162692240, + "children": [] + } + ] + }, + { + "cost": 2.81253981590271, + "value": 2.81253981590271, + "target_value": 5.063856191933155, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(O=C(-O-C-c1:c:c:c:c:c:1)-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643162690464 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643162690464, + "children": [] + } + ] + }, + { + "cost": 4.225465774536133, + "value": 4.225465774536133, + "target_value": 6.476782150566578, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(-C)(-C)-O-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643164991936 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164991936, + "children": [] + } + ] + }, + { + "cost": 4.908669948577881, + "value": 4.908669948577881, + "target_value": 7.159986324608326, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(C-C(=O)-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643162692624 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643162692624, + "children": [] + } + ] + }, + { + "cost": 5.097917079925537, + "value": 5.097917079925537, + "target_value": 7.349233455955982, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643164991840 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164991840, + "children": [] + } + ] + }, + { + "cost": 5.568554878234863, + "value": 5.568554878234863, + "target_value": 7.819871254265308, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(F-C(-F)(-F)-C(=O)-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643164991984 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164991984, + "children": [] + } + ] + }, + { + "cost": 5.573371887207031, + "value": 5.573371887207031, + "target_value": 7.824688263237476, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(C-C-O-C(=O)-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643164993136 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164993136, + "children": [] + } + ] + }, + { + "cost": 5.792516231536865, + "value": 5.792516231536865, + "target_value": 8.04383260756731, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(F-C(-F)(-F)-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643164992800 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164992800, + "children": [] + } + ] + }, + { + "cost": 6.1294732093811035, + "value": 6.1294732093811035, + "target_value": 8.380789585411549, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=C-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643164992944 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164992944, + "children": [] + } + ] + }, + { + "cost": 6.494046688079834, + "value": 6.494046688079834, + "target_value": 8.745363064110279, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3].[NH2;D1;+0:4]-[c:5])>>(C-C(-C)(-C)-O-C(=O)-[N;H0;D3;+0:1](-[C:2])-[C:3].C-C(-C)(-C)-O-C(=O)-[NH;D2;+0:4]-[c:5])", + "reactants": [ + [ + 139643164993280 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164993280, + "children": [] + } + ] + }, + { + "cost": 6.691080093383789, + "value": 6.691080093383789, + "target_value": 8.942396469414234, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(-C)(-C)-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643164992848 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164992848, + "children": [] + } + ] + }, + { + "cost": 6.875414848327637, + "value": 6.875414848327637, + "target_value": 9.126731224358082, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643164994720 + ], + [ + 139643164994864 + ], + [ + 139643164992512 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164994720, + "children": [] + } + ] + }, + { + "cost": 6.875414848327637, + "value": 6.875414848327637, + "target_value": 9.126731224358082, + "reaction": { + "mol": 139643173165280, + "index": 1, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643164994720 + ], + [ + 139643164994864 + ], + [ + 139643164992512 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164994864, + "children": [] + } + ] + }, + { + "cost": 6.875414848327637, + "value": 6.875414848327637, + "target_value": 9.126731224358082, + "reaction": { + "mol": 139643173165280, + "index": 2, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643164994720 + ], + [ + 139643164994864 + ], + [ + 139643164992512 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164992512, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(O-C(=O)-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643164992080 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164992080, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:4]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(F-[c;H0;D3;+0:1](:[c:2]):[c:3]).([NH3;D0;+0:4])", + "reactants": [ + [ + 139643164995392, + 139643164995248 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643164995392, + "children": [] + }, + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164995248, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=C(-O-C-c1:c:c:c:c:c:1)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643155805712 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643155805712, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(C-C-C-C-O-C(=O)-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643164856432 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164856432, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:2](:[c:1]):[c:3])>>([c:1]:[cH;D2;+0:2]:[c:3])", + "reactants": [ + [ + 139643164857152 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643164857152, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(O=C(-[O-])-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643164856960 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164856960, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(O=C(-[N;H0;D3;+0:1](-[C:2])-[C:3])-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643164857104 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164857104, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[NH;D2;+0:2]-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643164993712 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164993712, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[N;H0;D2;+0:2]=C(-c1:c:c:c:c:c:1)-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643164993664 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164993664, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[CH;D3;+0:2]1-[CH2;D2;+0:3]-[CH2;D2;+0:4]-[NH;D2;+0:5]-[CH2;D2;+0:6]-[CH2;D2;+0:7]-1)>>([C:1]-[c;H0;D3;+0:2]1:[cH;D2;+0:3]:[cH;D2;+0:4]:[n;H0;D2;+0:5]:[cH;D2;+0:6]:[cH;D2;+0:7]:1)", + "reactants": [ + [ + 139643164994192 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164994192, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([F;H0;D1;+0]-[c;H0;D3;+0:2](:[c:1]):[c:3])>>([c:1]:[cH;D2;+0:2]:[c:3])", + "reactants": [ + [ + 139643166164976 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643166164976, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(C-C-[N;H0;D3;+0:1](-[C:2])-[C:3])", + "reactants": [ + [ + 139643171531312 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643171531312, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643164994768 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643164994768, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[C;H0;D3;+0:1](=[O;D1;H0:3])-[c;H0;D3;+0:5](:[c:4]):[c:6])>>(C-O-N(-C)-[C;H0;D3;+0:1](-[C:2])=[O;D1;H0:3]).([c:4]:[cH;D2;+0:5]:[c:6])", + "reactants": [ + [ + 139643166164112, + 139643166166464 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643166164112, + "children": [] + }, + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643166166464, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Br-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643166164448 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643166164448, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 9.159071750938892, + "reaction": { + "mol": 139643173165280, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[NH;D2;+0:1]-[C:3])>>(F-c1:c:c:c(-C-N-c2:n:c(-[N;H0;D3;+0:1](-[C:2])-[C:3]):n:c:c:2-c2:c:c:c(-F):c:c:2-F):c(-F):c:1)", + "reactants": [ + [ + 139643166163392 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643166163392, + "children": [] + } + ] + } + ] + } + ] + }, + { + "cost": 3.0694591999053955, + "value": 3.0694591999053955, + "target_value": 3.170205421745777, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643173069200 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173069200, + "children": [] + } + ] + }, + { + "cost": 3.152578115463257, + "value": 3.152578115463257, + "target_value": 3.2533243373036385, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(-C)(-C)-O-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643173069008 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173069008, + "children": [] + } + ] + }, + { + "cost": 3.273343801498413, + "value": 3.273343801498413, + "target_value": 3.3740900233387947, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(F-C(-F)(-F)-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643173069440 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173069440, + "children": [] + } + ] + }, + { + "cost": 3.5829217433929443, + "value": 3.5829217433929443, + "target_value": 3.683667965233326, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[N;H0;D2;+0:2]=C(-c1:c:c:c:c:c:1)-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643173166960 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173166960, + "children": [] + } + ] + }, + { + "cost": 3.6675679683685303, + "value": 3.6675679683685303, + "target_value": 3.768314190208912, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[N;H0;D3;+0:3](-[C:4])-[CH3;D1;+0:1])>>(I-[CH3;D1;+0:1]).([C:2]-[NH;D2;+0:3]-[C:4])", + "reactants": [ + [ + 139643173069680, + 139643173069968 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643173069680, + "children": [] + }, + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173069968, "children": [] } ] }, { - "cost": 7.0, - "value": 7.0, - "target_value": 17.0, + "cost": 4.240368843078613, + "value": 4.240368843078613, + "target_value": 4.341115064918995, "reaction": { - "mol": 140598039857296, - "smarts": "([c:2]:[c;H0;D3;+0:1](:[c:3])-[NH;D2;+0:4]-[c:5])>>(Br-[c;H0;D3;+0:1](:[c:2]):[c:3]).([NH2;D1;+0:4]-[c:5])", + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(C-C(-C)(-C)-C(=O)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643173070400 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173070400, + "children": [] + } + ] + }, + { + "cost": 4.31692361831665, + "value": 4.31692361831665, + "target_value": 4.417669840157032, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643173070880 + ], + [ + 139643173070832 + ], + [ + 139643173068960 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173070880, + "children": [] + } + ] + }, + { + "cost": 4.31692361831665, + "value": 4.31692361831665, + "target_value": 4.417669840157032, + "reaction": { + "mol": 139643171528960, "index": 1, - "metadata": {} + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643173070880 + ], + [ + 139643173070832 + ], + [ + 139643173068960 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173070832, + "children": [] + } + ] + }, + { + "cost": 4.31692361831665, + "value": 4.31692361831665, + "target_value": 4.417669840157032, + "reaction": { + "mol": 139643171528960, + "index": 2, + "metadata": {}, + "smarts": "([c:2]:[cH;D2;+0:1]:[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643173070880 + ], + [ + 139643173070832 + ], + [ + 139643173068960 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" }, "children": [ { "cost": 0.0, "expandable": true, "value": 0.0, - "mol": 140605332368656, + "mol": 139643173068960, + "children": [] + } + ] + }, + { + "cost": 4.852601051330566, + "value": 4.852601051330566, + "target_value": 4.953347273170948, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[CH;D3;+0:1](-[C:3])-[C;H0;D3;+0:4](=[O;H0;D1;+0:6])-[c:5])>>(Cl-[CH;D3;+0:1](-[C:2])-[C:3]).(N#[C;H0;D2;+0:4]-[c:5]).([OH2;D0;+0:6])", + "reactants": [ + [ + 139643173070448, + 139643173070736, + 139643173069632 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643173070448, + "children": [] + }, + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643173070736, "children": [] }, { "cost": 0.0, "expandable": false, - "value": 0, - "mol": 140602867801296, + "value": 0.0, + "mol": 139643173069632, "children": [] } ] - } - ] - }, - { - "cost": 0.0, - "expandable": false, - "value": 0, - "mol": 140605332204496, - "children": [] - } - ] - } - ] - }, - "molecules": { - "140605332219984": { - "smiles": "Cc1ccc2nc3ccccc3c(Nc3ccc(NC(=S)Nc4ccccc4)cc3)c2c1", - "class": "TreeMolecule", - "parent": null, - "transform": 0 + }, + { + "cost": 5.2155046463012695, + "value": 5.2155046463012695, + "target_value": 5.316250868141651, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([#7:2]-[CH3;D1;+0:1])>>(C-C(-C)(-C)-O-[C;H0;D3;+0:1](=O)-[#7:2])", + "reactants": [ + [ + 139643173071264 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173071264, + "children": [] + } + ] + }, + { + "cost": 5.3915696144104, + "value": 5.3915696144104, + "target_value": 5.492315836250782, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643173071600 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173071600, + "children": [] + } + ] + }, + { + "cost": 5.560334205627441, + "value": 5.560334205627441, + "target_value": 5.661080427467823, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=C(-O-C-c1:c:c:c:c:c:1)-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643173072032 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173072032, + "children": [] + } + ] + }, + { + "cost": 5.652981281280518, + "value": 5.652981281280518, + "target_value": 5.753727503120899, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Br-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643173070592 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173070592, + "children": [] + } + ] + }, + { + "cost": 5.810171127319336, + "value": 5.810171127319336, + "target_value": 5.910917349159718, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[C;H0;D3;+0:1](=[O;D1;H0:3])-[c;H0;D3;+0:5](:[c:4]):[c:6])>>(C-O-N(-C)-[C;H0;D3;+0:1](-[C:2])=[O;D1;H0:3]).([c:4]:[cH;D2;+0:5]:[c:6])", + "reactants": [ + [ + 139643173070544, + 139643173070064 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643173070544, + "children": [] + }, + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643173070064, + "children": [] + } + ] + }, + { + "cost": 5.950585842132568, + "value": 5.950585842132568, + "target_value": 6.05133206397295, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[NH;D2;+0:2]-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643173072272 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173072272, + "children": [] + } + ] + }, + { + "cost": 6.106892108917236, + "value": 6.106892108917236, + "target_value": 6.207638330757618, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(O-C(=O)-[c;H0;D3;+0:1](:[c:2]):[c:3])", + "reactants": [ + [ + 139643173072320 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173072320, + "children": [] + } + ] + }, + { + "cost": 6.275547027587891, + "value": 6.275547027587891, + "target_value": 6.376293249428272, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:4]-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(F-[c;H0;D3;+0:1](:[c:2]):[c:3]).([NH3;D0;+0:4])", + "reactants": [ + [ + 139643172995808, + 139643172995136 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643172995808, + "children": [] + }, + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643172995136, + "children": [] + } + ] + }, + { + "cost": 6.425144195556641, + "value": 6.425144195556641, + "target_value": 6.525890417397022, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[N;H0;D3;+0:2](-[C:3])-[C;H3;D1;+0])>>([C:1]-[NH;D2;+0:2]-[C:3])", + "reactants": [ + [ + 139643173072224 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173072224, + "children": [] + } + ] + }, + { + "cost": 6.469336032867432, + "value": 6.469336032867432, + "target_value": 6.570082254707813, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:1]-[c:2])>>(O=C-[NH;D2;+0:1]-[c:2])", + "reactants": [ + [ + 139643172995568 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643172995568, + "children": [] + } + ] + }, + { + "cost": 6.587630748748779, + "value": 6.587630748748779, + "target_value": 6.688376970589161, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[N;H0;D3;+0:3](-[C:4])-[CH3;D1;+0:1])>>(O-[CH3;D1;+0:1]).([C:2]-[NH;D2;+0:3]-[C:4])", + "reactants": [ + [ + 139643173071648, + 139643173071360 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643173071648, + "children": [] + }, + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173071360, + "children": [] + } + ] + }, + { + "cost": 6.601748943328857, + "value": 6.601748943328857, + "target_value": 6.702495165169239, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[C;H0;D3;+0:2](=[O;H0;D1;+0:3])-[c:4])>>([C:1]-[CH;D3;+0:2](-[OH;D1;+0:3])-[c:4])", + "reactants": [ + [ + 139643172995856 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643172995856, + "children": [] + } + ] + }, + { + "cost": 6.609378337860107, + "value": 6.609378337860107, + "target_value": 6.710124559700489, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([N;H2;D1;+0]-[c;H0;D3;+0:2](:[c:1]):[c:3])>>([c:1]:[cH;D2;+0:2]:[c:3])", + "reactants": [ + [ + 139643172995472 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643172995472, + "children": [] + } + ] + }, + { + "cost": 6.733030796051025, + "value": 6.733030796051025, + "target_value": 6.833777017891407, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[C;H0;D3;+0:1](=[O;D1;H0:3])-[c;H0;D3;+0:4](:[c:5]):[c:6])>>(Cl-[C;H0;D3;+0:1](-[C:2])=[O;D1;H0:3]).(I-[c;H0;D3;+0:4](:[c:5]):[c:6])", + "reactants": [ + [ + 139643173164800, + 139643173164224 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643173164800, + "children": [] + }, + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643173164224, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 7.008501596748829, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:5]-[c:4]:[cH;D2;+0:3]:[cH;D2;+0:1]:[c:2])>>(Cl-[c;H0;D3;+0:1](:[c:2]):[c;H0;D3;+0:3](-Cl):[c:4]-[N+;H0;D3:5](=O)-[O-])", + "reactants": [ + [ + 139643173163312 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173163312, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 7.008501596748829, + "reaction": { + "mol": 139643171528960, + "index": 0, + "metadata": {}, + "smarts": "([NH2;D1;+0:2]-[c:1])>>([c:1]-[N;H0;D3;+0:2](-C-c1:c:c:c:c:c:1)-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643173164848 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643173164848, + "children": [] + } + ] + } + ] + } + ] + }, + { + "cost": 3.309605598449707, + "value": 3.309605598449707, + "target_value": 3.309605598449707, + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([O;D1;H0:2]=[C;H0;D3;+0:1](-[c:3])-[NH;D2;+0:4]-[c:5])>>(O-[C;H0;D3;+0:1](=[O;D1;H0:2])-[c:3]).([NH2;D1;+0:4]-[c:5])", + "reactants": [ + [ + 139643157042560, + 139643157043712 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643157042560, + "children": [] + }, + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643157043712, + "children": [] + } + ] + }, + { + "cost": 4.04685640335083, + "value": 4.04685640335083, + "target_value": 4.04685640335083, + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[N;H0;D3;+0:3](-[C:4])-[CH3;D1;+0:1])>>(O=[CH2;D1;+0:1]).([C:2]-[NH;D2;+0:3]-[C:4])", + "reactants": [ + [ + 139643166200256, + 139643166201936 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643166200256, + "children": [] + }, + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643166201936, + "children": [] + } + ] + }, + { + "cost": 6.790102005004883, + "value": 6.790102005004883, + "target_value": 6.790102005004883, + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([#7:2]-[CH3;D1;+0:1])>>(C-C(-C)(-C)-O-[C;H0;D3;+0:1](=O)-[#7:2])", + "reactants": [ + [ + 139643166202032 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643166202032, + "children": [] + } + ] + }, + { + "cost": 6.830040454864502, + "value": 6.830040454864502, + "target_value": 6.830040454864502, + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[N;H0;D3;+0:3](-[C:4])-[CH3;D1;+0:1])>>(I-[CH3;D1;+0:1]).([C:2]-[NH;D2;+0:3]-[C:4])", + "reactants": [ + [ + 139643166200736, + 139643166203376 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643166200736, + "children": [] + }, + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643166203376, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 6.907755374908447, + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([C:1]-[C;H0;D3;+0:2](=[O;H0;D1;+0:3])-[c:4])>>([C:1]-[CH;D3;+0:2](-[OH;D1;+0:3])-[c:4])", + "reactants": [ + [ + 139643166200976 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643166200976, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 6.907755374908447, + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([#7:2]-[CH3;D1;+0:1])>>(O=[C;H0;D3;+0:1](-[#7:2])-O-C-c1:c:c:c:c:c:1)", + "reactants": [ + [ + 139643166200112 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643166200112, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 6.907755374908447, + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([C:2]-[CH;D3;+0:1](-[C:3])-[C;H0;D3;+0:4](=[O;H0;D1;+0:6])-[c:5])>>(Cl-[CH;D3;+0:1](-[C:2])-[C:3]).(N#[C;H0;D2;+0:4]-[c:5]).([OH2;D0;+0:6])", + "reactants": [ + [ + 139643166200352, + 139643166202848, + 139643166202608 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643166200352, + "children": [] + }, + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643166202848, + "children": [] + }, + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643166202608, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 6.907755374908447, + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([O;D1;H0:2]=[C;H0;D3;+0:1](-[NH;D2;+0:9]-[c:10])-[c:3]1:[c:4]:[c:5]:[c:6]:[c:7]:[c:8]:1)>>(C-O-[C;H0;D3;+0:1](=[O;D1;H0:2])-[c:3]1:[c:4]:[c:5]:[c:6]:[c:7]:[c:8]:1).([NH2;D1;+0:9]-[c:10])", + "reactants": [ + [ + 139643166201024, + 139643166201744 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643166201024, + "children": [] + }, + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643166201744, + "children": [] + } + ] + }, + { + "cost": 6.907755374908447, + "value": 6.907755374908447, + "target_value": 6.907755374908447, + "reaction": { + "mol": 139643154371392, + "index": 0, + "metadata": {}, + "smarts": "([C:5]-[C;H0;D3;+0:4](=[O;D1;H0:6])-[c;H0;D3;+0:1](:[c:2]):[c:3])>>(Br-[c;H0;D3;+0:1](:[c:2]):[c:3]).(C-O-N(-C)-[C;H0;D3;+0:4](-[C:5])=[O;D1;H0:6])", + "reactants": [ + [ + 139643166202176, + 139643166201600 + ] + ], + "class": "aizynthfinder.chem.reaction.TemplatedRetroReaction" + }, + "children": [ + { + "cost": 0.0, + "expandable": false, + "value": 0.0, + "mol": 139643166202176, + "children": [] + }, + { + "cost": 0.0, + "expandable": true, + "value": 0.0, + "mol": 139643166201600, + "children": [] + } + ] + } + ] + }, + "molecules": { + "139643154371392": { + "smiles": "CN1CCC(C(=O)c2cccc(NC(=O)c3ccc(F)cc3)c2F)CC1", + "class": "TreeMolecule", + "parent": null, + "transform": 0, + "tracked_atom_indices": {} + }, + "139643166203664": { + "smiles": "[C:14](=[O:15])([c:16]1[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]1)[Cl:900]", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643171528960": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643166201504": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643162454288": { + "smiles": "[CH3:1][I:900]=[N+:13]([c:12]1[cH:11][cH:10][cH:9][c:8]([C:6]([CH:5]2[CH2:4][CH2:3][NH:2][CH2:26][CH2:25]2)=[O:7])[c:23]1[F:24])[O-:901]", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162454624": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([CH:6]([OH:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162455056": { + "smiles": "[C:1]([N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1)([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:905]", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162454144": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162454048": { + "smiles": "[C:1]([N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1)(=[O:900])[O:901][CH2:902][c:903]1[cH:904][cH:905][cH:906][cH:907][cH:908]1", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162455488": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][c:11]([Cl:900])[c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162455728": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][c:10]([Cl:900])[cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162455968": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[c:9]([Cl:900])[cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166201120": { + "smiles": "[CH3:1][NH:2][CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]1[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]1[F:24])[CH2:25][CH2:26][Cl:900]", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166202416": { + "smiles": "[CH3:1][NH:2][CH2:26][CH2:25][CH:5]([CH2:4][CH2:3][Cl:900])[C:6](=[O:7])[c:8]1[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]1[F:24]", + "class": "TreeMolecule", + "parent": 139643166201504, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643173163552": { + "smiles": "[CH2:1]=[O:900]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173165280": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643162452464": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166163824": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643164870880": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[N:902]([O:901][CH3:900])[CH3:903])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643164872128": { + "smiles": "[cH:8]1[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]1[F:24]", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171738528": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N:13]=[C:900]([c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[c:907]3[cH:908][cH:909][cH:910][cH:911][cH:912]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643164872464": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171738432": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:904]([C:901]([F:900])([F:902])[F:903])=[O:905])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171739248": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([Br:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171739344": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[c:9]([Cl:900])[cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171739536": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][c:11]([Cl:900])[c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171739632": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][c:10]([Cl:900])[cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171738048": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:901]([CH3:900])=[O:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171740112": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([F:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171740688": { + "smiles": "[NH3:13]", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171740400": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:901](=[O:900])[O:902][CH2:903][c:904]3[cH:905][cH:906][cH:907][cH:908][cH:909]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171741456": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:904]([C:901]([CH3:900])([CH3:902])[CH3:903])=[O:905])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171741024": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N:13]([CH2:900][c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[CH2:907][c:908]3[cH:909][cH:910][cH:911][cH:912][cH:913]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171740928": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([C:901]([OH:900])=[O:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171740640": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][CH2:900][c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171740880": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([CH:6]([OH:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171740016": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([Cl:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643164869104": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[c:9]([Cl:900])[cH:10][cH:11][c:12]([N+:13](=[O:901])[O-:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643164869056": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][c:10]([Cl:900])[cH:11][c:12]([N+:13](=[O:901])[O-:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643173070016": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][c:10]([Cl:900])[c:11]([Cl:901])[c:12]([N+:13](=[O:902])[O-:903])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643171739392": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([Br:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643164870496": { + "smiles": "[NH4+:13]", + "class": "TreeMolecule", + "parent": 139643162452464, + "transform": 4, + "tracked_atom_indices": {} + }, + "139643162692720": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N+:13](=[O:900])[O-:901])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162692240": { + "smiles": "[N:2]1([CH2:900][c:901]2[cH:902][cH:903][cH:904][cH:905][cH:906]2)[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162690464": { + "smiles": "[N:2]1([C:901](=[O:900])[O:902][CH2:903][c:904]2[cH:905][cH:906][cH:907][cH:908][cH:909]2)[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164991936": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643162692624": { + "smiles": "[N:2]1([C:901]([CH3:900])=[O:902])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164991840": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:901]([CH3:900])=[O:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164991984": { + "smiles": "[N:2]1([C:904]([C:901]([F:900])([F:902])[F:903])=[O:905])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164993136": { + "smiles": "[N:2]1([C:903]([O:902][CH2:901][CH3:900])=[O:904])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164992800": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:904]([C:901]([F:900])([F:902])[F:903])=[O:905])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164992944": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][CH:901]=[O:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164993280": { + "smiles": "[N:2]1([C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:912]([O:911][C:908]([CH3:907])([CH3:909])[CH3:910])=[O:913])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164992848": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:904]([C:901]([CH3:900])([CH3:902])[CH3:903])=[O:905])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164994720": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][c:10]([Cl:900])[cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164994864": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[c:9]([Cl:900])[cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164992512": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][c:11]([Cl:900])[c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164992080": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([C:901]([OH:900])=[O:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164995392": { + "smiles": "[NH3:13]", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164995248": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([F:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643155805712": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:901](=[O:900])[O:902][CH2:903][c:904]3[cH:905][cH:906][cH:907][cH:908][cH:909]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164856432": { + "smiles": "[N:2]1([C:905]([O:904][CH2:903][CH2:902][CH2:901][CH3:900])=[O:906])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164857152": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][cH:12][c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164856960": { + "smiles": "[N:2]1([C:901](=[O:900])[O-:902])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164857104": { + "smiles": "[N:2]1([C:901](=[O:900])[c:902]2[cH:903][cH:904][cH:905][cH:906][cH:907]2)[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164993712": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][CH2:900][c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164993664": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N:13]=[C:900]([c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[c:907]3[cH:908][cH:909][cH:910][cH:911][cH:912]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164994192": { + "smiles": "[n:2]1[cH:3][cH:4][c:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[cH:25][cH:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166164976": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[cH:23]2)[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643171531312": { + "smiles": "[N:2]1([CH2:901][CH3:900])[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643164994768": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([Cl:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166164112": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[N:902]([O:901][CH3:900])[CH3:903])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166166464": { + "smiles": "[cH:8]1[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]1[F:24]", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166164448": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([Br:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643166163392": { + "smiles": "[N:2]1([c:909]2[n:908][c:907]([NH:906][CH2:905][c:904]3[cH:903][cH:902][c:901]([F:900])[cH:923][c:921]3[F:922])[c:912](-[c:913]3[cH:914][cH:915][c:916]([F:917])[cH:918][c:919]3[F:920])[cH:911][n:910]2)[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643173165280, + "transform": 3, + "tracked_atom_indices": {} + }, + "139643173069200": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:901]([CH3:900])=[O:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173069008": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:905]([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:906])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173069440": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:904]([C:901]([F:900])([F:902])[F:903])=[O:905])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173166960": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N:13]=[C:900]([c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[c:907]3[cH:908][cH:909][cH:910][cH:911][cH:912]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173069680": { + "smiles": "[CH3:1][I:900]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173069968": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070400": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:904]([C:901]([CH3:900])([CH3:902])[CH3:903])=[O:905])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070880": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[c:9]([Cl:900])[cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070832": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][c:11]([Cl:900])[c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173068960": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][c:10]([Cl:900])[cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070448": { + "smiles": "[C:6]([c:8]1[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]1[F:24])#[N:901]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070736": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([Cl:900])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173069632": { + "smiles": "[OH2:7]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173071264": { + "smiles": "[C:1]([N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1)([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:905]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173071600": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([Cl:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173072032": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:901](=[O:900])[O:902][CH2:903][c:904]3[cH:905][cH:906][cH:907][cH:908][cH:909]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070592": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([Br:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070544": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[N:902]([O:901][CH3:900])[CH3:903])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173070064": { + "smiles": "[cH:8]1[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]1[F:24]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173072272": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][CH2:900][c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173072320": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([C:901]([OH:900])=[O:902])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643172995808": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([F:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643172995136": { + "smiles": "[NH3:13]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173072224": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643172995568": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][CH:901]=[O:900])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173071648": { + "smiles": "[CH3:1][OH:900]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173071360": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643172995856": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([CH:6]([OH:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643172995472": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][cH:12][c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173164800": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[Cl:900])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173164224": { + "smiles": "[c:8]1([I:901])[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]1[F:24]", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173163312": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][c:10]([Cl:900])[c:11]([Cl:901])[c:12]([N+:13](=[O:902])[O-:903])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643173164848": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([N:13]([CH2:900][c:901]3[cH:902][cH:903][cH:904][cH:905][cH:906]3)[CH2:907][c:908]3[cH:909][cH:910][cH:911][cH:912][cH:913]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643171528960, + "transform": 2, + "tracked_atom_indices": {} + }, + "139643157042560": { + "smiles": "[C:14](=[O:15])([c:16]1[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]1)[OH:900]", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643157043712": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643166200256": { + "smiles": "[CH2:1]=[O:900]", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643166201936": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:14](=[O:15])[c:16]3[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643166202032": { + "smiles": "[C:1]([N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:14](=[O:15])[c:16]3[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]3)[c:23]2[F:24])[CH2:25][CH2:26]1)([O:904][C:901]([CH3:900])([CH3:902])[CH3:903])=[O:905]", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643166200736": { + "smiles": "[CH3:1][I:900]", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643166203376": { + "smiles": "[NH:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:14](=[O:15])[c:16]3[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} + }, + "139643166200976": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([CH:6]([OH:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:14](=[O:15])[c:16]3[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]3)[c:23]2[F:24])[CH2:25][CH2:26]1", + "class": "TreeMolecule", + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140605332201936": { - "smiles": "Cc1ccc2nc3ccccc3c(Cl)c2c1", + "139643166200112": { + "smiles": "[C:1]([N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH:13][C:14](=[O:15])[c:16]3[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]3)[c:23]2[F:24])[CH2:25][CH2:26]1)(=[O:900])[O:901][CH2:902][c:903]1[cH:904][cH:905][cH:906][cH:907][cH:908]1", "class": "TreeMolecule", - "parent": 140605332219984, - "transform": 1 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140605332205072": { - "smiles": "Nc1ccc(NC(=S)Nc2ccccc2)cc1", + "139643166200352": { + "smiles": "[C:6]([c:8]1[cH:9][cH:10][cH:11][c:12]([NH:13][C:14](=[O:15])[c:16]2[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]2)[c:23]1[F:24])#[N:901]", "class": "TreeMolecule", - "parent": 140605332219984, - "transform": 1 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140598039857296": { - "smiles": "Cc1ccc2nc3ccccc3c(Nc3ccc(N=C=S)cc3)c2c1", + "139643166202848": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([Cl:900])[CH2:25][CH2:26]1", "class": "TreeMolecule", - "parent": 140605332219984, - "transform": 1 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140598039857616": { - "smiles": "Cc1ccc2nc3ccccc3c(Cl)c2c1", + "139643166202608": { + "smiles": "[OH2:7]", "class": "TreeMolecule", - "parent": 140598039857296, - "transform": 2 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140605332368528": { - "smiles": "Nc1ccc(N=C=S)cc1", + "139643166201024": { + "smiles": "[C:14](=[O:15])([c:16]1[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]1)[O:901][CH3:900]", "class": "TreeMolecule", - "parent": 140598039857296, - "transform": 2 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140605332368656": { - "smiles": "Cc1ccc2nc3ccccc3c(Br)c2c1", + "139643166201744": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[c:8]2[cH:9][cH:10][cH:11][c:12]([NH2:13])[c:23]2[F:24])[CH2:25][CH2:26]1", "class": "TreeMolecule", - "parent": 140598039857296, - "transform": 2 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140602867801296": { - "smiles": "Nc1ccc(N=C=S)cc1", + "139643166202176": { + "smiles": "[CH3:1][N:2]1[CH2:3][CH2:4][CH:5]([C:6](=[O:7])[N:903]([O:902][CH3:901])[CH3:904])[CH2:25][CH2:26]1", "class": "TreeMolecule", - "parent": 140598039857296, - "transform": 2 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} }, - "140605332204496": { - "smiles": "Nc1ccccc1", + "139643166201600": { + "smiles": "[c:8]1([Br:900])[cH:9][cH:10][cH:11][c:12]([NH:13][C:14](=[O:15])[c:16]2[cH:17][cH:18][c:19]([F:20])[cH:21][cH:22]2)[c:23]1[F:24]", "class": "TreeMolecule", - "parent": 140605332219984, - "transform": 1 + "parent": 139643154371392, + "transform": 1, + "tracked_atom_indices": {} } } } \ No newline at end of file diff --git a/tests/retrostar/test_retrostar.py b/tests/retrostar/test_retrostar.py index b0e1ff6..a986173 100644 --- a/tests/retrostar/test_retrostar.py +++ b/tests/retrostar/test_retrostar.py @@ -1,3 +1,5 @@ +import numpy as np + from aizynthfinder.search.retrostar.search_tree import SearchTree from aizynthfinder.chem.serialization import MoleculeSerializer @@ -112,10 +114,11 @@ def test_split_andor_tree(shared_datadir, default_config): routes = tree.routes() - assert len(routes) == 3 + assert len(routes) == 97 def test_update(shared_datadir, default_config, setup_stock): + # Todo: re-write setup_stock( default_config, "Nc1ccc(NC(=S)Nc2ccccc2)cc1", @@ -132,8 +135,10 @@ def test_update(shared_datadir, default_config, setup_stock): saved_root_value = tree.root.value tree.mol_nodes[-1].parent.update(35, from_mol=tree.mol_nodes[-1].mol) - assert [child.value for child in tree.root.children] == [5.0, 45.0] - assert tree.root.value != saved_root_value - assert tree.root.value == 5 + assert [np.round(child.value, 2) for child in tree.root.children][:2] == [ + 3.17, + 3.31, + ] + assert tree.root.value == saved_root_value tree.serialize("temp.json") diff --git a/tests/test_analysis.py b/tests/test_analysis.py index 0f77214..b2bf812 100644 --- a/tests/test_analysis.py +++ b/tests/test_analysis.py @@ -6,17 +6,17 @@ from aizynthfinder.analysis import TreeAnalysis, RouteCollection from aizynthfinder.analysis.utils import RouteSelectionArguments -from aizynthfinder.reactiontree import ReactionTree +from aizynthfinder.reactiontree import ReactionTree, SUPPORT_DISTANCES from aizynthfinder.search.mcts import MctsSearchTree from aizynthfinder.context.scoring import StateScorer, NumberOfReactionsScorer def test_sort_nodes(setup_analysis): - analysis, nodes = setup_analysis() + analysis, _ = setup_analysis() best_nodes, best_scores = analysis.sort() - assert len(best_nodes) == 7 + assert len(best_nodes) == 5 assert np.round(best_scores[0], 4) == 0.9940 best_nodes, best_scores = analysis.sort(RouteSelectionArguments(nmin=0)) @@ -25,15 +25,15 @@ def test_sort_nodes(setup_analysis): def test_sort_nodes_nmax(setup_analysis): - analysis, nodes = setup_analysis() + analysis, _ = setup_analysis() - best_nodes, best_scores = analysis.sort(RouteSelectionArguments(nmax=5)) + best_nodes, _ = analysis.sort(RouteSelectionArguments(nmax=5)) assert len(best_nodes) == 5 def test_sort_nodes_return_all(setup_analysis): - analysis, nodes = setup_analysis() + analysis, _ = setup_analysis() best_nodes, best_scores = analysis.sort(RouteSelectionArguments(return_all=True)) @@ -55,14 +55,14 @@ def test_sort_routes(setup_analysis_andor_tree): best_routes, best_scores = analysis.sort() - assert len(best_routes) == 3 + assert len(best_routes) == 25 assert best_scores[0] == 1 def test_best_node(setup_analysis): analysis, nodes = setup_analysis(scorer=NumberOfReactionsScorer()) - assert analysis.best() is nodes[51] + assert analysis.best() is nodes[32] def test_best_route(setup_analysis_andor_tree): @@ -76,8 +76,8 @@ def test_tree_statistics(setup_analysis): stats = analysis.tree_statistics() - assert stats["number_of_nodes"] == 61 - assert stats["max_transforms"] == 7 + assert stats["number_of_nodes"] == 40 + assert stats["max_transforms"] == 6 assert stats["max_children"] == 10 assert stats["number_of_routes"] == 10 assert stats["number_of_solved_routes"] == 1 @@ -86,27 +86,27 @@ def test_tree_statistics(setup_analysis): assert stats["number_of_steps"] == 2 assert stats["number_of_precursors"] == 4 assert stats["number_of_precursors_in_stock"] == 4 - mol_str = "CN1CCC(Cl)CC1, O, N#Cc1cccc(N)c1F, O=C(Cl)c1ccc(F)cc1" + mol_str = "CN1CCC(Cl)CC1, O, O=C(Cl)c1ccc(F)cc1, N#Cc1cccc(N)c1F" assert stats["precursors_in_stock"] == mol_str assert stats["precursors_not_in_stock"] == "" - assert stats["policy_used_counts"] == {} + assert stats["policy_used_counts"] == {"uspto": 39} def test_tree_statistics_andor_tree(setup_analysis_andor_tree): - analysis = setup_analysis_andor_tree(scorer=NumberOfReactionsScorer()) + analysis = setup_analysis_andor_tree() stats = analysis.tree_statistics() - assert stats["number_of_nodes"] == 9 - assert stats["max_transforms"] == 2 - assert stats["max_children"] == 2 - assert stats["number_of_routes"] == 3 - assert stats["number_of_solved_routes"] == 3 - assert stats["top_score"] == 1 + assert stats["number_of_nodes"] == 124 + assert stats["max_transforms"] == 4 + assert stats["max_children"] == 32 + assert stats["number_of_routes"] == 97 + assert stats["number_of_solved_routes"] == 1 + assert np.round(stats["top_score"], 3) == 0.994 assert stats["is_solved"] - assert stats["number_of_steps"] == 1 - assert stats["number_of_precursors"] == 2 - assert stats["number_of_precursors_in_stock"] == 2 - mol_str = "Cc1ccc2nc3ccccc3c(Cl)c2c1, Nc1ccc(NC(=S)Nc2ccccc2)cc1" + assert stats["number_of_steps"] == 2 + assert stats["number_of_precursors"] == 3 + assert stats["number_of_precursors_in_stock"] == 3 + mol_str = "O=C(Cl)c1ccc(F)cc1, CN1CCC(C(=O)Cl)CC1, Nc1cccc(I)c1F" assert stats["precursors_in_stock"] == mol_str assert stats["precursors_not_in_stock"] == "" assert stats["policy_used_counts"] == {} @@ -117,7 +117,7 @@ def test_create_route_collection_full(setup_analysis, mocker): routes = RouteCollection.from_analysis(analysis) - assert len(routes) == 7 + assert len(routes) == 5 # Check a few of the routes assert np.round(routes.scores[0], 3) == 0.994 assert len(routes.reaction_trees[0].graph) == 8 @@ -130,12 +130,12 @@ def test_create_route_collection_full(setup_analysis, mocker): mocker.patch("aizynthfinder.reactiontree.ReactionTree.to_dict") mocker.patch("aizynthfinder.reactiontree.json.dumps") - mocker.patch("aizynthfinder.utils.image.make_graphviz_image") + mocker.patch("aizynthfinder.reactiontree.RouteImageFactory") # Just see that the code does not crash, does not verify content - assert len(routes.images) == 7 - assert len(routes.dicts) == 7 - assert len(routes.jsons) == 7 + assert len(routes.images) == 5 + assert len(routes.dicts) == 5 + assert len(routes.jsons) == 5 def test_create_route_collection_andor_tree(setup_analysis_andor_tree): @@ -143,8 +143,8 @@ def test_create_route_collection_andor_tree(setup_analysis_andor_tree): routes = RouteCollection.from_analysis(analysis) - assert len(routes) == 3 - assert routes.nodes == [None, None, None] + assert len(routes) == 21 + assert routes.nodes == 21 * [None] def test_compute_new_score(setup_analysis): @@ -188,6 +188,50 @@ def test_dict_with_scores(setup_analysis): assert np.round(dicts[0]["scores"]["state score"], 3) == 0.994 +def test_dict_with_extras_no_arg(setup_analysis): + analysis, _ = setup_analysis() + routes = RouteCollection.from_analysis(analysis) + + dicts = routes.dict_with_extra() + + assert "scores" not in dicts[0] + assert "metadata" not in dicts[0] + + +def test_dict_with_extras_only_score(setup_analysis): + analysis, _ = setup_analysis() + routes = RouteCollection.from_analysis(analysis) + + dicts = routes.dict_with_extra(include_scores=True) + + assert "scores" in dicts[0] + assert "metadata" not in dicts[0] + assert np.round(dicts[0]["scores"]["state score"], 3) == 0.994 + + +def test_dict_with_extras_only_metadata(setup_analysis): + analysis, _ = setup_analysis() + routes = RouteCollection.from_analysis(analysis) + + dicts = routes.dict_with_extra(include_metadata=True) + + assert "scores" not in dicts[0] + assert "metadata" in dicts[0] + assert dicts[0]["metadata"] == {"created_at_iteration": 0, "is_solved": True} + + +def test_dict_with_extras_all(setup_analysis): + analysis, _ = setup_analysis() + routes = RouteCollection.from_analysis(analysis) + + dicts = routes.dict_with_extra(include_metadata=True, include_scores=True) + + assert "scores" in dicts[0] + assert "metadata" in dicts[0] + assert np.round(dicts[0]["scores"]["state score"], 3) == 0.994 + assert dicts[0]["metadata"] == {"created_at_iteration": 0, "is_solved": True} + + def test_compute_new_score_for_trees(default_config, setup_linear_reaction_tree): rt = setup_linear_reaction_tree() routes = RouteCollection(reaction_trees=[rt]) @@ -239,6 +283,12 @@ def test_create_combine_tree_dict_from_json(load_reaction_tree): def test_create_combine_tree_dict_from_tree( setup_stock, default_config, load_reaction_tree, shared_datadir ): + def remove_metadata(tree_dict): + if "metadata" in tree_dict: + tree_dict["metadata"] = {} + for child in tree_dict.get("children", []): + remove_metadata(child) + setup_stock( default_config, "Nc1ccc(NC(=S)Nc2ccccc2)cc1", @@ -255,9 +305,10 @@ def test_create_combine_tree_dict_from_tree( collection = RouteCollection.from_analysis( analysis, RouteSelectionArguments(nmin=3) ) - expected = load_reaction_tree("combined_example_tree.json") + expected = load_reaction_tree("combined_example_tree2.json") combined_dict = collection.combined_reaction_trees().to_dict() + remove_metadata(combined_dict) # Mapped reaction SMILES not reproducible! assert len(combined_dict["children"]) == 2 assert combined_dict["children"][0]["is_reaction"] @@ -287,6 +338,9 @@ def test_create_combine_tree_to_visjs(load_reaction_tree, tmpdir): assert len([name for name in tarobj.getnames() if name.endswith(".png")]) == 8 +@pytest.mark.xfail( + condition=not SUPPORT_DISTANCES, reason="route_distances not installed" +) def test_distance_collection(load_reaction_tree): collection = RouteCollection( reaction_trees=[ @@ -311,6 +365,9 @@ def test_distance_collection(load_reaction_tree): assert pytest.approx(dist_mat3[2, 1], abs=1e-2) == 0.7483 +@pytest.mark.xfail( + condition=not SUPPORT_DISTANCES, reason="route_distances not installed" +) def test_clustering_collection(load_reaction_tree): collection = RouteCollection( reaction_trees=[ @@ -327,6 +384,9 @@ def test_clustering_collection(load_reaction_tree): assert collection.clusters[1].reaction_trees == [collection.reaction_trees[0]] +@pytest.mark.xfail( + condition=not SUPPORT_DISTANCES, reason="route_distances not installed" +) def test_clustering_collection_timeout(load_reaction_tree): collection = RouteCollection( reaction_trees=[ diff --git a/tests/test_cli.py b/tests/test_cli.py index 93d62cb..f53daf0 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -7,21 +7,33 @@ import pytest from aizynthfinder.interfaces import AiZynthApp -from aizynthfinder.interfaces.gui import ClusteringGui from aizynthfinder.interfaces.aizynthapp import main as app_main from aizynthfinder.interfaces.aizynthcli import main as cli_main from aizynthfinder.tools.make_stock import main as make_stock_main from aizynthfinder.tools.cat_output import main as cat_main -from aizynthfinder.training.preprocess_expansion import main as expansion_main -from aizynthfinder.training.preprocess_recommender import main as recommender_main -from aizynthfinder.training.preprocess_filter import main as filter_main -from aizynthfinder.training.make_false_products import main as make_false_main from aizynthfinder.tools.download_public_data import main as download_main -from aizynthfinder.training.utils import Config from aizynthfinder.chem import MoleculeException from aizynthfinder.analysis import RouteCollection from aizynthfinder.reactiontree import ReactionTree +try: + from aizynthfinder.training.utils import Config + from aizynthfinder.training.preprocess_expansion import main as expansion_main + from aizynthfinder.training.preprocess_recommender import main as recommender_main + from aizynthfinder.training.preprocess_filter import main as filter_main + from aizynthfinder.training.make_false_products import main as make_false_main +except ImportError: + SUPPORT_TRAINING = False +else: + SUPPORT_TRAINING = True + +try: + from aizynthfinder.interfaces.gui import ClusteringGui +except ImportError: + SUPPORT_CLUSTERING = False +else: + SUPPORT_CLUSTERING = True + def test_create_gui_app(mocker): display_patch = mocker.patch("aizynthfinder.interfaces.aizynthapp.display") @@ -34,6 +46,9 @@ def test_create_gui_app(mocker): display_patch.assert_called() +@pytest.mark.xfail( + condition=not SUPPORT_CLUSTERING, reason="route_distances not installed" +) def test_create_clustering_gui(mocker, load_reaction_tree): collection = RouteCollection( reaction_trees=[ @@ -126,7 +141,7 @@ def test_cli_multiple_smiles( "aizynthfinder.interfaces.aizynthcli.pd.DataFrame.from_dict" ) smiles_input = create_dummy_smiles_source("txt") - output_name = str(tmpdir / "data.hdf5") + output_name = str(tmpdir / "data.json.gz") add_cli_arguments( f"--smiles {smiles_input} --config config_local.yml --output {output_name}" ) @@ -150,7 +165,7 @@ def test_cli_multiple_smiles_unsanitizable( smiles_input = str(tmpdir / "smiles_source.txt") with open(smiles_input, "w") as fileobj: fileobj.write("n1(c(=O)[nH]c2c(c1=O)c(c(s2)C(=O)N(C)C)C)c1c(N(=O)O)cccc1") - output_name = str(tmpdir / "data.hdf5") + output_name = str(tmpdir / "data.json.gz") add_cli_arguments( f"--smiles {smiles_input} --config config_local.yml --output {output_name}" ) @@ -161,7 +176,7 @@ def test_cli_multiple_smiles_unsanitizable( assert "Failed to setup search" in output.out assert output.out.count("Done with") == 0 assert f"Output saved to {output_name}" in output.out - assert len(pd.read_hdf(output_name, "table")) == 0 + assert len(pd.read_json(output_name, orient="table")) == 0 def test_cli_single_smile_with_postprocessing( @@ -187,6 +202,21 @@ def test_cli_single_smile_with_postprocessing( sys.path.remove(module_path) +def test_cli_smiles_argument_incorrect( + add_cli_arguments, + tmpdir, + capsys, +): + smiles_input = str(tmpdir / "smiles_source.txt") + add_cli_arguments(f"--smiles {smiles_input} --config config_local.yml") + + cli_main() + + output = capsys.readouterr() + assert "Cannot start retrosynthesis planning." in output.out + assert smiles_input in output.out + + def test_make_stock_from_plain_file( create_dummy_smiles_source, tmpdir, add_cli_arguments, default_config ): @@ -212,6 +242,7 @@ def test_cat_main(tmpdir, add_cli_arguments, create_dummy_stock1, create_dummy_s assert len(data) == 4 +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="dependencies not installed") def test_preprocess_expansion(write_yaml, shared_datadir, add_cli_arguments): config_path = write_yaml( { @@ -247,6 +278,7 @@ def test_preprocess_expansion(write_yaml, shared_datadir, add_cli_arguments): assert column in data.columns +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="dependencies not installed") def test_preprocess_expansion_no_class(write_yaml, shared_datadir, add_cli_arguments): config_path = write_yaml( { @@ -292,6 +324,7 @@ def test_preprocess_expansion_no_class(write_yaml, shared_datadir, add_cli_argum assert column in data.columns +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="dependencies not installed") def test_preprocess_expansion_csv_headers(write_yaml, shared_datadir): config_path = write_yaml( { @@ -332,6 +365,7 @@ def test_preprocess_expansion_csv_headers(write_yaml, shared_datadir): assert column in data.columns +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="dependencies not installed") def test_preprocess_expansion_bad_product( write_yaml, shared_datadir, add_cli_arguments ): @@ -346,6 +380,7 @@ def test_preprocess_expansion_bad_product( expansion_main([config_path]) +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="dependencies not installed") def test_preprocess_expansion_skip_bad_product( write_yaml, shared_datadir, add_cli_arguments ): @@ -364,6 +399,7 @@ def test_preprocess_expansion_skip_bad_product( assert len(lines) == 10 +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="dependencies not installed") def test_preprocess_recommender(write_yaml, shared_datadir, add_cli_arguments): config_path = write_yaml( { @@ -401,6 +437,7 @@ def test_preprocess_recommender(write_yaml, shared_datadir, add_cli_arguments): assert len(data) == 2 +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="dependencies not installed") def test_preprocess_recommender_csv_headers( write_yaml, shared_datadir, add_cli_arguments ): @@ -445,6 +482,7 @@ def test_preprocess_recommender_csv_headers( assert len(data) == 2 +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="dependencies not installed") def test_preprocess_filter(write_yaml, shared_datadir, add_cli_arguments): def duplicate_file(filename): with open(shared_datadir / filename, "r") as fileobj: @@ -489,6 +527,7 @@ def duplicate_file(filename): assert len(lines) == 2 +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="dependencies not installed") def test_preprocess_filter_csv_headers(write_yaml, shared_datadir, add_cli_arguments): def duplicate_file(filename): with open(shared_datadir / filename, "r") as fileobj: @@ -538,6 +577,7 @@ def duplicate_file(filename): assert len(lines) == 3 +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="dependencies not installed") def test_make_false_products(write_yaml, shared_datadir, add_cli_arguments): config_path = write_yaml( { diff --git a/tests/test_finder.py b/tests/test_finder.py index db9c59e..8be1ce5 100644 --- a/tests/test_finder.py +++ b/tests/test_finder.py @@ -35,6 +35,7 @@ def test_dead_end_expansion(setup_aizynthfinder): assert len(nodes) == 1 assert state_smiles(nodes[0].state) == [root_smi] assert finder.search_stats["iterations"] == 100 + assert nodes[0].created_at_iteration == 0 def test_one_expansion(setup_aizynthfinder): @@ -57,6 +58,8 @@ def test_one_expansion(setup_aizynthfinder): assert len(nodes) == 2 assert state_smiles(nodes[0].state) == [root_smi] assert state_smiles(nodes[1].state) == child1_smi + assert nodes[0].created_at_iteration == 0 + assert nodes[1].created_at_iteration == 1 assert finder.search_stats["iterations"] == 1 assert finder.search_stats["returned_first"] @@ -129,6 +132,12 @@ def test_two_expansions_two_children(setup_aizynthfinder): nodes = list(finder.tree.graph()) assert len(nodes) == 5 + assert nodes[0].created_at_iteration == 0 + assert nodes[1].created_at_iteration == 1 + assert nodes[2].created_at_iteration == 1 + assert nodes[3].created_at_iteration == 2 + assert nodes[4].created_at_iteration == 2 + assert state_smiles(nodes[0].state) == [root_smi] assert state_smiles(nodes[1].state) == child1_smi assert ( @@ -615,3 +624,22 @@ def test_two_expansions_two_children_one_filtered(setup_aizynthfinder, caplog): state_smiles(nodes[2].state) == [child1_smi[0], child1_smi[2]] + grandchild_smi ) assert finder.search_stats["iterations"] == 10 + + +def test_stock_info(setup_aizynthfinder): + root_smi = "CN1CCC(C(=O)c2cccc(NC(=O)c3ccc(F)cc3)c2F)CC1" + child1_smi = ["CN1CCC(Cl)CC1", "N#Cc1cccc(NC(=O)c2ccc(F)cc2)c1F", "O"] + lookup = {root_smi: {"smiles": ".".join(child1_smi), "prior": 1.0}} + finder = setup_aizynthfinder(lookup, child1_smi) + + # Test first with return_first + finder.config.return_first = True + finder.tree_search() + + assert finder.stock_info() == {} + + finder.build_routes() + + expected = {smi: ["stock"] for smi in child1_smi} + expected[root_smi] = [] + assert finder.stock_info() == expected diff --git a/tests/test_reactiontree.py b/tests/test_reactiontree.py index 003297e..41fd08a 100644 --- a/tests/test_reactiontree.py +++ b/tests/test_reactiontree.py @@ -1,13 +1,20 @@ import pytest -from aizynthfinder.reactiontree import ReactionTree +from aizynthfinder.reactiontree import ReactionTree, SUPPORT_DISTANCES def test_mcts_route_to_reactiontree(setup_linear_mcts, load_reaction_tree): + def remove_metadata(tree_dict): + if "metadata" in tree_dict: + tree_dict["metadata"] = {} + for child in tree_dict.get("children", []): + remove_metadata(child) + _, node = setup_linear_mcts() expected_dict = load_reaction_tree("linear_route.json") reaction_tree = node.to_reaction_tree() + assert reaction_tree.metadata == {"created_at_iteration": 1, "is_solved": True} mol_nodes = list(reaction_tree.molecules()) assert len(mol_nodes) == 5 @@ -22,7 +29,9 @@ def test_mcts_route_to_reactiontree(setup_linear_mcts, load_reaction_tree): "c1ccccc1", "OOc1ccccc1", } - assert reaction_tree.to_dict() == expected_dict + actual_dict = reaction_tree.to_dict(include_metadata=True) + remove_metadata(actual_dict) + assert actual_dict == expected_dict def test_reactiontree_from_dict(load_reaction_tree): @@ -31,12 +40,12 @@ def test_reactiontree_from_dict(load_reaction_tree): rt = ReactionTree.from_dict(expected) # Simply check that the to_dict() and from_dict() gives/produces the same dict - resp = rt.to_dict() + resp = rt.to_dict(include_metadata=True) assert resp == expected def test_reactiontree_to_image(load_reaction_tree, mocker): - patched_make_image = mocker.patch("aizynthfinder.reactiontree.make_graphviz_image") + patched_make_image = mocker.patch("aizynthfinder.reactiontree.RouteImageFactory") tree = load_reaction_tree("linear_route.json") rt = ReactionTree.from_dict(tree) @@ -44,36 +53,6 @@ def test_reactiontree_to_image(load_reaction_tree, mocker): rt.to_image() patched_make_image.assert_called_once() - assert len(patched_make_image.call_args[0][0]) == len(list(rt.molecules())) - assert len(patched_make_image.call_args[0][1]) == len(list(rt.reactions())) - - -def test_reactiontree_to_image_hiding(load_reaction_tree, mocker): - patched_make_image = mocker.patch("aizynthfinder.reactiontree.make_graphviz_image") - - tree = load_reaction_tree("linear_route.json", 1) - rt = ReactionTree.from_dict(tree) - for idx, reaction in enumerate(rt.reactions()): - if idx == 0: - continue - rt.graph.nodes[reaction]["hide"] = True - for idx, mol in enumerate(rt.leafs()): - if idx == 2: - continue - rt.graph.nodes[mol]["hide"] = True - - rt.to_image(show_all=True) - - patched_make_image.assert_called_once() - assert len(patched_make_image.call_args[0][0]) == len(list(rt.molecules())) - assert len(patched_make_image.call_args[0][1]) == len(list(rt.reactions())) - - patched_make_image.reset_mock() - - rt.to_image(show_all=False) - - assert len(patched_make_image.call_args[0][0]) == len(list(rt.molecules())) - 2 - assert len(patched_make_image.call_args[0][1]) == len(list(rt.reactions())) - 1 def test_route_node_depth_from_mcts(setup_branched_reaction_tree): @@ -127,6 +106,9 @@ def test_route_node_depth_from_json(load_reaction_tree): assert rt.depth(mol) == 2 * rt.graph.nodes[mol]["transform"] +@pytest.mark.xfail( + condition=not SUPPORT_DISTANCES, reason="route_distances not installed" +) def test_route_distance_self(load_reaction_tree): dict_ = load_reaction_tree("branched_route.json", 0) rt = ReactionTree.from_dict(dict_) @@ -134,6 +116,9 @@ def test_route_distance_self(load_reaction_tree): assert rt.distance_to(rt) == 0.0 +@pytest.mark.xfail( + condition=not SUPPORT_DISTANCES, reason="route_distances not installed" +) def test_route_distance_other(load_reaction_tree): dict_ = load_reaction_tree("branched_route.json") rt1 = ReactionTree.from_dict(dict_) diff --git a/tests/test_training.py b/tests/test_training.py index ff5f016..db888ad 100644 --- a/tests/test_training.py +++ b/tests/test_training.py @@ -3,29 +3,36 @@ import pytest import pandas as pd import numpy as np -from scipy import sparse - -from aizynthfinder.training.utils import ( - Config, - create_reactants_molecules, - reverse_template, - reaction_hash, - split_and_save_data, - smiles_to_fingerprint, - is_sanitizable, - reaction_to_fingerprints, -) -from aizynthfinder.training.keras_models import ( - ExpansionModelSequence, - FilterModelSequence, -) -from aizynthfinder.training.make_false_products import ( - strict_application, - random_application, - recommender_application, -) + from aizynthfinder.chem import Molecule +try: + from scipy import sparse + + from aizynthfinder.training.utils import ( + Config, + create_reactants_molecules, + reverse_template, + reaction_hash, + split_and_save_data, + smiles_to_fingerprint, + is_sanitizable, + reaction_to_fingerprints, + ) + from aizynthfinder.training.keras_models import ( + ExpansionModelSequence, + FilterModelSequence, + ) + from aizynthfinder.training.make_false_products import ( + strict_application, + random_application, + recommender_application, + ) +except ImportError: + SUPPORT_TRAINING = False +else: + SUPPORT_TRAINING = True + @pytest.fixture def default_config(): @@ -60,6 +67,7 @@ def expansion_model_sequence(mocker, default_config): return ExpansionModelSequence(default_config, "training") +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_empty_config(default_config, write_yaml): filename = write_yaml({}) @@ -68,6 +76,7 @@ def test_empty_config(default_config, write_yaml): assert config._config == default_config._config +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_update_single_setting(default_config, write_yaml): filename = write_yaml({"fingerprint_len": 10}) @@ -77,6 +86,7 @@ def test_update_single_setting(default_config, write_yaml): assert config["template_occurrence"] == default_config["template_occurrence"] +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_update_nested_setting(default_config, write_yaml): filename = write_yaml( {"split_size": {"training": 0.8, "testing": 0.1, "validation": 0.1}} @@ -90,6 +100,7 @@ def test_update_nested_setting(default_config, write_yaml): assert config["split_size"]["validation"] == 0.1 +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_update_invalid_setting(default_config, write_yaml): filename = write_yaml( {"fingerprint_len": {"training": 0.8, "testing": 0.1, "validation": 0.1}} @@ -100,6 +111,7 @@ def test_update_invalid_setting(default_config, write_yaml): assert config["fingerprint_len"] == default_config["fingerprint_len"] +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_config_filename(default_config): filename = default_config.filename("raw_library") @@ -111,6 +123,7 @@ def test_config_filename(default_config): assert filename.endswith("something") +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_split_and_save_data_frame(tmpdir, default_config): default_config["output_path"] = str(tmpdir) default_config["file_prefix"] = "dummy" @@ -141,6 +154,7 @@ def test_split_and_save_data_frame(tmpdir, default_config): assert len(data_read) == 5 +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_split_and_save_data_ndarray(tmpdir, default_config): default_config["output_path"] = str(tmpdir) default_config["file_prefix"] = "dummy" @@ -171,6 +185,7 @@ def test_split_and_save_data_ndarray(tmpdir, default_config): assert len(data_read) == 5 +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_split_and_save_data_sparse(default_config, tmpdir): default_config["output_path"] = str(tmpdir) default_config["file_prefix"] = "dummy" @@ -201,6 +216,7 @@ def test_split_and_save_data_sparse(default_config, tmpdir): assert data_read.shape[0] == 5 +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_smiles_to_fingerprint(default_config): default_config["fingerprint_len"] = 10 @@ -209,6 +225,7 @@ def test_smiles_to_fingerprint(default_config): assert sum(fingerprint) == 1 +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_is_sanitizable(): flag = is_sanitizable(("O")) @@ -218,6 +235,7 @@ def test_is_sanitizable(): assert not flag +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_reaction_to_fingerprint(default_config): default_config["fingerprint_len"] = 10 product_smiles = "[Cl:1][c:2]1[c:3]([C:4](=[O:5])[C:12]([F:11])([F:13])[F:14])[cH:6][c:7]([F:10])[cH:8][cH:9]1" # noqa @@ -230,12 +248,14 @@ def test_reaction_to_fingerprint(default_config): assert list(fingerprint) == [-1, -1, -1, 0, -1, 0, 0, -1, 0, -1] +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_expansion_model_sequence_loading(expansion_model_sequence): assert expansion_model_sequence.input_dim == 10 assert expansion_model_sequence.output_dim == 100 +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_expansion_model_sequence_slicing(expansion_model_sequence, default_config): seq = expansion_model_sequence @@ -247,11 +267,13 @@ def test_expansion_model_sequence_slicing(expansion_model_sequence, default_conf assert ybatch.shape[1] == expansion_model_sequence.output_dim +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_filter_model_sequence_loading(filter_model_sequence): assert filter_model_sequence.input_dim == 10 +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_filter_model_sequence_slicing(filter_model_sequence, default_config): seq = filter_model_sequence @@ -264,6 +286,7 @@ def test_filter_model_sequence_slicing(filter_model_sequence, default_config): assert xbatch[1].shape[1] == filter_model_sequence.input_dim +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_reactants_molecules(): reactants_str = "C[O:5][C:4](=O)[c:3]1[c:2]([Cl:1])[cH:9][cH:8][c:7]([F:10])[cH:6]1.C[Si](C)(C)[C:12]([F:11])([F:13])[F:14].COCCOC.Cl.[Cs+].[F-]" # noqa @@ -277,6 +300,7 @@ def test_reactants_molecules(): assert mols[1].smiles == "C[Si](C)(C)[C:12]([F:11])([F:13])[F:14]" +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_reverse_template(): retro_template = "([C:2]-[C:3](=[O;D1;H0:4])-[N;H0;D3;+0:5](-[CH3;D1;+0:1])-[c:6])>>(I-[CH3;D1;+0:1]).([C:2]-[C:3](=[O;D1;H0:4])-[NH;D2;+0:5]-[c:6])" # noqa expected = "(I-[CH3;D1;+0:1]).([C:2]-[C:3](=[O;D1;H0:4])-[NH;D2;+0:5]-[c:6])>>([C:2]-[C:3](=[O;D1;H0:4])-[N;H0;D3;+0:5](-[CH3;D1;+0:1])-[c:6])" # noqa @@ -284,6 +308,7 @@ def test_reverse_template(): assert reverse_template(retro_template) == expected +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_reaction_hash(): reactants_str = "C[O:5][C:4](=O)[c:3]1[c:2]([Cl:1])[cH:9][cH:8][c:7]([F:10])[cH:6]1.C[Si](C)(C)[C:12]([F:11])([F:13])[F:14].COCCOC.Cl.[Cs+].[F-].[Na+].[OH-]" # noqa product = Molecule( @@ -316,6 +341,7 @@ def library_data(shared_datadir, default_config): return library, default_config +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_strict_application(library_data): library, config = library_data errors = [] @@ -336,6 +362,7 @@ def test_strict_application(library_data): next(gen) +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_random_application(library_data): library, config = library_data errors = [] @@ -357,6 +384,7 @@ def test_random_application(library_data): next(gen) +@pytest.mark.xfail(condition=not SUPPORT_TRAINING, reason="Dependencies not installed") def test_recommender_application(library_data, mocker): mocked_load_model = mocker.patch( "aizynthfinder.training.make_false_products.load_keras_model" diff --git a/tests/utils/test_external_tf_models.py b/tests/utils/test_external_tf_models.py index ef21125..a0e2f9a 100644 --- a/tests/utils/test_external_tf_models.py +++ b/tests/utils/test_external_tf_models.py @@ -3,9 +3,16 @@ import tensorflow as tf import aizynthfinder.utils.models as models -from aizynthfinder.utils.models import ExternalModelViaREST, ExternalModelViaGRPC +from aizynthfinder.utils.models import ( + ExternalModelViaREST, + ExternalModelViaGRPC, + SUPPORT_EXTERNAL_APIS, +) +@pytest.mark.xfail( + condition=not SUPPORT_EXTERNAL_APIS, reason="API packages not installed" +) @pytest.fixture() def setup_rest_mock(mocker): models.TF_SERVING_HOST = "localhost" @@ -27,6 +34,9 @@ def wrapper(response): models.TF_SERVING_REST_PORT = None +@pytest.mark.xfail( + condition=not SUPPORT_EXTERNAL_APIS, reason="API packages not installed" +) @pytest.fixture() def setup_grpc_mock(mocker, signature_grpc): models.TF_SERVING_HOST = "localhost" @@ -92,6 +102,9 @@ def signature_grpc(): } +@pytest.mark.xfail( + condition=not SUPPORT_EXTERNAL_APIS, reason="API packages not installed" +) def test_setup_tf_rest_model(signature_rest, setup_rest_mock): setup_rest_mock(signature_rest) @@ -100,6 +113,9 @@ def test_setup_tf_rest_model(signature_rest, setup_rest_mock): assert len(model) == 2048 +@pytest.mark.xfail( + condition=not SUPPORT_EXTERNAL_APIS, reason="API packages not installed" +) def test_predict_tf_rest_model(signature_rest, setup_rest_mock): responses = [signature_rest, {"outputs": [0.0, 1.0]}] setup_rest_mock(responses) @@ -110,6 +126,9 @@ def test_predict_tf_rest_model(signature_rest, setup_rest_mock): assert list(out) == [0.0, 1.0] +@pytest.mark.xfail( + condition=not SUPPORT_EXTERNAL_APIS, reason="API packages not installed" +) def test_setup_tf_grpc_model(setup_grpc_mock): setup_grpc_mock() @@ -118,6 +137,9 @@ def test_setup_tf_grpc_model(setup_grpc_mock): assert len(model) == 2048 +@pytest.mark.xfail( + condition=not SUPPORT_EXTERNAL_APIS, reason="API packages not installed" +) def test_predict_tf_grpc_model(setup_grpc_mock): setup_grpc_mock({"output": tf.make_tensor_proto(tf.constant([0.0, 1.0]))}) model = ExternalModelViaGRPC("dummy") diff --git a/tests/utils/test_file_utils.py b/tests/utils/test_file_utils.py index 5f051cb..5c2e9b6 100644 --- a/tests/utils/test_file_utils.py +++ b/tests/utils/test_file_utils.py @@ -5,7 +5,13 @@ import pytest import pandas as pd -from aizynthfinder.utils.files import cat_hdf_files, split_file, start_processes +from aizynthfinder.utils.files import ( + cat_datafiles, + split_file, + start_processes, + read_datafile, + save_datafile, +) @pytest.fixture @@ -80,7 +86,7 @@ def test_cat_hdf(create_dummy_stock1, create_dummy_stock2, tmpdir): filename = str(tmpdir / "output.hdf") inputs = [create_dummy_stock1("hdf5"), create_dummy_stock2] - cat_hdf_files(inputs, filename) + cat_datafiles(inputs, filename) data = pd.read_hdf(filename, "table") assert len(data) == 4 @@ -97,7 +103,7 @@ def test_cat_hdf_no_trees(tmpdir, create_dummy_stock1, create_dummy_stock2): tree_filename = str(tmpdir / "trees.json") inputs = [create_dummy_stock1("hdf5"), create_dummy_stock2] - cat_hdf_files(inputs, hdf_filename, tree_filename) + cat_datafiles(inputs, hdf_filename, tree_filename) assert not os.path.exists(tree_filename) @@ -112,10 +118,29 @@ def test_cat_hdf_trees(tmpdir): pd.DataFrame({"mol": ["A", "B"], "trees": trees1}).to_hdf(filename1, "table") pd.DataFrame({"mol": ["A", "B"], "trees": trees2}).to_hdf(filename2, "table") - cat_hdf_files([filename1, filename2], hdf_filename, tree_filename) + cat_datafiles([filename1, filename2], hdf_filename, tree_filename) assert os.path.exists(tree_filename + ".gz") with gzip.open(tree_filename + ".gz", "rt", encoding="UTF-8") as fileobj: trees_cat = json.load(fileobj) assert trees_cat == trees1 + trees2 assert "trees" not in pd.read_hdf(hdf_filename, "table") + + +@pytest.mark.parametrize( + ("filename"), + [ + ("temp.json"), + ("temp.hdf5"), + ], +) +def test_save_load_datafile_roundtrip(filename, tmpdir): + data1 = pd.DataFrame({"a": [0, 1, 2], "b": [2, 3, 4]}) + + save_datafile(data1, tmpdir / filename) + + data2 = read_datafile(tmpdir / filename) + + assert data1.columns.to_list() == data2.columns.to_list() + assert data1.a.to_list() == data2.a.to_list() + assert data1.b.to_list() == data2.b.to_list() diff --git a/tests/utils/test_image.py b/tests/utils/test_image.py index 5935766..0245dab 100644 --- a/tests/utils/test_image.py +++ b/tests/utils/test_image.py @@ -1,5 +1,8 @@ import os +import shutil +import json from tarfile import TarFile +from pathlib import Path import pytest from PIL import Image, ImageDraw @@ -61,6 +64,9 @@ def test_save_molecule_images(): assert len(os.listdir(image.IMAGE_FOLDER)) == nfiles + 2 +@pytest.mark.xfail( + condition=shutil.which("dot") is None, reason="graphviz is not installed" +) def test_graphviz_usage(mocker, tmpdir, setup_graphviz_graph): mkstemp_patch = mocker.patch("aizynthfinder.utils.image.tempfile.mkstemp") files = [ @@ -78,6 +84,9 @@ def test_graphviz_usage(mocker, tmpdir, setup_graphviz_graph): assert os.path.exists(filename) +@pytest.mark.xfail( + condition=shutil.which("dot") is None, reason="graphviz is not installed" +) def test_graphviz_usage_exception_dot(mocker, tmpdir, setup_graphviz_graph): exists_patch = mocker.patch("aizynthfinder.utils.image.os.path.exists") exists_patch.side_effect = [False, True] @@ -110,3 +119,20 @@ def test_visjs_page(mocker, tmpdir, setup_graphviz_graph): with TarFile(filename) as tarobj: assert "./route.html" in tarobj.getnames() assert len([name for name in tarobj.getnames() if name.endswith(".png")]) == 1 + + +def test_image_factory(request): + route_path = Path(request.fspath).parent.parent / "data" / "branched_route.json" + with open(route_path, "r") as fileobj: + dict_ = json.load(fileobj) + dict_["children"][0]["children"][1]["hide"] = True + + factory0 = image.RouteImageFactory(dict_) + + factory_tighter = image.RouteImageFactory(dict_, margin=50) + assert factory0.image.width == factory_tighter.image.width + 150 + assert factory0.image.height == factory_tighter.image.height + 175 + + factory_hidden = image.RouteImageFactory(dict_, show_all=False) + assert factory0.image.width == factory_hidden.image.width + assert factory0.image.height > factory_hidden.image.height