{ "info": { "author": "Josef Schneider", "author_email": "josef.schneider@optiver.com.au", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# switch-config-render\n\nswitch-config-render is a python module that can be used to create\nan SVG depiction of the internal configuration of an FPGA-based network\nswitch product.\n\nThe module renders:\n* Front panel interfaces in use, together with their optional alias and\ndescription\n* FPGA application interfaces with their optional alias and description\n* Applications configured on the FPGA devices and the ports that they\nare connected to\n* Cross-connect connections between the front panel and application\ninterfaces which can be colour-coded depending on the connection type(s)\nas defined in the interface definitions\n\nExample output:\n\n![](example_output.png)\n\nInstall by running `pip install switch-config-render`.\ndirectory.\n\n## Generating an SVG\n\nThe SVG can be generated by calling the `generate_system_svg` function:\n\n```python\ngenerate_system_svg('svg_file.svg', interfaces, connections, fpga_apps, app_shapes, onchip_connections)\n```\n\nWhere:\n* `svg_file.svg` is the name of the destination .svg file\n* `interfaces` is a dict specifying all the front panel and FPGA application\ninterfaces\n* `connections` is a dict of `key: value` pairs, where the `key` defines the\ndestination and the `value` the source of a connection\n* `fpga_apps` is a dict that specifies the applications that are\nconfigured on the given FPGA\n* `app_shapes` defines the vertices of the shapes to be used for the\napplications defined in `fpga_apps`\n* `onchip_connections` specifies internal connectivity within the FPGA and\nbetween FPGAs, between `ap` interfaces and FPGA applications\n\nRefer to the example code in `switch_config_render.__main__.py` for more\ninformation.\n\n## Example Application\n\nAn example application is provided and can be run by calling:\n\n```bash\npython -m switch_config_render\n```\n\nfrom the project root. The example runs `switch_config_render.__main__.py`\nwhich runs two examples: one that calls the high-level\n`generate_system_svg` function and one low-level example that manually\ncreates objects for fine-grained placement control. These examples\nproduce the `high_level_example.svg` and `low_level_example.svg` files\nrespectively.\n\n\n## License\n\nswitch-config-render is:\n\nCopyright \\[2018\\] \\[Optiver\\]\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "switch-config-render", "package_url": "https://pypi.org/project/switch-config-render/", "platform": "", "project_url": "https://pypi.org/project/switch-config-render/", "project_urls": null, "release_url": "https://pypi.org/project/switch-config-render/0.1.1/", "requires_dist": [ "svgwrite", "pytest ; extra == 'test'", "pytest-cov ; extra == 'test'" ], "requires_python": "", "summary": "A Python library for SVG network switch configuration rendering.", "version": "0.1.1" }, "last_serial": 4923953, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "8b075177ecbc23c3b2e17d0a183b784f", "sha256": "7e76b915dc234e7409ce24f5991b6b3b139fd8e48922756b7bab4e17bde697e8" }, "downloads": -1, "filename": "switch_config_render-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8b075177ecbc23c3b2e17d0a183b784f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15999, "upload_time": "2018-11-04T07:23:01", "url": "https://files.pythonhosted.org/packages/df/75/1b2ee90d52d67aa205a2073e03323761962c8da4233c1ca3f87bf7ad561e/switch_config_render-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0cb1f73ab610dfd48a94f30a0962cdf1", "sha256": "490f15102854ad2bd00f6115bae0df1a887d6fae9cb44608bfd3b763e1c77736" }, "downloads": -1, "filename": "switch-config-render-0.0.1.tar.gz", "has_sig": false, "md5_digest": "0cb1f73ab610dfd48a94f30a0962cdf1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10426, "upload_time": "2018-11-04T07:23:03", "url": "https://files.pythonhosted.org/packages/07/1c/209cd07e8dac0ae0f6cdbc425abfdb106924dbbfcfe17834f7ba27c7bdd8/switch-config-render-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "2bf2712d060f4b8d530bfbf796939651", "sha256": "ad2dbc9ce232e85df843446fa60d16b1f1688b9fdbe92fee464abd150e014d13" }, "downloads": -1, "filename": "switch_config_render-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2bf2712d060f4b8d530bfbf796939651", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17660, "upload_time": "2019-03-07T23:05:18", "url": "https://files.pythonhosted.org/packages/5b/18/3a249f243e7e52e624612ff3ba13db9d0cb3be505e67b3d7b856e3a800df/switch_config_render-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "862a54a83f6d944bc85f69e014302e91", "sha256": "cffbbdb077a1011f7a2c6bbfad5a21269f8532c63bd934ef1464e27b62dc2225" }, "downloads": -1, "filename": "switch-config-render-0.1.0.tar.gz", "has_sig": false, "md5_digest": "862a54a83f6d944bc85f69e014302e91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12001, "upload_time": "2019-03-07T23:05:20", "url": "https://files.pythonhosted.org/packages/e6/d3/f5622e0e34e53f8a1a53aa307f04e8250046f93a6349a972cd67eda70fae/switch-config-render-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "e1c5efdf39ea3ecac4409d3ff305edcb", "sha256": "045f72f80844d0c9577e44469f8b75ca09118b29f1aa6e9e8e411a58d1332138" }, "downloads": -1, "filename": "switch_config_render-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e1c5efdf39ea3ecac4409d3ff305edcb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17744, "upload_time": "2019-03-11T07:55:07", "url": "https://files.pythonhosted.org/packages/0c/61/42133ad8dcc4a117b5f0adcdc6f9141a227973ea6ab42ae58abd14837842/switch_config_render-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "920b3d892f521388fe4fd577c07eda20", "sha256": "31261a16a93838aae1d29a1e44ca40a61d6f05208a8cb963f3363690b9658848" }, "downloads": -1, "filename": "switch-config-render-0.1.1.tar.gz", "has_sig": false, "md5_digest": "920b3d892f521388fe4fd577c07eda20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12092, "upload_time": "2019-03-11T07:55:09", "url": "https://files.pythonhosted.org/packages/d5/e0/17c844cd94be3e57564ce4e0b856befff160efc7f13d29e345344741c153/switch-config-render-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e1c5efdf39ea3ecac4409d3ff305edcb", "sha256": "045f72f80844d0c9577e44469f8b75ca09118b29f1aa6e9e8e411a58d1332138" }, "downloads": -1, "filename": "switch_config_render-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e1c5efdf39ea3ecac4409d3ff305edcb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17744, "upload_time": "2019-03-11T07:55:07", "url": "https://files.pythonhosted.org/packages/0c/61/42133ad8dcc4a117b5f0adcdc6f9141a227973ea6ab42ae58abd14837842/switch_config_render-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "920b3d892f521388fe4fd577c07eda20", "sha256": "31261a16a93838aae1d29a1e44ca40a61d6f05208a8cb963f3363690b9658848" }, "downloads": -1, "filename": "switch-config-render-0.1.1.tar.gz", "has_sig": false, "md5_digest": "920b3d892f521388fe4fd577c07eda20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12092, "upload_time": "2019-03-11T07:55:09", "url": "https://files.pythonhosted.org/packages/d5/e0/17c844cd94be3e57564ce4e0b856befff160efc7f13d29e345344741c153/switch-config-render-0.1.1.tar.gz" } ] }