{ "info": { "author": "Wannes Meert", "author_email": "wannes.meert@cs.kuleuven.be", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3" ], "description": "# Time Series Distances\n\nLibrary for time series distances (e.g. Dynamic Time Warping) used in the [DTAI Research Group](https://dtai.cs.kuleuven.be).\nThe library offers a pure Python implementation and a faster implementation in C.\n\nDocumentation: http://dtaidistance.readthedocs.io\n\nCiting this work: [![DOI](https://zenodo.org/badge/80764246.svg)](https://zenodo.org/badge/latestdoi/80764246)\n\n\n## Installation\n\nThis packages is available on PyPI (requires Python 3):\n\n $ pip install dtaidistance\n\nIn case the C based version is not available, see the documentation for alternative installation options.\nIn case OpenMP is not available on your system add the `--noopenmp` global option.\n\nThe source code is available at [github.com/wannesm/dtaidistance](https://github.com/wannesm/dtaidistance).\n\n\n## Usage\n\n### Dynamic Time Warping (DTW) Distance Measure\n\n from dtaidistance import dtw\n from dtaidistance import dtw_visualisation as dtwvis\n import numpy as np\n s1 = np.array([0., 0, 1, 2, 1, 0, 1, 0, 0, 2, 1, 0, 0])\n s2 = np.array([0., 1, 2, 3, 1, 0, 0, 0, 2, 1, 0, 0, 0])\n path = dtw.warping_path(s1, s2)\n dtwvis.plot_warping(s1, s2, path, filename=\"warp.png\")\n\n![Dynamic Time Warping (DTW) Example](https://people.cs.kuleuven.be/wannes.meert/dtw/dtw_example.png?v=4)\n\n\n#### DTW Distance Measure Between Two Series\n\nOnly the distance measure based on two sequences of numbers:\n\n from dtaidistance import dtw\n s1 = [0, 0, 1, 2, 1, 0, 1, 0, 0]\n s2 = [0, 1, 2, 0, 0, 0, 0, 0, 0]\n distance = dtw.distance(s1, s2)\n print(distance)\n\nThe fastest version (30-300 times) uses c directly but requires an array as input (with the double type):\n\n from dtaidistance import dtw\n import array\n s1 = array.array('d',[0, 0, 1, 2, 1, 0, 1, 0, 0])\n s2 = array.array('d',[0, 1, 2, 0, 0, 0, 0, 0, 0])\n d = dtw.distance_fast(s1, s2)\n\nOr you can use a numpy array (with dtype double or float):\n\n from dtaidistance import dtw\n import numpy as np\n s1 = np.array([0, 0, 1, 2, 1, 0, 1, 0, 0], dtype=np.double)\n s2 = np.array([0.0, 1, 2, 0, 0, 0, 0, 0, 0])\n d = dtw.distance_fast(s1, s2)\n\n\nCheck the `__doc__` for information about the available arguments:\n\n print(dtw.distance.__doc__)\n\nA number of options are foreseen to early stop some paths the dynamic programming algorithm is exploring or tune\nthe distance measure computation:\n\n- `window`: Only allow for shifts up to this amount away from the two diagonals.\n- `max_dist`: Stop if the returned distance measure will be larger than this value.\n- `max_step`: Do not allow steps larger than this value.\n- `max_length_diff`: Return infinity if difference in length of two series is larger.\n- `penalty`: Penalty to add if compression or expansion is applied (on top of the distance).\n- `psi`: Psi relaxation to ignore begin and/or end of sequences (for cylical sequencies) [2].\n\n\n#### DTW Distance Measure all warping paths\n\nIf, next to the distance, you also want the full matrix to see all possible warping paths:\n\n from dtaidistance import dtw\n s1 = [0, 0, 1, 2, 1, 0, 1, 0, 0]\n s2 = [0, 1, 2, 0, 0, 0, 0, 0, 0]\n distance, paths = dtw.warping_paths(s1, s2)\n print(distance)\n print(paths)\n\nThe matrix with all warping paths can be visualised as follows:\n\n from dtaidistance import dtw\n from dtaidistance import dtw_visualisation as dtwvis\n import numpy as np\n x = np.arange(0, 20, .5)\n s1 = np.sin(x)\n s2 = np.sin(x - 1)\n d, paths = dtw.warping_paths(s1, s2, window=25, psi=2)\n best_path = dtw.best_path(paths)\n dtwvis.plot_warpingpaths(s1, s2, paths, best_path)\n\n![DTW Example](https://people.cs.kuleuven.be/wannes.meert/dtw/warping_paths.png?v=2)\n\nNotice the `psi` parameter that relaxes the matching at the beginning and end.\nIn this example this results in a perfect match even though the sine waves are slightly shifted.\n\n\n#### DTW Distance Measures Between Set of Series\n\nTo compute the DTW distance measures between all sequences in a list of sequences, use the method `dtw.distance_matrix`.\nYou can set variables to use more or less c code (`use_c` and `use_nogil`) and parallel or serial execution\n(`parallel`).\n\nThe `distance_matrix` method expects a list of lists/arrays:\n\n from dtaidistance import dtw\n import numpy as np\n series = [\n np.array([0, 0, 1, 2, 1, 0, 1, 0, 0], dtype=np.double),\n np.array([0.0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0]),\n np.array([0.0, 0, 1, 2, 1, 0, 0, 0])]\n ds = dtw.distance_matrix_fast(series)\n\nor a matrix (in case all series have the same length):\n\n from dtaidistance import dtw\n import numpy as np\n series = np.matrix([\n [0.0, 0, 1, 2, 1, 0, 1, 0, 0],\n [0.0, 1, 2, 0, 0, 0, 0, 0, 0],\n [0.0, 0, 1, 2, 1, 0, 0, 0, 0]])\n ds = dtw.distance_matrix_fast(series)\n\n\n#### DTW Distance Measures Between Set of Series, limited to block\n\nYou can instruct the computation to only fill part of the distance measures matrix.\nFor example to distribute the computations over multiple nodes, or to only \ncompare source series to target series.\n\n from dtaidistance import dtw\n import numpy as np\n series = np.matrix([\n [0., 0, 1, 2, 1, 0, 1, 0, 0],\n [0., 1, 2, 0, 0, 0, 0, 0, 0],\n [1., 2, 0, 0, 0, 0, 0, 1, 1],\n [0., 0, 1, 2, 1, 0, 1, 0, 0],\n [0., 1, 2, 0, 0, 0, 0, 0, 0],\n [1., 2, 0, 0, 0, 0, 0, 1, 1]])\n ds = dtw.distance_matrix_fast(series, block=((1, 4), (3, 5)))\n\nThe output in this case will be:\n\n # 0 1 2 3 4 5\n [[ inf inf inf inf inf inf] # 0\n [ inf inf inf 1.4142 0.0000 inf] # 1\n [ inf inf inf 2.2360 1.7320 inf] # 2\n [ inf inf inf inf 1.4142 inf] # 3\n [ inf inf inf inf inf inf] # 4\n [ inf inf inf inf inf inf]] # 5\n\n\n## Clustering\n\nA distance matrix can be used for time series clustering. You can use existing methods such as\n`scipy.cluster.hierarchy.linkage` or one of two included clustering methods (the latter is a\nwrapper for the SciPy linkage method).\n\n from dtaidistance import clustering\n # Custom Hierarchical clustering\n model1 = clustering.Hierarchical(dtw.distance_matrix_fast, {})\n cluster_idx = model1.fit(series)\n # Augment Hierarchical object to keep track of the full tree\n model2 = clustering.HierarchicalTree(model1)\n cluster_idx = model2.fit(series)\n # SciPy linkage clustering\n model3 = clustering.LinkageTree(dtw.distance_matrix_fast, {})\n cluster_idx = model3.fit(series)\n\n\nFor models that keep track of the full clustering tree (`HierarchicalTree` or `LinkageTree`), the\ntree can be visualised:\n\n model.plot(\"myplot.png\")\n\n![Dynamic Time Warping (DTW) hierarchical clusteringt](https://people.cs.kuleuven.be/wannes.meert/dtw/hierarchy.png?v=2)\n\n\n## Dependencies\n\n- [Python 3](http://www.python.org)\n- [Numpy](http://www.numpy.org)\n\nOptional:\n\n- [Cython](http://cython.org)\n- [tqdm](https://github.com/tqdm/tqdm)\n- [matplotlib](https://matplotlib.org)\n\nDevelopment:\n\n- [pytest](http://doc.pytest.org)\n- [pytest-benchmark](http://pytest-benchmark.readthedocs.io)\n\n\n## Contact\n\n- [Wannes Meert](https://people.cs.kuleuven.be/wannes.meert) \n <[Wannes.Meert@cs.kuleuven.be](mailto:Wannes.Meert@cs.kuleuven.be)>\n\n\n## References\n\n1. T. K. Vintsyuk,\n Speech discrimination by dynamic programming.\n Kibernetika, 4:81\u201388, 1968.\n2. H. Sakoe and S. Chiba,\n Dynamic programming algorithm optimization for spoken word recognition.\n IEEE Transactions on Acoustics, Speech and Signal Processing, 26(1):43\u201349, 1978.\n3. C. S. Myers and L. R. Rabiner,\n A comparative study of several dynamic time-warping algorithms for connected-word recognition.\n The Bell System Technical Journal, 60(7):1389\u20131409, Sept 1981.\n4. Mueen, A and Keogh, E, \n [Extracting Optimal Performance from Dynamic Time Warping](http://www.cs.unm.edu/~mueen/DTW.pdf),\n Tutorial, KDD 2016\n5. D. F. Silva, G. E. A. P. A. Batista, and E. Keogh.\n [On the effect of endpoints on dynamic time warping](http://www-bcf.usc.edu/~liu32/milets16/paper/MiLeTS_2016_paper_7.pdf),\n In SIGKDD Workshop on Mining and Learning from Time Series, II. Association for Computing Machinery-ACM, 2016.\n6. C. Yanping, K. Eamonn, H. Bing, B. Nurjahan, B. Anthony, M. Abdullah and B. Gustavo.\n [The UCR Time Series Classification Archive](www.cs.ucr.edu/~eamonn/time_series_data/), 2015.\n\n\n## License\n\n DTAI distance code.\n\n Copyright 2016-2019 KU Leuven, DTAI Research Group\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\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://dtai.cs.kuleuven.be", "keywords": "dtw", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "dtaidistance", "package_url": "https://pypi.org/project/dtaidistance/", "platform": "", "project_url": "https://pypi.org/project/dtaidistance/", "project_urls": { "DTAIDistance documentation": "http://dtaidistance.readthedocs.io/en/latest/", "DTAIDistance source": "https://github.com/wannesm/dtaidistance", "Homepage": "https://dtai.cs.kuleuven.be" }, "release_url": "https://pypi.org/project/dtaidistance/1.2.3/", "requires_dist": [ "numpy", "cython", "matplotlib ; extra == 'vis'" ], "requires_python": ">=3.5", "summary": "Distance measures for time series", "version": "1.2.3" }, "last_serial": 5694562, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "aff3dc580ad7e8a2677edf47787c3235", "sha256": "4c69f9055d803c52f1136502881c8296431899aa516bb68f9b54e46c58ee5837" }, "downloads": -1, "filename": "dtaidistance-0.1.0-cp27-cp27m-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "aff3dc580ad7e8a2677edf47787c3235", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 101437, "upload_time": "2017-02-07T14:03:21", "url": "https://files.pythonhosted.org/packages/f5/4f/ba512033ad58c3059d9681a182be85ff12f7e8a96af554af7f760a3761c5/dtaidistance-0.1.0-cp27-cp27m-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "f1fd2cbc6bc62fae660869556b50da55", "sha256": "b00945dda86a62145df1a5201ba8741b5b455cd05262cbf0dae2c5843d1e267c" }, "downloads": -1, "filename": "dtaidistance-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f1fd2cbc6bc62fae660869556b50da55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 142471, "upload_time": "2017-02-07T14:03:30", "url": "https://files.pythonhosted.org/packages/9f/90/abee4186ba96fae49f60a0b376bf691c3d83f2c67a70624e31eebaa05688/dtaidistance-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "dd844c73e4a2cba3ba570e48aa7c12a5", "sha256": "1178354de244445bdf0ebb43accb8c572a73de4fda5f55d968c7755c2dc48df4" }, "downloads": -1, "filename": "dtaidistance-0.1.1-cp36-cp36m-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "dd844c73e4a2cba3ba570e48aa7c12a5", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 92658, "upload_time": "2017-02-07T14:03:27", "url": "https://files.pythonhosted.org/packages/a5/8d/76ab2001bac0829aaa2afa335a1443f91b7e80d2f2a49da416cd659aad2f/dtaidistance-0.1.1-cp36-cp36m-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "4c1fdf359ad0e708edf3e085d4767553", "sha256": "f7c6524c88b0117507e9a443cfa2bdb0bff2271ef1b48adb520caa3f1e36b20c" }, "downloads": -1, "filename": "dtaidistance-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4c1fdf359ad0e708edf3e085d4767553", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 142475, "upload_time": "2017-02-07T14:03:31", "url": "https://files.pythonhosted.org/packages/f9/56/b0a13e021a705ccbdedf2308e6c62437f0f3becac990e2d8284e0c0ddbf3/dtaidistance-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "afce852b2e7771f4cf334c9066a968a0", "sha256": "0606755ef322b9aa423784fd9e3a9a8b5014d1cd1324171190fa4e49d1d3e5d4" }, "downloads": -1, "filename": "dtaidistance-0.1.2-cp36-cp36m-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "afce852b2e7771f4cf334c9066a968a0", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 93532, "upload_time": "2017-02-07T22:42:29", "url": "https://files.pythonhosted.org/packages/f7/5c/26b3a09ec858e0c4163661af26e18150c3fd732c9a26a26f8fc9e2f67d6d/dtaidistance-0.1.2-cp36-cp36m-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "ff7db9fb46f5544327a319a170fe8dfc", "sha256": "ff85e1d028872e16623f2926d3be5a59e06d21303d31bdcb7d624f290b07a011" }, "downloads": -1, "filename": "dtaidistance-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ff7db9fb46f5544327a319a170fe8dfc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 143347, "upload_time": "2017-02-07T22:42:32", "url": "https://files.pythonhosted.org/packages/50/7d/a5dd1aa0f45b31ae8550e4851bafe158db6a0b5b5acc3b571ce9239e7d99/dtaidistance-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "77f756874a9236f053f64b8b16032137", "sha256": "f3d4bce6ec91ff74958577a3a6b66c044a9fd93ceb1f04394309a5e50f30638d" }, "downloads": -1, "filename": "dtaidistance-0.1.3-cp36-cp36m-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "77f756874a9236f053f64b8b16032137", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 94528, "upload_time": "2017-03-28T22:12:13", "url": "https://files.pythonhosted.org/packages/82/f2/f0b943bebbe409dd407e7b64f0f1167b99616aa2c8f657a1e03a704954c8/dtaidistance-0.1.3-cp36-cp36m-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "f5b49e067de5a7474c69a2e0049ddc9e", "sha256": "2444d7dd3a436abf9840bb694075f5485f9a18f8e97733a1204b7a73147d5e73" }, "downloads": -1, "filename": "dtaidistance-0.1.3.tar.gz", "has_sig": false, "md5_digest": "f5b49e067de5a7474c69a2e0049ddc9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 144398, "upload_time": "2017-03-28T22:12:16", "url": "https://files.pythonhosted.org/packages/b4/e3/8bdb5e19848433e24c746603431314557da32b8dc989aa05c389ca1e3ebd/dtaidistance-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "640a464707413af707788d5709399d8f", "sha256": "2f459b87cb3902a37e3702b0f0423aaa328dd939f83b04b18cd9032c4f8fd5a3" }, "downloads": -1, "filename": "dtaidistance-0.1.4-cp36-cp36m-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "640a464707413af707788d5709399d8f", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 92933, "upload_time": "2017-06-02T20:53:56", "url": "https://files.pythonhosted.org/packages/76/8e/cb938dab02e0bcafc7b567c806a87e764f7872f1662e2cc6a268af943157/dtaidistance-0.1.4-cp36-cp36m-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "f2acf448bf2c5727a88358cfd968fa00", "sha256": "613f18e83fb28dd2baffb35a7585b6adb48760cd79b3e5dbba691263407dc173" }, "downloads": -1, "filename": "dtaidistance-0.1.4.tar.gz", "has_sig": false, "md5_digest": "f2acf448bf2c5727a88358cfd968fa00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 139643, "upload_time": "2017-06-02T20:53:59", "url": "https://files.pythonhosted.org/packages/1a/07/d9dafa9b2e2fa0a9ef80a711adb7ce2b5d851ad58669e558746cc9da4b89/dtaidistance-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "e9a70dc40de7cb08ae31c3da47da4aaf", "sha256": "8f4c0c867f63cc890991e9dc56cfd578e0ee561201a77e8d60f0a46c60c9b7da" }, "downloads": -1, "filename": "dtaidistance-0.1.5-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "e9a70dc40de7cb08ae31c3da47da4aaf", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 107373, "upload_time": "2017-11-23T17:28:51", "url": "https://files.pythonhosted.org/packages/a9/55/434771a6a3fb688283977ed93f1efe33a208ecc57aca9f83ad60c2f553da/dtaidistance-0.1.5-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "04d46c14dddcfacc22c926f1b452d261", "sha256": "7d94ce54c61756aca62d3d42093d5e62a96059388c75571317d3bad2f0c1210e" }, "downloads": -1, "filename": "dtaidistance-0.1.5.tar.gz", "has_sig": false, "md5_digest": "04d46c14dddcfacc22c926f1b452d261", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 159355, "upload_time": "2017-11-23T17:28:53", "url": "https://files.pythonhosted.org/packages/91/6b/90d215e4254000907335b80a6d2699bea0554938015089971de28c2c4e16/dtaidistance-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "b896314972957a4abdf4a8e437310c9b", "sha256": "1b65a74cd764128faec83ed63ee0e2e6840699ab299a7ae1efcd712995b14298" }, "downloads": -1, "filename": "dtaidistance-0.1.6-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "b896314972957a4abdf4a8e437310c9b", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 116486, "upload_time": "2018-02-05T11:34:04", "url": "https://files.pythonhosted.org/packages/e3/03/e00d465e41b04ed8bf41e29315858b2367d2d9bcfcf445dffa84f8f994d4/dtaidistance-0.1.6-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "11a94f8049b6cd264d04a11a292c9e5d", "sha256": "612f78254fe61e7d2b9e3a3cc6fdd30b59cd2128d9a82be1ab052c0d206ebdac" }, "downloads": -1, "filename": "dtaidistance-0.1.6.tar.gz", "has_sig": false, "md5_digest": "11a94f8049b6cd264d04a11a292c9e5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 168086, "upload_time": "2018-02-05T11:34:07", "url": "https://files.pythonhosted.org/packages/1e/48/36d92fd78afc585b802cb44f5136b5afaaacde31f36efb83d59f24d9e14e/dtaidistance-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "01eb59458788fd902a78d9db666d1ddd", "sha256": "e6f17746d84bb7409e152aa7c3cb4ca1a764bc157addd63191d9f57382fccf40" }, "downloads": -1, "filename": "dtaidistance-0.1.7-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "01eb59458788fd902a78d9db666d1ddd", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 116550, "upload_time": "2018-02-24T22:55:13", "url": "https://files.pythonhosted.org/packages/17/b4/787d3d94308b27c164ee622956acf8cd049ab7790d98d76b564e3502e847/dtaidistance-0.1.7-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "a9005b125538e0948c45a29d0aa2afdc", "sha256": "fa995d6ad44a51a6753737933efc393b8dbf13d276ab8d2e2bb2a6be0f1af224" }, "downloads": -1, "filename": "dtaidistance-0.1.7.tar.gz", "has_sig": false, "md5_digest": "a9005b125538e0948c45a29d0aa2afdc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 168154, "upload_time": "2018-02-24T22:55:15", "url": "https://files.pythonhosted.org/packages/fe/34/b38164bee7e5d9c39fe1632ff3ed342c9a33f1a8a3665978884b713d217e/dtaidistance-0.1.7.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "5628175088101f659f479ac7fc65e624", "sha256": "0bbe1aca5005c803a9566928f7f9b631b2766ba2185bd11e4b659b561cfd7d88" }, "downloads": -1, "filename": "dtaidistance-1.0.0-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "5628175088101f659f479ac7fc65e624", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 121258, "upload_time": "2018-04-09T17:51:10", "url": "https://files.pythonhosted.org/packages/af/ed/5f4d128bff2bf6a716b4780dbb13ad0ac36b3e9e576043b74159719867ad/dtaidistance-1.0.0-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "c489bce1ebfd34d09a51be1b758810b2", "sha256": "fd995a376cce49db95a740d161cfa1188ff867734f2ceeb2a306da0f5c0c8257" }, "downloads": -1, "filename": "dtaidistance-1.0.0.tar.gz", "has_sig": false, "md5_digest": "c489bce1ebfd34d09a51be1b758810b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 172129, "upload_time": "2018-04-09T17:51:12", "url": "https://files.pythonhosted.org/packages/99/02/aca319c371493ea426fc1bf0e2232ea45c1ddc5fec2b316755f0c6d9a73b/dtaidistance-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "27bfa15ef08d86f7ba4fb71133e96d4a", "sha256": "710054966d21b27117b7167aa900a36b5cc9910fcc73bcf0e59bf156d781bfb1" }, "downloads": -1, "filename": "dtaidistance-1.0.1-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "27bfa15ef08d86f7ba4fb71133e96d4a", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 279361, "upload_time": "2018-04-09T20:35:46", "url": "https://files.pythonhosted.org/packages/f2/e6/2caba72e4fbc07a774886a3b4794fd3c9c98eafcecdb9dd9253ce52b8b16/dtaidistance-1.0.1-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "423976573f5154d9fc4582621caf679d", "sha256": "0ac93ab4848d148aeb13419886950270ac00cfd97cd0d06d0d71fd29e5b79813" }, "downloads": -1, "filename": "dtaidistance-1.0.1.tar.gz", "has_sig": false, "md5_digest": "423976573f5154d9fc4582621caf679d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 266926, "upload_time": "2018-04-09T20:35:49", "url": "https://files.pythonhosted.org/packages/f5/9d/d9489d6d0534b9d30ee4d05f9a55bc4ddf8b3ac39b3b4e4184b29f6aa766/dtaidistance-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "79334d377fec00e851d489fee9f3009f", "sha256": "1977045e000d7c522b8cc7ba6b2b3e9450113900993c2caec5bdd3ad9a90c65e" }, "downloads": -1, "filename": "dtaidistance-1.1.0-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "79334d377fec00e851d489fee9f3009f", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 290924, "upload_time": "2018-05-14T12:56:11", "url": "https://files.pythonhosted.org/packages/7d/7a/f5f33433c598cec600ad4e4f25d6d17cf045f5b039b5885c05c83a9e4a08/dtaidistance-1.1.0-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "110ed9c0ae7736508f617af63916739b", "sha256": "43a8e40d489dd747e3304514c09ccfc8ffb0e80f3bb7ca8a28b16d5aee4fe689" }, "downloads": -1, "filename": "dtaidistance-1.1.0.tar.gz", "has_sig": false, "md5_digest": "110ed9c0ae7736508f617af63916739b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 276665, "upload_time": "2018-05-14T12:56:13", "url": "https://files.pythonhosted.org/packages/1e/9e/02cb3205f842dcc08b62f22274de3b78e1774d44ff1f19f91767fb6b93ad/dtaidistance-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "d2d830f2aaf42303a525baaecb6f8f12", "sha256": "004a9b8101fdbadd0a177ad838925470f6f35b0cfbdcfeab53f14c55ba1fbe33" }, "downloads": -1, "filename": "dtaidistance-1.1.1-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "d2d830f2aaf42303a525baaecb6f8f12", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 293275, "upload_time": "2018-07-17T15:05:54", "url": "https://files.pythonhosted.org/packages/fa/17/ed9e7f3bc1a8fbd04107904d9976dc0943a0a4701cf123e32cf4dd34c097/dtaidistance-1.1.1-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "b11a6ffef67d2a8f287d27e66dca7978", "sha256": "152d69066f45080541aa8e06c9df17115a34d9ede8917df4a3b0890168c506b7" }, "downloads": -1, "filename": "dtaidistance-1.1.1.tar.gz", "has_sig": false, "md5_digest": "b11a6ffef67d2a8f287d27e66dca7978", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 279023, "upload_time": "2018-07-17T15:05:56", "url": "https://files.pythonhosted.org/packages/d3/59/02afc8131f860e016c580c7c063e12f6b3f92299664fce7969f96dc19f2f/dtaidistance-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "4919e7fd9ae1d3227958061d39ad015e", "sha256": "e11e52e495f59d9adbf399107afe879173ff504fe8cb669085ac64beddbcf30b" }, "downloads": -1, "filename": "dtaidistance-1.1.2-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "4919e7fd9ae1d3227958061d39ad015e", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 293566, "upload_time": "2018-07-18T10:00:52", "url": "https://files.pythonhosted.org/packages/c5/49/c376b351f45ea6b443e2e49d4f91820bf6b82bece88300c14bf9f40268a7/dtaidistance-1.1.2-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "8b59d0bcc41ea28a1075b10e4f11e0f7", "sha256": "97eaa0d0daad5d2056393abe2a8ec46b7b7cdb75ffccf85471c13515cfa1831f" }, "downloads": -1, "filename": "dtaidistance-1.1.2.tar.gz", "has_sig": false, "md5_digest": "8b59d0bcc41ea28a1075b10e4f11e0f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 279318, "upload_time": "2018-07-18T10:00:54", "url": "https://files.pythonhosted.org/packages/53/dd/fdc92d6f7caef65c41cd911e623852b05996102f577eb8f332cc2d33e344/dtaidistance-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "6bb10620c58398abc4d92419e4887036", "sha256": "b103aa257361676ee3f91165b1a889d3eaf68c262f36e81096d7fde07faf9d34" }, "downloads": -1, "filename": "dtaidistance-1.1.3-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "6bb10620c58398abc4d92419e4887036", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 294016, "upload_time": "2018-08-31T12:18:45", "url": "https://files.pythonhosted.org/packages/a5/0a/4e783640fc15c31738d8bfcc780652c1c6ed88c0c4a2c9c7c54c1580dc12/dtaidistance-1.1.3-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "c6bec591f6725f24651a0bf493372c4e", "sha256": "a1503310e55b80d114442c5c87b4a7ff1216a3fbe0cf3dd97e8338157725d175" }, "downloads": -1, "filename": "dtaidistance-1.1.3.tar.gz", "has_sig": false, "md5_digest": "c6bec591f6725f24651a0bf493372c4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 279808, "upload_time": "2018-08-31T12:18:47", "url": "https://files.pythonhosted.org/packages/19/9f/5b0780662486b1775ed8f70b63b73a2ec386f875a878c46efb6e2bc355ba/dtaidistance-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "2fc54942cdc459c43e06e4477c61f859", "sha256": "c65e9113db32397e5185fd2a66c9e5db7e594b550d13aebf21a2801b66f7de0f" }, "downloads": -1, "filename": "dtaidistance-1.1.4-cp37-cp37m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "2fc54942cdc459c43e06e4477c61f859", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 300699, "upload_time": "2018-10-30T13:11:57", "url": "https://files.pythonhosted.org/packages/a1/55/70087758afeb3f3d23d6f46bff7ace919da42b82f285721beaa98634a2d6/dtaidistance-1.1.4-cp37-cp37m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "4fbd8c70ebcf5fdedc9b87d7c9d75ec4", "sha256": "772612b1d61d991715edd4d6113b8ad53b71b7871f03a5b8de58aa3c44e7ff54" }, "downloads": -1, "filename": "dtaidistance-1.1.4.tar.gz", "has_sig": false, "md5_digest": "4fbd8c70ebcf5fdedc9b87d7c9d75ec4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 302482, "upload_time": "2018-10-30T13:11:59", "url": "https://files.pythonhosted.org/packages/75/ad/458d751a5d4842e3f7aa0ad6f79ee0219683d0b28ebc0d882f4106436a10/dtaidistance-1.1.4.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "bb52ecabb4f1ae2c34a7b421b05ae030", "sha256": "d7b3629565f3b4765584981f152c3e6be43ac3fab44fa44827637d24980405cf" }, "downloads": -1, "filename": "dtaidistance-1.2-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "bb52ecabb4f1ae2c34a7b421b05ae030", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 336357, "upload_time": "2019-04-10T15:31:24", "url": "https://files.pythonhosted.org/packages/ed/cf/6dc46243deb14d6d80b2eebff64d209258ecaa82374059a6f639e1203775/dtaidistance-1.2-cp37-cp37m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "5bd0a346381934f80c04fd267543cb08", "sha256": "e2e0d265a053deeb5db5584bb253e84729450806ed57814aa63bb2e714842e22" }, "downloads": -1, "filename": "dtaidistance-1.2.tar.gz", "has_sig": false, "md5_digest": "5bd0a346381934f80c04fd267543cb08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 318280, "upload_time": "2019-04-10T15:31:26", "url": "https://files.pythonhosted.org/packages/5f/37/27821bdedfc1f999008d7a4c330bc2ab4b795261760ce19daea4f7c8bd02/dtaidistance-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "fa0296a65a9720e4d99836b059c7f23e", "sha256": "48ed4c0250bf8230db9102d45c222bbcab820787a8e2b56b230abcedaae8df52" }, "downloads": -1, "filename": "dtaidistance-1.2.1-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "fa0296a65a9720e4d99836b059c7f23e", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": ">=3.5", "size": 337004, "upload_time": "2019-05-31T23:03:28", "url": "https://files.pythonhosted.org/packages/b4/66/8d2ef4de680be1bc6083ce9158a299dad916413c8303841f719933ba2112/dtaidistance-1.2.1-cp37-cp37m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "a2c8e9584ebf047b44ec6effc15f6675", "sha256": "7115860f46bf3df59f56fa5fe6e49cedd1ea831102118591c915e6bdefed2dfb" }, "downloads": -1, "filename": "dtaidistance-1.2.1.tar.gz", "has_sig": false, "md5_digest": "a2c8e9584ebf047b44ec6effc15f6675", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 318792, "upload_time": "2019-05-31T23:03:30", "url": "https://files.pythonhosted.org/packages/42/15/58f3b8f806b343eb669f1e5cb13975cd473da9841d04ffefa3c8589af6af/dtaidistance-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "e6b9fdbcf548f20338dc9ef1cd04a225", "sha256": "bcd7e462bdc618fad37643399a267baa0f1c284ddaa04f1e9a9a1610610b225c" }, "downloads": -1, "filename": "dtaidistance-1.2.2-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "e6b9fdbcf548f20338dc9ef1cd04a225", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": ">=3.5", "size": 337044, "upload_time": "2019-06-04T09:56:42", "url": "https://files.pythonhosted.org/packages/ea/9a/923b3e8dcac22af526d3e231fc2ba240fb422c5289c5284856bfdcc3a7e9/dtaidistance-1.2.2-cp37-cp37m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "2639941b154de9f9622a9bdf1fe90c79", "sha256": "1a7921c4c544f893a7f203aa172a8b6f26f6f8259ce86eaa6d296a2275b3d75e" }, "downloads": -1, "filename": "dtaidistance-1.2.2.tar.gz", "has_sig": false, "md5_digest": "2639941b154de9f9622a9bdf1fe90c79", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 318903, "upload_time": "2019-06-04T09:56:44", "url": "https://files.pythonhosted.org/packages/52/a0/12d9f925015cc25724a261f3e91489e6481c08d3a76d7d2b836dcde005de/dtaidistance-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "b2cf4393066a3d09a83ca487e6baa4a9", "sha256": "8d0e1ab0885dcbabf0d4c7835a936e140a722e7a008c2ec24247911348e9c679" }, "downloads": -1, "filename": "dtaidistance-1.2.3-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "b2cf4393066a3d09a83ca487e6baa4a9", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": ">=3.5", "size": 335977, "upload_time": "2019-08-18T13:09:09", "url": "https://files.pythonhosted.org/packages/15/48/a2900ff9829fe70b2cad18d77b4b75ccc2a6d55fc0742bf7072bcb805770/dtaidistance-1.2.3-cp37-cp37m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "a54ef18273f438928698f5ab18e637f3", "sha256": "3db7082c44d04d7a1b3ed01605911e32b3072a1a46669f409515b24976372d88" }, "downloads": -1, "filename": "dtaidistance-1.2.3.tar.gz", "has_sig": false, "md5_digest": "a54ef18273f438928698f5ab18e637f3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 318528, "upload_time": "2019-08-18T13:09:12", "url": "https://files.pythonhosted.org/packages/51/d3/9202738edfeb728face004debad59efe9690a44ac8d8494b96b9dc541359/dtaidistance-1.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b2cf4393066a3d09a83ca487e6baa4a9", "sha256": "8d0e1ab0885dcbabf0d4c7835a936e140a722e7a008c2ec24247911348e9c679" }, "downloads": -1, "filename": "dtaidistance-1.2.3-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "b2cf4393066a3d09a83ca487e6baa4a9", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": ">=3.5", "size": 335977, "upload_time": "2019-08-18T13:09:09", "url": "https://files.pythonhosted.org/packages/15/48/a2900ff9829fe70b2cad18d77b4b75ccc2a6d55fc0742bf7072bcb805770/dtaidistance-1.2.3-cp37-cp37m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "a54ef18273f438928698f5ab18e637f3", "sha256": "3db7082c44d04d7a1b3ed01605911e32b3072a1a46669f409515b24976372d88" }, "downloads": -1, "filename": "dtaidistance-1.2.3.tar.gz", "has_sig": false, "md5_digest": "a54ef18273f438928698f5ab18e637f3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 318528, "upload_time": "2019-08-18T13:09:12", "url": "https://files.pythonhosted.org/packages/51/d3/9202738edfeb728face004debad59efe9690a44ac8d8494b96b9dc541359/dtaidistance-1.2.3.tar.gz" } ] }