{ "info": { "author": "Lucas Heitzmann Gabrielli", "author_email": "heitzmann@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Manufacturing", "Intended Audience :: Science/Research", "License :: OSI Approved :: Boost Software License 1.0 (BSL-1.0)", "Operating System :: OS Independent", "Programming Language :: C", "Programming Language :: C++", "Programming Language :: Python", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)" ], "description": "# GDSPY README\n\n[![Boost Software License - Version 1.0](https://img.shields.io/github/license/heitzmann/gdspy.svg)](http://www.boost.org/LICENSE_1_0.txt)\n[![Documentation Status](https://readthedocs.org/projects/gdspy/badge/?version=stable)](https://gdspy.readthedocs.io/en/stable/?badge=stable)\n[![Travis-CI Status](https://travis-ci.org/heitzmann/gdspy.svg?branch=master)](https://travis-ci.org/heitzmann/gdspy)\n[![Appveyor Status](https://ci.appveyor.com/api/projects/status/pr49a6bhxvbqwocy?svg=true)](https://ci.appveyor.com/project/heitzmann/gdspy)\n[![Downloads](https://img.shields.io/github/downloads/heitzmann/gdspy/total.svg)](https://github.com/heitzmann/gdspy/releases)\n\nGdspy is a Python module for creating/importing/merging GDSII stream files.\nIt includes key libraries for creating complex CAD layouts:\n\n* Boolean operations on polygons (AND, OR, NOT, XOR) based on clipping algorithm\n* Polygon offset (inward and outward rescaling of polygons)\n* Efficient point-in-polygon solutions for large array sets\n\nGdspy also includes a simple layout viewer.\n\nTypical applications of gdspy are in the fields of electronic chip design, planar lightwave circuit design, and mechanical engineering.\n\n## Installation\n\n### Dependencies:\n\n* [Python](http://www.python.org/) (tested with versions 2.7, 3.5, 3.6, and 3.7)\n* [Numpy](http://numpy.scipy.org/)\n* [Python-future](http://python-future.org/) (only for Python 2)\n* C compiler (needed only if built from source)\n* Tkinter (optional: needed for the `LayoutViewer` GUI)\n* [Sphinx](http://sphinx-doc.org/) (optional: to build the documentation)\n\n### Linux / OS X\n\nOption 1: using [pip](https://docs.python.org/3/installing/):\n\n```sh\npip install gdspy\n```\n\nOption 2: download the source from [github](https://github.com/heitzmann/gdspy) and build/install with:\n\n```sh\npython setup.py install\n```\n\n### Windows\n\nThe preferred option is to install pre-compiled binaries from [here](https://github.com/heitzmann/gdspy/releases).\n\nInstallation via `pip` and building from source as above are also possible, but an appropriate [build environment](https://wiki.python.org/moin/WindowsCompilers) is required for compilation of the C extension modules.\n\n## Documentation\n\nThe complete documentation is available [here](http://gdspy.readthedocs.io/).\n\nThe source files can be found in the `docs` directory.\n\n## Support\n\nHelp support gdspy development by [donating via PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JD2EUE2WPPBQQ)\n\n## History of changes\n\n### Version 1.4 (May 18, 2019)\n* Revised [documentation](http://gdspy.readthedocs.io/).\n* New `FlexPath` and `RobustPath` classes: more efficient path generation when using the original GDSII path specification.\n* New `Curve` class: SVG-like polygon creation.\n* Added `PolygonSet.mirror` (thanks to Daan Waardenburg for the contribution).\n* Added `Path.bezier` to create paths based on B\u00e9zier curves.\n* Added `Path.smooth` to create paths based on smooth interpolating curves.\n* Added `get_gds_units` to get units used in a GDSII file without loading.\n* Added `get_binary_cells` to load only the binary GDSII representation of cell from a file.\n* Added argument `tolerance` to `Round`, `Path.arc`, `Path.turn`, and `Path.parametric` to automatically control the number of points in the final polygons.\n* Added argument `binary_cells` to GDSII writing functions to support `get_binary_cells`.\n* Added argument `rename_template` to `GdsLibrary.read_gds` for flexible cell renaming (thanks to @yoshi74ls181 for the contribution).\n* Changed return value of `slice` to avoid creating empty `PolygonSet`.\n* Added argument `timestamp` to GDSII writing functions.\n* Improved `Round` to support creating ellipses.\n* Added support for unlimited number of points per polygon.\n* Added support for BGNEXTN and ENDEXTN when reading a GDSII file.\n* Polygon creation warnings are now controlled by `poly_warnings`.\n* Incorrect `anchor` in `Label` now raises an error, instead of emitting a warning.\n* Added correct support for radius in `PolygonSet.fillet` on a per-vertex basis.\n* Speed improvements in GDSII file generation (thanks to @fbeutel for the contribution) and geometry creation.\n* Font rendering example using [matplotlib](https://matplotlib.org/) (thanks Hernan Pastoriza for the contribution).\n* Expanded test suite.\n\n### Version 1.3.2 (Mar 14, 2019)\n* Small fix for building on Mac OS X Mojave.\n\n### Version 1.3.1 (Jun 29, 2018)\n* `PolygonSet` becomes the base class for all polygons, in particular `Polygon` and `Rectangle`.\n* Added `Cell.remove_polygons` and `Cell.remove_labels` functions to allow filtering a cell contents based, for example, on each element's layer.\n* Added `PolygonSet.scale` utility method.\n* Added `PolygonSet.get_bounding_box` utility method.\n* Added argument `timestamp` to `Cell.to_gds`, `GdsLibrary.write_gds` and `GdsWriter`.\n* Added `unit` and `precision` arguments to `GdsLibrary` initialization and removed from its `write_gds` method.\n* Changed the meaning of argument `unit` in `GdsLibrary.read_gds`.\n* Improved `slice` to avoid errors when slicing in multiple positions at once.\n* Improved `PolygonSet.fracture` to reduce number of function calls.\n* Removed incorrect absolute flags for magnification and rotation in `CellReference` and `CellArray`.\n* Minor bug fixes.\n* Documentation fixes.\n* Removed deprecated classes and functions.\n\n### Version 1.2.1 (Dec 5, 2017)\n* `GdsLibrary` can be created directly from a GDSII file\n* Added return value to `GdsLibrary.read_gds`\n* Fixed return value of `GdsLibrary.add`\n\n### Version 1.2 (Oct 21, 2017)\n* Added new `gdsii_hash` function.\n* Added `precision` parameter to `_chop`, `Polygon.fracture`, `Polygon.fillet`, `PolygonSet.fracture`, `PolygonSet.fillet`, and `slice`.\n* Included labels in flatten operations (added `get_labels` to `Cell`, `CellReference`, and `CellArray`).\n* Fixed bug in the bounding box cache of reference copies.\n* Fixed bug in `_chop` that affected `Polygon.fracture`, `PolygonSet.fracture`, and `slice`.\n* Other minor bug fixes.\n\n### Version 1.1.2 (Mar 19, 2017)\n* Update clipper library to 6.4.2 to fix bugs introduced in the last update.\n* License change to Boost Software License v1.0.\n\n### Version 1.1.1 (Jan 27, 2017)\n* Patch to fix installation issue (missing README file in zip).\n\n### Version 1.1 (Jan 20, 2017)\n* Introduction of `GdsLibrary` to allow user to work with multiple library simultaneously.\n* Deprecated `GdsImport` in favor of `GdsLibrary`.\n* Renamed `gds_print` to `write_gds` and `GdsPrint` to `GdsWriter`.\n* Development changed to Python 3 (Python 2 supported via [python-future](http://python-future.org/)).\n* Added photonics example.\n* Added test suite.\n* Clipper library updated to last version.\n* Fixed `inside` function sometimes reversing the order of the output.\n* Fixed rounding error in `fast_boolean`.\n* Fixed argument `deep_copy` being inverted in `Cell.copy`.\n* Bug fixes introduced by numpy (thanks to Adam McCaughan for the contribution).\n\n### Version 1.0 (Sep 11, 2016)\n* Changed to \"new style\" classes (thanks to Adam McCaughan for the contribution).\n* Added\ta per-point radius specification for `Polygon.fillet` (thanks to Adam McCaughan for the contribution).\n* Added `inside` fucntion to perform point-in-polygon tests (thanks to @okianus for the contribution).\n* Moved from distutils to setuptools for better Windows support.\n\n### Version 0.9 (Jul 17, 2016)\n* Added option to join polygons before applying an `offset`.\n* Added a `translate` method to geometric entities (thanks John Bell for the commit).\n* Bug fixes.\n\n### Version 0.8.1 (May 6, 2016)\n* New `fast_boolean` function based on the [Clipper](http://www.angusj.com/delphi/clipper.php) library with much better performance than the old `boolean`.\n* Changed `offset` signature to also use the [Clipper](http://www.angusj.com/delphi/clipper.php) library (this change **breaks compatibility** with previous versions).\n* Bug fix for error when importing some labels from GDSII files.\n\n### Version 0.7.1 (June 26, 2015)\n* Rebased to GitHub.\n* Changed source structure and documentation.\n\n### Version 0.7 (June 12, 2015)\n* New feature: `offset` function.\n* New `GdsPrint` class for incremental GDSII creation (thanks to Jack Sankey for the contribution).\n\n### Version 0.6 (March 31, 2014)\n* Default number of points for `Round`, `Path.arc`, and `Path.turn` changed to resolution of 0.01 drawing units.\n* `Path.parametric` accepts callable `final_distance` and `final_width` for non-linear tapering.\n* Added argument `ends` to `PolyPath`.\n* Added (limited) support for PATHTYPE in `GdsImport`.\n* A warning is issued when a `Path` curve has width larger than twice its radius (self-intersecting polygon).\n* Added a random offset to the patterns in `LayoutViewer`.\n* `LayoutViewer` shows cell labels for referenced cells.\n* `get_polygons` returns (referenced) cell name if `depth` < 1 and `by_spec` is True.\n* Bug fix in `get_bounding_box` when empty cells are referenced.\n* Bug fixes in `GdsImport` and many speed improvements in bounding box calculations (thanks to Gene Hilton for the patch).\n\n### Version 0.5 (October 30, 2013) - NOT COMPATIBLE WITH PREVIOUS VERSIONS\n* Major `LayoutViewer` improvements (not backwards compatible).\n* The layer argument has been repositioned in the argument list in all functions (not backwards compatible). \n* Renamed argument `by_layer` to `by_spec` (not backwards compatible).\n* Error is raised for polygons with more vertices than possible in the GDSII format.\n* Removed the global state variable for default datatype.\n* Added `get_datatypes` to `Cell`.\n* Added argument `single_datatype` to `Cell.flatten`.\n* Removed `gds_image` and dropped the optional PIL dependency.\n\n### Version 0.4.1 (June 5, 2013)\n* Added argument `axis_offset` to `Path.segment` allowing creation of asymmetric tapers.\n* Added missing argument `x_reflection` to `Label`.\n* Created a global state variable to override the default datatype.\n* Bug fix in `CellArray.get_bounding_box` (thanks to George McLean for the fix)\n\n### Version 0.4 (October 25, 2012)\n* `Cell.get_bounding_box` returns `None` for empty cells.\n* Added a cache for bounding boxes for faster computation, especially for references.\n* Added support for text elements with `Label` class.\n* Improved the emission of warnings.\n* Added a tolerance parameter to `boolean`.\n* Added better print descriptions to classes.\n* Bug fixes in boolean involving results with multiple holes.\n\n### Version 0.3.1 (May 24, 2012)\n* Bug fix in the fracture method for `PolygonSet`.\n\n### Version 0.3a (May 03, 2012)\n* Bug fix in the fracture method for `Polygon` and `PolygonSet`.\n\n### Version 0.3 (April 25, 2012)\n* Support for Python 3.2 and 2.7\n* Further improvements to the `boolean` function via caching.\n* Added methods `get_bounding_box` and `get_layers` to `Cell`.\n* Added method `top_level` to `GdsImport`.\n* Added support for importing GDSII path elements.\n* Added an argument to control the verbosity of the import function.\n* Layer -1 (referenced cells) sent to the bottom of the layer list by default in `LayoutViewer`\n* The text and background of the layer list in `LayoutViewer` now reflect the colors of the outlines and canvas backgroung.\n* Changed default background color in `LayoutViewer`\n* Thanks to Gene Hilton for the contributions!\n\n### Version 0.2.9 (December 14, 2011)\n* Attribute `Cell.cell_list` changed to `Cell.cell_dict`.\n* Changed the signature of the operation in `boolean`.\n* Order of cells passed to `LayoutViewer` is now respected in the GUI.\n* Complete re-implementation of the boolean function as a C extension for improved performance.\n* Removed precision argument in `boolean`. It is fixed at 1e-13 for merging close points, otherwise machine precision is used.\n* `gds_image` now accepts cell names as input.\n* Added optional argument `depth` to `get_polygons`\n* Added option to convert layers and datatypes in imported GDSII cells.\n* Argument `exclude_layers` from `LayoutViewer` changed to `hidden_layers` and behavior changed accordingly. \n* Shift + Right-clicking on a layer the layer-list of `LayoutVIewer` hides/unhides all other layers.\n* New buttons to zoom in and out in `LayoutViewer`.\n* Referenced cells below a configurable depth are now represented by theirs bounding boxes in `LayoutViewer`.\n\n### Version 0.2.8 (June 21, 2011)\n* GDSII file import\n* GDSII output automatically include required referenced cells.\n* `gds_print` also accepts file name as input.\n* Outlines are visible by default in `LayoutViewer`.\n* Added background color option in `LayoutViewer`.\n* Right-clicking on the layer list hides/unhides the target layer in `LayoutViewer`.\n* `Cell.cell_list` is now a dictionary indexed by name, instead of a list.\n* Added option to exclude created cells from the global list of cells kept in `Cell.cell_list`.\n* `CellReference` and `CellArray` accept name of cells as input.\n* Submodules lost their own `__version__`.\n\n### Version 0.2.7 (April 2, 2011)\n* Bug fixed in the `boolean`, which affected the way polygons with more vertices then the maximum were fractured.\n* `gds_image` accepts an extra color argument for the image background.\n* Screenshots takes from `LayoutViewer` have the same background color as the viewer.\n* The functions `boolean` and `slice` now also accept `CellReference` and `CellArray` as input.\n* Added the method `fracture` to `Polygon` and `PolygonSet` to automatically slice polygons into parts with a predefined maximal number of vertices.\n* Added the method `fillet` to `Polygon` and `PolygonSet` to round corners of polygons.\n\n### Version 0.2.6 (February 28, 2011)\n* When saving a GDSII file, `ValueError` is raised if cell names are duplicated.\n* Save screenshot from `LayoutViewer`.\n* `gds_image` accepts cells, instead of lists.\n* Outlines supported by `gds_image`.\n* `LayoutViewer` stores bounding box information for all visited layers to save rendering time.\n\n### Version 0.2.5 (December 10, 2010)\n* Empty cells no longer break the LayoutViewer.\n* Removed the `gds_view` function, superseded by the LayoutViewer, along with all dependencies to matplotlib.\n* Fixed a bug in `boolean` which affected polygons with series of collinear vertices.\n* Added a function to `slice` polygons along straight lines parallel to an axis.\n\n### Version 0.2.4 (September 04, 2010)\n* Added shortcut to Extents in LayoutViewer: `Home` or `a` keys.\n* `PolygonSet` is the new base class for `Round`, which might bring some incompatibility issues with older scripts.\n* `Round` elements, `PolyPath`, `L1Path`, and `Path arc`, `turn` and `parametric` sections are now automatically fractured into pieces defined by a maximal number of points.\n* Default value for `max_points` in boolean changed to 199.\n* Removed the flag to disable the warning about polygons with more than 199 vertices. The warning is shown only for `Polygon` and `PolygonSet`.\n* Fixed a bug impeding parallel `parametric` paths to change their distance to each other.\n\n### Version 0.2.3 (August 09, 2010)\n* Added the `PolyPath` class to easily create paths with sharp corners.\n* Allow `None` as item in the colors parameter of `LayoutViewer` to make layers invisible.\n* Added color outline mode to `LayoutViewer` (change outline color with the shift key pressed)\n* Increased the scroll region of the `LayoutViewer` canvas\n* Added a fast scroll mode: control + drag 2nd mouse button\n* Created a new sample script\n\n### Version 0.2.2 (July 29, 2010)\n* Changed the cursor inside `LayoutViewer` to standard arrow.\n* Fixed bugs with the windows version of `LayoutViewer` (mouse wheel and ruler tool).\n\n### Version 0.2.1 (July 29, 2010)\n* Bug fix: `gds_image` displays an error message instead of crashing when `PIL` is not found.\n* Added class `LayoutViewer`, which uses Tkinter (included in all Python distributions) to display the GDSII layout with better controls then the `gds_view` function. This eliminates the `matplotlib` requirement for the viewer functionality.\n* New layer colors extending layers 0 to 63.\n\n### Version 0.2.0 (July 19, 2010)\n* Fixed a bug on the `turn` method of `Path`.\n* Fixed a bug on the `boolean` function that would give an error when not using `Polygon` or `PolygonSet` as input objects.\n* Added the method `get_polygons` to `Cell`, `CellReference` and `CellArray`.\n* Added a copy method to `Cell`.\n* Added a `flatten` method to `Cell` to remove references (or array references) to other cells.\n* Fracture `boolean` output polygons based on the number of vertices to respect the 199 GDSII limit. \n\n### Version 0.1.9 (June 04, 2010)\n* Added `L1Path` class for Manhattan geometry (L1 norm) paths.\n\n### Version 0.1.8 (May 10, 2010)\n* Removed the argument `fill` from `gds_view` and added a more flexible one: `style`.\n* Fixed a rounding error on the `boolean` operator affecting polygons with holes.\n* Added a rotate method to `PolygonSet`.\n* Added a warning when `PolygonSet` has more than 199 points\n* Added a flag to disable the warning about polygons with more than 199 points.\n* Added a `turn` method to `Path`, which is easier to use than `arc`.\n* Added a direction attribute to `Path` to keep the information used by the `segment` and `turn` methods.\n\n### Version 0.1.7 (April 12, 2010)\n* New visualization option: save the geometry directly to an image file (lower memory use).\n* New functionality added: boolean operations on polygons (polygon clipping).\n* All classes were adapted to work with the boolean operations.\n* The attribute size in the initializer of class `Text` does not have a default value any longer.\n* The name of the argument `format` in the function `gds_view` was changed to `fill` (to avoid confusion with the built-in function `format`).\n\n### Version 0.1.6 (December 15, 2009)\n* Sample script now include comments and creates an easier to understand GDSII example.\n* Improved floating point to integer rounding, which fixes the unit errors at the last digit of the precision in the GDSII file.\n* Fixed the font for character 5.\n* Added a flag to `gds_view` to avoid the automatic call to `matplotlib.pyplot.show()`.\n* In `gds_view`, if a layer number is greater than the number of formats defined, the formats are cycled.\n\n### Version 0.1.5a (November 15, 2009)\n* Class Text correctly interprets `\\n` and `\\t` characters.\n* Better documentation format, using the Sphinx engine and the numpy format.\n\n### Version 0.1.4 (October 5, 2009)\n* Class `Text` re-written with a different font with no overlaps and correct size.\n\n### Version 0.1.3a (July 29 2009)\n* Fixed the function `to_gds` of class `Rectangle`.\n\n### Version 0.1.3 (July 27, 2009)\n* Added the datatype field to all elements of the GDSII structure.\n\n### Version 0.1.2 (July 11, 2009)\n* Added the `gds_view` function to display the GDSII structure using the matplotlib module.\n* Fixed a rotation bug in the CellArray class.\n* Module published under the GNU General Public License (GPL)\n\n### Version 0.1.1 (May 12, 2009)\n* Added attribute `cell_list` to class Cell to hold a list of all Cell created.\n* Set the default argument `cells=Cell.cell_list` in the function `gds_print`.\n* Added member to calculate the area for each element type.\n* Added member to calculate the total area of a Cell or the area by layer.\n* Included the possibility of creating objects in user-defined units, not only nanometers.\n\n### Version 0.1.0 (May 1, 2009)\n* Initial release.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/heitzmann/gdspy", "keywords": "GDSII CAD layout", "license": "Boost Software License v1.0", "maintainer": "", "maintainer_email": "", "name": "gdspy", "package_url": "https://pypi.org/project/gdspy/", "platform": "OS Independent", "project_url": "https://pypi.org/project/gdspy/", "project_urls": { "Homepage": "https://github.com/heitzmann/gdspy" }, "release_url": "https://pypi.org/project/gdspy/1.4/", "requires_dist": null, "requires_python": "", "summary": "Python module for creating/importing/merging GDSII files.", "version": "1.4" }, "last_serial": 5286670, "releases": { "0.2.6": [ { "comment_text": "", "digests": { "md5": "62e0c72f7c3af7e2817371b6cabcf9c7", "sha256": "540e10d2858cbf206ab345265b2cbfb0ca38d6160490ba2e3ee90b5c808aa0dc" }, "downloads": -1, "filename": "gdspy-0.2.6.zip", "has_sig": false, "md5_digest": "62e0c72f7c3af7e2817371b6cabcf9c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 181327, "upload_time": "2011-02-28T22:46:35", "url": "https://files.pythonhosted.org/packages/62/f8/2b58a84ab39a0906fbac75971d52ae06bbed0d24bc367ccfc59ce680207b/gdspy-0.2.6.zip" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "305c609d23f8f2f9ef6255e11531d181", "sha256": "b28decff00bb84fd691909569f19f6650efc1c7462dbd0cd9b54d1742da9d739" }, "downloads": -1, "filename": "gdspy-0.2.7.zip", "has_sig": false, "md5_digest": "305c609d23f8f2f9ef6255e11531d181", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 191501, "upload_time": "2011-04-02T20:03:13", "url": "https://files.pythonhosted.org/packages/81/56/6ad4ce1d84fc1a32dc221c7e7f315dd86f19b62ec5bd24c67f594a2264f1/gdspy-0.2.7.zip" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "31d25684b6bbac4a7998eb504b4289fd", "sha256": "56440f94870d13e798a23e09fd6ac35eeac55d9e5451ae97434920b5ce6b2f4b" }, "downloads": -1, "filename": "gdspy-0.2.8.zip", "has_sig": false, "md5_digest": "31d25684b6bbac4a7998eb504b4289fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42446, "upload_time": "2011-06-21T16:38:56", "url": "https://files.pythonhosted.org/packages/2c/11/d1d16cc51147d8b621c6b554389e645321a5cca6c91177c263c90b529767/gdspy-0.2.8.zip" } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "17736018ba974fb04934665b877cc10b", "sha256": "037b0ac3217d509fa204553ef07fc5fceeee225f06999561f5f05535a752b39c" }, "downloads": -1, "filename": "gdspy-0.2.9.zip", "has_sig": false, "md5_digest": "17736018ba974fb04934665b877cc10b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 270710, "upload_time": "2011-12-14T18:18:52", "url": "https://files.pythonhosted.org/packages/98/bc/ff45d6aba9822711ad79416c4c84b0d985a05aefa3e1aa8bafc2c2503bf0/gdspy-0.2.9.zip" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "1e41ae45f5a680f0bb74edd8a365ef65", "sha256": "94893538f637abb896eb9a960f2bc3d61d9f8ff735a2f69c380da5187dfca9e2" }, "downloads": -1, "filename": "gdspy-0.3.tar.gz", "has_sig": false, "md5_digest": "1e41ae45f5a680f0bb74edd8a365ef65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 270281, "upload_time": "2012-04-25T16:09:16", "url": "https://files.pythonhosted.org/packages/36/ec/1306ebf981899878979625936018bf4157da000e0f970d37a8091f9b5c35/gdspy-0.3.tar.gz" }, { "comment_text": "", "digests": { "md5": "f701119a476fc016b3cd405a9237e2f0", "sha256": "da45314ea12fd9242b079b1c348b35202b88ae97c2c174ffbd7ed8809bf3cd01" }, "downloads": -1, "filename": "gdspy-0.3.zip", "has_sig": false, "md5_digest": "f701119a476fc016b3cd405a9237e2f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 289821, "upload_time": "2012-04-25T16:11:34", "url": "https://files.pythonhosted.org/packages/00/24/3eaa9db61d40daf8f0c7a0f53fd0ee0082479068557e24f2d242bbc7d631/gdspy-0.3.zip" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "9dfa235b087a3588bc6d6cabbccf4bc7", "sha256": "1d9d3ebf5acb48424b0f6818da3974ca005b08884baee305a4b0ef191d6e0fa2" }, "downloads": -1, "filename": "gdspy-0.3.1.zip", "has_sig": false, "md5_digest": "9dfa235b087a3588bc6d6cabbccf4bc7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 292981, "upload_time": "2012-05-24T17:35:12", "url": "https://files.pythonhosted.org/packages/e6/24/d39128abc6950c78f77f72fb8c0d57751fe3f9ce8531ef5f1bb27ced28da/gdspy-0.3.1.zip" } ], "0.3a": [ { "comment_text": "", "digests": { "md5": "f721b2bc750ca22c094298ca199b1358", "sha256": "2f0f7fe80672bcb7642ae9dc7561b3b9d9d605cc0a96eee106b6077c28d11bed" }, "downloads": -1, "filename": "gdspy-0.3a.zip", "has_sig": false, "md5_digest": "f721b2bc750ca22c094298ca199b1358", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 235861, "upload_time": "2012-05-03T21:46:41", "url": "https://files.pythonhosted.org/packages/97/a8/a8a76274417012c1100776e1217b0c583e68b966eaebb88f62a9831dc25c/gdspy-0.3a.zip" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "0c102202c91c45ce664f37ec6d2a7bd7", "sha256": "59d5d10cb1563939e7eba7652f6503ab707fb7be59304ddf91ce9c171a980cac" }, "downloads": -1, "filename": "gdspy-0.4.tar.gz", "has_sig": false, "md5_digest": "0c102202c91c45ce664f37ec6d2a7bd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 213285, "upload_time": "2012-10-25T17:17:23", "url": "https://files.pythonhosted.org/packages/15/5c/926fc6dc6164e67fb45ea4febc46227a62cc044415e13923fd98da11d065/gdspy-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "c0688eed46d406eea8b9e80e60f26a66", "sha256": "a023f1e97e20c9b4dd351002ad2d0afbb9358cbe35c4ba931c4bff8400a4b92f" }, "downloads": -1, "filename": "gdspy-0.4.1.zip", "has_sig": false, "md5_digest": "c0688eed46d406eea8b9e80e60f26a66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 236446, "upload_time": "2013-06-05T11:03:04", "url": "https://files.pythonhosted.org/packages/77/8e/06203d5cae4acc6ce4595c31fc4050ace802f4072960690bb59ddf228e67/gdspy-0.4.1.zip" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "0855264a2dc1efa3bff6c73075fe9d73", "sha256": "2e943c398aaf077c373cb40a0cf7924b8c40cb9eb4db7e2aa3086425e7dad880" }, "downloads": -1, "filename": "gdspy-0.5.tar.gz", "has_sig": false, "md5_digest": "0855264a2dc1efa3bff6c73075fe9d73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 193473, "upload_time": "2013-10-30T16:05:15", "url": "https://files.pythonhosted.org/packages/67/31/3e2c57c84cca6dc7e9b95aca3bddd183ac336f49c7c5b4c9d5d57ce64669/gdspy-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "a5a45b7ba3e673d7cc35b8394998659c", "sha256": "57b3f0a0f0aa3b3d08a92841fcf5b6ae3cabe1459a0c9b2836f6e119fc509e8e" }, "downloads": -1, "filename": "gdspy-0.6.zip", "has_sig": false, "md5_digest": "a5a45b7ba3e673d7cc35b8394998659c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 295817, "upload_time": "2014-03-31T22:34:52", "url": "https://files.pythonhosted.org/packages/9d/8a/714172473959cf63bd3b0b1da1268f30ac0dba3cceebf55981cc927dc388/gdspy-0.6.zip" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "732398a03d4c06a04f13a20e81e2245f", "sha256": "9a980c81d18092fac33924d4e1fb590833aa6618d97f555d7097d1f7f045e156" }, "downloads": -1, "filename": "gdspy-0.7.zip", "has_sig": false, "md5_digest": "732398a03d4c06a04f13a20e81e2245f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 206287, "upload_time": "2015-06-12T19:19:36", "url": "https://files.pythonhosted.org/packages/f3/43/62214fdda0dd510838e2bad641046a83253180278a16acccf19efa59cf6a/gdspy-0.7.zip" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "7d0e9cc041f089cdfb8f8293db2d2c2b", "sha256": "a0d83a489d85f061ddfc3a43e212fa0f18262fc958c53e15247c7903aff8561e" }, "downloads": -1, "filename": "gdspy-0.7.1.zip", "has_sig": false, "md5_digest": "7d0e9cc041f089cdfb8f8293db2d2c2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48391, "upload_time": "2015-06-26T19:50:19", "url": "https://files.pythonhosted.org/packages/01/0b/92318fe8e512185a04ea87cc7a28149d0531118b56936d2e8c7b6d60921e/gdspy-0.7.1.zip" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "3835856c599b3d7137840116d4666af0", "sha256": "ada7218e7dc6ba1b97c87054d44f2903300694ea6a2b353787c9bbf0abe04275" }, "downloads": -1, "filename": "gdspy-0.8.zip", "has_sig": false, "md5_digest": "3835856c599b3d7137840116d4666af0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 301935, "upload_time": "2016-05-06T19:26:00", "url": "https://files.pythonhosted.org/packages/0b/4b/d1fab9495a0ab91e1fdc3a7a29143baa94ad6db639437606dd18cebb02ab/gdspy-0.8.zip" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "023e1f0790cd1fd02e78d0c3e2a2e695", "sha256": "5b05bd638a3e94b3f79e92d5655b627db884d3db2baeab4c78111eabf6450245" }, "downloads": -1, "filename": "gdspy-0.8.1.tar.gz", "has_sig": false, "md5_digest": "023e1f0790cd1fd02e78d0c3e2a2e695", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 288658, "upload_time": "2016-05-06T20:04:58", "url": "https://files.pythonhosted.org/packages/ea/b7/13245e3a9529c149bc7daa4a27055b72ea305b6a3092b4fa6682d87fc6a1/gdspy-0.8.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "d9fc899bbb62cb4ebbd7ae117ff0c45f", "sha256": "c6135e6c4f14d6ca3c86e7cb254d1e1b3deb6773f1f7d3ea215d34e1d8dd5f44" }, "downloads": -1, "filename": "gdspy-0.8.1.zip", "has_sig": false, "md5_digest": "d9fc899bbb62cb4ebbd7ae117ff0c45f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 306635, "upload_time": "2016-05-06T20:05:30", "url": "https://files.pythonhosted.org/packages/e0/55/f919c70a7ed7e91e064403007f9d353cfa3320fa82a858f46cb4dd43bdd2/gdspy-0.8.1.zip" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "e91a58e6834a5a0ad68e49ad4d1fda0d", "sha256": "24eb835faff019167877c342a76376dd7b0a248180253aaa7791ae73da8bea8d" }, "downloads": -1, "filename": "gdspy-0.9.zip", "has_sig": false, "md5_digest": "e91a58e6834a5a0ad68e49ad4d1fda0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 986938, "upload_time": "2016-07-17T18:30:08", "url": "https://files.pythonhosted.org/packages/bd/5f/8c7c417e97177bf5e55ead002fd383b9f1f864d39892abfcba26f38af23f/gdspy-0.9.zip" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "c571125110f59fae8e1498d3976005de", "sha256": "754579019054ffadfa3d1275425431b17228e474f65c267604ac33aa1fb48103" }, "downloads": -1, "filename": "gdspy-1.0.tar.gz", "has_sig": false, "md5_digest": "c571125110f59fae8e1498d3976005de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 976367, "upload_time": "2016-09-11T13:17:26", "url": "https://files.pythonhosted.org/packages/65/90/78e59783eada36bb229c30ac68cf7585052d984ba638063d3236f8787221/gdspy-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "f3d78a398e7174b107b9312f871a14e2", "sha256": "2c34bd9a8bf468cdd3c4d31520c0c64a5aa1b58181becad33fb5cf7687ac265d" }, "downloads": -1, "filename": "gdspy-1.1.zip", "has_sig": false, "md5_digest": "f3d78a398e7174b107b9312f871a14e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1248359, "upload_time": "2017-01-20T16:14:31", "url": "https://files.pythonhosted.org/packages/04/6f/a1a3d91f150029009ed20e52ff6aa7dd0ebcdc79ded6a8158b95a3a7fad0/gdspy-1.1.zip" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "43688ba025b52c65399136c0e99e05c7", "sha256": "1058d9109fd7a2589d73cbe1d8d0086ea2a0a33b990eb915dae1870b3c8f9af9" }, "downloads": -1, "filename": "gdspy-1.1.1.zip", "has_sig": false, "md5_digest": "43688ba025b52c65399136c0e99e05c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1254850, "upload_time": "2017-01-27T12:56:18", "url": "https://files.pythonhosted.org/packages/44/e6/85157a785ea49bc36dfa98b4ac8a7778126e628c1df2280b81e3e2890419/gdspy-1.1.1.zip" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "8fef8f5299e23e1c03c0de7c0b63101f", "sha256": "182c883256561cea37bbdc848e8abae872a3e5d33580960770bc9cb9003c4054" }, "downloads": -1, "filename": "gdspy-1.1.2.zip", "has_sig": false, "md5_digest": "8fef8f5299e23e1c03c0de7c0b63101f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1937147, "upload_time": "2017-03-19T15:44:24", "url": "https://files.pythonhosted.org/packages/bb/13/acbb6f8d5dc11cfcba098c89615217e294d88ceb08d904577ac23b1e0d1d/gdspy-1.1.2.zip" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "0a6da9823253fa84cec31a030aa85258", "sha256": "565eb1bbdc0abdc72fd5a66fc6e34ecca3e701d68120814a4e75003b276186e7" }, "downloads": -1, "filename": "gdspy-1.2.zip", "has_sig": false, "md5_digest": "0a6da9823253fa84cec31a030aa85258", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1916478, "upload_time": "2017-10-21T21:39:43", "url": "https://files.pythonhosted.org/packages/f3/74/2db0f6f15f98588e06623bed6e8baf771e4d88b6ce6af6acb9a700844db7/gdspy-1.2.zip" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "ebc9f21cf6d7170871dd8146c281cf3c", "sha256": "ecf9ab3e6dd71a78cf6fdf6aa758af41af17432a431ee70e0feb1839aa447353" }, "downloads": -1, "filename": "gdspy-1.2.1.zip", "has_sig": false, "md5_digest": "ebc9f21cf6d7170871dd8146c281cf3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1704439, "upload_time": "2017-12-06T00:43:55", "url": "https://files.pythonhosted.org/packages/d1/b1/cfaba161b5910bd36d73db95a2400a9d23f3e2e596926fe9991bdaa9a267/gdspy-1.2.1.zip" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "82100dc6ee02a8e1bd4a39e3f1212bed", "sha256": "390f21280ea3e2795909487d911af41f4a6cdb9902173bb5af3c160e727d041f" }, "downloads": -1, "filename": "gdspy-1.3.1.zip", "has_sig": false, "md5_digest": "82100dc6ee02a8e1bd4a39e3f1212bed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 236230, "upload_time": "2018-06-29T16:50:11", "url": "https://files.pythonhosted.org/packages/19/50/9c671644883fe25613e991db0ce5a4e7408c119df459c88fb5a0d0d89346/gdspy-1.3.1.zip" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "507ba9aebd675ac3c963ee7472696de7", "sha256": "4f03264b929315829fa62922fa7e9b6c0b88d79107704d8096d9c73739569734" }, "downloads": -1, "filename": "gdspy-1.3.2.zip", "has_sig": false, "md5_digest": "507ba9aebd675ac3c963ee7472696de7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6714583, "upload_time": "2019-03-21T09:37:06", "url": "https://files.pythonhosted.org/packages/a6/26/46d402ac441b7e3b2ccc7aeaaa9bcc59a70dda383bced0668e1d2f880ad1/gdspy-1.3.2.zip" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "1f0a3a846ed969a4f9241fcce24a238b", "sha256": "0ce8a159d253399ba5092692548b5b6990cbf3d1febd9117f79400cb7a5426df" }, "downloads": -1, "filename": "gdspy-1.4.zip", "has_sig": false, "md5_digest": "1f0a3a846ed969a4f9241fcce24a238b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7648214, "upload_time": "2019-05-18T21:57:57", "url": "https://files.pythonhosted.org/packages/1d/e4/97b8add92fbec2a9890ad4777272e9a9e4d7a0ceeac42b7e1febe94f0e86/gdspy-1.4.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1f0a3a846ed969a4f9241fcce24a238b", "sha256": "0ce8a159d253399ba5092692548b5b6990cbf3d1febd9117f79400cb7a5426df" }, "downloads": -1, "filename": "gdspy-1.4.zip", "has_sig": false, "md5_digest": "1f0a3a846ed969a4f9241fcce24a238b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7648214, "upload_time": "2019-05-18T21:57:57", "url": "https://files.pythonhosted.org/packages/1d/e4/97b8add92fbec2a9890ad4777272e9a9e4d7a0ceeac42b7e1febe94f0e86/gdspy-1.4.zip" } ] }