{ "info": { "author": "Benjamin Lee and Alex Mijalis", "author_email": "benjamindlee@me.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Healthcare Industry", "Intended Audience :: Manufacturing", "Intended Audience :: Science/Research", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Chemistry" ], "description": "

\n\n
\nMechWolf\n

\n\n
\n\"Python\n\"Gitter\n\"DOI\"\n\"GPLv3\n\"CI\n\"Netlify\"/\n\n\n
\n
\n\nMechWolf is a Python framework for automating continuous flow processes.\nIt was developed as a collaboration between computer scientists, chemists, and complete novices to be used by anyone wanting to do better, faster, more reproducible flow-based science.\nFeatures include:\n\n- Natural language description, analysis, and visualization of continuous flow networks\n- Automated execution of protocols\n- Full user extensibility\n- Smart default settings, designed by scientists for scientists\n- Extensive checking to prevent potentially costly and dangerous errors before runtime\n- Natural language parsing of times and quantities\n- Thorough documentation and tutorials\n\n## Installation\n\nIt's as easy as:\n\n```bash\n$ pip install mechwolf\n```\n\nOr, to get the latest (but not necessarily stable) development branch:\n\n```bash\n$ pip install git+https://github.com/MechWolf/MechWolf.git\n```\n\n## What can MechWolf do?\n\nA lot.\nLet's say you're trying to automate the production of [acetaminophen](https://en.wikipedia.org/wiki/Paracetamol), a popular pain reliever and fever reducer.\nThe reaction involves combining two chemicals, 4-aminophenol and acetic anhydride.\nThe basic level of organization in MechWolf are individual components, such as the vessels and pumps.\n\nFirst, we define our components and create an **`Apparatus`** object to hold them:\n\n```python\nimport mechwolf as mw\n\n# define the vessels\naminophenol = mw.Vessel(\"15 mL 4-aminophenol\")\nacetic_anhydride = mw.Vessel(\"15 mL acetic anhydride\")\nacetaminophen = mw.Vessel(\"acetaminophen\")\n\n# define the pumps\npump_1 = mw.Pump()\npump_2 = mw.Pump()\n\n# define the mixer\nmixer = mw.TMixer()\n\n# same tube specs for all tubes\ntube = mw.Tube(length=\"1 m\", ID=\"1/16 in\", OD=\"2/16 in\", material=\"PVC\")\n\n# create the Apparatus object\nA = mw.Apparatus()\n```\n\nNext, we define the connectivity of the **`Apparatus`** with **`add()`**. **`add()`** expects three arguments, `from_component`, `to_component`, and `tube` (in that order). First, we connect `aminophenol` to `pump_1` via `tube`:\n\n```python\nA.add(from_component=aminophenol, to_component=pump_1, tube=tube)\n```\n\nNote that the keyword arguments are optional:\n\n```python\nA.add(acetic_anhydride, pump_2, tube)\n```\n\nSince `from_component` is a list, both `pump_1` and `pump_2` will be connected to `mixer`.\n\n```python\nA.add([pump_1, pump_2], mixer, tube)\n```\n\nFinally, connect `mixer` to the output vessel, `acetaminophen`:\n\n```python\nA.add(mixer, acetaminophen, tube)\n```\n\nThen we define a **`Protocol`** and run it:\n\n```python\n# create the Protocol object\nP = mw.Protocol(A, name=\"acetaminophen synthesis\")\nP.add([pump_1, pump_2], duration=\"15 mins\", rate=\"1 mL/min\")\n\n# execute the Protocol\nP.execute()\n```\n\nThat's it! You can do this and a whole lot more with MechWolf.\nTo learn more, take a look at the [docs](example.com).\n\n## Documentation\n\n[Link will go here](example.com)\n\n## License\n\n[GPLv3](LICENSE) [(summary)](https://choosealicense.com/licenses/gpl-3.0/).\n\n## Citation\n\n```\nWill go here.\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/MechWolf/MechWolf", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "mechwolf", "package_url": "https://pypi.org/project/mechwolf/", "platform": "", "project_url": "https://pypi.org/project/mechwolf/", "project_urls": { "Homepage": "https://github.com/MechWolf/MechWolf" }, "release_url": "https://pypi.org/project/mechwolf/0.1.1/", "requires_dist": null, "requires_python": ">=3.7", "summary": "Continuous flow process description, analysis, and automation", "version": "0.1.1" }, "last_serial": 5875715, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "cdad319380fadfe73ea9dad5d6da0a6c", "sha256": "20f5e4c47a29191f51c75015ca30d22b42078a36c71d6b1579d9243efc073cd8" }, "downloads": -1, "filename": "mechwolf-0.0.1.tar.gz", "has_sig": false, "md5_digest": "cdad319380fadfe73ea9dad5d6da0a6c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1435, "upload_time": "2018-04-15T21:39:46", "url": "https://files.pythonhosted.org/packages/3c/10/4ac612fb8038971a8695dc01a71be05a233f009b2789fb35dfe2261cef8c/mechwolf-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "74589faff9cbc41e79acc1ba21516af8", "sha256": "96641d16c38ec8a5ce2cd3e9130bc79f4d0837cae14608555d8d0b597db1eac5" }, "downloads": -1, "filename": "mechwolf-0.1.0.tar.gz", "has_sig": false, "md5_digest": "74589faff9cbc41e79acc1ba21516af8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 35691, "upload_time": "2019-09-13T01:15:20", "url": "https://files.pythonhosted.org/packages/82/6f/5db9cb39ac364d862aadc5547902daefa6380c3bca83a130c6af0912b714/mechwolf-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "47861b15b9fc96c2f5db5c9f06a628b1", "sha256": "065f9d4b3e821cedf1e9dce5003f8cec56331306a4590f57985ba1f0326b1ee5" }, "downloads": -1, "filename": "mechwolf-0.1.1.tar.gz", "has_sig": false, "md5_digest": "47861b15b9fc96c2f5db5c9f06a628b1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 35567, "upload_time": "2019-09-23T19:36:16", "url": "https://files.pythonhosted.org/packages/9b/d7/04e1688fb51d09dc29868ab32f2f2a6d88f8ef3ce47978f1ff60ee15d04d/mechwolf-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "47861b15b9fc96c2f5db5c9f06a628b1", "sha256": "065f9d4b3e821cedf1e9dce5003f8cec56331306a4590f57985ba1f0326b1ee5" }, "downloads": -1, "filename": "mechwolf-0.1.1.tar.gz", "has_sig": false, "md5_digest": "47861b15b9fc96c2f5db5c9f06a628b1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 35567, "upload_time": "2019-09-23T19:36:16", "url": "https://files.pythonhosted.org/packages/9b/d7/04e1688fb51d09dc29868ab32f2f2a6d88f8ef3ce47978f1ff60ee15d04d/mechwolf-0.1.1.tar.gz" } ] }