{ "info": { "author": "Fidji Berio and Yann Bayle", "author_email": "bayle.yann@live.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3" ], "description": "# Scyland3D: Processing 3D landmarks\n\n``Scyland3D`` is a Python tool for converting 3D raw landmark and semilandmark coordinates exported from landmark acquisition software (e.g. [Landmark Editor 3.6 from IDAV, UC Davis](http://www.idav.ucdavis.edu/research/EvoMorph)) to a csv format best suited for geometric morphometric analyses.\nProcessing schemes to mirror and reorder these points are provided to address further symmetry issues.\n\nBy:\n- Fidji Berio ([GitHub](https://github.com/fberio)) from [ISEM](http://www.isem.univ-montp2.fr/en/) and [IGFL](http://igfl.ens-lyon.fr/igfl/annuaire/berio-fidji),\n- Yann Bayle ([Website](http://yannbayle.fr/english/index.php), [GitHub](https://github.com/ybayle)) from [LaBRI](http://www.labri.fr/), [Univ. Bordeaux](https://www.u-bordeaux.fr/), [CNRS](http://www.cnrs.fr/), and [SCRIME](https://scrime.u-bordeaux.fr/).\n\n## Installation\n\nInstall and update using pip:\n\n`pip install -U Scyland3D`\n\nDependencies:\n\n- [Python](https://www.python.org/) 2 or 3. **Scyland3D** has been tested with Python 2.7.16 and 3.6.3 and **should** work with older versions of Python.\n- [Numpy](https://www.numpy.org/) >= 1.13.3. **Scyland3D** has been tested with Numpy 1.13.3 and 1.16.2 and **should** work with older versions of Numpy.\n\nIf you encounter an error with other versions, please [submit an issue](https://github.com/ybayle/Scyland3D/issues/new).\n\n## Use-case example\n\nTo quickly process landmarks files, you can give **Scyland3D** the path to the folder containing the `.pts` files (format defined on page 37 in http://www.idav.ucdavis.edu/research/projects/EvoMorph/supplement/LandmarkDoc_v3_b6.pdf), as shown in the example files provided:\n\n```\nfrom Scyland3D import Scyland3D\nScyland3D.pts2csv(\"example/\")\n```\n\nThis will create a file named `landmarks.csv` that you can use for statistical analyses in any language/software you want.\nThe example files provided come from a subset of our dataset for studying teeth of the small-spotted catshark *Scyliorhinus canicula*.\nWe provide 7 landmark and 31 semilandmark coordinates for 2 upper teeth and for 3 lower ones, stored in two folders that describe the specimens they belong to.\nA landmark is a point set up by hand as opposed to a semilandmark that is interpolated by the computer between two landmarks by following the curvature of the studied form.\n\nBelow, the image A is the representation of 7 landmarks for an input right shark tooth and the image B is the output produced by Scyland3D when using the options to mirror and reorder the landmarks.\nThis process can be used to process right teeth in order to superimpose and compare them with left teeth in order to compare analogous elements.\nMore information can be found on the [related article](https://github.com/openjournals/joss-papers/blob/joss.01153/joss.01153/10.21105.joss.01153.pdf).\n\n![Landmarks on a tooth](https://raw.githubusercontent.com/ybayle/Scyland3D/master/paper/figure1.png)\n\n## API documentation\n\nThe function `pts2csv()` is the core of **Scyland3D** and is also called when using the script from the terminal with the following arguments:\n\n- *indir* (required)\n - A string containing the input directory where the files are stored. File names can specify the feature modalities separated by `_` (e.g. speciesA_ageX_sex1.pts).\n - Default: Use the \"example/\" folder\n - Example: `Scyland3D.pts2csv(\"path/\")`\n - Command line: `python -m Scyland3D.Scyland3D -i \"path/\"`\n- *outdir* (optional)\n - A string containing the output directory where the files will be generated.\n - Default: Use the current folder.\n - Example: `Scyland3D.pts2csv(outdir=\"path/\")`\n - Command line: `python -m Scyland3D.Scyland3D -o \"path/\"`\n- *order* (optional)\n - A list of integer indicating the new order to apply to the landmarks. The order_factor argument must also be supplied.\n - Default: None\n - Example: `Scyland3D.pts2csv(order_factor=\"upper\", order=[36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 37])`\n - Command line: `python -m Scyland3D.Scyland3D -f \"upper\" -r \"36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 37\"`\n- *order_factor* (optional)\n - A string containing the keyword for items that need their landmarks and semilandmarks to be reordered. The order argument must also be supplied.\n - Default: None\n - Example: if the dataset contains lower and upper teeth where only the upper teeth need to be reordered, one can use: `Scyland3D.pts2csv(order_factor=\"upper\", order=[36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 37])`\n - Command line: `python -m Scyland3D.Scyland3D -f \"upper\" -o \"36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 37\"`. This is only valid if the keyword `upper` is present in the file name.\n- *feature_names* (optional)\n - A list of string containing the feature names.\n - Default: None\n - Example: `Scyland3D.pts2csv(feature_names=[\"identifier\", \"species\", \"location\", \"length\", \"sex\", \"stage\", \"jaw\", \"position\", \"generation\"])`\n - Command line: `python -m Scyland3D.Scyland3D -n \"identifier,species,location,length,sex,stage,jaw,position,generation\"`\n- *verbose* (optional)\n - A boolean indicating if information should be printed on the console by the process.\n - Default: True\n - Example: `Scyland3D.pts2csv(verbose=False)`\n - Command line: `python -m Scyland3D.Scyland3D -v False` for removing the display of information to the console.\n- *mirror_factor* (optional)\n - A string containing the keyword for items to be mirrored in the 3D space.\n - Default: None\n - Example: `Scyland3D.pts2csv(mirror_factor=\"upper\")`\n - Command line: `python -m Scyland3D.Scyland3D -m \"upper\"` will mirror in 3D the files containing the keyword `upper` before processing them with the remaining `lower` items as depicted in the figure below:\n\n## How To Contribute\n\nContributions are welcome!\nPlease refer to the [CONTRIBUTING.md](CONTRIBUTING.md) file.\n\n## License\n\n**Scyland3D** is licensed under the MIT License as described in the [license file](LICENSE). Please use the following citation:\n\n```\n@article{Berio2019,\n author = {Berio, Fidji and Bayle, Yann},\n title = {{Scyland3D: Processing 3D landmarks}},\n journal = {{The Journal of Open Source Software}},\n page = {1153--1155},\n volume = {4},\n issue = {33},\n doi = {10.21105/joss.01153},\n note = {Review pending}\n}\n```\n\n## Acknowledgements\n\nWe acknowledge the contribution of SFR Biosciences (UMS3444/CNRS, US8/Inserm, ENS de Lyon, UCBL) facilities: AniRA-ImmOs and Mathilde Bouchet for her help with X-ray microtomography.\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/ybayle/Scyland3D", "keywords": "", "license": "LICENSE", "maintainer": "", "maintainer_email": "", "name": "Scyland3D", "package_url": "https://pypi.org/project/Scyland3D/", "platform": "", "project_url": "https://pypi.org/project/Scyland3D/", "project_urls": { "Bug Reports": "https://github.com/ybayle/Scyland3D/issues", "Homepage": "https://github.com/ybayle/Scyland3D" }, "release_url": "https://pypi.org/project/Scyland3D/1.0.18/", "requires_dist": [ "numpy (>=1.13.3)" ], "requires_python": "", "summary": "A Python package for processing 3D landmarks", "version": "1.0.18" }, "last_serial": 6003090, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "4275322332a3430a30048efe23687c9c", "sha256": "b180389acdf008975a635f8149678cd8cb833caa3a1690e1ae3a31d89a3c1974" }, "downloads": -1, "filename": "Scyland3D-1.0.0.tar.gz", "has_sig": false, "md5_digest": "4275322332a3430a30048efe23687c9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5236, "upload_time": "2019-01-03T18:46:38", "url": "https://files.pythonhosted.org/packages/d9/0e/57d78a321737d84d5668c1eb0ac05f0cead8e494c1d59e9a14dbae5cb5e9/Scyland3D-1.0.0.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "15e74800ba8c06044a546c8cc3453438", "sha256": "86458485f490cd18e3d3aaecc28d840f1d24d49def32f107eedfdcb601db6511" }, "downloads": -1, "filename": "Scyland3D-1.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "15e74800ba8c06044a546c8cc3453438", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9316, "upload_time": "2019-06-26T18:19:40", "url": "https://files.pythonhosted.org/packages/a5/72/193f17a58ffd76d93f5c15821ae3476e905da0f2c79f5556937919efcaee/Scyland3D-1.0.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b50d342d7a22b91eb55159f8efc7eeb8", "sha256": "0243a24d99babaae51b1279bb9f2974544dd16bbb3e800c35aed67031b2ce59d" }, "downloads": -1, "filename": "Scyland3D-1.0.10.tar.gz", "has_sig": false, "md5_digest": "b50d342d7a22b91eb55159f8efc7eeb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20950, "upload_time": "2019-06-26T18:19:42", "url": "https://files.pythonhosted.org/packages/3e/37/ce2151bda9f2a024ed12a22d48d7e85aab52cc6847cb5e2331473ae32ebc/Scyland3D-1.0.10.tar.gz" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "1936daba2ba03236e5a00e98dc530f93", "sha256": "719e486e9b6724a4cc37f75a232b41d67e596f859233771c5abcf6ef78e054fe" }, "downloads": -1, "filename": "Scyland3D-1.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "1936daba2ba03236e5a00e98dc530f93", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9317, "upload_time": "2019-06-26T18:51:58", "url": "https://files.pythonhosted.org/packages/8a/dd/f707ad723bcaed812ed564867cf9b8ed9ddc37f76e45e9449c8860b6f380/Scyland3D-1.0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e66d95793946ddc7f78d6acbe4b15b1", "sha256": "538f32d26743c22d751e020a99a1c66852bfeeb6d067c82b685360adb664085c" }, "downloads": -1, "filename": "Scyland3D-1.0.11.tar.gz", "has_sig": false, "md5_digest": "0e66d95793946ddc7f78d6acbe4b15b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4171, "upload_time": "2019-06-26T18:51:59", "url": "https://files.pythonhosted.org/packages/52/63/37cae34a7b1858f9322024635a72dc55ec30595165f312ac652b167b97d8/Scyland3D-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "14f320e51cca97df57b0b8ba9ef94832", "sha256": "4b02048af89e963d340cc1b0cfed103632e2139beb6f312fa66751a54fb46a36" }, "downloads": -1, "filename": "Scyland3D-1.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "14f320e51cca97df57b0b8ba9ef94832", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29461, "upload_time": "2019-06-26T19:24:42", "url": "https://files.pythonhosted.org/packages/af/1e/532044fff5ce05b29ee074411b398182df9a40ac0254e2ebc10a5980eaec/Scyland3D-1.0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f8f9ad295a91c20101868ef23e17530", "sha256": "dd48db870ef9c461b90bae397d1dc25e8439b061d9648241eb70f86090884fe8" }, "downloads": -1, "filename": "Scyland3D-1.0.12.tar.gz", "has_sig": false, "md5_digest": "4f8f9ad295a91c20101868ef23e17530", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22311, "upload_time": "2019-06-26T19:24:44", "url": "https://files.pythonhosted.org/packages/b6/18/ec66d963e2fb6c9cc7edaa21c3936317726af25ea3d00936695867e1e4c5/Scyland3D-1.0.12.tar.gz" } ], "1.0.15": [ { "comment_text": "", "digests": { "md5": "9c70ff9496caa59883bb286311b8d0a8", "sha256": "ed51271b2311d763ab8d5d04716a51724643041524074fa1c9da3ea0e0fb4c0a" }, "downloads": -1, "filename": "Scyland3D-1.0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "9c70ff9496caa59883bb286311b8d0a8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25018, "upload_time": "2019-06-26T20:31:52", "url": "https://files.pythonhosted.org/packages/3a/e5/ae9d73cc4584e0f2cb5edfd87738227dd0814d78aa13544a42b2506ecea7/Scyland3D-1.0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e719beb90eab636b4d366e1aacea7e2", "sha256": "de3492aa9b62848f004fd9a62e5b48af4201fc0556704e06d29e03342d5ac487" }, "downloads": -1, "filename": "Scyland3D-1.0.15.tar.gz", "has_sig": false, "md5_digest": "2e719beb90eab636b4d366e1aacea7e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19467, "upload_time": "2019-06-26T20:31:57", "url": "https://files.pythonhosted.org/packages/c1/a0/055a588793bc4e88ebd739bd4744614c8436d0b34c01ee8d5fb2a678e832/Scyland3D-1.0.15.tar.gz" } ], "1.0.16": [ { "comment_text": "", "digests": { "md5": "e41576d58a70d02ee81b505f7ef44e9d", "sha256": "d7e5a5f65464dcc7cf1ad030484b4a3fe8ebe601b4644affd027fa7b6bbf0071" }, "downloads": -1, "filename": "Scyland3D-1.0.16-py3-none-any.whl", "has_sig": false, "md5_digest": "e41576d58a70d02ee81b505f7ef44e9d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25064, "upload_time": "2019-06-26T20:41:45", "url": "https://files.pythonhosted.org/packages/76/6b/c3f43b5ab0a0f435307894e29a329563c42f1b20f0c574f6f79622727cc2/Scyland3D-1.0.16-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4eac4c03edd18060b0106c64664fb8c7", "sha256": "6aa3738b526730f265f0814acf0a584ee8467236b5872e0361e111eafb6fe0c1" }, "downloads": -1, "filename": "Scyland3D-1.0.16.tar.gz", "has_sig": false, "md5_digest": "4eac4c03edd18060b0106c64664fb8c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19533, "upload_time": "2019-06-26T20:41:47", "url": "https://files.pythonhosted.org/packages/23/6f/9f3ed987c144ec65f6c20c21ae40e2141d86c523cb20c36d031db3cc87fd/Scyland3D-1.0.16.tar.gz" } ], "1.0.17": [ { "comment_text": "", "digests": { "md5": "a8649a766371a3a73dda47b49410d89d", "sha256": "8f12c440b3c843f7e66f0a273518f498f0bb94e651364f94c26ae1b94c0022a7" }, "downloads": -1, "filename": "Scyland3D-1.0.17-py3.6.egg", "has_sig": false, "md5_digest": "a8649a766371a3a73dda47b49410d89d", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 30414, "upload_time": "2019-10-19T11:40:22", "url": "https://files.pythonhosted.org/packages/a6/90/c358a49febf7b8a8577e19168d663b27bff259f56762375a2546a5013d86/Scyland3D-1.0.17-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "cc1406e202a28563f44b86c55866c52f", "sha256": "73f2019bd46655b9e30157a14fb350091293663d75f113a1271517ac5414712f" }, "downloads": -1, "filename": "Scyland3D-1.0.17-py3-none-any.whl", "has_sig": false, "md5_digest": "cc1406e202a28563f44b86c55866c52f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25516, "upload_time": "2019-10-19T11:39:14", "url": "https://files.pythonhosted.org/packages/58/43/fcc0afb0b2c6aeedad2d326815c2e9c33a8dbd8b00cc303edf35d658036a/Scyland3D-1.0.17-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "312c77b5ba40c173a431599e21d61610", "sha256": "599fbb210df0bb35acb71ff84e343302195e7b37c4b0dd806f919e651457fa3b" }, "downloads": -1, "filename": "Scyland3D-1.0.17.tar.gz", "has_sig": false, "md5_digest": "312c77b5ba40c173a431599e21d61610", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20019, "upload_time": "2019-10-19T11:40:24", "url": "https://files.pythonhosted.org/packages/26/fc/7c7cf5e93c0c6559f218fd7fc172e02783668be97104f703baee2bbc1429/Scyland3D-1.0.17.tar.gz" } ], "1.0.18": [ { "comment_text": "", "digests": { "md5": "43f86fe036c55eecb28fddca70c4a150", "sha256": "eacf0ee433039977686d6c18e81c2ef87ac6cdccbc9dd4f4c2972d987255401a" }, "downloads": -1, "filename": "Scyland3D-1.0.18-py3-none-any.whl", "has_sig": false, "md5_digest": "43f86fe036c55eecb28fddca70c4a150", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26864, "upload_time": "2019-10-20T14:45:37", "url": "https://files.pythonhosted.org/packages/cc/04/9578d3d9785f5c88b03828a271528c78629876184813237f6cbf0f85140b/Scyland3D-1.0.18-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77dd486a7c500e8e3e0c67d68b052a7e", "sha256": "51b59604c7759e33aca38976c637b4dc65bbbdd1775a5fef50de951042ae8648" }, "downloads": -1, "filename": "Scyland3D-1.0.18.tar.gz", "has_sig": false, "md5_digest": "77dd486a7c500e8e3e0c67d68b052a7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21447, "upload_time": "2019-10-20T14:45:39", "url": "https://files.pythonhosted.org/packages/3e/51/4c88017bb74333f6c3c03dc41dff185788bb5a827b281c3e7e8c6d0a2c9d/Scyland3D-1.0.18.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "1d1125cc1d5510cfd907d531d685bd59", "sha256": "b55f16f015a2c08251671040cb84fd940d0d562c5187b2bd4568bc87e0f1ee94" }, "downloads": -1, "filename": "Scyland3D-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "1d1125cc1d5510cfd907d531d685bd59", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9077, "upload_time": "2019-06-25T20:26:21", "url": "https://files.pythonhosted.org/packages/05/d7/6e4faa9a3eebfbc91a263482f99643c9ac3f89aa204a3bf11362318660e6/Scyland3D-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "254440096a5eba4a7165fb7010fbc54a", "sha256": "cd39b342ca44cd96b7cf0f8f456297fb960ae51022ce62eb4c07262bd28e805b" }, "downloads": -1, "filename": "Scyland3D-1.0.5.tar.gz", "has_sig": false, "md5_digest": "254440096a5eba4a7165fb7010fbc54a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20492, "upload_time": "2019-06-25T20:26:23", "url": "https://files.pythonhosted.org/packages/55/e5/aae068c4c8499c98fce57d526f4f9db4811401c2fed24426132390823115/Scyland3D-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "c47c6e4a2d498467cac9c27f7effe2e3", "sha256": "674a305af2d65217d8b9e6fd0a97660d9ffffebf9e8fc2694c4f194dfba87cb1" }, "downloads": -1, "filename": "Scyland3D-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "c47c6e4a2d498467cac9c27f7effe2e3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9084, "upload_time": "2019-06-25T20:37:24", "url": "https://files.pythonhosted.org/packages/35/bf/f15d5a867f82ce2b7ad819cd37e181293c7e7314ec45e7233af77c4328b5/Scyland3D-1.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37cafd835c432a498dad2e6ec7e4097d", "sha256": "66785c2d6c39e687f42225122f036a8424074be6b729439eb528b8a602a1a233" }, "downloads": -1, "filename": "Scyland3D-1.0.6.tar.gz", "has_sig": false, "md5_digest": "37cafd835c432a498dad2e6ec7e4097d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20497, "upload_time": "2019-06-25T20:37:26", "url": "https://files.pythonhosted.org/packages/42/39/376bd2b14ebe66ecb57475cdba3ecc3aa91c4a9dec06fae8b377f7583c44/Scyland3D-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "a54c9a77cc4d6cdb2147b49a22271f80", "sha256": "b80f1890364fd23ca93ecebaf29f46536668b7bdfcbc6e77851a4ad215aebd95" }, "downloads": -1, "filename": "Scyland3D-1.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "a54c9a77cc4d6cdb2147b49a22271f80", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9285, "upload_time": "2019-06-25T22:21:08", "url": "https://files.pythonhosted.org/packages/e7/8b/3372f58688d169cd5a5718b320b341ae645382d4954d9afbab42c8362344/Scyland3D-1.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d253dc3aa8c510c3654ae558ba1b9571", "sha256": "0e899b50bda587c80ff16dfbb07f810150c9e363ca757e7fcb396d5c4ba1f8e1" }, "downloads": -1, "filename": "Scyland3D-1.0.7.tar.gz", "has_sig": false, "md5_digest": "d253dc3aa8c510c3654ae558ba1b9571", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20861, "upload_time": "2019-06-25T22:21:10", "url": "https://files.pythonhosted.org/packages/a7/d8/1fe16a861d7706d8f94fa74aa1f0b2f1a83ca85473e6d4d95bb6dd84c470/Scyland3D-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "31bf145ed0445bbdb262c707f9c919eb", "sha256": "6c683129d86fc1cc8d09e89a5446b9add96f8deecf8d96bcb763a9e60ff7cf8d" }, "downloads": -1, "filename": "Scyland3D-1.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "31bf145ed0445bbdb262c707f9c919eb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9282, "upload_time": "2019-06-25T22:27:01", "url": "https://files.pythonhosted.org/packages/eb/09/1769c1df04b46718b8027d98dd8a1b9f05529b4662b998644b601519b226/Scyland3D-1.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e0a641c1f41dca5e6350818135e5f59", "sha256": "f5a13abf308ff0d9f79983d58aaec056f5c2335747adca34886a4ad6eb197a6f" }, "downloads": -1, "filename": "Scyland3D-1.0.8.tar.gz", "has_sig": false, "md5_digest": "5e0a641c1f41dca5e6350818135e5f59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20876, "upload_time": "2019-06-25T22:27:03", "url": "https://files.pythonhosted.org/packages/5d/24/e57af959fe2fd9ca8b7b8b9c72ab1cf914b070fd52c50a7cd430062d721e/Scyland3D-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "5027bd21e79b4fda8e4b125e008b4fa8", "sha256": "49e21ddb1931d6d114d2deba3e146155bc38677f32e7fd0984ae087c27364a11" }, "downloads": -1, "filename": "Scyland3D-1.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "5027bd21e79b4fda8e4b125e008b4fa8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9283, "upload_time": "2019-06-25T22:32:45", "url": "https://files.pythonhosted.org/packages/95/98/5feb01483da3178bc40f9ec142698ff5c00b219176094a76e362f47f80d5/Scyland3D-1.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f640808036d2540a67c6873de8aa89bc", "sha256": "66674d655762f806c95d8ba30ff35a1a1193a5d4ce7f1a34bdc2b7fd875a3303" }, "downloads": -1, "filename": "Scyland3D-1.0.9.tar.gz", "has_sig": false, "md5_digest": "f640808036d2540a67c6873de8aa89bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20906, "upload_time": "2019-06-25T22:32:47", "url": "https://files.pythonhosted.org/packages/23/e8/5d73008850712145fb1322256f728de5a746a168ad57546a360f8bb555fc/Scyland3D-1.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "43f86fe036c55eecb28fddca70c4a150", "sha256": "eacf0ee433039977686d6c18e81c2ef87ac6cdccbc9dd4f4c2972d987255401a" }, "downloads": -1, "filename": "Scyland3D-1.0.18-py3-none-any.whl", "has_sig": false, "md5_digest": "43f86fe036c55eecb28fddca70c4a150", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26864, "upload_time": "2019-10-20T14:45:37", "url": "https://files.pythonhosted.org/packages/cc/04/9578d3d9785f5c88b03828a271528c78629876184813237f6cbf0f85140b/Scyland3D-1.0.18-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77dd486a7c500e8e3e0c67d68b052a7e", "sha256": "51b59604c7759e33aca38976c637b4dc65bbbdd1775a5fef50de951042ae8648" }, "downloads": -1, "filename": "Scyland3D-1.0.18.tar.gz", "has_sig": false, "md5_digest": "77dd486a7c500e8e3e0c67d68b052a7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21447, "upload_time": "2019-10-20T14:45:39", "url": "https://files.pythonhosted.org/packages/3e/51/4c88017bb74333f6c3c03dc41dff185788bb5a827b281c3e7e8c6d0a2c9d/Scyland3D-1.0.18.tar.gz" } ] }