{
"info": {
"author": "maintainer",
"author_email": "maintainer@nyoka.org",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Topic :: Scientific/Engineering :: Artificial Intelligence"
],
"description": "\n# Nyoka\n\n[](https://travis-ci.org/nyoka-pmml/nyoka)\n[](https://badge.fury.io/py/nyoka)\n[](https://codecov.io/gh/nyoka-pmml/nyoka)\n[](https://github.com/nyoka-pmml/nyoka/blob/master/LICENSE)\n[](https://badge.fury.io/py/nyoka)\n\n
\n\n## Overview\n\nNyoka is a Python library for comprehensive support of the latest PMML (PMML 4.4) standard. Using Nyoka, Data Scientists can export a large number of Machine Learning and Deep Learning models from popular Python frameworks into PMML by either using any of the numerous included ready-to-use exporters or by creating their own exporter for specialized/individual model types by simply calling a sequence of constructors.\n\nBesides about 500 Python classes which each cover a PMML tag and all constructor parameters/attributes as defined in the standard, Nyoka also provides an increasing number of convenience classes and functions that make the Data Scientist\u2019s life easier for example by reading or writing any PMML file in one line of code from within your favorite Python environment.\n\nNyoka comes to you with the complete source code in Python, extended HTML documentation for the classes/functions, and a growing number of Jupyter Notebook tutorials that help you familiarize yourself with the way Nyoka supports you in using PMML as your favorite Data Science transport file format.\n\n\nRead the documentation at [Nyoka Documentation](http://docs.nyoka.org).\n\n## List of libraries and models supported by Nyoka :\n\n### Scikit-Learn (version <= 0.20.3):\nClick to expand!
\n\n#### Models -\n* LinearRegression\n* LogisticRegression\n* RidgeClassifier\n* SGDClassifier\n* LinearDiscriminantAnalysis\n* LinearSVC\n* LinearSVR\n* DecisionTreeClassifier\n* DecisionTreeRegressor\n* SVC\n* SVR\n* OneClassSVM\n* GaussianNB\n* RandomForestRegressor\n* RandomForestClassifier\n* GradientBoostingRegressor\n* GradientBoostingClassifier\n* IsolationForest\n* MLPClassifier\n* MLPRegressor\n* KNNClassifier\n* KNNRegressor\n* KMeans\n\n#### Pre-Processing -\n\n* StandardScaler\n* MinMaxScaler\n* RobustScaler\n* MaxAbsScaler\n* TfidfVectorizer\n* CountVectorizer\n* LabelEncoder\n* Imputer\n* Binarizer\n* PolynomialFeatures\n* PCA\n* LabelBinarizer\n* OneHotEncoder\n* CategoricalImputer\n \n\n### Keras (version 2.2.4):\nClick to expand!
\n\n#### Models -\n* Mobilenet\n* VGG\n* DenseNet\n* Inception\n* ResNet\n* Xception\n \n\n### Object Detection Model:\n* Keras-RetinaNet\n\n### LightGBM:\nClick to expand!
\n\n#### Models -\n* LGBMClassifier\n* LGBMRegressor\n \n\n### XGBoost:\nClick to expand!
\n\n#### Models -\n* XGBClassifier\n* XGBRegressor\n \n\n### Statsmodels:\nClick to expand!
\n\n#### Models -\n* ARIMA\n* SARIMAX\n* ExponentialSmoothing\n \n\n## Prerequisites\n\n* Python 3.6\n\n## Dependencies\n\nnyoka requires:\n\n* lxml\n\n\n## Installation\n\nYou can install nyoka using:\n\n```\npip install --upgrade nyoka\n```\n\n## Usage\n\nNyoka contains seperate exporters for each library, e.g., scikit-learn, keras, xgboost etc.\n\n| library | exporter |\n|--|--|\n| **scikit-learn** | _skl_to_pmml_ |\n| **xgboost** | _xgboost_to_pmml_ |\n| **lightgbm** | _lgbm_to_pmml_ |\n| **keras** | _KerasToPmml_ |\n| **statsmodels** | _ArimaToPmml & ExponentialSmoothingToPmml_ |\n| **retinanet** | _RetinanetToPmml_ |\n\nThe main module of __Nyoka__ is `nyoka`. To use it for your model, you need to import the specific exporter from nyoka as -\n\n```python\nfrom nyoka import skl_to_pmml, lgb_to_pmml #... so on\n```\n#### Note -\n - If scikit-learn, xgboost and lightgbm model is used then the model should be used inside sklearn's Pipeline.\n\tThe workflow is as follows -\n\t* Create scikit-learn's `Pipeline` object and populate it with any preprocessing steps and the model object.\n\t* Call `Pipeline.fit(X,y)` method to train the model.\n\t* Use the specific exporter and pass the pipeline object, feature names of the training dataset, target name and expected name of the PMML to the exporter function. If target name is not given default value `target` is used. Similarly, for pmml name, default value `from_sklearn.pmml`/`from_xgboost.pmml`/`from_lighgbm.pmml` is used. \n - For Keras and Statsmodels, the fitted model needs to be passed to the exporter.\n\n ___Demo is provided below___\n### Nyoka to export scikit-learn models:\n\n>Exporting a Support Vector Classifier pipeline object into PMML\n\n```python\nimport pandas as pd\nfrom sklearn import datasets\nfrom sklearn.pipeline import Pipeline\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.svm import SVC\n\niris = datasets.load_iris()\nirisd = pd.DataFrame(iris.data,columns=iris.feature_names)\nirisd['Species'] = iris.target\nfeatures = irisd.columns.drop('Species')\ntarget = 'Species'\n\npipeline_obj = Pipeline([\n ('scaler', StandardScaler()),\n ('svm',SVC())\n])\npipeline_obj.fit(irisd[features],irisd[target])\n\nfrom nyoka import skl_to_pmml\nskl_to_pmml(pipeline_obj,features,target,\"svc_pmml.pmml\")\n```\n\n### Nyoka to export xgboost models:\n\n>Exporting a XGBoost model into PMML\n\n```python\nfrom sklearn import datasets\nfrom sklearn.pipeline import Pipeline\nfrom sklearn.preprocessing import StandardScaler\nimport xgboost as xgb\n\nboston = datasets.load_boston()\ny = boston['target']\nX = boston['data']\nxgb_model = xgb.XGBRegressor()\n\npipeline_obj = Pipeline([\n (\"scaling\", StandardScaler()),\n (\"model\", XGBRegressor())\n])\n\npipeline_obj.fit(X, y)\n\nfrom nyoka import xgboost_to_pmml\nxgboost_to_pmml(pipeline_obj, boston.feature_names, 'target', \"xgb_pmml.pmml\")\n```\n\n### Nyoka to export lightGBM models:\n\n>Exporting a LGBM model into PMML\n\n```python\nimport pandas as pd\nfrom sklearn import datasets\nfrom sklearn.pipeline import Pipeline\nfrom lightgbm import LGBMClassifier\n\n\niris = datasets.load_iris()\nirisd = pd.DataFrame(iris.data,columns=iris.feature_names)\nirisd['Species'] = iris.target\nfeatures = irisd.columns.drop('Species')\ntarget = 'Species'\n\npipeline_obj = Pipeline([\n ('lgbmc',LGBMClassifier())\n])\npipeline_obj.fit(irisd[features],irisd[target])\n\nfrom nyoka import lgb_to_pmml\nlgb_to_pmml(pipeline_obj,features,target,\"lgbmc_pmml.pmml\")\n```\n\n### Nyoka to export keras models:\n\n>Exporting a Mobilenet model into PMML\n\n```python\nfrom keras import applications\nfrom keras.layers import Flatten, Dense\nfrom keras.models import Model\n\nmodel = applications.MobileNet(weights='imagenet', include_top=False,input_shape = (224, 224,3))\nactivType='sigmoid'\nx = model.output\nx = Flatten()(x)\nx = Dense(1024, activation=\"relu\")(x)\npredictions = Dense(2, activation=activType)(x)\nmodel_final = Model(inputs =model.input, outputs = predictions,name='predictions')\n\nfrom nyoka import KerasToPmml\ncnn_pmml = KerasToPmml(model_final,dataSet='image',predictedClasses=['cats','dogs'])\ncnn_pmml.export(open('2classMBNet.pmml', \"w\"), 0)\n```\n\n>Exporting user given python script with keras model\n\n```python\nfrom keras import applications\nfrom keras.layers import Flatten, Dense\nfrom keras.models import Model\nmodel = applications.MobileNet(weights='imagenet', include_top=False,input_shape = (224, 224,3))\nx = model.output\nx = Flatten()(x)\nx = Dense(1024, activation=\"relu\")(x)\npredictions = Dense(2, activation='sigmoid')(x)\nmodel_final = Model(inputs =model.input, outputs = predictions,name='predictions')\nscript_content = open(\"preprocess.py\",'r').read()\npmml_obj=KerasToPmml(model_final,\n dataSet='image',\n predictedClasses=['cat','dog'],\n script_args = {\n \"content\" : script_content,\n \"def_name\" : \"getBase64EncodedString\",\n \"return_type\" : \"string\",\n \"encode\":True\n }\n )\npmml_obj.export(open(\"script_with_keras_encoded.pmml\",'w'),0)\n```\n\n### Nyoka to export object detection model\n\n>Exporting RetinaNet to PMML\n```python\nfrom keras_retinanet.models import load_model\nfrom nyoka import RetinanetToPmml\nmodel = load_model('resnet50_coco_best_v2.1.0.h5', backbone_name='resnet50')\nbackbone = 'resnet'\nRetinanetToPmml(\n model,\n input_shape=(224,224,3),\n input_format=\"image\",\n backbone_name=backbone,\n pmml_file_name=\"retinanet_with_coco_.pmml\"\n)\n```\n\n### Nyoka to export statsmodels model\n>Exporting Non Seasonal ARIMA to PMML\n```python\nimport pandas as pd\nimport numpy as np\nfrom statsmodels.tsa.arima_model import ARIMA\nfrom nyoka import ArimaToPMML\n\ndef parser(x):\n return pd.datetime.strptime(x,'%Y-%m')\n\nsales_data = pd.read_csv('sales-cars.csv', index_col=0, parse_dates = [0], date_parser = parser)\nmodel = ARIMA(sales_data, order = (9, 2, 0))\nresult = model.fit()\n\npmml_f_name = 'non_seasonal_car_sales.pmml'\nArimaToPMML(results_obj = result,pmml_file_name = pmml_f_name)\n```\n\n>Exporting Seasonal ARIMA to PMML\n```python\nimport pandas as pd\nfrom nyoka import ArimaToPMML\nfrom statsmodels.tsa.statespace.sarimax import SARIMAX\ndata=pd.read_csv(\"JohnsonJohnsonWithDate.csv\")\ndata['index']=pd.to_datetime(data['index'], format='%Y-%m-%d')\ndata.set_index(['index'], inplace=True)\n\nmod = SARIMAX(data,order=(1,0,0),seasonal_order=(1,0,0, 4))\nresult = mod.fit()\n\nArimaToPMML(results, 'jnj_seasonal_arima.pmml')\n```\n\n## More in Nyoka\nNyoka contains one submodule called `preprocessing`. This module contains preprocessing classes implemented by Nyoka. Currently there is only one preprocessing class, which is `Lag`.\n\n#### What is Lag? When to use it?\n>Lag is a preprocessing class implemented by Nyoka. When used inside scikit-learn's pipeline, it simply applies an `aggregation` function for the given features of the dataset by combining `value` number of previous records. It takes two arguments- aggregation and value.\n>\n> The valid `aggregation` functions are -\n\"min\", \"max\", \"sum\", \"avg\", \"median\", \"product\" and \"stddev\".\n>\nTo use __Lag__ -\n* Import it from nyoka as `from nyoka.preprocessing import Lag`\n* Create an instance of Lag as `Lag(aggregation=\"sum\", value=5)`\n\t* This means, take 5 previous values for the given fields and perform summation.\n* Use this object inside scikit-learn's pipeline to train.\n\n## Uninstallation\n\n```\npip uninstall nyoka\n```\n\n## Support\n\nYou can ask questions at:\n\n*\t[Stack Overflow](https://stackoverflow.com) by tagging your questions with #pmml, #nyoka\n*\tYou can also post bug reports in [GitHub issues](https://github.com/nyoka-pmml/nyoka/issues) \n\n\n\n",
"description_content_type": "text/markdown",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/nyoka-pmml/nyoka",
"keywords": "",
"license": "Apache Software License",
"maintainer": "",
"maintainer_email": "",
"name": "nyoka",
"package_url": "https://pypi.org/project/nyoka/",
"platform": "",
"project_url": "https://pypi.org/project/nyoka/",
"project_urls": {
"Homepage": "https://github.com/nyoka-pmml/nyoka"
},
"release_url": "https://pypi.org/project/nyoka/4.0.1/",
"requires_dist": [
"lxml"
],
"requires_python": "",
"summary": "A Python library to export Machine Learning/ Deep Learning models into PMML",
"version": "4.0.1"
},
"last_serial": 5883422,
"releases": {
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "92f60edde4af8dd980c0e035dfbc25b0",
"sha256": "611d79ac3713d030c686f7ef5ca103c0185c9212d600b84635f24b85767c0963"
},
"downloads": -1,
"filename": "nyoka-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "92f60edde4af8dd980c0e035dfbc25b0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 298450,
"upload_time": "2018-09-18T06:16:06",
"url": "https://files.pythonhosted.org/packages/cd/23/9d2ab0e67e8a7a219520949da58695a9ab76a92739d5b9a2e1cdd69db4fa/nyoka-1.0.0-py3-none-any.whl"
}
],
"1.1.0": [
{
"comment_text": "",
"digests": {
"md5": "6a2668e209cbf709978de4c7a459da7e",
"sha256": "9e7f45b58d04f57155fa586414a802d7e6687bed92a4ab22b96c6e4527a04847"
},
"downloads": -1,
"filename": "nyoka-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6a2668e209cbf709978de4c7a459da7e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 305461,
"upload_time": "2018-09-27T09:14:24",
"url": "https://files.pythonhosted.org/packages/54/51/670845e16e849e5403a632ffff5cd3466854e14b5f1adfe935a1f09690e1/nyoka-1.1.0-py3-none-any.whl"
}
],
"1.2.1": [
{
"comment_text": "",
"digests": {
"md5": "a52bbb4862f45a07dc3a69187654b56e",
"sha256": "a98ac765013b8fec9f423ed70229ad576070033c62e95a34a08ca2f887ed21aa"
},
"downloads": -1,
"filename": "nyoka-1.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a52bbb4862f45a07dc3a69187654b56e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 306624,
"upload_time": "2018-10-11T10:14:07",
"url": "https://files.pythonhosted.org/packages/fc/4b/27503b633dfc7a7a4b98d86896a70e8150f9c29e9322fc8143ecdd8e0ee0/nyoka-1.2.1-py3-none-any.whl"
}
],
"1.3.1": [
{
"comment_text": "",
"digests": {
"md5": "172b39b5e9d1f0c63c8d07a3bb34b876",
"sha256": "6a85232c370ec63766dc70e1d2e373f937889990178822c4ade72afe1d7d1934"
},
"downloads": -1,
"filename": "nyoka-1.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "172b39b5e9d1f0c63c8d07a3bb34b876",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 316843,
"upload_time": "2018-10-26T09:59:59",
"url": "https://files.pythonhosted.org/packages/29/10/fdfc1c7973eaf7cf9d60f7ad09425c99feb2d1686192be530f1fc549d537/nyoka-1.3.1-py3-none-any.whl"
}
],
"1.3.2": [
{
"comment_text": "",
"digests": {
"md5": "e5f0b0b8b2c645e939b80f64935c47f2",
"sha256": "b7b337f1c6fdcd404be7786e03cc922adfa0ed5d4aaeafbf90a3a54ec20eb1e3"
},
"downloads": -1,
"filename": "nyoka-1.3.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e5f0b0b8b2c645e939b80f64935c47f2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 307865,
"upload_time": "2018-10-29T09:14:14",
"url": "https://files.pythonhosted.org/packages/b9/81/66c794efe41de02c4debf73f0424c88971bb39da9cbebe4e341f28da4919/nyoka-1.3.2-py3-none-any.whl"
}
],
"1.4.0": [
{
"comment_text": "",
"digests": {
"md5": "7503843123626648cdec90f7021dfc0c",
"sha256": "4d00ce93052e03a666cf871053a8b47b6b1c0a324dba4994c29def74f2aa2bf7"
},
"downloads": -1,
"filename": "nyoka-1.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7503843123626648cdec90f7021dfc0c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 307873,
"upload_time": "2018-11-02T08:35:54",
"url": "https://files.pythonhosted.org/packages/65/01/2720c77b3aa3b4cfef24a804d594668604a7a2f661fe4e733913ee654eeb/nyoka-1.4.0-py3-none-any.whl"
}
],
"1.4.1": [
{
"comment_text": "",
"digests": {
"md5": "5f4f23a7268c9856508a4ed040624572",
"sha256": "216b97fcfffe996f185ed605c045196e82f8f4b5cc97798b1a8639befe619ad6"
},
"downloads": -1,
"filename": "nyoka-1.4.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5f4f23a7268c9856508a4ed040624572",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 308041,
"upload_time": "2018-11-22T07:48:18",
"url": "https://files.pythonhosted.org/packages/98/53/1f79c0786714b3d77164b7890ed47e12974e43e03ca7675d3e4c4e88b544/nyoka-1.4.1-py3-none-any.whl"
}
],
"1.4.2": [
{
"comment_text": "",
"digests": {
"md5": "6b74f191ad01a393aa5e816ff0a82435",
"sha256": "b073dbdce83c245b32846e658dd086eef7c0dc0c14879d5a80a748276d8c5699"
},
"downloads": -1,
"filename": "nyoka-1.4.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6b74f191ad01a393aa5e816ff0a82435",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 308047,
"upload_time": "2018-12-14T09:00:22",
"url": "https://files.pythonhosted.org/packages/be/a3/6bddd486fbb400b926b87a1ddf45e444cd1418a3eff8a824db9cf0c55a07/nyoka-1.4.2-py3-none-any.whl"
}
],
"1.5.0": [
{
"comment_text": "",
"digests": {
"md5": "a04df70bd532efa5003d8530fb97e1ed",
"sha256": "917af71ecb70363a7abce654ecf500593a67ad6b33f68297fad93f7dbf7f5e7c"
},
"downloads": -1,
"filename": "nyoka-1.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a04df70bd532efa5003d8530fb97e1ed",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 308067,
"upload_time": "2018-12-18T09:33:45",
"url": "https://files.pythonhosted.org/packages/89/4e/23598ec48c0be1e47ba7039fccec4ebd3f47ecf9fe464fbb5c7d5b76276c/nyoka-1.5.0-py3-none-any.whl"
}
],
"1.5.1": [
{
"comment_text": "",
"digests": {
"md5": "b10b36766d70f986386d589572baa72e",
"sha256": "83e32c123e7924f82a87ab79f5205a59778f64f2751acfd7600e22589f5256cb"
},
"downloads": -1,
"filename": "nyoka-1.5.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b10b36766d70f986386d589572baa72e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 308144,
"upload_time": "2018-12-19T10:38:44",
"url": "https://files.pythonhosted.org/packages/d3/34/58c6318276d0c6d238387cbb3c84cef9fd8ae2d9772251f6a697ce80e974/nyoka-1.5.1-py3-none-any.whl"
}
],
"1.5.2": [
{
"comment_text": "",
"digests": {
"md5": "d32262afaf6410d08aad85f056942ae4",
"sha256": "7daedd0ac756f55f3f2c804281dde475672319a1ba2e3a1f9a7179f29054f4a0"
},
"downloads": -1,
"filename": "nyoka-1.5.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d32262afaf6410d08aad85f056942ae4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 308227,
"upload_time": "2018-12-19T11:29:50",
"url": "https://files.pythonhosted.org/packages/3b/8e/93437419e322c47dcedfca789ff2e1dea86a40b8e3cac2c6c9c36b571429/nyoka-1.5.2-py3-none-any.whl"
}
],
"1.5.3": [
{
"comment_text": "",
"digests": {
"md5": "c22c2290e4358f293fe4a538bb377d6e",
"sha256": "3a2a35a7079056d1500cd743a591ed421a3d6fa9c88a763aea00b588c300eb0f"
},
"downloads": -1,
"filename": "nyoka-1.5.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c22c2290e4358f293fe4a538bb377d6e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 308308,
"upload_time": "2018-12-31T09:41:41",
"url": "https://files.pythonhosted.org/packages/b6/35/717ed48ee3835a0bd26b075d236a168b202626a7615ca55d9afd0cbecf88/nyoka-1.5.3-py3-none-any.whl"
}
],
"1.5.4": [
{
"comment_text": "",
"digests": {
"md5": "d1f5c6fe50d9433087ef56d09c39e2df",
"sha256": "c196ae69e41b9182214ef13ed7903456528c386a3fae63067cd8423f3f261828"
},
"downloads": -1,
"filename": "nyoka-1.5.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d1f5c6fe50d9433087ef56d09c39e2df",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 311583,
"upload_time": "2019-01-25T11:44:45",
"url": "https://files.pythonhosted.org/packages/62/cf/0ec20204a46122b899c536788da58e27d88a990941abaf67d7860decf0c9/nyoka-1.5.4-py3-none-any.whl"
}
],
"2.0.0": [
{
"comment_text": "",
"digests": {
"md5": "32a9f7e70f7076fd58dcaab50dbb9e72",
"sha256": "4fd58a839f9fbb5b640606d9adb33709eab21854435e6df0810ece1727e53c27"
},
"downloads": -1,
"filename": "nyoka-2.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "32a9f7e70f7076fd58dcaab50dbb9e72",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 312474,
"upload_time": "2019-02-27T07:58:55",
"url": "https://files.pythonhosted.org/packages/62/62/f0ddd5550488040803b226eb02bb1b77543bfc4ea35e3107ab702fe5aa17/nyoka-2.0.0-py3-none-any.whl"
}
],
"3.0.1": [
{
"comment_text": "",
"digests": {
"md5": "a0fc8b716cb57e339ed5f411ad6c8e3d",
"sha256": "6a519b0f5cac06bf4e1ef038449518d1810504f1d6eb54d2f02d196e9a9fd48c"
},
"downloads": -1,
"filename": "nyoka-3.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a0fc8b716cb57e339ed5f411ad6c8e3d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 313274,
"upload_time": "2019-03-15T08:01:35",
"url": "https://files.pythonhosted.org/packages/cf/8b/3163c277da16bed9fb00acc3fa7c71b7663688429a87adff6fd4617c9467/nyoka-3.0.1-py3-none-any.whl"
}
],
"3.0.10": [
{
"comment_text": "",
"digests": {
"md5": "b282f4e3eee28142bc0cf659cd520ca1",
"sha256": "629154c147f9447ca5d51bad225ff594f38cda2ed9c94867b067e76f24692024"
},
"downloads": -1,
"filename": "nyoka-3.0.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b282f4e3eee28142bc0cf659cd520ca1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 341335,
"upload_time": "2019-05-13T07:56:12",
"url": "https://files.pythonhosted.org/packages/fb/4f/5d9a9b91dd64e7f5c2d2322e9ebb33b586c4c7730413863192e3354c2924/nyoka-3.0.10-py3-none-any.whl"
}
],
"3.0.2": [
{
"comment_text": "",
"digests": {
"md5": "49d3ccd251a297d0c2717c28d8e8d1cf",
"sha256": "75646f6ce9460e8a6cb2ee8183973e53c4cb9622096297d2fe0130afd8ab1d02"
},
"downloads": -1,
"filename": "nyoka-3.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "49d3ccd251a297d0c2717c28d8e8d1cf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 313275,
"upload_time": "2019-03-15T08:40:12",
"url": "https://files.pythonhosted.org/packages/78/51/8614b2cfad6d7d4374737756ea471fbdf52c55763999c0f710398593079c/nyoka-3.0.2-py3-none-any.whl"
}
],
"3.0.3": [
{
"comment_text": "",
"digests": {
"md5": "cf71704301961d19fe7972cab3e91c6e",
"sha256": "f1dfea6773231f0c701c4bd5836d534df06bf7eec95f3978c9f38750aecc2a76"
},
"downloads": -1,
"filename": "nyoka-3.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cf71704301961d19fe7972cab3e91c6e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 313305,
"upload_time": "2019-03-22T11:40:44",
"url": "https://files.pythonhosted.org/packages/4a/af/64aa75326bd948a583c712a9a85d8e8b9b14fc405d5cd9d09fb2fb2d6478/nyoka-3.0.3-py3-none-any.whl"
}
],
"3.0.4": [
{
"comment_text": "",
"digests": {
"md5": "b7b1ef7df8a75e0382ea237a6405f2e5",
"sha256": "b85d019c94e7224a0d1095192649557439e46a727aeb8f66a9ec697a45242f7e"
},
"downloads": -1,
"filename": "nyoka-3.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b7b1ef7df8a75e0382ea237a6405f2e5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 314173,
"upload_time": "2019-03-22T11:46:59",
"url": "https://files.pythonhosted.org/packages/37/b1/9a9e6345a3d30d3d585abd21ce06659cdb6dbab20ce1ffbc16d340ba27ba/nyoka-3.0.4-py3-none-any.whl"
}
],
"3.0.5": [
{
"comment_text": "",
"digests": {
"md5": "640c6d29b3d8e29e18e7564fd6df7637",
"sha256": "b2999923acce2ebb03b81d53fcd321b0fe4124f4e14c0c9907484603dde085e5"
},
"downloads": -1,
"filename": "nyoka-3.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "640c6d29b3d8e29e18e7564fd6df7637",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 314244,
"upload_time": "2019-03-26T10:23:45",
"url": "https://files.pythonhosted.org/packages/c8/9b/25eecd5e8dfed9d6edfb8fe9eac2328cb4c27732ba8ad2815dae347ee0b8/nyoka-3.0.5-py3-none-any.whl"
}
],
"3.0.6": [
{
"comment_text": "",
"digests": {
"md5": "5d552d5a8cfe641aee7da66f9232af66",
"sha256": "899789fde0edaeb3fcfd5ef7394987907158ce476ad5650aa88c34951a15a642"
},
"downloads": -1,
"filename": "nyoka-3.0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5d552d5a8cfe641aee7da66f9232af66",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 314265,
"upload_time": "2019-03-27T10:10:47",
"url": "https://files.pythonhosted.org/packages/15/ce/0a9cf275f4848c3da80d8f014f18b728bde838710c2c991fc9b7b03a92dc/nyoka-3.0.6-py3-none-any.whl"
}
],
"3.0.7": [
{
"comment_text": "",
"digests": {
"md5": "67eafb56753ce8d12a51285927a808b7",
"sha256": "143e913be9c8498993ce5bbc023eb9c607b50ee44a1432cdbd06a45d6198e923"
},
"downloads": -1,
"filename": "nyoka-3.0.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "67eafb56753ce8d12a51285927a808b7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 314174,
"upload_time": "2019-04-02T09:42:28",
"url": "https://files.pythonhosted.org/packages/a9/7f/0a9528d9176cef4560efb3f7fe030063b82ddb91198888145a52a0af716b/nyoka-3.0.7-py3-none-any.whl"
}
],
"3.0.8": [
{
"comment_text": "",
"digests": {
"md5": "2939e076bbcdfeabf42eb4443e589aeb",
"sha256": "91f1e39c35829db4c730fbb5e8f56e7f1c53f37494d171a1d8ac08e6551a052c"
},
"downloads": -1,
"filename": "nyoka-3.0.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2939e076bbcdfeabf42eb4443e589aeb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 314174,
"upload_time": "2019-04-16T09:18:28",
"url": "https://files.pythonhosted.org/packages/21/10/9823d4595f20b3910b1e280791129db67048d46dce969cf1631641bb47ab/nyoka-3.0.8-py3-none-any.whl"
}
],
"3.0.9": [
{
"comment_text": "",
"digests": {
"md5": "5cf36c2cd6648c17e71fc0bb90322e8a",
"sha256": "8287d46dcb1291262000ab64a3a23f392db042a1c3a30220ead53c49579dd8cf"
},
"downloads": -1,
"filename": "nyoka-3.0.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5cf36c2cd6648c17e71fc0bb90322e8a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 341191,
"upload_time": "2019-04-26T05:28:52",
"url": "https://files.pythonhosted.org/packages/12/85/4123b7bd50e4f2ec32ff67ba7f5fd84e3f05d0350c16137767cc4ee29aec/nyoka-3.0.9-py3-none-any.whl"
}
],
"3.1.0": [
{
"comment_text": "",
"digests": {
"md5": "f8134db88d9422815c89812d1890a15d",
"sha256": "ac75cb7b3ddb4e934eb689dce3482e5095052a06d824f665a645af36b560d652"
},
"downloads": -1,
"filename": "nyoka-3.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f8134db88d9422815c89812d1890a15d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 342759,
"upload_time": "2019-05-28T05:00:12",
"url": "https://files.pythonhosted.org/packages/fd/2a/7ae5a01acb907c7f3bbd302a1b0208ae30895daed06e593be8a1b233b0d9/nyoka-3.1.0-py3-none-any.whl"
}
],
"3.2.0": [
{
"comment_text": "",
"digests": {
"md5": "acb51ac13b121de056435a3caff31415",
"sha256": "1fbc4995f6865e99f0efb4b6d127b16c9711545b7d42318d10fd12aa7771d540"
},
"downloads": -1,
"filename": "nyoka-3.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "acb51ac13b121de056435a3caff31415",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 345157,
"upload_time": "2019-06-19T06:06:42",
"url": "https://files.pythonhosted.org/packages/12/43/fd49dd056bd8c996839e710832d7368a35bb0222fb6e6edf70936f0bdc19/nyoka-3.2.0-py3-none-any.whl"
}
],
"3.2.1": [
{
"comment_text": "",
"digests": {
"md5": "fa15e636642673c82784b4f808314109",
"sha256": "077467070a714baa7be09015dbc2133748aa1ba39c3e7e169d257e85fa0c05f7"
},
"downloads": -1,
"filename": "nyoka-3.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fa15e636642673c82784b4f808314109",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 342979,
"upload_time": "2019-07-19T08:49:27",
"url": "https://files.pythonhosted.org/packages/14/2e/b60b58324fd883066841ae090ccc52c749796685d96f3ec8e2d3520cf2cc/nyoka-3.2.1-py3-none-any.whl"
}
],
"3.3.0": [
{
"comment_text": "",
"digests": {
"md5": "391ada8d5128c501bb6debfdaa067755",
"sha256": "5645442bc7efdba186d06dbd5d8d6ce280763d61abbe3a9eefd3e2f49dcfc26c"
},
"downloads": -1,
"filename": "nyoka-3.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "391ada8d5128c501bb6debfdaa067755",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 343615,
"upload_time": "2019-08-05T10:11:52",
"url": "https://files.pythonhosted.org/packages/80/83/14e961bd6439f4d9b0d0fdb0239b3dace1532572585dded635e3e01d9347/nyoka-3.3.0-py3-none-any.whl"
}
],
"4.0.0": [
{
"comment_text": "",
"digests": {
"md5": "71862331f1f5dc5c21b8e414a1aeb3f1",
"sha256": "a9c73e53e33102851d7531c9d83d3a8b68faf445ba687586fc0e1cde0fda6384"
},
"downloads": -1,
"filename": "nyoka-4.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "71862331f1f5dc5c21b8e414a1aeb3f1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 316837,
"upload_time": "2019-09-12T08:24:26",
"url": "https://files.pythonhosted.org/packages/20/dd/ffb5b7631e5feb4cdf25fa7ac228434fe0955221f5d081139b9ee72d8293/nyoka-4.0.0-py3-none-any.whl"
}
],
"4.0.1": [
{
"comment_text": "",
"digests": {
"md5": "ccf0d8d5a04ee499961220475d12f157",
"sha256": "861ce8b6f731be6a94a2a86dddd32b6e32a36de706455786524ce4037c34e928"
},
"downloads": -1,
"filename": "nyoka-4.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ccf0d8d5a04ee499961220475d12f157",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 316834,
"upload_time": "2019-09-25T06:50:39",
"url": "https://files.pythonhosted.org/packages/ba/2d/3b4cf1711fb1f09c95198dc240614dbce1ed6c59e709d59c849b508d8066/nyoka-4.0.1-py3-none-any.whl"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "ccf0d8d5a04ee499961220475d12f157",
"sha256": "861ce8b6f731be6a94a2a86dddd32b6e32a36de706455786524ce4037c34e928"
},
"downloads": -1,
"filename": "nyoka-4.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ccf0d8d5a04ee499961220475d12f157",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 316834,
"upload_time": "2019-09-25T06:50:39",
"url": "https://files.pythonhosted.org/packages/ba/2d/3b4cf1711fb1f09c95198dc240614dbce1ed6c59e709d59c849b508d8066/nyoka-4.0.1-py3-none-any.whl"
}
]
}