{ "info": { "author": "Indranil Sinharoy", "author_email": "indranil_leo@yahoo.com", "bugtrack_url": null, "classifiers": [ "Environment :: Win32 (MS Windows)", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: Microsoft :: Windows :: Windows 7", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Scientific/Engineering" ], "description": ".. image:: https://raw.githubusercontent.com/pyzos/pyzos/master/Doc/images/pyzos_banner_small.png\n\nPython Zemax OpticStudio API \n----------------------------\n\nCurrent revision\n''''''''''''''''\n0.0.6 (Last significant update on 02/26/2016) \n\nPhilosophy / Design Goals\n'''''''''''''''''''''''''\n\nProblems\n~~~~~~~~\n\nThe ZOS-API is an excellent interface for OpticStudio. However, using the ZOS COM API in \nPython directly through PyWin32 is not conducive and feels very unpythonic for the following\nreasons: \n\n* the large set of *property* attributes of the ZOS objects are not introspectable, \n* several interface objects require appropriate type casting before use, and \n* the interface is quite complex (albeit flexible) requiring a significant amount of coding.\n* ZOS-API only works in standalone (headless) mode. This prevents one to interact with a \n running OpticStudio user-interface and observe changes made to the design instantly. \n\nSolutions\n~~~~~~~~~\n\nThe philosophy behind PyZOS is to make ZOS-API easier to use in Python by:\n\n1. enabling interactivity with a running OpticStudio user-interface (`see demo `__)\n2. providing better introspection of objects' properties and methods \n3. reducing complexity by\n * providing a set of custom helper-methods that accomplishes common tasks in single or fewest possible steps\n * providing a framework for easily adding custom methods that seamlessly couple with existing ZOS objects\n * managing appropriate type casting of ZOS objects so that we can concentrate on solving optical design problem\n4. do 1-3 without limiting or obscuring the ZOS-API in any way\n5. do 1-3 with as minimum coding as possible (i.e. do a lot by doing very little)\n\nThese *enhancements* to ZOS-API using PyZOS library are documented in this (work in progress) \n`Jupyter notebook `__. \n\n\nExample usage\n''''''''''''' \n.. code:: python\n\n import pyzos.zos as zos \n osys = zos.OpticalSystem(sync_ui=True) # enable interactivity with a running UI\n sdata = osys.pSystemData\n sdata.pAperture.pApertureValue = 40\n sdata.pFields.AddField(0, 2.0, 1.0)\n wave = zos.Const.WavelengthPreset_d_0p587\n sdata.pWavelengths.SelectWavelengthPreset(wave)\n ...\n osys.zPushLens(1) # copy lens from ZOS COM server to the visible UI app\n ...\n osys.zGetRefresh() # copy changes from the visible UI app to the ZOS COM server\n ...\n \nSee more example use of PyZOS used within Jupyter notebooks `here `__.\n\n\nInstall PyZOS from PyPI\n''''''''''''''''''''''''\n\nUse the following command from the command line to install PyZOS from PyPI:\n\n.. code:: python\n\n pip install pyzos\n\n\n\nInterested in contributing?\n'''''''''''''''''''''''''''\nYou can contribute in may ways:\n\n1. using the library and giving feedback, suggestions and reporting bugs \n2. adding custom functions you wrote for your project that others can use\n3. helping to write the unit-test, adding test cases\n4. letting others know about PyZOS (if you found it useful)\n\n\nDependencies\n''''''''''''\n\nThe core PyZOS library only depends on the standard Python Library. \n\n1. Python 3.3 and above / Python 2.7; 32/64 bit version\n2. `PyWin32 `__\n\nAll the dependencies can be installed by using the Anaconda Python distribution.\n\nLicense\n'''''''\n\nThe code is under the `MIT License `__.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pyzos/pyzos", "keywords": "zemax opticstudio extensions COM optics ZOS-API", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "PyZOS", "package_url": "https://pypi.org/project/PyZOS/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/PyZOS/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/pyzos/pyzos" }, "release_url": "https://pypi.org/project/PyZOS/0.0.60/", "requires_dist": null, "requires_python": null, "summary": "Python interface for Zemax OpticStudio COM API (ZOS-API)", "version": "0.0.60" }, "last_serial": 1980952, "releases": { "0.0.5": [ { "comment_text": "", "digests": { "md5": "4673e2d6290e1da230de27b5eb930ead", "sha256": "2de914e342a7daa456345802a009fa200c2d5b94bbb85ff45ebf9160c2ffde61" }, "downloads": -1, "filename": "PyZOS-0.0.5.zip", "has_sig": false, "md5_digest": "4673e2d6290e1da230de27b5eb930ead", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 233385, "upload_time": "2016-02-26T09:24:58", "url": "https://files.pythonhosted.org/packages/22/fe/7bf4156dc84235dd34f9f60180a54b6ea6560624c3cb010819cd843fbdb6/PyZOS-0.0.5.zip" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "0af18c1985f982292eaf2c445ffc1aae", "sha256": "b38d4c8657c916b5686eae14d806aa71d883610ffa361da298bbe156d01f728e" }, "downloads": -1, "filename": "PyZOS-0.0.6.zip", "has_sig": false, "md5_digest": "0af18c1985f982292eaf2c445ffc1aae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 268806, "upload_time": "2016-02-26T19:49:51", "url": "https://files.pythonhosted.org/packages/ba/75/2182a45267467dee29280988feea905f32cf66fb33d5bff0775646f32b7d/PyZOS-0.0.6.zip" } ], "0.0.60": [ { "comment_text": "", "digests": { "md5": "d89c64b7e894c167f7eef756cacdfa90", "sha256": "a628de992c658018ca6bdeb3774b48e9b39203faa16d63f9d3c6414edf2d715c" }, "downloads": -1, "filename": "PyZOS-0.0.60.zip", "has_sig": false, "md5_digest": "d89c64b7e894c167f7eef756cacdfa90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 268869, "upload_time": "2016-02-26T19:49:11", "url": "https://files.pythonhosted.org/packages/b7/ca/4a4d242efd21ce47aba55f40fe716929de35faec068a5880391e7d29a802/PyZOS-0.0.60.zip" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "fbba246b56f2318971634a8b2a8c104f", "sha256": "e8dc43760fea50c95e192dfe0e06ec7645ac65506961998d67c2bf107c76f163" }, "downloads": -1, "filename": "PyZOS-0.0.7.zip", "has_sig": false, "md5_digest": "fbba246b56f2318971634a8b2a8c104f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 268801, "upload_time": "2016-02-26T20:49:48", "url": "https://files.pythonhosted.org/packages/c8/c4/bde77ad1c56644b1db8ff853be866ef25c4f35b1a7af0971ee4a6f8a7f4a/PyZOS-0.0.7.zip" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "b6acc3dc43d70ebaaebd8813a89e6a43", "sha256": "956e04e6c8f73a5864ae102f7602ec1c1a11a4ea952e381deddbc63cee264cac" }, "downloads": -1, "filename": "PyZOS-0.0.8.zip", "has_sig": false, "md5_digest": "b6acc3dc43d70ebaaebd8813a89e6a43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 268798, "upload_time": "2016-02-26T20:54:57", "url": "https://files.pythonhosted.org/packages/dd/7d/a3bf7924444e99e7451d27eccdbd6d0dd3b77a3410466b2793972c1cbae9/PyZOS-0.0.8.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d89c64b7e894c167f7eef756cacdfa90", "sha256": "a628de992c658018ca6bdeb3774b48e9b39203faa16d63f9d3c6414edf2d715c" }, "downloads": -1, "filename": "PyZOS-0.0.60.zip", "has_sig": false, "md5_digest": "d89c64b7e894c167f7eef756cacdfa90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 268869, "upload_time": "2016-02-26T19:49:11", "url": "https://files.pythonhosted.org/packages/b7/ca/4a4d242efd21ce47aba55f40fe716929de35faec068a5880391e7d29a802/PyZOS-0.0.60.zip" } ] }