{ "info": { "author": "AuReMe", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Programming Language :: Python :: 3" ], "description": ".. image:: https://img.shields.io/pypi/v/mpwt.svg\n :target: https://pypi.python.org/pypi/mpwt\n\n.. image:: https://img.shields.io/badge/doi-10.7554/eLife.61968-blueviolet.svg\n :target: https://doi.org/10.7554/eLife.61968\n\n.. image:: https://img.shields.io/badge/Pathway%20Tools-25.5-brightgreen\n :target: https://bioinformatics.ai.sri.com/ptools/release-notes.html\n\nmpwt: Multiprocessing Pathway Tools\n===================================\n\nmpwt is a python package for running Pathway Tools [PathwayToolsarXiv]_ on multiple genomes using multiprocessing. More precisely, it launches one PathoLogic [Karp2011]_ process for each organism (PathoLogic and Pathway Tools pathway prediction are described in this `blog entry `__). This allows to increase the speed of draft metabolic network reconstruction when working on multiple organisms.\n\nThe last version of Pathway Tools supported by mpwt is shown in the badge named \"Pathway Tools\".\n\nmpwt: Pipeline summary\n======================\n\nThe following picture shows the main argument of mpwt:\n\n.. image:: mpwt_runs.svg\n\n.. contents:: Table of contents\n :backlinks: top\n :local:\n\nInstallation\n------------\n\nRequirements\n~~~~~~~~~~~~\n\nmpwt needs at least **Python 3.6**.\nmpwt requires three python depedencies (`biopython `__ , `chardet `__ and `gffutils `__) and **Pathway Tools**. For the multiprocessing, mpwt uses the `multiprocessing library of Python 3 `__.\n\nYou must have an environment where Pathway Tools is installed. Pathway Tools can be obtained `here `__.\n\nPathway Tools needs **Blast**, so it must be install on your system. Depending on your system, Pathway Tools needs a file named **.ncbirc** to locate Blast, for more informations look at `this page `__.\n\n/!\\\\ For all OS, Pathway-Tools must be in ``$PATH``.\n\nOn Linux and MacOS: ``export PATH=$PATH:/your/install/directory/pathway-tools``.\n\nConsider adding Pathway Tools in ``$PATH`` permanently by using the following command and then sourcing bashrc:\n\n.. code:: sh\n\n echo 'export PATH=\"$PATH:/your/install/directory/pathway-tools:\"' >> ~/.bashrc\n source ~/.bashrc\n\nIf your OS doesn't support Pathway Tools, you can use a docker container. If it's your case, look at `Pathway Tools Multiprocessing Docker `__.\nIt is a dockerfile that will create a container with Pathway Tools, its dependencies and this package. You just need to give a Pathway Tools installer as input.\n\nYou can also look at `Pathway Tools Multiprocessing Singularity `__.\nMore manipulations are required compared to Docker but with this you can create a Singularity image.\n\nUsing pip\n~~~~~~~~~\n\n.. code:: sh\n\n pip install mpwt\n\nUse\n---\n\nInput data\n~~~~~~~~~~\n\nThe script takes a folder containing sub-folders as input. Each sub-folder contains a Genbank/GFF file or multiple PathoLogic Format (PF) files.\n\n.. code-block:: text\n\n Folder_input\n \u251c\u2500\u2500 species_1\n \u2502 \u2514\u2500\u2500 species_1.gbk\n \u251c\u2500\u2500 species_2\n \u2502 \u2514\u2500\u2500 species_2.gff\n \u2502 \u2514\u2500\u2500 species_2.fasta\n \u251c\u2500\u2500 species_3\n \u2502 \u2514\u2500\u2500 species_3.gbk\n \u251c\u2500\u2500 species_4\n \u2502 \u2514\u2500\u2500 scaffold_1.pf\n \u2502 \u2514\u2500\u2500 scaffold_1.fasta\n \u2502 \u2514\u2500\u2500 scaffold_2.pf\n \u2502 \u2514\u2500\u2500 scaffold_2.fsa\n \u251c\u2500\u2500 taxon_id.tsv\n ..\n\nInput files must have the same name as the folder in which they are located and also finished with a .gbk/.gbff or a .gff (the name must not be only uppercase otherwise this can cause issue with Pathway Tools such as this one: ``Error: Cannot use the organism identifier ORGID as a genetic element ID.``).\n\nFor PF files, there is one file for each scaffold/contig and one corresponding fasta file.\n\nPathway Tools will run on each Genbank/GFF/PF files. It will create the results in the ptools-local folder but you can also choose an output folder.\n\nGenbank\n+++++++\n\n.. code-block:: text\n\n Folder_input\n \u251c\u2500\u2500 species_1\n \u2502 \u2514\u2500\u2500 species_1.gbk\n ..\n\nGenbank file example:\n\n.. code-block:: text\n\n LOCUS scaffold1 XXXXXX bp DNA linear INV DD-MMM-YYYY\n DEFINITION My species genbank.\n ACCESSION scaffold1\n VERSION scaffold1\n KEYWORDS Key words.\n SOURCE Source\n ORGANISM Species name\n Taxonomy; Of; My; Species; With;\n The; Genus.\n FEATURES Location/Qualifiers\n source 1..XXXXXX\n /scaffold=\"scaffold1\"\n /db_xref=\"taxon:taxonid\"\n gene START..STOP\n /locus_tag=\"gene1\"\n mRNA START..STOP\n /locus_tag=\"gene1\"\n CDS START..STOP\n /locus_tag=\"gene1\"\n /db_xref=\"InterPro:IPRXXXXXX\"\n /go_component=\"GO:XXXXXXX\"\n /EC_number=\"X.X.X.X\"\n /translation=\"AMINOAACIDSSEQUENCE\"\n\nLook at the `NCBI GBK format `__ for more informations.\nYou can also look at the `example `__ provided on Pathway Tools site.\n\nGFF\n+++\n\n.. code-block:: text\n\n Folder_input\n \u251c\u2500\u2500 species_2\n \u2502 \u2514\u2500\u2500 species_2.gff\n \u2502 \u2514\u2500\u2500 species_2.fasta\n ..\n\nGFF file example:\n\n.. code-block:: text\n\n ##gff-version 3\n ##sequence-region scaffold_1 1 XXXXXX\n scaffold_1\tRefSeq\tregion\t1\tXXXXXXX\t.\t+\t.\tID=region_id;Dbxref=taxon:XXXXXX\n scaffold_1\tRefSeq\tgene\tSTART\tSTOP\t.\t-\t.\tID=gene_id\n scaffold_1\tRefSeq\tCDS\tSTART\tSTOP\t.\t-\t0\tID=cds_id;Parent=gene_id;ec_number=X.X.X.X\"\n\n**Warning**: it seems that metabolic networks from GFF file have less reactions/pathways/compounds than metabolic networks from Genbank file or PathoLogic File.\nLack of some annotations (EC, GO) can be the reason explaining these differences.\n\nLook at the `NCBI GFF format `__ for more informations.\n\nYou have to provide a nucleotide sequence file (either '.fasta' or '.fsa' extensions) associated with the GFF file containing the chromosome/scaffold/contig sequence.\n\n.. code-block:: text\n\n >scaffold_1\n ATGATGCTGATACTGACTTAGCAT\n\nPathoLogic Format\n+++++++++++++++++\n\n.. code-block:: text\n\n Folder_input\n \u251c\u2500\u2500 species_4\n \u2502 \u2514\u2500\u2500 scaffold_1.pf\n \u2502 \u2514\u2500\u2500 scaffold_1.fasta\n \u2502 \u2514\u2500\u2500 scaffold_2.pf\n \u2502 \u2514\u2500\u2500 scaffold_2.fsa\n \u251c\u2500\u2500 taxon_id.tsv\n ..\n\nPF file example:\n\n.. code-block:: text\n\n ;;;;;;;;;;;;;;;;;;;;;;;;;\n ;; scaffold_1\n ;;;;;;;;;;;;;;;;;;;;;;;;;\n ID\tgene_id\n NAME\tgene_id\n STARTBASE\tSTART\n ENDBASE\tSTOP\n FUNCTION\tORF\n PRODUCT-TYPE\tP\n PRODUCT-ID\tprot gene_id\n EC\tX.X.X.X\n DBLINK\tGO:XXXXXXX\n INTRON\tSTART1-STOP1\n //\n\nLook at the `Pathologic format `__ for more informations.\n\nYou have to provide one nucleotide sequence (either '.fasta' or '.fsa' extension) for each pathologic containing one scaffold/contig. This is optionnal since mpwt 0.7.0.\n\n.. code-block:: text\n\n >scaffold_1\n ATGATGCTGATACTGACTTAGCAT\n\nYou also need to add the taxon ID in the **taxon_id.tsv** (a tsv file with two values: the name of the folder containing the PF files and the taxon ID corresponding).\n\ntaxon_id.tsv file\n+++++++++++++++++\n\nThis tabulated file is required when using PathoLogic Format as input. But it can also bee used to give more informations to Pathway Tools.\n\nA simple file looks like this:\n\n+------------+------------+\n|species |taxon_id |\n+============+============+\n|species_4 |4 |\n+------------+------------+\n\nIf you don't have taxon ID in your Genbank or GFF file, you can add one in this file for the corresponding species.\n\nYou can also add more informations for the genetic elements like **circularity of genome** (Y or N), **type of genetic element** (:CHRSM, :PLASMID, :MT (mitochondrial chromosome), :PT (chloroplast chromosome), or :CONTIG) or **codon table** (see the corresponding code below).\n\nYou can also specify reference PGDB. This can be useful if you have PGDB with manual curation, especially with reactions or pathways not present in MetaCyc.\nThese reactions or pathways will be added into MetaCyc before reaction and pathways prediction (if the reactions or pathways are supported by evidence other than computational ones).\n\nExample:\n\n+------------+------------+------------+------------+------------+-------------------+----------------+\n|species |taxon_id | circular |element_type| codon_table| corresponding_file| reference_pgdb |\n+============+============+============+============+============+===================+================+\n|species_1 |10 | Y | :CHRSM |1 | | pgdb_id |\n+------------+------------+------------+------------+------------+-------------------+----------------+\n|species_4 |4 | N | :CHRSM |1 | scaffold_1 | |\n+------------+------------+------------+------------+------------+-------------------+----------------+\n|species_4 |4 | N | :MT |1 | scaffold_2 | |\n+------------+------------+------------+------------+------------+-------------------+----------------+\n\nAs you can see for **PF file** (species_4) you can use the column **corresponding_file** to add information for each PF files.\n\nGenetic code for Pathway Tools:\n\n+--------------------+-----------------------------------------------------------------------------------------------+\n|Corresponding number|Genetic code |\n+====================+===============================================================================================+\n|0 |Unspecified |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|1 | The Standard Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|2 | The Vertebrate Mitochondrial Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|3 | The Yeast Mitochondrial Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|4 | The Mold, Protozoan, and Coelenterate Mitochondrial Code and the Mycoplasma/Spiroplasma Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|5 |The Invertebrate Mitochondrial Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|6 | The Ciliate, Dasycladacean and Hexamita Nuclear Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|9 | The Echinoderm and Flatworm Mitochondrial Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|10 | The Euplotid Nuclear Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|11 | The Bacterial, Archaeal and Plant Plastid Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|12 | The Alternative Yeast Nuclear Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|13 |The Ascidian Mitochondrial Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|14 | The Alternative Flatworm Mitochondrial Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|15 |Blepharisma Nuclear Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|16 | Chlorophycean Mitochondrial Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|21 | Trematode Mitochondrial Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|22 |Scenedesmus obliquus Mitochondrial Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n|23 | Thraustochytrium Mitochondrial Code |\n+--------------------+-----------------------------------------------------------------------------------------------+\n\nInput files created by mpwt\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThree input files are created by mpwt. Informations are extracted from the Genbank/GFF/PF file.\nmyDBName corresponds to the name of the folder and the Genbank/GFF/PF file.\ntaxonid corresponds to the taxonid in the db_xref of the source feature in the Genbank/GFF/PF.\nThe species_name is extracted from the Genbank/GFF/PF files.\n\n.. code-block:: text\n\n **organism-params.dat**\n ID myDBName\n STORAGE FILE\n NCBI-TAXON-ID taxonid\n NAME species_name\n\n **genetic-elements.dats**\n NAME \n ANNOT-FILE gbk_pathname\n //\n\n **flat_files_creation.lisp**\n (in-package :ecocyc)\n (select-organism :org-id 'myDBName)\n (let ((*progress-noter-enabled?* NIL))\n (create-flat-files-for-current-kb))\n\nCommand Line and Python arguments\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nBy using the python multiprocessing library, mpwt launches parallel PathoLogic processes on physical cores. Regarding memory requirements, they depend on the genome but we advise to use at least 2 GB per core.\n\nmpwt can be used with the command lines:\n\n.. code:: sh\n\n mpwt -f=FOLDER [-o=FOLDER] [--patho] [--hf] [--op] [--tp] [--nc] [--flat] [--md] [--mx] [--mo] [--mc] [-p=FLOAT] [--cpu=INT] [-r] [-v] [--clean] [--log=FOLDER] [--taxon-file]\n mpwt --flat [-f=FOLDER] [-o=FOLDER] [--md] [--mx] [--mo] [--mc] [--cpu=INT] [-v]\n mpwt -o=FOLDER [--md] [--mx] [--mo] [--mc] [--cpu=INT] [-v]\n mpwt --clean [--cpu=INT] [-v]\n mpwt --delete=STR [--cpu=INT]\n mpwt --list\n mpwt --version\n mpwt topf -f=FOLDER -o=FOLDER [--cpu=INT] [--clean]\n\nOptional argument are identified by [].\n\nmpwt can be used in a python script with an import:\n\n.. code:: python\n\n import mpwt\n\n folder_input = \"path/to/folder/input\"\n folder_output = \"path/to/folder/output\"\n\n mpwt.multiprocess_pwt(input_folder=folder_input,\n output_folder=folder_output,\n patho_inference=optional_boolean,\n patho_hole_filler=optional_boolean,\n patho_operon_predictor=optional_boolean,\n patho_transporter_inference=patho_transporter_inference,\n no_download_articles=optional_boolean,\n flat_creation=optional_boolean,\n dat_extraction=optional_boolean,\n xml_extraction=optional_boolean,\n owl_extraction=optional_boolean,\n col_extraction=optional_boolean,\n size_reduction=optional_boolean,\n number_cpu=int,\n patho_log=optional_folder_pathname,\n pathway_score=pathway_score,\n taxon_file=optional_str,\n verbose=optional_boolean,\n permission=optional_str)\n\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| Command line argument | Python argument | description |\n+=========================+================================================+=========================================================================+\n| -f | input_folder(string: folder pathname) | Input folder as described in Input data |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| -o | output_folder(string: folder pathname) | Output folder containing PGDB data or flat files (see --flat arguments) |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --patho | patho_inference(boolean) | Launch PathoLogic inference on input folder |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --hf | patho_hole_filler(boolean) | Launch PathoLogic Hole Filler with Blast |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --op | patho_operon_predictor(boolean) | Launch PathoLogic Operon Predictor |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --tp | patho_transporter_inference(boolean) | Launch PathoLogic Transport Inference Parser |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --nc | no_download_articles(boolean) | Launch PathoLogic without loading PubMed citations (**not working**) |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| -p | pathway_score(float) | Launch PathoLogic using a specified pathway prediction score cutoff |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --flat | flat_creation(boolean) | Create BioPAX/attribute-value flat files |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --md | dat_extraction(boolean) | Move the dat files into the output folder |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --mx | xml_extraction(boolean) | Move the metabolic-reactions.xml file into the output folder |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --mo | owl_extraction(boolean) | Move owl files into the output folder |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --mc | col_extraction(boolean) | Move tabular files into the output folder |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --cpu | number_cpu(int) | Number of cpu used for the multiprocessing |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| -r | size_reduction(boolean) | Delete PGDB in ptools-local to reduce size and return compressed files |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --log | patho_log(string: folder pathname) | Folder where log files for PathoLogic inference will be store |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --delete | mpwt.remove_pgdbs(string: pgdb name) | Delete a specific PGDB |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --clean | mpwt.cleaning() | Delete all PGDBs in ptools-local folder or only PGDB from input folder |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --taxon-file | taxon_file(string: file pathanme) | Force mpwt to use the taxon ID in the taxon_id.tsv file |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| --permission | permission(string: 'all', 'group') | Choose permission access to PGDB in ptools-local and output files |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n| -v | verbose(boolean) | Print some information about the processing of mpwt |\n+-------------------------+------------------------------------------------+-------------------------------------------------------------------------+\n\nThere is also another argument:\n\n.. code:: sh\n\n mpwt topf -f input_folder -o output_folder --cpu cpu_number\n\n.. code:: python\n\n import mpwt\n mpwt.to_pathologic.create_pathologic_file(input_folder, output_folder, cpu_number)\n\nThis argument reads the input data inside the input folder. Then it converts Genbank and GFF files into PathoLogic Format files. And if there is already PathoLogic files it copies them.\n\nIt can be used to avoid issues with parsing Genbank and GFF files. But it is an early Work in Progress as at this moment the PathoLogic files created do not produce the same PGDB as the corresponding GenBank/GFF files.\nEspecially some genes are missing in th PGDB.\n\nPathoLogic Hole Filler\n++++++++++++++++++++++\n\nThe --hf/patho_hole_filler option uses the Hole Filler [Karp2019arXiv]_:\n\n The pathway hole-filling program PHFiller (a component of PathoLogic) generates hypotheses as to which genes code for these missing enzymes by using the following method. Given a reaction that is a pathway hole, the program first queries the UniProt database to find all known sequences for enzymes that catalyze that same reaction in other organisms. The program then uses the BLAST tool to compare that set of sequences against the full proteome of the organism in which we are seeking hole fillers. It scores the resulting BLAST hits using a Bayesian classifier that considers information such as genome localization (that is, is a potential hole filler in the same operon as another gene in the same metabolic pathway?). At a stringent probability-score cutoff, our method finds potential hole fillers for approximately 45% of the pathway holes in a microbial genome [59].\n\nThis option is more precisely described in [Green2004]_:\n\n1. Sequence retrieval \u2013 Retrieve from Swiss-Prot and PIR sequences for enzymes that catalyze the desired reaction in other organisms. Because these sequences are not necessarily homologs, we will refer to enzymes with the same function in a variety of organisms as isozymes. For Swiss-Prot, the program retrieves Swiss-Prot IDs directly from the ENZYME database. For PIR sequences, the program retrieves IDs from the MetaCyc PGDB. Sequences are then retrieved directly from the most recent version of each database.\n\n2. Homology search \u2013 BLAST each query isozyme sequence against the genome of the organism of interest.\n\n3. Data consolidation \u2013 Congruence analysis of the resulting BLAST hits to consolidate data reported for sequences that align with one or more query isozymes.\n\n4. Candidate evaluation \u2013 Determine the probability that each candidate protein has the activity required by the missing reaction.\n\nOperon Predictor\n++++++++++++++++\n\nThe --op/patho_operon_predictor identifies operon [Karp2019arXiv]_:\n\n The Pathway Tools operon predictor identifies operon boundaries by examining pairs of adjacent genes A and B and using information such as intergenic distance, and whether it can identify a functional relationship between A and B, such as membership in the same pathway, membership in the same multimeric protein complex, or whether A is a transporter for a substrate within a metabolic pathway in which B is an enzyme.\n\nTransport Inference\n+++++++++++++++++++\n\nThe --tp/patho_transporter_inference tries to answer the question \"What chemicals can the organism import or export?\" [Karp2019arXiv]_:\n\n To answer such queries, Pathway Tools uses an ontology-based representation of transporter function in which transport events are represented as reactions in which the transported compound(s) are substrates. Each substrate is labeled with the cellular compartment in which it resides, and each substrate is a controlled-vocabulary term from the extensive set of chemical compounds in MetaCyc. The TIP program converts the free-text descriptions of transporter functions found in genome annotations (examples: \u201cphosphate ABC transporter\u201dand \u201csodium/proline symporter\u201d) into computable transport reactions.\n\nPathway prediction score cutoff\n+++++++++++++++++++++++++++++++\n\nThe -p/pathway_score determines the cutoff for pathway prediction.\n\nThis cutoff is defined in ptools-init.dat:\n\n During the pathway prediction process, pathways are assigned a score between 0 and 1 based on the evidence for the presence of that pathway.\n Pathways whose score does not exceed this cutoff value will usually be rejected (although certain rules may cause them to be predicted as present).\n\nThis pathway prediction score has also been explained in [Karp2018]_:\n\n A very strict pathway score cutoff of 1.0 was supplied to PathoLogic to predict into BlongCyc (from MetaCyc) only the pathways that have gene annotations associated with all pathway reactions, to minimize the effects of pathway inference on biomass goal reachability.\n PathoLogic inference of a metabolic pathway causes all reactions within the pathway to be imported from the MetaCyc database into the new PGDB, including reactions lacking gene assignments \u2014 using the 1.0 cutoff means that no reactions lacking gene assignments were imported from MetaCyc during pathway inference.\n The resulting PGDB was subjected to the following manual refinement steps. That is, some manual refinement occurred before gap filling began.\n\nExamples\n~~~~~~~~\n\nPossible uses of mpwt:\n\n..\n\n .. code:: sh\n\n command line\n\n .. code:: python\n\n import mpwt\n python script\n\nCreate PGDBs of studied organisms inside ptools-local:\n\n..\n\n .. code:: sh\n\n mpwt -f path/to/folder/input --patho\n\n .. code:: python\n\n import mpwt\n mpwt.multiprocess_pwt(input_folder='path/to/folder/input',\n patho_inference=True)\n\nConvert Genbank and GFF files into PathoLogic files then create PGDBs of studied organisms inside ptools-local:\n\n..\n\n .. code:: sh\n\n mpwt topf -f path/to/folder/input -o path/to/folder/pf\n mpwt -f path/to/folder/pf --patho\n\n .. code:: python\n\n import mpwt\n mpwt.create_pathologic_file(input_folder='path/to/folder/input', output_folder='path/to/folder/pf')\n mpwt.multiprocess_pwt(input_folder='path/to/folder/pf', patho_inference=True)\n\nCreate PGDBs of studied organisms inside ptools-local with Hole Filler, Operon Predictor, Transport Inference Parser and create logs:\n\n..\n\n .. code:: sh\n\n mpwt -f path/to/folder/input --patho --hf --op --tp --log path/to/folder/log\n\n .. code:: python\n\n import mpwt\n mpwt.multiprocess_pwt(input_folder='path/to/folder/input',\n patho_inference=True,\n patho_hole_filler=True,\n patho_operon_predictor=True,\n patho_transporter_inference=True,\n patho_log='path/to/folder/log')\n\nCreate PGDBs of studied organisms inside ptools-local with pathway prediction score of 1:\n\n..\n\n .. code:: sh\n\n mpwt -f path/to/folder/input --patho -p 1.0\n\n .. code:: python\n\n import mpwt\n mpwt.multiprocess_pwt(input_folder='path/to/folder/input',\n patho_inference=True,\n pathway_score=1.0)\n\nCreate PGDBs of studied organisms inside ptools-local and create flat files:\n\n..\n\n .. code:: sh\n\n mpwt -f path/to/folder/input --patho --flat\n\n .. code:: python\n\n import mpwt\n mpwt.multiprocess_pwt(input_folder='path/to/folder/input',\n patho_inference=True,\n flat_creation=True)\n\nCreate PGDBs of studied organisms inside ptools-local.\nThen move all the PGDB files to the output folder.\n\n..\n\n .. code:: sh\n\n mpwt -f path/to/folder/input --patho -o path/to/folder/output\n\n .. code:: python\n\n import mpwt\n mpwt.multiprocess_pwt(input_folder='path/to/folder/input',\n output_folder='path/to/folder/output',\n patho_inference=True)\n\nCreate PGDBs of studied organisms inside ptools-local and create flat files.\nThen move the dat files to the output folder.\n\n..\n\n .. code:: sh\n\n mpwt -f path/to/folder/input --patho --flat -o path/to/folder/output --md\n\n\n .. code:: python\n\n import mpwt\n mpwt.multiprocess_pwt(input_folder='path/to/folder/input',\n output_folder='path/to/folder/output',\n patho_inference=True,\n flat_creation=True,\n dat_extraction=True)\n\n\nCreate flat files for the PGDB inside ptools-local.\nAnd move them to the output folder.\n\n..\n\n .. code:: sh\n\n mpwt --flat -o path/to/folder/output --md\n\n .. code:: python\n\n import mpwt\n mpwt.multiprocess_pwt(output_folder='path/to/folder/output',\n flat_creation=True,\n dat_extraction=True)\n\nMove PGDB from ptools-local to the output folder:\n\n..\n\n .. code:: sh\n\n mpwt -o path/to/folder/output\n\n .. code:: python\n\n import mpwt\n mpwt.multiprocess_pwt(output_folder='path/to/folder/output')\n\nMove dat files from ptools-local to the output folder:\n\n..\n\n .. code:: sh\n\n mpwt -o path/to/folder/output --md\n\n .. code:: python\n\n import mpwt\n mpwt.multiprocess_pwt(output_folder='path/to/folder/output',\n dat_extraction=True)\n\n\nUseful functions\n~~~~~~~~~~~~~~~~\n\n- Run the multiprocess Pathway Tools on input folder\n\n..\n\n .. code:: python\n\n import mpwt\n mpwt.multiprocess_pwt(input_folder=folder_input,\n output_folder=folder_output,\n patho_inference=optional_boolean,\n patho_hole_filler=optional_boolean,\n patho_operon_predictor=optional_boolean,\n patho_transporter_inference=patho_transporter_inference,\n no_download_articles=optional_boolean,\n flat_creation=optional_boolean,\n dat_extraction=optional_boolean,\n xml_extraction=optional_boolean,\n owl_extraction=optional_boolean,\n col_extraction=optional_boolean,\n size_reduction=optional_boolean,\n number_cpu=int,\n patho_log=optional_folder_pathname,\n pathway_score=pathway_score,\n taxon_file=optional_str,\n verbose=optional_boolean,\n permission=optional_str)\n\n- Delete all the previous PGDB and the metadata files\n\n..\n\n .. code:: python\n\n import mpwt\n mpwt.cleaning(number_cpu=optional_int, verbose=optional_boolean)\n\n This can also be used with a command line argument:\n\n .. code:: sh\n\n mpwt --clean\n\n If you use ``--clean`` with the argument ``-f input_folder``, it will delete input files ('flat_files_creation.lisp', 'flat_files_creation.log', 'pathologic.log', 'pwt_terminal.log', 'genetic-elements.dat' and 'organism-params.dat') and the PGDB corresponding to the input folder.\n\n .. code:: sh\n\n mpwt -f input_folder --clean\n\n For example if you have:\n\n .. code-block:: text\n\n Folder_input\n \u251c\u2500\u2500 species_1\n \u2502 \u2514\u2500\u2500 species_1.gbk\n \u251c\u2500\u2500 species_2\n \u2502 \u2514\u2500\u2500 species_2.gff\n \u2502 \u2514\u2500\u2500 species_2.fasta\n \u251c\u2500\u2500 species_3\n \u2502 \u2514\u2500\u2500 species_3.gbk\n\n And you have in your ptools-local:\n\n .. code-block:: text\n\n ptools-local\n \u251c\u2500\u2500 pgdbs\n \u251c\u2500\u2500 user\n \u251c\u2500\u2500 species_1cyc\n \u2502 \u2514\u2500\u2500 ..\n \u251c\u2500\u2500 species_2cyc\n \u2502 \u2514\u2500\u2500 ..\n \u251c\u2500\u2500 species_3cyc\n \u2502 \u2514\u2500\u2500 ..\n \u251c\u2500\u2500 species_4cyc\n \u2502 \u2514\u2500\u2500 ..\n\n The command:\n\n .. code:: sh\n\n mpwt -f input_folder --clean\n\n will delete species_1cyc, species_2cyc and species_3cyc but not species_4cyc.\n\n- Delete a specific PGDB\n\n..\n\n With this command, it is possible to delete a specific PGDB, where pgdb_name is the name of the PGDB (ending with 'cyc'). It can be multiple pgdbs, to do this, put all the pgdb IDs in a string separated by a ','.\n\n .. code:: python\n\n import mpwt\n mpwt.remove_pgdbs(pgdb_name)\n\n And as a command line:\n\n .. code:: sh\n\n mpwt --delete mydbcyc1,mydbcyc2\n\n- Return the path of ptools-local\n\n..\n\n .. code:: python\n\n import mpwt\n ptools_local_path = mpwt.find_ptools_path()\n\n\n- Return a list containing all the PGDBs inside ptools-local folder\n\n..\n\n .. code:: python\n\n import mpwt\n list_of_pgdbs = mpwt.list_pgdb()\n\n Can be used as a command with:\n\n .. code:: sh\n\n mpwt --list\n\nErrors\n~~~~~~\n\nIf you encounter errors (and it is highly possible) there is informations that can help you resolved them.\n\nFor error during PathoLogic inference, you can use the log arguments.\nThe log contains the summary of the build and the error for each species.\nThere is also a pathologic.log (created by Pathway Tools), a pwt_terminal.log (log of the terminal during PathoLogic process) and a flat_files_creation.log (log of the terminal during attributes-values files creation) in each sub-folders.\n\nIf the build passed you have also the possibility to see the result of the inference with the file resume_inference.tsv.\nFor each species, it contains the number of genes/proteins/reactions/pathways/compounds in the metabolic network.\n\nIf Pathway Tools crashed, mpwt can print some useful information in verbose mode.\nIt will show the terminal in which Pathway Tools has crashed.\nAlso, if there is an error in pathologic.log, it will be shown after **=== Error in Pathologic.log ===**.\n\nThere is a `Pathway Tools forum `__ where you can find informations on Pathway Tools errors.\n\nOutput\n~~~~~~\n\nIf you did not use the output argument, results (PGDB with/without BioPAX/flat files) will be inside your ptools-local folder ready to be used with Pathway Tools.\nHave in mind that mpwt does not create the cellular overview. So if you want these results you should run them after.\n\nThe different file formats created are described on `Pathway Tools data-file format site `__.\n\nIf you use the output argument, mpwt will copy each of the PGDB folders to the output folder:\n\n.. code-block:: text\n\n Folder_output\n \u251c\u2500\u2500 species_1\n \u2502 \u2514\u2500\u2500 default-version\n \u2502 \u2514\u2500\u2500 1.0\n \u2502 \u2514\u2500\u2500 data\n \u2502 \u2514\u2500\u2500 contains BioPAX/flat files if you used the --flat/flat_creation option.\n \u2502 \u2514\u2500\u2500 input\n \u2502 \u2514\u2500\u2500 species_1.gbk\n \u2502 \u2514\u2500\u2500 genetic-elements.dat\n \u2502 \u2514\u2500\u2500 organism-init.dat\n \u2502 \u2514\u2500\u2500 organism.dat\n \u2502 \u2514\u2500\u2500 kb\n \u2502 \u2514\u2500\u2500 species_1.ocelot\n \u2502 \u2514\u2500\u2500 reports\n \u2502 \u2514\u2500\u2500 contains Pathway Tools reports.\n \u251c\u2500\u2500 species_2\n ..\n \u251c\u2500\u2500 species_3\n ..\n\nIf you want specific files, you can use the ``--mX/XXX_extraction`` options.\n\n- ``--md/dat_extraction`` will only copy the attribute-values dat files:\n\n.. code-block:: text\n\n Folder_output\n \u251c\u2500\u2500 species_1\n \u2502 \u2514\u2500\u2500 classes.dat\n \u2502 \u2514\u2500\u2500 compounds.dat\n \u2502 \u2514\u2500\u2500 dnabindsites.dat\n \u2502 \u2514\u2500\u2500 enzrxns.dat\n \u2502 \u2514\u2500\u2500 genes.dat\n \u2502 \u2514\u2500\u2500 pathways.dat\n \u2502 \u2514\u2500\u2500 promoters.dat\n \u2502 \u2514\u2500\u2500 protein-features.dat\n \u2502 \u2514\u2500\u2500 proteins.dat\n \u2502 \u2514\u2500\u2500 protligandcplxes.dat\n \u2502 \u2514\u2500\u2500 pubs.dat\n \u2502 \u2514\u2500\u2500 reactions.dat\n \u2502 \u2514\u2500\u2500 regulation.dat\n \u2502 \u2514\u2500\u2500 regulons.dat\n \u2502 \u2514\u2500\u2500 rnas.dat\n \u2502 \u2514\u2500\u2500 species.dat\n \u2502 \u2514\u2500\u2500 terminators.dat\n \u2502 \u2514\u2500\u2500 transunits.dat\n \u2502 \u2514\u2500\u2500 ..\n \u251c\u2500\u2500 species_2\n ..\n \u251c\u2500\u2500 species_3\n ..\n\n- ``--mx/xml_extraction`` will only copy the metabolic-reactions.xml file of each PGDB (created by MetaFlux) and rename it:\n\n.. code-block:: text\n\n Folder_output\n \u251c\u2500\u2500 species_1.xml\n \u251c\u2500\u2500 species_2.xml\n \u251c\u2500\u2500 species_3.xml\n ..\n\n- ``--mo/owl_extraction`` will only copy the biopax-level2.owl and the biopax-level3.owl files of each PGDB and rename them:\n\n.. code-block:: text\n\n Folder_output\n \u251c\u2500\u2500 species_1-level2.owl\n \u251c\u2500\u2500 species_1-level3.owl\n \u251c\u2500\u2500 species_2-level2.owl\n \u251c\u2500\u2500 species_2-level3.owl\n \u251c\u2500\u2500 species_3-level2.owl\n \u251c\u2500\u2500 species_3-level3.owl\n ..\n\n- ``--mc/col_extraction`` will only copy the tabular files of each PGDB:\n\n.. code-block:: text\n\n Folder_output\n \u251c\u2500\u2500 species_1\n \u2502 \u2514\u2500\u2500 enzymes.col\n \u2502 \u2514\u2500\u2500 genes.col\n \u2502 \u2514\u2500\u2500 pathways.col\n \u2502 \u2514\u2500\u2500 protcplxs.col\n \u2502 \u2514\u2500\u2500 transporters.col\n \u251c\u2500\u2500 species_2\n ..\n \u251c\u2500\u2500 species_3\n ..\n\nIt is also possible to use a combination of these arguments:\n\n.. code:: sh\n\n mpwt -f input_folder -o output_folder --patho --flat --md --mx --mo --mc\n\n.. code-block:: text\n\n Folder_output\n \u251c\u2500\u2500 species_1\n \u2502 \u2514\u2500\u2500 biopax-level2.owl\n \u2502 \u2514\u2500\u2500 biopax-level3.owl\n \u2502 \u2514\u2500\u2500 classes.dat\n \u2502 \u2514\u2500\u2500 compounds.dat\n \u2502 \u2514\u2500\u2500 dnabindsites.dat\n \u2502 \u2514\u2500\u2500 enzrxns.dat\n \u2502 \u2514\u2500\u2500 enzymes.col\n \u2502 \u2514\u2500\u2500 genes.col\n \u2502 \u2514\u2500\u2500 genes.dat\n \u2502 \u2514\u2500\u2500 metabolic-reactions.xml\n \u2502 \u2514\u2500\u2500 pathways.col\n \u2502 \u2514\u2500\u2500 pathways.dat\n \u2502 \u2514\u2500\u2500 promoters.dat\n \u2502 \u2514\u2500\u2500 protcplxs.col\n \u2502 \u2514\u2500\u2500 protein-features.dat\n \u2502 \u2514\u2500\u2500 proteins.dat\n \u2502 \u2514\u2500\u2500 protligandcplxes.dat\n \u2502 \u2514\u2500\u2500 pubs.dat\n \u2502 \u2514\u2500\u2500 reactions.dat\n \u2502 \u2514\u2500\u2500 regulation.dat\n \u2502 \u2514\u2500\u2500 regulons.dat\n \u2502 \u2514\u2500\u2500 rnas.dat\n \u2502 \u2514\u2500\u2500 species.dat\n \u2502 \u2514\u2500\u2500 terminators.dat\n \u2502 \u2514\u2500\u2500 transporters.col\n \u2502 \u2514\u2500\u2500 transunits.dat\n \u2502 \u2514\u2500\u2500 ..\n \u251c\u2500\u2500 species_2\n ..\n \u251c\u2500\u2500 species_3\n ..\n\n\nBy using the ``-r /size_reduction`` argument, you will have compressed zip files (and PGDBs inside ptools-local will be deleted):\n\n.. code-block:: text\n\n Folder_output\n \u251c\u2500\u2500 species_1.zip\n \u251c\u2500\u2500 species_2.zip\n \u251c\u2500\u2500 species_3.zip\n ..\n\nFor developer\n-------------\n\nmpwt uses logging so you need to create the handler configuration if you want mpwt's log in your application:\n\n.. code:: python\n\n import logging\n\n from mpwt import multiprocess_pwt\n\n logging.basicConfig()\n\n multiprocess_pwt(...)\n\nRelease Notes\n-------------\n\nChanges between version are listed on the `release page `__.\n\nBibliography\n------------\n\n.. [Green2004] Green, M.L., Karp, P.D. A Bayesian method for identifying missing enzymes in predicted metabolic pathway databases. BMC Bioinformatics 5, 76 (2004). https://doi.org/10.1186/1471-2105-5-76\n\n.. [Karp2011] Karp, P. D., Latendresse, M., & Caspi, R. The pathway tools pathway prediction algorithm. Standards in genomic sciences 5(3), 424\u2013429 (2011). https://doi.org/10.4056/sigs.1794338\n\n.. [Karp2018] Karp, P. D., Weaver, D. & Latendresse, M. How accurate is automated gap filling of metabolic models?. BMC Systems Biology 12(1), 73 (2018). https://doi.org/10.1186/s12918-018-0593-7\n\n.. [Karp2019arXiv] Karp, P. D., Paley, S. M., Midford, P. E., Krummenacker, M., Billington, R., Kothari, A., Ong, W. K., Subhraveti, P., Keseler, I. M. & Caspi R. Pathway Tools version 23.0: Integrated Software for Pathway/Genome Informatics and Systems Biology. arXiv (2019). https://arxiv.org/abs/1510.03964v3\n\n.. [PathwayToolsarXiv] Karp, P. D., Paley, S. M., Midford, P. E., Krummenacker, M., Billington, R., Kothari, A., Ong, W. K., Subhraveti, P., Keseler, I. M. & Caspi R. Pathway Tools: Integrated Software for Pathway/Genome Informatics and Systems Biology. arXiv. https://arxiv.org/abs/1510.03964\n\nCitation\n--------\n\nBelcour* A, Frioux* C, Aite M, Bretaudeau A, Hildebrand F, Siegel A. Metage2Metabo, microbiota-scale metabolic complementarity for the identification of key species. eLife 2020, 9, e61968 `https://doi.org/10.7554/eLife.61968 `__.\n\n``mpwt`` depends on the following tools:\n\n- ``Pathway Tools`` for the reconstruction of draft metabolic networks (the article can be not up-to-date, look at the `Publications `__ on the BioCyc site):\n\nKarp P D, Midford P E, Billington R, Kothari A, Krummenacker M, Latendresse M, Ong W K, Subhraveti P, Caspi R, Fulcher C, Keseler I M, Paley SM. Pathway Tools version 23.0 update: software for pathway/genome informatics and systems biology. Briefings in Bioinformatics 2021, 22, 109\u2013126 `https://doi.org/10.1093/bib/bbz104 `__.\n\n- ``Biopython`` for GenBank parsing:\n\nCock, P.J.A., Antao, T., Chang, J.T., Chapman, B.A., Cox, C.J., Dalke, A., Friedberg, I., Hamelryck, T., Kauff, F., Wilczynski, B., de Hoon, M.J.L. Biopython: freely available Python tools for computational molecular biology and bioinformatics. Bioinformatics 2009, 25, 1422\u20131423 `https://doi.org/10.1093/bioinformatics/btp163 `__.\n\n- ``gffutils`` for GFF parsing:\n\nGitHub repository: `https://github.com/daler/gffutils `__\n\n- ``chardet`` for character encoding detection:\n\nGitHub repository: `https://github.com/chardet/chardet `__\n\nAcknowledgements\n----------------\n\n`M\u00e9zaine Aite `__ for his work on the first draft of this package.\n\n`Cl\u00e9mence Frioux `__ for her work and feedbacks.\n\nPeter Karp, Suzanne Paley, Markus Krummenacker, Richard Billington and Anamika Kothari from the `Bioinformatics Research Group of SRI International `__ for their help on Pathway Tools and on Genbank format.\n\nGenOuest bioinformatics (https://www.genouest.org/) core facility for providing the computing infrastructure to test this tool.\n\nAll the users that have tested this tool.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/AuReMe/mpwt", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "mpwt", "package_url": "https://pypi.org/project/mpwt/", "platform": null, "project_url": "https://pypi.org/project/mpwt/", "project_urls": { "Homepage": "https://github.com/AuReMe/mpwt" }, "release_url": "https://pypi.org/project/mpwt/0.7.2/", "requires_dist": [ "biopython (>=1.70)", "chardet (>=3.0.4)", "gffutils (>=0.9)" ], "requires_python": ">=3.6", "summary": "Multiprocessing for Pathway Tools", "version": "0.7.2", "yanked": false, "yanked_reason": null }, "last_serial": 13525713, "releases": { "0.1a1": [ { "comment_text": "", "digests": { "md5": "59f5dc99cd59b128ded5346c2c511ed1", "sha256": "a6526c8c5183b29c49b7db1523753b228e5aae01551bb7da586dc92be5739d3f" }, "downloads": -1, "filename": "mpwt-0.1a1.tar.gz", "has_sig": false, "md5_digest": "59f5dc99cd59b128ded5346c2c511ed1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5193, "upload_time": "2018-05-17T11:43:00", "upload_time_iso_8601": "2018-05-17T11:43:00.589445Z", "url": "https://files.pythonhosted.org/packages/74/dd/c10bf103683f80a2b98aa2879268871acb68f627412d86cf21bc8aa4406b/mpwt-0.1a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.9.11.3a1": [ { "comment_text": "", "digests": { "md5": "75d23ec4b3c52680701b4ee91bf7b240", "sha256": "acc312f7d4e02a64866ff6e3b5aeb1dcd03154b5b66abae2e469c1f3aa598336" }, "downloads": -1, "filename": "mpwt-0.2.9.11.3a1.tar.gz", "has_sig": false, "md5_digest": "75d23ec4b3c52680701b4ee91bf7b240", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8487, "upload_time": "2018-07-05T10:01:18", "upload_time_iso_8601": "2018-07-05T10:01:18.460943Z", "url": "https://files.pythonhosted.org/packages/43/07/4f1fd31e39a8415ed6c7b3e7e5d2e00625a63ad59688f779dfdc371ad103/mpwt-0.2.9.11.3a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.9.12a1": [ { "comment_text": "", "digests": { "md5": "90c64e3a317bf74ee229954d3fda2cd0", "sha256": "22be9de44713aab758cbda1c75119df17718a361e52cfe4f1f1b6197dfbb7ebe" }, "downloads": -1, "filename": "mpwt-0.2.9.12a1.tar.gz", "has_sig": false, "md5_digest": "90c64e3a317bf74ee229954d3fda2cd0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8443, "upload_time": "2018-09-28T12:08:14", "upload_time_iso_8601": "2018-09-28T12:08:14.411773Z", "url": "https://files.pythonhosted.org/packages/27/88/d7d381c27818a791bc3a8d3e8167b316c83a9e2f73a1a38f85751008cb5d/mpwt-0.2.9.12a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.9.6a1": [ { "comment_text": "", "digests": { "md5": "c286f9d8272f88a034d7142c0730b6c6", "sha256": "6eeb5de36993425118dbf421b5cd6557717b1ae7b6e716e60f4dacf5ab447eac" }, "downloads": -1, "filename": "mpwt-0.2.9.6a1.tar.gz", "has_sig": false, "md5_digest": "c286f9d8272f88a034d7142c0730b6c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8084, "upload_time": "2018-05-30T15:08:40", "upload_time_iso_8601": "2018-05-30T15:08:40.789908Z", "url": "https://files.pythonhosted.org/packages/90/6f/eed4f7ca75be01335d9a6ab7992d222e56d8b3bef748a66ca22dc33d3d9f/mpwt-0.2.9.6a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.9.9.1a1": [ { "comment_text": "", "digests": { "md5": "75289c2ed88ce23b0ea41ba2c1e9f72c", "sha256": "bd62216270be2f4e179a2bd24c9928650dbe37fdd98b1eaa19752e0b3a93aadb" }, "downloads": -1, "filename": "mpwt-0.2.9.9.1a1.tar.gz", "has_sig": false, "md5_digest": "75289c2ed88ce23b0ea41ba2c1e9f72c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8334, "upload_time": "2018-06-28T08:17:13", "upload_time_iso_8601": "2018-06-28T08:17:13.579720Z", "url": "https://files.pythonhosted.org/packages/af/a4/c044a78ffb2932ec0a5db6bcc50ee4a533cd9f617e102b0289a1268a5def/mpwt-0.2.9.9.1a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.4.4a1": [ { "comment_text": "", "digests": { "md5": "4be74011a178988a78b9663f3e78ad81", "sha256": "9e853ee493395afea880f30ab075edc5db934c72ba381f97a2973e55c9ea7482" }, "downloads": -1, "filename": "mpwt-0.3.4.4a1.tar.gz", "has_sig": false, "md5_digest": "4be74011a178988a78b9663f3e78ad81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10398, "upload_time": "2018-10-18T14:01:26", "upload_time_iso_8601": "2018-10-18T14:01:26.444761Z", "url": "https://files.pythonhosted.org/packages/53/45/5fdc81748b4119c30b6a8a19c959df1b6f67dba28ef5f169ccdd882a0315/mpwt-0.3.4.4a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.5a1": [ { "comment_text": "", "digests": { "md5": "d73df857235ad0fd15eac6a55c61264f", "sha256": "69e0d10ca782e32fcac3bd1fabcfba8190a45be52a5f5cba342fbb2f4aa69a2f" }, "downloads": -1, "filename": "mpwt-0.3.5a1.tar.gz", "has_sig": false, "md5_digest": "d73df857235ad0fd15eac6a55c61264f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10526, "upload_time": "2018-11-28T13:10:57", "upload_time_iso_8601": "2018-11-28T13:10:57.006613Z", "url": "https://files.pythonhosted.org/packages/ed/07/acce65952cee534a6c1bdffb04814dfd2fed0d27b72f2b557923ecd52d52/mpwt-0.3.5a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.7.3a1": [ { "comment_text": "", "digests": { "md5": "08ee48753286bf6300048bc37c270c87", "sha256": "f3f86de90c9f0975cfc2431ba8fff850b716454a98b27a6b6c1581e2bccad418" }, "downloads": -1, "filename": "mpwt-0.3.7.3a1.tar.gz", "has_sig": false, "md5_digest": "08ee48753286bf6300048bc37c270c87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11921, "upload_time": "2018-12-14T11:08:09", "upload_time_iso_8601": "2018-12-14T11:08:09.152572Z", "url": "https://files.pythonhosted.org/packages/fe/85/01891287e44bc6ce39b61139f8aefd203d0cdb2f90376e2d1d0d25af8b89/mpwt-0.3.7.3a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4": [ { "comment_text": "", "digests": { "md5": "a0451bba133c47a43bb68c25a27431b8", "sha256": "a79f0f52b3ab3593a7f879e6eaa71416e270eb191d5da56033ee3e57375d16b3" }, "downloads": -1, "filename": "mpwt-0.4.tar.gz", "has_sig": false, "md5_digest": "a0451bba133c47a43bb68c25a27431b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15658, "upload_time": "2019-02-25T14:56:43", "upload_time_iso_8601": "2019-02-25T14:56:43.246869Z", "url": "https://files.pythonhosted.org/packages/9e/08/f449f6461534a397663ce047b00fc83eff9984f000be421ca3df0d73ddbc/mpwt-0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "a71f9b9f22a63e0ebf5d7fbf81142a74", "sha256": "45d0233edb00836497207dcf739cba5f88ea6c9c33075cefa8e7a149dae9c819" }, "downloads": -1, "filename": "mpwt-0.4.1.tar.gz", "has_sig": false, "md5_digest": "a71f9b9f22a63e0ebf5d7fbf81142a74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16786, "upload_time": "2019-03-18T08:40:52", "upload_time_iso_8601": "2019-03-18T08:40:52.876147Z", "url": "https://files.pythonhosted.org/packages/4d/15/b3776695d6987d8bec6595ddef2616200e66ccc50203633afaf4bd5c64d0/mpwt-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "1ae57ad762213e046d59033fcafd06a0", "sha256": "fb95ef351ec98d9da76b0f7928acf21fecb6cbe4a505b5a8811c59d4c3aa6d0e" }, "downloads": -1, "filename": "mpwt-0.4.2.tar.gz", "has_sig": false, "md5_digest": "1ae57ad762213e046d59033fcafd06a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17729, "upload_time": "2019-03-21T15:00:20", "upload_time_iso_8601": "2019-03-21T15:00:20.563102Z", "url": "https://files.pythonhosted.org/packages/76/30/68541df60428ee875cc17d195522cec030e2ac1657d618051c434e11cf0b/mpwt-0.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2.1": [ { "comment_text": "", "digests": { "md5": "a1b89ec1d187e4ca4fb869981fb0b5a5", "sha256": "0d7252435eb86d313b6fe894ab3ab809ba4c984ad67c164e77ab36c1d67e9ead" }, "downloads": -1, "filename": "mpwt-0.4.2.1.tar.gz", "has_sig": false, "md5_digest": "a1b89ec1d187e4ca4fb869981fb0b5a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17844, "upload_time": "2019-03-28T16:02:45", "upload_time_iso_8601": "2019-03-28T16:02:45.339417Z", "url": "https://files.pythonhosted.org/packages/d7/df/f6dd9d2b9a7ab38855db6eae5996c0196733ea08be709250f95db70e8afc/mpwt-0.4.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2.2": [ { "comment_text": "", "digests": { "md5": "b31c2d532fabe0a78bfab744135496bf", "sha256": "74fe4df8b24e3097805629411708b1bdc5adecc98f97343041719b013808e36b" }, "downloads": -1, "filename": "mpwt-0.4.2.2.tar.gz", "has_sig": false, "md5_digest": "b31c2d532fabe0a78bfab744135496bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18913, "upload_time": "2019-04-18T12:59:50", "upload_time_iso_8601": "2019-04-18T12:59:50.636321Z", "url": "https://files.pythonhosted.org/packages/27/4d/2f9d7ad460dfb76ac636043eee488982ed6b2a52ebdf1b3089c643b06db8/mpwt-0.4.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2.3": [ { "comment_text": "", "digests": { "md5": "6e6a8434cb4de2e18b7d9cd7cba22aa3", "sha256": "ff12e0835f29ca8e27a4cce6e9c50bae42ed25fbebb51b69324e4f60579a173b" }, "downloads": -1, "filename": "mpwt-0.4.2.3.tar.gz", "has_sig": false, "md5_digest": "6e6a8434cb4de2e18b7d9cd7cba22aa3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19068, "upload_time": "2019-06-07T13:18:26", "upload_time_iso_8601": "2019-06-07T13:18:26.662790Z", "url": "https://files.pythonhosted.org/packages/93/16/ed396d28a37f1d49372e6beb5ddbc86e94f042b30539522c8aca638c2244/mpwt-0.4.2.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2.4": [ { "comment_text": "", "digests": { "md5": "277052a8f4340c558b29bdc3e5fbe1fe", "sha256": "bbc55216996ebe9f897d734bdd61f7089a803aeed32e4472f472e6b13339a69b" }, "downloads": -1, "filename": "mpwt-0.4.2.4.tar.gz", "has_sig": false, "md5_digest": "277052a8f4340c558b29bdc3e5fbe1fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19082, "upload_time": "2019-06-07T14:00:35", "upload_time_iso_8601": "2019-06-07T14:00:35.865438Z", "url": "https://files.pythonhosted.org/packages/6b/cf/9a860125804db4f5e52902a7de2a26ac1981cc7779eb331d210eaf3c0096/mpwt-0.4.2.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5": [ { "comment_text": "", "digests": { "md5": "16806663338c283e0904866ed1ff94fd", "sha256": "1d16fa073adc2bd1343707b6e8bb426d1bc4e17d40cee984d2730a56cf14b6ed" }, "downloads": -1, "filename": "mpwt-0.5.tar.gz", "has_sig": false, "md5_digest": "16806663338c283e0904866ed1ff94fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21736, "upload_time": "2019-07-02T11:37:34", "upload_time_iso_8601": "2019-07-02T11:37:34.016577Z", "url": "https://files.pythonhosted.org/packages/e6/05/4ae85472a8e7d9b833530e636d91c356419f66e3aaf1acdfe01447a4ce99/mpwt-0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "d030ec06919e49137ea597433760b725", "sha256": "9bca6b6770eba563c47cff34256913d2cc84f7a6c249e2367bd30eaffd615c53" }, "downloads": -1, "filename": "mpwt-0.5.1.tar.gz", "has_sig": false, "md5_digest": "d030ec06919e49137ea597433760b725", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31474, "upload_time": "2019-07-31T15:16:24", "upload_time_iso_8601": "2019-07-31T15:16:24.748827Z", "url": "https://files.pythonhosted.org/packages/06/3c/dbda00665d6f867bd08b2d172ca02591b7aa86f0e83a18e48385a8ec28b5/mpwt-0.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "c09e90465115d6a90647ce6565ecfcd9", "sha256": "dc8b9ce06904a5d3ed4d19ae696ee4c276ebcdd83a2d3554dcee03e009091a5b" }, "downloads": -1, "filename": "mpwt-0.5.2.tar.gz", "has_sig": false, "md5_digest": "c09e90465115d6a90647ce6565ecfcd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33837, "upload_time": "2019-10-17T14:44:38", "upload_time_iso_8601": "2019-10-17T14:44:38.738785Z", "url": "https://files.pythonhosted.org/packages/a1/40/19e67302e6b3de6b046972e6aa55fa1ae0e8efc6625a4bec60ff24be5962/mpwt-0.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "5a90a182d7a339f577e62a85b07142f7", "sha256": "3a276b0912e4924ecb2e910f56c6b0efb71850cb7985c57c841c84679693277a" }, "downloads": -1, "filename": "mpwt-0.5.3.tar.gz", "has_sig": false, "md5_digest": "5a90a182d7a339f577e62a85b07142f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37251, "upload_time": "2020-01-09T14:50:08", "upload_time_iso_8601": "2020-01-09T14:50:08.990355Z", "url": "https://files.pythonhosted.org/packages/f1/bd/743d246f01c371656cbbeee83bd059522ff10b471a087f71b72451bb2bf9/mpwt-0.5.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "0fea7d8d368cfec321f41e2bb589748c", "sha256": "6bd4e4c51cd4deaefe51207d782bd482b45d04f2b1205fb3709e6d554dda155f" }, "downloads": -1, "filename": "mpwt-0.5.4.tar.gz", "has_sig": false, "md5_digest": "0fea7d8d368cfec321f41e2bb589748c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41997, "upload_time": "2020-04-10T10:17:26", "upload_time_iso_8601": "2020-04-10T10:17:26.954183Z", "url": "https://files.pythonhosted.org/packages/01/e0/6003644d8c1fc87c8270700af29ac63f2e55addd7287214f5537f57ed1c6/mpwt-0.5.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "5bb9d7fc61a60a019539201e4aecdac5", "sha256": "908f8b4b2bccf13f942d24666cc8a75c9f3e0a72fa53fd3d3adee3c080891488" }, "downloads": -1, "filename": "mpwt-0.5.5.tar.gz", "has_sig": false, "md5_digest": "5bb9d7fc61a60a019539201e4aecdac5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42973, "upload_time": "2020-05-27T18:36:56", "upload_time_iso_8601": "2020-05-27T18:36:56.739875Z", "url": "https://files.pythonhosted.org/packages/ed/7a/2bc7c9e6114c5f1541f38f7ac7896e7d79da8b840d986066796d57ed9f47/mpwt-0.5.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.6": [ { "comment_text": "", "digests": { "md5": "c29f618a9b6013f016cdc689a88da155", "sha256": "37b70ff00d7803856827c0fba163e519442397eba9743f63ac541d9527927d32" }, "downloads": -1, "filename": "mpwt-0.5.6.tar.gz", "has_sig": false, "md5_digest": "c29f618a9b6013f016cdc689a88da155", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43552, "upload_time": "2020-07-28T15:55:34", "upload_time_iso_8601": "2020-07-28T15:55:34.386782Z", "url": "https://files.pythonhosted.org/packages/51/fc/eaa6718f6b1e63fe056c3b63df6719c8aed8f89ded69062319ffa658fcc4/mpwt-0.5.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.7": [ { "comment_text": "", "digests": { "md5": "c8d204295ee3900a4967c441b81e384e", "sha256": "802151ccf78c572c9d5d69d3bb4dd660683e8924780cad8d616c79d140826d26" }, "downloads": -1, "filename": "mpwt-0.5.7-py3-none-any.whl", "has_sig": false, "md5_digest": "c8d204295ee3900a4967c441b81e384e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 45851, "upload_time": "2020-10-01T15:40:15", "upload_time_iso_8601": "2020-10-01T15:40:15.641415Z", "url": "https://files.pythonhosted.org/packages/0a/07/cf6e0ba95519ea9bec83e7111386b2435df2fb516c644328b41f3c3e0c96/mpwt-0.5.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "715b95e3a824f36eb2390df6ef2dd1a9", "sha256": "70e404f5c913c4611899d98b5595f85b183224cea0f24b6a47e94683f1c642bb" }, "downloads": -1, "filename": "mpwt-0.5.7.tar.gz", "has_sig": false, "md5_digest": "715b95e3a824f36eb2390df6ef2dd1a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45162, "upload_time": "2020-10-01T15:40:17", "upload_time_iso_8601": "2020-10-01T15:40:17.449242Z", "url": "https://files.pythonhosted.org/packages/38/3b/0174b98082a50b6fe84db36a42a713686dc80c9e8e367314cd9d9244662e/mpwt-0.5.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.8": [ { "comment_text": "", "digests": { "md5": "2c05b136724fc96928e7d5fbbbe3e95a", "sha256": "91cb5c772a15f540f6d0b905cdfda2a13c6270fea423d5262abd9cc20cb62992" }, "downloads": -1, "filename": "mpwt-0.5.8-py3-none-any.whl", "has_sig": false, "md5_digest": "2c05b136724fc96928e7d5fbbbe3e95a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 46240, "upload_time": "2020-10-12T14:25:41", "upload_time_iso_8601": "2020-10-12T14:25:41.226786Z", "url": "https://files.pythonhosted.org/packages/91/3a/f5a8c0006a9d0d7a12cf12e5b709a53442614cf56b00985f3b0207637228/mpwt-0.5.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "813960e6738284200e50b16e546f6eff", "sha256": "3d3b3e12aee9a832b273638a8dd40e72ac67c130fec82e6d753d86da895964d4" }, "downloads": -1, "filename": "mpwt-0.5.8.tar.gz", "has_sig": false, "md5_digest": "813960e6738284200e50b16e546f6eff", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 45659, "upload_time": "2020-10-12T14:25:43", "upload_time_iso_8601": "2020-10-12T14:25:43.594787Z", "url": "https://files.pythonhosted.org/packages/86/56/2a2a7c5ca730d947fee64b8acabd84323f8140aed6dda4bfd071dcafa648/mpwt-0.5.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.9": [ { "comment_text": "", "digests": { "md5": "7b55f34a34d7b60bb9b0649bf12cd46f", "sha256": "c6cad4105cd89ad42f81edd39751294c5b1cd7c0f2130dca513e66e6ab3b929f" }, "downloads": -1, "filename": "mpwt-0.5.9-py3-none-any.whl", "has_sig": false, "md5_digest": "7b55f34a34d7b60bb9b0649bf12cd46f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 48768, "upload_time": "2020-11-20T11:21:02", "upload_time_iso_8601": "2020-11-20T11:21:02.981304Z", "url": "https://files.pythonhosted.org/packages/dc/6a/5bbabcfc4c42ec0e6c7f8c6624caf995307b35ba0799a58ab9694c1359cc/mpwt-0.5.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0ddba6017366021e9ce827ee20d66b21", "sha256": "ba83116e77b30e8e298347db938214450cc21bd572968ebbf1b8f390386bf7d2" }, "downloads": -1, "filename": "mpwt-0.5.9.tar.gz", "has_sig": false, "md5_digest": "0ddba6017366021e9ce827ee20d66b21", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 52493, "upload_time": "2020-11-20T11:21:04", "upload_time_iso_8601": "2020-11-20T11:21:04.501194Z", "url": "https://files.pythonhosted.org/packages/78/88/11c1cf8057c7890698d9e31ba964c18ec94d8aa3d878d69c7bd357910285/mpwt-0.5.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "925b328d3f1f7dcfdf478adef26f7155", "sha256": "5704c90ff51119049bfd6f56ca372b3988cba274d24fca203742602e6bbc4ca1" }, "downloads": -1, "filename": "mpwt-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "925b328d3f1f7dcfdf478adef26f7155", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 49037, "upload_time": "2020-12-14T09:09:09", "upload_time_iso_8601": "2020-12-14T09:09:09.277592Z", "url": "https://files.pythonhosted.org/packages/22/90/80e0c6a5b6e881b7e5f86ddc1c9b39d1cbc60019f7ba02f239893433a693/mpwt-0.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d388e6d24b8f1dbc4498f4f193032160", "sha256": "767102d7f70df2ab930ba1abeb6613085c884f84d35768d5cf34b05a14f90db8" }, "downloads": -1, "filename": "mpwt-0.6.0.tar.gz", "has_sig": false, "md5_digest": "d388e6d24b8f1dbc4498f4f193032160", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 54157, "upload_time": "2020-12-14T09:09:10", "upload_time_iso_8601": "2020-12-14T09:09:10.768361Z", "url": "https://files.pythonhosted.org/packages/a1/b7/e113caafaa0a23386e3f538fd42b5a60373a30f9848c5f5b7b660fe3ad7c/mpwt-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "daebea23cd815a468915a1ead822ab9c", "sha256": "9f0bb16bac5f71f465000da419b006547a7f18ff16ed8f6f5df75c4e293fecf6" }, "downloads": -1, "filename": "mpwt-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "daebea23cd815a468915a1ead822ab9c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 42850, "upload_time": "2021-03-16T18:25:08", "upload_time_iso_8601": "2021-03-16T18:25:08.872408Z", "url": "https://files.pythonhosted.org/packages/6f/9b/4e03c90b79027f1bede56d03058a6d7351222123f3071a22465ec5667f93/mpwt-0.6.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b292ec05daa6a16265e9c6beb8c9c239", "sha256": "17adcabcb78ffca290f578e792c015f00a8f75fe3aca46eb2ee3df17850417c4" }, "downloads": -1, "filename": "mpwt-0.6.1.tar.gz", "has_sig": false, "md5_digest": "b292ec05daa6a16265e9c6beb8c9c239", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 55438, "upload_time": "2021-03-16T18:25:10", "upload_time_iso_8601": "2021-03-16T18:25:10.718522Z", "url": "https://files.pythonhosted.org/packages/e7/c1/e6b958a6c267647dc03c382606d731cf9fb374b85aac650503a95b9a0427/mpwt-0.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "5ca1ee668c90b272a8adb292eb829a94", "sha256": "548f49378c871c2891c5f9579283469ac4a303de83a93212efece56b8997d81b" }, "downloads": -1, "filename": "mpwt-0.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5ca1ee668c90b272a8adb292eb829a94", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 42874, "upload_time": "2021-06-01T18:36:11", "upload_time_iso_8601": "2021-06-01T18:36:11.106726Z", "url": "https://files.pythonhosted.org/packages/87/06/f3659cdf17f5ebb9e886b4e46a537d0f73aa31148bc3b77df2a3b6f220e7/mpwt-0.6.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7ade7c72bf920d42c0c6345185043b8a", "sha256": "2eb41af9ce509b01972ee03f8fd29a10d96681ebc513da13d1362fa16ed16d5e" }, "downloads": -1, "filename": "mpwt-0.6.2.tar.gz", "has_sig": false, "md5_digest": "7ade7c72bf920d42c0c6345185043b8a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 55491, "upload_time": "2021-06-01T18:36:12", "upload_time_iso_8601": "2021-06-01T18:36:12.985706Z", "url": "https://files.pythonhosted.org/packages/de/93/f9a5290ca5f2d542d4a1ccddc5ec541395c122bfad5ab8904b11bf426942/mpwt-0.6.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "b5c9203350129f3555661ab9746eafcc", "sha256": "4287b933e28703e5ee90b364ae43ad777863e8761b0c789cef1b44b26b0f585d" }, "downloads": -1, "filename": "mpwt-0.6.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b5c9203350129f3555661ab9746eafcc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 43045, "upload_time": "2021-06-02T15:24:52", "upload_time_iso_8601": "2021-06-02T15:24:52.932453Z", "url": "https://files.pythonhosted.org/packages/83/ef/60daa464b5dece9330f814dd2a19ef9f2738af6ba34d19a608775f2098e2/mpwt-0.6.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6449e129893e9a7d372e298aa239907d", "sha256": "ce739047faba6e9d122f6676821b4ab62da7acc59a7f2807b6d374d1b977cbe5" }, "downloads": -1, "filename": "mpwt-0.6.3.tar.gz", "has_sig": false, "md5_digest": "6449e129893e9a7d372e298aa239907d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 55654, "upload_time": "2021-06-02T15:24:54", "upload_time_iso_8601": "2021-06-02T15:24:54.341284Z", "url": "https://files.pythonhosted.org/packages/a4/aa/10064d7439bab8fdb88f4eb60b8e170d4603b7672eac98996d1b3fff1491/mpwt-0.6.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "87be53bd3d44a25d4385a24fd8b3c572", "sha256": "9bffc46f025de0c7fef5e021a89e52af085f908e6b18de382927f6e009fbc456" }, "downloads": -1, "filename": "mpwt-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "87be53bd3d44a25d4385a24fd8b3c572", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 45304, "upload_time": "2022-02-03T11:46:03", "upload_time_iso_8601": "2022-02-03T11:46:03.446501Z", "url": "https://files.pythonhosted.org/packages/4b/2b/9ce562a64e4bea87ff4472e73278f3b3360ae1749ec606f9fabe537275c9/mpwt-0.7.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5d20e096c9a813ee90112454c271f1aa", "sha256": "83c661f39e73cfbc8e505dc87d7b208ac786efd597f82c6ac64bb36f8eb32a0e" }, "downloads": -1, "filename": "mpwt-0.7.0.tar.gz", "has_sig": false, "md5_digest": "5d20e096c9a813ee90112454c271f1aa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 58378, "upload_time": "2022-02-03T11:46:05", "upload_time_iso_8601": "2022-02-03T11:46:05.408718Z", "url": "https://files.pythonhosted.org/packages/94/fa/8ed463dfb34cfa097ab1941d35ecacd5b33733adb9c873e18de45d675af6/mpwt-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "0068d150593fa7f45ac07bed3f453bf2", "sha256": "b5a7478c50965985644b7773e1e4f4e686fb4109f432f3631774c050a3429eea" }, "downloads": -1, "filename": "mpwt-0.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0068d150593fa7f45ac07bed3f453bf2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 45779, "upload_time": "2022-03-18T10:59:25", "upload_time_iso_8601": "2022-03-18T10:59:25.005788Z", "url": "https://files.pythonhosted.org/packages/15/be/c116e68787c0d9d316ac22e3bcece11fb745b8bddbeefaad35bfe503585a/mpwt-0.7.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a863b1e725c99369a3fb896d4cc0b78c", "sha256": "86f6a97fadf040153840970d1e0bcea9e87a194384947ca6ec6e3870a3d9eca7" }, "downloads": -1, "filename": "mpwt-0.7.1.tar.gz", "has_sig": false, "md5_digest": "a863b1e725c99369a3fb896d4cc0b78c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 59192, "upload_time": "2022-03-18T10:59:26", "upload_time_iso_8601": "2022-03-18T10:59:26.864889Z", "url": "https://files.pythonhosted.org/packages/f8/bf/82e3fa0cd155fcf15f150369909dbb9f42f509c61f0931bde1ec55855317/mpwt-0.7.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "ff9c1de4daa79d27c48ce23cff348aa9", "sha256": "af8881e5808de2e42c69f27465e80bac32b3e713036dcc8bd6ec3796642dfebf" }, "downloads": -1, "filename": "mpwt-0.7.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ff9c1de4daa79d27c48ce23cff348aa9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 45760, "upload_time": "2022-04-15T15:18:14", "upload_time_iso_8601": "2022-04-15T15:18:14.630924Z", "url": "https://files.pythonhosted.org/packages/28/ea/7a9d1d7df7d674a8e06f76699ed78ca6f28f8237e1532765f2095cd00d81/mpwt-0.7.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d8491dfc111dc46e59b338427d524be3", "sha256": "da7e8ceddbd49a8ca99b9a42605627b91082613bd1adeddbfdb6f2b8f58635e5" }, "downloads": -1, "filename": "mpwt-0.7.2.tar.gz", "has_sig": false, "md5_digest": "d8491dfc111dc46e59b338427d524be3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 59988, "upload_time": "2022-04-15T15:18:17", "upload_time_iso_8601": "2022-04-15T15:18:17.064286Z", "url": "https://files.pythonhosted.org/packages/27/f9/fdeca24a0dab221096192b4946a029f1d3e1debdc92ef0565dfb9b1615e6/mpwt-0.7.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ff9c1de4daa79d27c48ce23cff348aa9", "sha256": "af8881e5808de2e42c69f27465e80bac32b3e713036dcc8bd6ec3796642dfebf" }, "downloads": -1, "filename": "mpwt-0.7.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ff9c1de4daa79d27c48ce23cff348aa9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 45760, "upload_time": "2022-04-15T15:18:14", "upload_time_iso_8601": "2022-04-15T15:18:14.630924Z", "url": "https://files.pythonhosted.org/packages/28/ea/7a9d1d7df7d674a8e06f76699ed78ca6f28f8237e1532765f2095cd00d81/mpwt-0.7.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d8491dfc111dc46e59b338427d524be3", "sha256": "da7e8ceddbd49a8ca99b9a42605627b91082613bd1adeddbfdb6f2b8f58635e5" }, "downloads": -1, "filename": "mpwt-0.7.2.tar.gz", "has_sig": false, "md5_digest": "d8491dfc111dc46e59b338427d524be3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 59988, "upload_time": "2022-04-15T15:18:17", "upload_time_iso_8601": "2022-04-15T15:18:17.064286Z", "url": "https://files.pythonhosted.org/packages/27/f9/fdeca24a0dab221096192b4946a029f1d3e1debdc92ef0565dfb9b1615e6/mpwt-0.7.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }