# KITSUNE: K-mer-length Iterative Selection for UNbiased Ecophylogenomics
<img src="https://github.com/natapol/kitsune/blob/master/logoKITSUNE.png" width="40%">
[![PyPI version](https://badge.fury.io/py/kitsune.svg)](https://badge.fury.io/py/kitsune)
![Upload Python Package](https://github.com/natapol/kitsune/workflows/Upload%20Python%20Package/badge.svg)
KITSUNE is a toolkit for evaluation of the length of k-mer in a given genome dataset for alignment-free phylogenimic analysis.
K-mer based approach is simple and fast yet has been widely used in many applications including biological sequence comparison. However, selection of an appropriate k-mer length to obtain a good information content for comparison is normally overlooked. The optimum k-mer length is a prerequsite to obtain biological meaningful genomic distance for assesment of phylogenetic relationships. Therefore, we have developed KITSUNE to aid k-mer length selection process in a systematic way, based on a three-steps aproach described in [Viral Phylogenomics Using an Alignment-Free Method: A Three-Step Approach to Determine Optimal Length of k-mer](https://doi.org/10.1038/srep40712).
KITSUNE will calculte the three matrices across considered k-mer range:
1. Cumulative Relative Entropy (CRE)
1. Average number of Common Features (ACF)
1. Observed Common Features (OCF)
Moreover, KITSUNE also provides various genomic distance calculations from the k-mer frequency vectors that can be used for species identification or phylogenomic tree construction.
> **Note**:
> If you use KITSUNE in your research, please cite:
> [KITSUNE: A Tool for Identifying Empirically Optimal K-mer Length for Alignment-free Phylogenomic Analysis](https://doi.org/10.3389/fbioe.2020.556413)
## Installation
Kitsune is developed under python version 3 environment. We recommend users use python >= v3.5.
Requirement packages: scipy >= 0.18.1, numpy >= 1.1.0, tqdm >= 4.32
Kitsune also requires [Jellyfish](https://doi.org/10.1093/bioinformatics/btr011) for k-mer counting as external software dependency. Thus, you need to install it before running the tool: [https://github.com/gmarcais/Jellyfish](https://github.com/gmarcais/Jellyfish)
### Install with pip
```bash
pip install kitsune
```
### Install from source
```bash
# Clone the GitHub repository
git clone https://github.com/natapol/kitsune
# Move to the kitsune folder
cd kitsune/
# Install
python setup.py install
```
## Usage
### Overview of kitsune
command for listing help
```bash
$ kitsune --help
usage: kitsune <command> [<args>]
Available commands:
acf Compute average number of common features between signatures
cre Compute cumulative relative entropy
dmatrix Compute distance matrix
kopt Compute recommended choice (optimal) of kmer within a given kmer interval for a set of genomes using the cre, acf and ofc
ofc Compute observed feature frequencies
Use --help in conjunction with one of the commands above for a list of available options (e.g. kitsune acf --help)
```
### Calculate CRE, ACF, and OFC value for specific kmer
Kitsune provides three commands to calculate an appropiate k-mer using CRE, ACF, and OCF:
#### Calculate CRE
```bash
$ kitsune cre -h
usage: kitsune (cre) [-h] --filename FILENAME [--fast] [--canonical] -ke KEND
[-kf KFROM] [-t THREAD] [-o OUTPUT]
Calculate k-mer from cumulative relative entropy of all genomes
optional arguments:
-h, --help show this help message and exit
--filename FILENAME A genome file in fasta format (default: None)
--fast Jellyfish one-pass calculation (faster) (default:
False)
--canonical Jellyfish count only canonical mer (default: False)
-ke KEND, --kend KEND
Last k-mer (default: None)
-kf KFROM, --kfrom KFROM
Calculate from k-mer (default: 4)
-t THREAD, --thread THREAD
-o OUTPUT, --output OUTPUT
Output filename (default: None)
```
#### Calculate ACF
```bash
$ kitsune acf -h
usage: kitsune (acf) [-h] --filenames FILENAMES [FILENAMES ...] [--fast]
[--canonical] -k KMERS [KMERS ...] [-t THREAD]
[-o OUTPUT]
Calculate an average number of common features pairwise between one genome
against others
optional arguments:
-h, --help show this help message and exit
--filenames FILENAMES [FILENAMES ...]
Genome files in fasta format (default: None)
--fast Jellyfish one-pass calculation (faster) (default:
False)
--canonical Jellyfish count only canonical mer (default: False)
-k KMERS [KMERS ...], --kmers KMERS [KMERS ...]
Have to state before (default: None)
-t THREAD, --thread THREAD
-o OUTPUT, --output OUTPUT
Output filename (default: None)
```
#### Calculate OFC
```bash
$ kitsune ofc -h
usage: kitsune (ofc) [-h] --filenames FILENAMES [FILENAMES ...] [--fast]
[--canonical] -k KMERS [KMERS ...] [-t THREAD]
[-o OUTPUT]
Calculate an observe feature frequency
optional arguments:
-h, --help show this help message and exit
--filenames FILENAMES [FILENAMES ...]
Genome files in fasta format (default: None)
--fast Jellyfish one-pass calculation (faster) (default:
False)
--canonical Jellyfish count only canonical mer (default: False)
-k KMERS [KMERS ...], --kmers KMERS [KMERS ...]
-t THREAD, --thread THREAD
-o OUTPUT, --output OUTPUT
Output filename (default: None)
```
#### General Example
```bash
kitsune cre --filename genome1.fna -kf 5 -ke 10
kitsune acf --filenames genome1.fna genome2.fna -k 5
kitsune ofc --filenames genome_fasta/* -k 5
```
### Calculate genomic distance at specific k-mer from kmer frequency vectors of two of genomes
Kitsune provides a commands to calculate genomic distance using different distance estimation method. Users can assess the impact of a selected k-mer length on the genomic distnace of choice below.
distance option | name
---------------------- | ----
braycurtis | Bray-Curtis distance
canberra | Canberra distance
chebyshev | Chebyshev distance
cityblock | City Block (Manhattan) distance
correlation | Correlation distance
cosine | Cosine distance
euclidean | Euclidean distance
jensenshannon | Jensen-Shannon distance
sqeuclidean | Squared Euclidean distance
dice | Dice dissimilarity
hamming | Hamming distance
jaccard | Jaccard-Needham dissimilarity
kulsinski | Kulsinski dissimilarity
rogerstanimoto | Rogers-Tanimoto dissimilarity
russellrao | Russell-Rao dissimilarity
sokalmichener | Sokal-Michener dissimilarity
sokalsneath | Sokal-Sneath dissimilarity
yule | Yule dissimilarity
mash | MASH distance
jsmash | MASH Jensen-Shannon distance
jaccarddistp | Jaccard-Needham dissimilarity Probability
euclidean_of_frequency | Euclidean distance of Frequency
Kitsune provides a choice of distance transformation proposed by [Fan et.al](https://doi.org/10.1186/s12864-015-1647-5).
### Calculate a distance matrix
```bash
$ kitsune dmatrix -h
usage: kitsune (dmatrix) [-h] [--filenames [FILENAMES [FILENAMES ...]]]
[--fast] [--canonical] -k KMER [-i INPUT] [-o OUTPUT]
[-t THREAD] [--transformed]
[-d {braycurtis,canberra,jsmash,chebyshev,cityblock,correlation,cosine,dice,euclidean,hamming,jaccard,kulsinsk,matching,rogerstanimoto,russellrao,sokalmichener,sokalsneath,sqeuclidean,yule,mash,jaccarddistp}]
[-f FORMAT]
Calculate a distance matrix
optional arguments:
-h, --help show this help message and exit
--filenames [FILENAMES [FILENAMES ...]]
Genome files in fasta format (default: None)
--fast Jellyfish one-pass calculation (faster) (default:
False)
--canonical Jellyfish count only canonical mer (default: False)
-k KMER, --kmer KMER
-i INPUT, --input INPUT
List of genome files in txt (default: None)
-o OUTPUT, --output OUTPUT
Output filename (default: None)
-t THREAD, --thread THREAD
--transformed
-d {braycurtis,canberra,jsmash,chebyshev,cityblock,correlation,cosine,dice,euclidean,hamming,jaccard,kulsinsk,matching,rogerstanimoto,russellrao,sokalmichener,sokalsneath,sqeuclidean,yule,mash,jaccarddistp}, --distance {braycurtis,canberra,jsmash,chebyshev,cityblock,correlation,cosine,dice,euclidean,hamming,jaccard,kulsinsk,matching,rogerstanimoto,russellrao,sokalmichener,sokalsneath,sqeuclidean,yule,mash,jaccarddistp}
-f FORMAT, --format FORMAT
```
Example of choosing distance option:
```bash
kitsune dmatrix --filenames genome1.fna genome2.fna -k 11 -d jaccard --canonical --fast -o output.txt
kitsune dmatrix --filenames genome1.fna genome2.fna -k 11 -d hensenshannon --canonical --fast -o output.txt
```
### Find optimum k-mer from a given set of genomes
Kitsune provides a wrap-up comand to find optimum k-mer length for a given set of genome within a given kmer interval.
```bash
$ kitsune kopt -h
usage: kitsune (kopt) [-h] [--acf-cutoff ACF_CUTOFF] [--canonical]
[--closely-related] [--cre-cutoff CRE_CUTOFF] [--fast]
--filenames FILENAMES [--hashsize HASHSIZE]
[--in-memory] [--k-min K_MIN] --k-max K_MAX
[--lower LOWER] [--nproc NPROC] [--output OUTPUT]
[--threads THREADS]
Optimal kmer size selection for a set of genomes using Average number of
Common Features (ACF), Cumulative Relative Entropy (CRE), and Observed Common
Features (OCF). Example: kitsune kopt --filenames genomeList.txt --k-min 4
--k-max 12 --canonical --fast
optional arguments:
-h, --help show this help message and exit
--acf-cutoff ACF_CUTOFF
Cutoff to use in selecting kmers whose ACFs are >=
(cutoff * max(ACF)) (default: 0.1)
--canonical Jellyfish count only canonical kmers (default: False)
--closely-related Use in case of closely related genomes (default:
False)
--cre-cutoff CRE_CUTOFF
Cutoff to use in selecting kmers whose CREs are <=
(cutoff * max(CRE)) (default: 0.1)
--fast Jellyfish one-pass calculation (faster) (default:
False)
--filenames FILENAMES
Path to the file with the list of genome files paths.
There should be at list 2 input genomes (default:
None)
--hashsize HASHSIZE Jellyfish initial hash size (default: 100M)
--in-memory Keep Jellyfish counts in memory (default: False)
--k-min K_MIN Minimum kmer size (default: 4)
--k-max K_MAX Maximum kmer size (default: None)
--lower LOWER Do not let Jellyfish output kmers with count < --lower
(default: 1)
--nproc NPROC Maximum number of CPUs to make it parallel (default:
1)
--output OUTPUT Path to the output file (default: None)
--threads THREADS Maximum number of threads for Jellyfish (default: 1)
```
### Example dataset
First download the example files. [Download](examples/example_viral_genomes.zip)
```bash
kitsune kopt --filenames genome_list --k-min 6 --k-max 21 --canonical --fast --threads 4 --nproc 2 --output out.txt
```
> :warning: _Please be aware that this command will use big computational resources when large number of genomes and/or large genome size are used as the input._
Raw data
{
"_id": null,
"home_page": "https://github.com/natapol/kitsune",
"name": "kitsune",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.5",
"maintainer_email": null,
"keywords": "bioinformatics, kitsune",
"author": "Natapol Pornputtapong",
"author_email": "natapol.por@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/f9/f8/bd2f58f41fabbd6d5f1394742523b60220171e52a9d50f2943b0ee41ad3f/kitsune-1.3.5.tar.gz",
"platform": null,
"description": "# KITSUNE: K-mer-length Iterative Selection for UNbiased Ecophylogenomics\n\n<img src=\"https://github.com/natapol/kitsune/blob/master/logoKITSUNE.png\" width=\"40%\">\n\n[![PyPI version](https://badge.fury.io/py/kitsune.svg)](https://badge.fury.io/py/kitsune)\n![Upload Python Package](https://github.com/natapol/kitsune/workflows/Upload%20Python%20Package/badge.svg)\n\nKITSUNE is a toolkit for evaluation of the length of k-mer in a given genome dataset for alignment-free phylogenimic analysis.\n\nK-mer based approach is simple and fast yet has been widely used in many applications including biological sequence comparison. However, selection of an appropriate k-mer length to obtain a good information content for comparison is normally overlooked. The optimum k-mer length is a prerequsite to obtain biological meaningful genomic distance for assesment of phylogenetic relationships. Therefore, we have developed KITSUNE to aid k-mer length selection process in a systematic way, based on a three-steps aproach described in [Viral Phylogenomics Using an Alignment-Free Method: A Three-Step Approach to Determine Optimal Length of k-mer](https://doi.org/10.1038/srep40712).\n\nKITSUNE will calculte the three matrices across considered k-mer range:\n\n1. Cumulative Relative Entropy (CRE)\n1. Average number of Common Features (ACF)\n1. Observed Common Features (OCF)\n\nMoreover, KITSUNE also provides various genomic distance calculations from the k-mer frequency vectors that can be used for species identification or phylogenomic tree construction. \n\n> **Note**:\n> If you use KITSUNE in your research, please cite:\n> [KITSUNE: A Tool for Identifying Empirically Optimal K-mer Length for Alignment-free Phylogenomic Analysis](https://doi.org/10.3389/fbioe.2020.556413)\n\n\n## Installation\n\nKitsune is developed under python version 3 environment. We recommend users use python >= v3.5.\n\nRequirement packages: scipy >= 0.18.1, numpy >= 1.1.0, tqdm >= 4.32\n\nKitsune also requires [Jellyfish](https://doi.org/10.1093/bioinformatics/btr011) for k-mer counting as external software dependency. Thus, you need to install it before running the tool: [https://github.com/gmarcais/Jellyfish](https://github.com/gmarcais/Jellyfish)\n\n### Install with pip\n\n```bash\npip install kitsune\n```\n\n### Install from source\n\n```bash\n# Clone the GitHub repository\ngit clone https://github.com/natapol/kitsune\n\n# Move to the kitsune folder\ncd kitsune/\n\n# Install\npython setup.py install\n```\n\n## Usage\n\n### Overview of kitsune\n\ncommand for listing help\n\n```bash\n$ kitsune --help\n\nusage: kitsune <command> [<args>]\n\nAvailable commands:\n acf Compute average number of common features between signatures\n cre Compute cumulative relative entropy\n dmatrix Compute distance matrix\n kopt Compute recommended choice (optimal) of kmer within a given kmer interval for a set of genomes using the cre, acf and ofc\n ofc Compute observed feature frequencies\n\nUse --help in conjunction with one of the commands above for a list of available options (e.g. kitsune acf --help)\n```\n\n### Calculate CRE, ACF, and OFC value for specific kmer\n\nKitsune provides three commands to calculate an appropiate k-mer using CRE, ACF, and OCF:\n\n#### Calculate CRE\n\n```bash\n$ kitsune cre -h\n\nusage: kitsune (cre) [-h] --filename FILENAME [--fast] [--canonical] -ke KEND\n [-kf KFROM] [-t THREAD] [-o OUTPUT]\n\nCalculate k-mer from cumulative relative entropy of all genomes\n\noptional arguments:\n -h, --help show this help message and exit\n --filename FILENAME A genome file in fasta format (default: None)\n --fast Jellyfish one-pass calculation (faster) (default:\n False)\n --canonical Jellyfish count only canonical mer (default: False)\n -ke KEND, --kend KEND\n Last k-mer (default: None)\n -kf KFROM, --kfrom KFROM\n Calculate from k-mer (default: 4)\n -t THREAD, --thread THREAD\n -o OUTPUT, --output OUTPUT\n Output filename (default: None)\n```\n\n#### Calculate ACF\n\n```bash\n$ kitsune acf -h\n\nusage: kitsune (acf) [-h] --filenames FILENAMES [FILENAMES ...] [--fast]\n [--canonical] -k KMERS [KMERS ...] [-t THREAD]\n [-o OUTPUT]\n\nCalculate an average number of common features pairwise between one genome\nagainst others\n\noptional arguments:\n -h, --help show this help message and exit\n --filenames FILENAMES [FILENAMES ...]\n Genome files in fasta format (default: None)\n --fast Jellyfish one-pass calculation (faster) (default:\n False)\n --canonical Jellyfish count only canonical mer (default: False)\n -k KMERS [KMERS ...], --kmers KMERS [KMERS ...]\n Have to state before (default: None)\n -t THREAD, --thread THREAD\n -o OUTPUT, --output OUTPUT\n Output filename (default: None)\n```\n\n#### Calculate OFC\n\n```bash\n$ kitsune ofc -h\n\nusage: kitsune (ofc) [-h] --filenames FILENAMES [FILENAMES ...] [--fast]\n [--canonical] -k KMERS [KMERS ...] [-t THREAD]\n [-o OUTPUT]\n\nCalculate an observe feature frequency\n\noptional arguments:\n -h, --help show this help message and exit\n --filenames FILENAMES [FILENAMES ...]\n Genome files in fasta format (default: None)\n --fast Jellyfish one-pass calculation (faster) (default:\n False)\n --canonical Jellyfish count only canonical mer (default: False)\n -k KMERS [KMERS ...], --kmers KMERS [KMERS ...]\n -t THREAD, --thread THREAD\n -o OUTPUT, --output OUTPUT\n Output filename (default: None)\n```\n\n#### General Example\n\n```bash\nkitsune cre --filename genome1.fna -kf 5 -ke 10\nkitsune acf --filenames genome1.fna genome2.fna -k 5\nkitsune ofc --filenames genome_fasta/* -k 5\n```\n\n### Calculate genomic distance at specific k-mer from kmer frequency vectors of two of genomes\n\nKitsune provides a commands to calculate genomic distance using different distance estimation method. Users can assess the impact of a selected k-mer length on the genomic distnace of choice below.\n\ndistance option | name\n---------------------- | ----\nbraycurtis | Bray-Curtis distance\ncanberra | Canberra distance\nchebyshev | Chebyshev distance\ncityblock | City Block (Manhattan) distance\ncorrelation | Correlation distance\ncosine | Cosine distance\neuclidean | Euclidean distance\njensenshannon | Jensen-Shannon distance\nsqeuclidean | Squared Euclidean distance\ndice | Dice dissimilarity\nhamming | Hamming distance\njaccard | Jaccard-Needham dissimilarity\nkulsinski | Kulsinski dissimilarity\nrogerstanimoto | Rogers-Tanimoto dissimilarity\nrussellrao | Russell-Rao dissimilarity\nsokalmichener | Sokal-Michener dissimilarity\nsokalsneath | Sokal-Sneath dissimilarity\nyule | Yule dissimilarity\nmash | MASH distance\njsmash | MASH Jensen-Shannon distance\njaccarddistp | Jaccard-Needham dissimilarity Probability\neuclidean_of_frequency | Euclidean distance of Frequency\n\n\nKitsune provides a choice of distance transformation proposed by [Fan et.al](https://doi.org/10.1186/s12864-015-1647-5).\n\n### Calculate a distance matrix\n\n```bash\n$ kitsune dmatrix -h\n\nusage: kitsune (dmatrix) [-h] [--filenames [FILENAMES [FILENAMES ...]]]\n [--fast] [--canonical] -k KMER [-i INPUT] [-o OUTPUT]\n [-t THREAD] [--transformed]\n [-d {braycurtis,canberra,jsmash,chebyshev,cityblock,correlation,cosine,dice,euclidean,hamming,jaccard,kulsinsk,matching,rogerstanimoto,russellrao,sokalmichener,sokalsneath,sqeuclidean,yule,mash,jaccarddistp}]\n [-f FORMAT]\n\nCalculate a distance matrix\n\noptional arguments:\n -h, --help show this help message and exit\n --filenames [FILENAMES [FILENAMES ...]]\n Genome files in fasta format (default: None)\n --fast Jellyfish one-pass calculation (faster) (default:\n False)\n --canonical Jellyfish count only canonical mer (default: False)\n -k KMER, --kmer KMER\n -i INPUT, --input INPUT\n List of genome files in txt (default: None)\n -o OUTPUT, --output OUTPUT\n Output filename (default: None)\n -t THREAD, --thread THREAD\n --transformed\n -d {braycurtis,canberra,jsmash,chebyshev,cityblock,correlation,cosine,dice,euclidean,hamming,jaccard,kulsinsk,matching,rogerstanimoto,russellrao,sokalmichener,sokalsneath,sqeuclidean,yule,mash,jaccarddistp}, --distance {braycurtis,canberra,jsmash,chebyshev,cityblock,correlation,cosine,dice,euclidean,hamming,jaccard,kulsinsk,matching,rogerstanimoto,russellrao,sokalmichener,sokalsneath,sqeuclidean,yule,mash,jaccarddistp}\n -f FORMAT, --format FORMAT\n```\n\nExample of choosing distance option:\n\n```bash\nkitsune dmatrix --filenames genome1.fna genome2.fna -k 11 -d jaccard --canonical --fast -o output.txt\nkitsune dmatrix --filenames genome1.fna genome2.fna -k 11 -d hensenshannon --canonical --fast -o output.txt\n```\n\n### Find optimum k-mer from a given set of genomes\n\nKitsune provides a wrap-up comand to find optimum k-mer length for a given set of genome within a given kmer interval.\n\n```bash\n$ kitsune kopt -h\n\nusage: kitsune (kopt) [-h] [--acf-cutoff ACF_CUTOFF] [--canonical]\n [--closely-related] [--cre-cutoff CRE_CUTOFF] [--fast]\n --filenames FILENAMES [--hashsize HASHSIZE]\n [--in-memory] [--k-min K_MIN] --k-max K_MAX\n [--lower LOWER] [--nproc NPROC] [--output OUTPUT]\n [--threads THREADS]\n\nOptimal kmer size selection for a set of genomes using Average number of\nCommon Features (ACF), Cumulative Relative Entropy (CRE), and Observed Common\nFeatures (OCF). Example: kitsune kopt --filenames genomeList.txt --k-min 4\n--k-max 12 --canonical --fast\n\noptional arguments:\n -h, --help show this help message and exit\n --acf-cutoff ACF_CUTOFF\n Cutoff to use in selecting kmers whose ACFs are >=\n (cutoff * max(ACF)) (default: 0.1)\n --canonical Jellyfish count only canonical kmers (default: False)\n --closely-related Use in case of closely related genomes (default:\n False)\n --cre-cutoff CRE_CUTOFF\n Cutoff to use in selecting kmers whose CREs are <=\n (cutoff * max(CRE)) (default: 0.1)\n --fast Jellyfish one-pass calculation (faster) (default:\n False)\n --filenames FILENAMES\n Path to the file with the list of genome files paths.\n There should be at list 2 input genomes (default:\n None)\n --hashsize HASHSIZE Jellyfish initial hash size (default: 100M)\n --in-memory Keep Jellyfish counts in memory (default: False)\n --k-min K_MIN Minimum kmer size (default: 4)\n --k-max K_MAX Maximum kmer size (default: None)\n --lower LOWER Do not let Jellyfish output kmers with count < --lower\n (default: 1)\n --nproc NPROC Maximum number of CPUs to make it parallel (default:\n 1)\n --output OUTPUT Path to the output file (default: None)\n --threads THREADS Maximum number of threads for Jellyfish (default: 1)\n```\n\n### Example dataset\n\nFirst download the example files. [Download](examples/example_viral_genomes.zip)\n\n```bash\nkitsune kopt --filenames genome_list --k-min 6 --k-max 21 --canonical --fast --threads 4 --nproc 2 --output out.txt\n```\n\n> :warning: _Please be aware that this command will use big computational resources when large number of genomes and/or large genome size are used as the input._\n",
"bugtrack_url": null,
"license": "GPL-3.0 License",
"summary": "A toolkit for evaluation of the lenght of k-mer in a given genome dataset for alignment-free phylogenimic analysis",
"version": "1.3.5",
"project_urls": {
"Download": "https://pypi.org/project/kitsune/",
"Homepage": "https://github.com/natapol/kitsune"
},
"split_keywords": [
"bioinformatics",
" kitsune"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f4964d37fee4d6768210903b54de2f3321c6b6e095085ff2c6613070ab14cfec",
"md5": "1d01092bcad841b6730da126eacba1b8",
"sha256": "0f4e182ff276a8226d0f81823e8ecccda43be0df147d7c7c9c042d9c652c83b0"
},
"downloads": -1,
"filename": "kitsune-1.3.5-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "1d01092bcad841b6730da126eacba1b8",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.5",
"size": 32080,
"upload_time": "2024-05-16T15:38:27",
"upload_time_iso_8601": "2024-05-16T15:38:27.725436Z",
"url": "https://files.pythonhosted.org/packages/f4/96/4d37fee4d6768210903b54de2f3321c6b6e095085ff2c6613070ab14cfec/kitsune-1.3.5-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f9f8bd2f58f41fabbd6d5f1394742523b60220171e52a9d50f2943b0ee41ad3f",
"md5": "a6b50c518c463272f1ba25e1f0d72925",
"sha256": "73af096870a02dd6b3774578b4e3d6b86122e99a27877977045330f7a24d2e41"
},
"downloads": -1,
"filename": "kitsune-1.3.5.tar.gz",
"has_sig": false,
"md5_digest": "a6b50c518c463272f1ba25e1f0d72925",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 31497,
"upload_time": "2024-05-16T15:38:29",
"upload_time_iso_8601": "2024-05-16T15:38:29.930861Z",
"url": "https://files.pythonhosted.org/packages/f9/f8/bd2f58f41fabbd6d5f1394742523b60220171e52a9d50f2943b0ee41ad3f/kitsune-1.3.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-16 15:38:29",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "natapol",
"github_project": "kitsune",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "kitsune"
}