swift-sim


Nameswift-sim JSON
Version 1.0.1 PyPI version JSON
download
home_page
SummaryA Python/Javascript Robot Simulator and Visualiser
upload_time2022-12-07 05:23:25
maintainer
docs_urlNone
author
requires_python>=3.7
licenseMIT License Copyright (c) 2020 jhavl Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords python robotics robotics-toolbox kinematics dynamics motion-planning trajectory-generation jacobian hessian control simulation robot-manipulator mobile-robot
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Swift

[![PyPI version](https://badge.fury.io/py/swift-sim.svg)](https://badge.fury.io/py/swift-sim)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/swift-sim)](https://img.shields.io/pypi/pyversions/swift-sim)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![QUT Centre for Robotics Open Source](https://github.com/qcr/qcr.github.io/raw/master/misc/badge.svg)](https://qcr.github.io)

Swift is a light-weight browser-based simulator built on top of the [Robotics Toolbox for Python](https://github.com/petercorke/robotics-toolbox-python). This simulator provides robotics-specific functionality for rapid prototyping of algorithms, research, and education. Built using Python and Javascript, Swift is cross-platform (Linux, MacOS, and Windows) while also leveraging the ubiquity and support of these languages.

Through the [Robotics Toolbox for Python](https://github.com/petercorke/robotics-toolbox-python), Swift can visualise over 30 supplied robot models: well-known contemporary robots from Franka-Emika, Kinova, Universal Robotics, Rethink as well as classical robots such as the Puma 560 and the Stanford arm. Swift is under development and will support mobile robots in the future.

Swift provides:

  * visualisation of mesh objects (Collada and STL files) and primitive shapes;
  * robot visualisation and simulation;
  * recording and saving a video of the simulation;
  * source code which can be read for learning and teaching;

## Installing
### Using pip

Swift is designed to be controlled through the [Robotics Toolbox for Python](https://github.com/petercorke/robotics-toolbox-python). By installing the toolbox through PyPI, swift is installed as a dependency

```shell script
pip3 install roboticstoolbox-python
```

Otherwise, Swift can be install by

```shell script
pip3 install swift-sim
```

### From GitHub

To install the latest version from GitHub

```shell script
git clone https://github.com/jhavl/swift.git
cd swift
pip3 install -e .
```

## Code Examples

### Robot Plot
We will load a model of the Franka-Emika Panda robot and plot it. We set the joint angles of the robot into the ready joint configuration qr.

```python
import roboticstoolbox as rp

panda = rp.models.Panda()
panda.plot(q=panda.qr)
```
<p align="center">
 <img src="https://github.com/jhavl/swift/blob/master/.github/figures/panda.png">
</p>

### Resolved-Rate Motion Control
We will load a model of the Franka-Emika Panda robot and make it travel towards a goal pose defined by the variable Tep.

```python
import roboticstoolbox as rtb
import spatialmath as sm
import numpy as np

# Make and instance of the Swift simulator and open it
env = rtb.backends.Swift()
env.launch()

# Make a panda model and set its joint angles to the ready joint configuration
panda = rtb.models.Panda()
panda.q = panda.qr

# Set a desired and effector pose an an offset from the current end-effector pose
Tep = panda.fkine(panda.q) * sm.SE3.Tx(0.2) * sm.SE3.Ty(0.2) * sm.SE3.Tz(0.45)

# Add the robot to the simulator
env.add(panda)

# Simulate the robot while it has not arrived at the goal
arrived = False
while not arrived:

    # Work out the required end-effector velocity to go towards the goal
    v, arrived = rtb.p_servo(panda.fkine(panda.q), Tep, 1)
    
    # Set the Panda's joint velocities
    panda.qd = np.linalg.pinv(panda.jacobe(panda.q)) @ v
    
    # Step the simulator by 50 milliseconds
    env.step(0.05)
```
<p align="center">
 <img src="./.github/figures/panda.gif">
</p>

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "swift-sim",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "python,robotics,robotics-toolbox,kinematics,dynamics,motion-planning,trajectory-generation,jacobian,hessian,control,simulation,robot-manipulator,mobile-robot",
    "author": "",
    "author_email": "Jesse Haviland <j.haviland@qut.edu.au>, Peter Corke <rvc@petercorke.com>",
    "download_url": "https://files.pythonhosted.org/packages/8b/62/3c0bd18647463d47e86c496fe2eced3610ce781ee0672954ddbd4b25138f/swift-sim-1.0.1.tar.gz",
    "platform": null,
    "description": "# Swift\n\n[![PyPI version](https://badge.fury.io/py/swift-sim.svg)](https://badge.fury.io/py/swift-sim)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/swift-sim)](https://img.shields.io/pypi/pyversions/swift-sim)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![QUT Centre for Robotics Open Source](https://github.com/qcr/qcr.github.io/raw/master/misc/badge.svg)](https://qcr.github.io)\n\nSwift is a light-weight browser-based simulator built on top of the [Robotics Toolbox for Python](https://github.com/petercorke/robotics-toolbox-python). This simulator provides robotics-specific functionality for rapid prototyping of algorithms, research, and education. Built using Python and Javascript, Swift is cross-platform (Linux, MacOS, and Windows) while also leveraging the ubiquity and support of these languages.\n\nThrough the [Robotics Toolbox for Python](https://github.com/petercorke/robotics-toolbox-python), Swift can visualise over 30 supplied robot models: well-known contemporary robots from Franka-Emika, Kinova, Universal Robotics, Rethink as well as classical robots such as the Puma 560 and the Stanford arm. Swift is under development and will support mobile robots in the future.\n\nSwift provides:\n\n  * visualisation of mesh objects (Collada and STL files) and primitive shapes;\n  * robot visualisation and simulation;\n  * recording and saving a video of the simulation;\n  * source code which can be read for learning and teaching;\n\n## Installing\n### Using pip\n\nSwift is designed to be controlled through the [Robotics Toolbox for Python](https://github.com/petercorke/robotics-toolbox-python). By installing the toolbox through PyPI, swift is installed as a dependency\n\n```shell script\npip3 install roboticstoolbox-python\n```\n\nOtherwise, Swift can be install by\n\n```shell script\npip3 install swift-sim\n```\n\n### From GitHub\n\nTo install the latest version from GitHub\n\n```shell script\ngit clone https://github.com/jhavl/swift.git\ncd swift\npip3 install -e .\n```\n\n## Code Examples\n\n### Robot Plot\nWe will load a model of the Franka-Emika Panda robot and plot it. We set the joint angles of the robot into the ready joint configuration qr.\n\n```python\nimport roboticstoolbox as rp\n\npanda = rp.models.Panda()\npanda.plot(q=panda.qr)\n```\n<p align=\"center\">\n <img src=\"https://github.com/jhavl/swift/blob/master/.github/figures/panda.png\">\n</p>\n\n### Resolved-Rate Motion Control\nWe will load a model of the Franka-Emika Panda robot and make it travel towards a goal pose defined by the variable Tep.\n\n```python\nimport roboticstoolbox as rtb\nimport spatialmath as sm\nimport numpy as np\n\n# Make and instance of the Swift simulator and open it\nenv = rtb.backends.Swift()\nenv.launch()\n\n# Make a panda model and set its joint angles to the ready joint configuration\npanda = rtb.models.Panda()\npanda.q = panda.qr\n\n# Set a desired and effector pose an an offset from the current end-effector pose\nTep = panda.fkine(panda.q) * sm.SE3.Tx(0.2) * sm.SE3.Ty(0.2) * sm.SE3.Tz(0.45)\n\n# Add the robot to the simulator\nenv.add(panda)\n\n# Simulate the robot while it has not arrived at the goal\narrived = False\nwhile not arrived:\n\n    # Work out the required end-effector velocity to go towards the goal\n    v, arrived = rtb.p_servo(panda.fkine(panda.q), Tep, 1)\n    \n    # Set the Panda's joint velocities\n    panda.qd = np.linalg.pinv(panda.jacobe(panda.q)) @ v\n    \n    # Step the simulator by 50 milliseconds\n    env.step(0.05)\n```\n<p align=\"center\">\n <img src=\"./.github/figures/panda.gif\">\n</p>\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2020 jhavl  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "A Python/Javascript Robot Simulator and Visualiser",
    "version": "1.0.1",
    "split_keywords": [
        "python",
        "robotics",
        "robotics-toolbox",
        "kinematics",
        "dynamics",
        "motion-planning",
        "trajectory-generation",
        "jacobian",
        "hessian",
        "control",
        "simulation",
        "robot-manipulator",
        "mobile-robot"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "44431ecd88b7f3bf5b6fed7bb411cf99",
                "sha256": "2cff728aa94667d4fa0fd839118ec0ed2c19af564ce15a8ece245b2646d602e4"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "44431ecd88b7f3bf5b6fed7bb411cf99",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 11508366,
            "upload_time": "2022-12-07T05:22:20",
            "upload_time_iso_8601": "2022-12-07T05:22:20.895406Z",
            "url": "https://files.pythonhosted.org/packages/47/f0/15dda15bff2421c0dea98d1b85857574d9b792ca3fa39b62dd6380bff298/swift_sim-1.0.1-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "a1c725e01d3e1255d7020bfc6c30fd78",
                "sha256": "74bc96a2a2b30e58559f42b3fec8e3eac87ae7818189ad13724608f789033ea6"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "a1c725e01d3e1255d7020bfc6c30fd78",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 11508026,
            "upload_time": "2022-12-07T05:22:23",
            "upload_time_iso_8601": "2022-12-07T05:22:23.345608Z",
            "url": "https://files.pythonhosted.org/packages/e1/4d/c023698ec0a30a7c0098316988278bc358017cbc62b0b6a8e0e541aff6da/swift_sim-1.0.1-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "101a71ba572cee8ebf5aebfdd8f9ba65",
                "sha256": "0cb6896f51684d4c94d47af10a12869ddd5620f3c7a2f03e96b9e503fc7d939f"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "101a71ba572cee8ebf5aebfdd8f9ba65",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 11941174,
            "upload_time": "2022-12-07T05:22:25",
            "upload_time_iso_8601": "2022-12-07T05:22:25.624675Z",
            "url": "https://files.pythonhosted.org/packages/27/94/d3f6704dac2e750e5b21318ea90310a68ca8db172686935c28bcadc92e92/swift_sim-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "e4e90fac405a80ea89958062a2c8f3ab",
                "sha256": "ed2f55398ca6a733064f6b46bd374621fab8b942f90d9af22bdade5eed7dd4ad"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e4e90fac405a80ea89958062a2c8f3ab",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 11936116,
            "upload_time": "2022-12-07T05:22:27",
            "upload_time_iso_8601": "2022-12-07T05:22:27.632782Z",
            "url": "https://files.pythonhosted.org/packages/36/13/2fe888c5ac95c4c700ee86934ab1dc30f4650ddd02ce4e070bd0a9141e1b/swift_sim-1.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "4642c1a330a5ab086c89f0cd57c3fce7",
                "sha256": "403f3baaf874aa35b3e4d265fda1a60f30a799425faf241cb77f3382b03d1678"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "4642c1a330a5ab086c89f0cd57c3fce7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 11519766,
            "upload_time": "2022-12-07T05:22:29",
            "upload_time_iso_8601": "2022-12-07T05:22:29.982613Z",
            "url": "https://files.pythonhosted.org/packages/c7/6c/8796df88b4e703d7a31b1fa2a7faffcf4976ea88ba7c90c28236a2e534bd/swift_sim-1.0.1-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "37f81faf259f11f3599a3bb39d20d9bd",
                "sha256": "f895874ba7b3314e556e15dbcc6168572bdd14ec5b968f4a1eb13cd2ae35712d"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "37f81faf259f11f3599a3bb39d20d9bd",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 11520159,
            "upload_time": "2022-12-07T05:22:32",
            "upload_time_iso_8601": "2022-12-07T05:22:32.257557Z",
            "url": "https://files.pythonhosted.org/packages/fe/43/d694791a2993d52025a5bf051968ced80684cfcdceb411d51a0fae3c143e/swift_sim-1.0.1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "fec4b9f8a2301e8bd1bcd64675eef65c",
                "sha256": "bc7125d2f7c1efbe7d6e53078b219ee12b827df0b46dee276463c56643097342"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fec4b9f8a2301e8bd1bcd64675eef65c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 11508366,
            "upload_time": "2022-12-07T05:22:34",
            "upload_time_iso_8601": "2022-12-07T05:22:34.540112Z",
            "url": "https://files.pythonhosted.org/packages/20/fa/7f06eb0a8410a451935e0a19905d49f37a9eb1bc29bc857d5aae86e926e8/swift_sim-1.0.1-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "982d2b2079373173007c38683afee8f5",
                "sha256": "3ee3db0434816bd825a2d139a3aa312dd437c0df0dcc620856604c1524a200ba"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "982d2b2079373173007c38683afee8f5",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 11508028,
            "upload_time": "2022-12-07T05:22:36",
            "upload_time_iso_8601": "2022-12-07T05:22:36.925665Z",
            "url": "https://files.pythonhosted.org/packages/b6/52/a2efeacae28691c2a32bc01c0907bbd8abc93b1cf2861d2e850e6491e540/swift_sim-1.0.1-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "ca67a76594acac8fa40e6fa15bc41f11",
                "sha256": "580452707f423960c6baf02971e729bb4713f26bad5baaac2ba23385ded7a23d"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "ca67a76594acac8fa40e6fa15bc41f11",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 11941278,
            "upload_time": "2022-12-07T05:22:39",
            "upload_time_iso_8601": "2022-12-07T05:22:39.777338Z",
            "url": "https://files.pythonhosted.org/packages/f8/b5/ce4116a2964e69f44c9ca201a2dbbd6105a9f66bd0b7bc55e9f78188e75d/swift_sim-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "7ac11ae07044264761e4bb29c85c688a",
                "sha256": "6c9a5d112fa90ab8f175345ac0552fe87db48b3dc54d4ec02248134756094b76"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7ac11ae07044264761e4bb29c85c688a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 11936375,
            "upload_time": "2022-12-07T05:22:41",
            "upload_time_iso_8601": "2022-12-07T05:22:41.822964Z",
            "url": "https://files.pythonhosted.org/packages/36/72/29f0cf28af5cbd1302ce7e52460939d03bee54f757ff91cc4404c03a1000/swift_sim-1.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "f004c8128988a5f3fac430e41e4ae7e9",
                "sha256": "a482a39fbca9f31c003203a8c9496cf9cec64d0436edd8cf7bded62f7446c25b"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "f004c8128988a5f3fac430e41e4ae7e9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 11519765,
            "upload_time": "2022-12-07T05:22:44",
            "upload_time_iso_8601": "2022-12-07T05:22:44.081825Z",
            "url": "https://files.pythonhosted.org/packages/da/4c/416c74e2dd95ac04fc7e87d3af6c3f3784f4e9779874aa83658fda812a06/swift_sim-1.0.1-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "4f18cac69c95cb71154f98ec736e5e41",
                "sha256": "88905d3c3307e5b866b3054e1248f041ce3b7ce82fdce24ced683ca46e601713"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "4f18cac69c95cb71154f98ec736e5e41",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 11520158,
            "upload_time": "2022-12-07T05:22:46",
            "upload_time_iso_8601": "2022-12-07T05:22:46.654467Z",
            "url": "https://files.pythonhosted.org/packages/91/7b/f8696a4f889b5470b5bac2213f83505704df8a4b03a99629dabc32947f4b/swift_sim-1.0.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "863119fc28e62e31fc3f21aba6d843d5",
                "sha256": "74ac3b4c8eac7bbe9cca5ad8ee2fccc73f84559f4d64c04199dc322391ce4f9f"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp37-cp37m-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "863119fc28e62e31fc3f21aba6d843d5",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 11508302,
            "upload_time": "2022-12-07T05:22:48",
            "upload_time_iso_8601": "2022-12-07T05:22:48.770789Z",
            "url": "https://files.pythonhosted.org/packages/25/3b/936c9eac5898b4f2b14d9640001d4fe4f3c9dfa59fb531ba2dd9228510eb/swift_sim-1.0.1-cp37-cp37m-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "6423cc3796404df5e13305a9549fed79",
                "sha256": "66fb7dcff41a6626bfe20c231353222c1006f02edcd8fbe0b796b6a2a1955c42"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "6423cc3796404df5e13305a9549fed79",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 11940560,
            "upload_time": "2022-12-07T05:22:50",
            "upload_time_iso_8601": "2022-12-07T05:22:50.628355Z",
            "url": "https://files.pythonhosted.org/packages/b1/ce/cb262776625c7f3315406bebd7e9a0632d7aab048734bc1d4878e9c24b25/swift_sim-1.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "4f0f9a9cb4fe243ad7ff14439fb2861e",
                "sha256": "9710ba8472e798dec933bc75052ccbfbad1c4c46b586e9ef559f5aaf2b9cce51"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4f0f9a9cb4fe243ad7ff14439fb2861e",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 11935426,
            "upload_time": "2022-12-07T05:22:52",
            "upload_time_iso_8601": "2022-12-07T05:22:52.926889Z",
            "url": "https://files.pythonhosted.org/packages/8a/41/19ed81a5f41ca87937289d8e8ba179feca64aeb2c2a168f3f7b4e097dd5f/swift_sim-1.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "da38c4e81c8a94e51f780fc9282443f8",
                "sha256": "1dd2e4b4346aafda35e18d30d6ed7969a2a773115a60643fb49cd253a6bb0b3f"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp37-cp37m-win32.whl",
            "has_sig": false,
            "md5_digest": "da38c4e81c8a94e51f780fc9282443f8",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 11519735,
            "upload_time": "2022-12-07T05:22:54",
            "upload_time_iso_8601": "2022-12-07T05:22:54.783299Z",
            "url": "https://files.pythonhosted.org/packages/23/f7/61821be0deb1a65ef8ce162adc8b8e3c8878efbe27a03740e848bd658600/swift_sim-1.0.1-cp37-cp37m-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "827cbbd352836ed0ec6de97267fbe16e",
                "sha256": "debbac1d7c87987ceca072422a2c9f08bcda63ae070fa7bec4fb24d8f11f9109"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp37-cp37m-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "827cbbd352836ed0ec6de97267fbe16e",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 11520128,
            "upload_time": "2022-12-07T05:22:56",
            "upload_time_iso_8601": "2022-12-07T05:22:56.679789Z",
            "url": "https://files.pythonhosted.org/packages/c1/ac/bc39d163117a5ad414be979b3229bb94ce27020c5036b92e9e437929113e/swift_sim-1.0.1-cp37-cp37m-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "f12a1e7a00cf3ef0031cd678a0272b13",
                "sha256": "2e25b139be4e00628554efee0fc8bd463c93b84607e76656c91d28968ea19d19"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f12a1e7a00cf3ef0031cd678a0272b13",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 11508367,
            "upload_time": "2022-12-07T05:22:59",
            "upload_time_iso_8601": "2022-12-07T05:22:59.031135Z",
            "url": "https://files.pythonhosted.org/packages/ab/a2/fc13c0abc853272a1566b3bd0e3b2d1101519a6492ca57eb0ebb2b8d7c1a/swift_sim-1.0.1-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "a12049d41d893fd1b9cf69e4922de870",
                "sha256": "bbb36e50b90e6309f7d624be9d0c2970429b3c875d4cf1413189f8038a9dfab0"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "a12049d41d893fd1b9cf69e4922de870",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 11508016,
            "upload_time": "2022-12-07T05:23:01",
            "upload_time_iso_8601": "2022-12-07T05:23:01.516368Z",
            "url": "https://files.pythonhosted.org/packages/fd/14/c7897f44b87a78123b4bf07cf94bd9e7f704f7343d5876286e5a9d875d2d/swift_sim-1.0.1-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "c68e182b5a509b74babdd0f983e440d1",
                "sha256": "a4bda220f735752da7129945f936086785900057a1d9a47084b07dec061673d2"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "c68e182b5a509b74babdd0f983e440d1",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 11940936,
            "upload_time": "2022-12-07T05:23:03",
            "upload_time_iso_8601": "2022-12-07T05:23:03.373062Z",
            "url": "https://files.pythonhosted.org/packages/06/70/f00f1c170b1cf7b8ba2c589349d1992d8b6b0a53101a79e973056a703da5/swift_sim-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "bf676542ff633a2f59cfbc0a25338275",
                "sha256": "988a4529e9a10593bed3e16d62794a18be0384ad28b16bac8c811e83266a43c5"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bf676542ff633a2f59cfbc0a25338275",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 11935809,
            "upload_time": "2022-12-07T05:23:05",
            "upload_time_iso_8601": "2022-12-07T05:23:05.239193Z",
            "url": "https://files.pythonhosted.org/packages/54/43/4e611b70cb0580ad133bf2255be7ee6b9911f4046ceaf8a99c2d54db833b/swift_sim-1.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "913919b15aac44a86c113865654cac13",
                "sha256": "b394e58a6436ca11c802cf45b3660724d0243c50dfe8fa4a4db1023d0219f29b"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp38-cp38-win32.whl",
            "has_sig": false,
            "md5_digest": "913919b15aac44a86c113865654cac13",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 11519775,
            "upload_time": "2022-12-07T05:23:07",
            "upload_time_iso_8601": "2022-12-07T05:23:07.453698Z",
            "url": "https://files.pythonhosted.org/packages/b7/98/9d1fb4c78c6522f61f60ffcca026c149f4e1d6be895cf8a32418a720d618/swift_sim-1.0.1-cp38-cp38-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "fe10b3865d4bb61acfa6de3390dd5a52",
                "sha256": "917c79d2426dbde428bb8e53f7bfa1f9e12aecb6211b5c09d4bf92af70044e63"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "fe10b3865d4bb61acfa6de3390dd5a52",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 11520160,
            "upload_time": "2022-12-07T05:23:10",
            "upload_time_iso_8601": "2022-12-07T05:23:10.032377Z",
            "url": "https://files.pythonhosted.org/packages/64/ba/d5120c490b6d29196f1a1ebe4f7d2ef461475f4fa856eef85f52e4c383c6/swift_sim-1.0.1-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "3b5e10a9419e80b92b6ce1352e86d90c",
                "sha256": "79b4ecf7247ccd39216b6c29f09731772402cf159bb1ba98196152cb62d9d13c"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3b5e10a9419e80b92b6ce1352e86d90c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 11508363,
            "upload_time": "2022-12-07T05:23:12",
            "upload_time_iso_8601": "2022-12-07T05:23:12.143252Z",
            "url": "https://files.pythonhosted.org/packages/2b/04/01b4dcb2ea7008376b9de3a95d27278ae3c3593054fc0583556ca9ed9307/swift_sim-1.0.1-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "5920f6a36ffa021639540a5e26856455",
                "sha256": "1e673d4066266bb0bdd88820389461a237f5bc76b53077eea5b5d701f0ca8f60"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5920f6a36ffa021639540a5e26856455",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 11508018,
            "upload_time": "2022-12-07T05:23:14",
            "upload_time_iso_8601": "2022-12-07T05:23:14.167918Z",
            "url": "https://files.pythonhosted.org/packages/8a/47/e85d95a7ff659dac9600468ef04a61956eed5864dc1cda9cb36bacba90e6/swift_sim-1.0.1-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "d8a2d74f5ad20a00e78dd1780de48372",
                "sha256": "21cf94d0d667e8b84a99ecd6feee4f13973233234a10572fb8d55c5ec673b2c3"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d8a2d74f5ad20a00e78dd1780de48372",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 11940869,
            "upload_time": "2022-12-07T05:23:16",
            "upload_time_iso_8601": "2022-12-07T05:23:16.052262Z",
            "url": "https://files.pythonhosted.org/packages/ae/a0/7020354f16da1ae002de36d76ff2a0e8135c20510e0c1b5435483876e0b3/swift_sim-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "c3e035e6af16894422a5c6a1bfb6c2ea",
                "sha256": "65b30d2adb37e7c16ffc22564aaf3b971572bdfe05c4416e050acf8d08901f81"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c3e035e6af16894422a5c6a1bfb6c2ea",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 11935797,
            "upload_time": "2022-12-07T05:23:18",
            "upload_time_iso_8601": "2022-12-07T05:23:18.023244Z",
            "url": "https://files.pythonhosted.org/packages/aa/c4/41a0f4d4ba0e2ff1326866012a0de50ea5d88606769179c8cb2f225271eb/swift_sim-1.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "76aebad522dc9f532d2bc06230ce0230",
                "sha256": "2c25ad4722d85d923e96cd5f132be1bfa05d7366dce9481d14af0662aec5ba7b"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "76aebad522dc9f532d2bc06230ce0230",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 11519773,
            "upload_time": "2022-12-07T05:23:21",
            "upload_time_iso_8601": "2022-12-07T05:23:21.261563Z",
            "url": "https://files.pythonhosted.org/packages/09/62/2294b55b9ae5b18f2d4e5793aab4f40f4c6493d25c6dad5aab38a11238bc/swift_sim-1.0.1-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "ceddd98dae1a233b1c4a32d226fdc983",
                "sha256": "6de31d919e74b51932ae291f2111ddd6550d0ac75a376909934714c304ab4b2d"
            },
            "downloads": -1,
            "filename": "swift_sim-1.0.1-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ceddd98dae1a233b1c4a32d226fdc983",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 11520160,
            "upload_time": "2022-12-07T05:23:23",
            "upload_time_iso_8601": "2022-12-07T05:23:23.270543Z",
            "url": "https://files.pythonhosted.org/packages/96/08/638e93bef4f2236aab20fbb9a9e43a41c752d2dc1cf928db8ef7c3598e08/swift_sim-1.0.1-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "1bf38215b0b1901aaf386afcb90f9721",
                "sha256": "a08d147cec85a75064b9ff7f8fad4b69b0a218b78c9d049f985c66c872f61fa3"
            },
            "downloads": -1,
            "filename": "swift-sim-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "1bf38215b0b1901aaf386afcb90f9721",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 11165407,
            "upload_time": "2022-12-07T05:23:25",
            "upload_time_iso_8601": "2022-12-07T05:23:25.991980Z",
            "url": "https://files.pythonhosted.org/packages/8b/62/3c0bd18647463d47e86c496fe2eced3610ce781ee0672954ddbd4b25138f/swift-sim-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-12-07 05:23:25",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "swift-sim"
}
        
Elapsed time: 0.03873s