60f879a1ad
style fixes (per flake8)
2020-10-16 19:00:00 -07:00
3627b63658
Make records store their associated Property records.
...
Previously, `Property` records were (incorrectly) just associated with
the library or cell.
This requires a change to how `CellName`s are handled by `OasisLayout`,
since they can have associated properties. They now have their own
non-record object (like `XName`s did before) which holds the properties.
There is also now a `FileModals.property_target` attribute which tracks
which record new `Property` rescords should be associated with.
2020-09-10 20:03:01 -07:00
167b16e1c9
fix writing of property values
2020-09-10 19:55:03 -07:00
2c2013a0fc
move typing imports to top of file
2020-09-10 19:54:25 -07:00
a80ac6199a
Record type 17 (Placement) should not allow modal angle or magnification
2020-09-10 19:54:03 -07:00
94555c1b6e
Update modal coordinates even if we are in relative mode
2020-05-20 21:07:29 -07:00
492d6416db
Docstring updates: CTrapezoid info, Polygon+Path point_list description improvement, and better description of where x and y point to
2020-05-19 00:51:10 -07:00
aaef122178
fixup array equality checking in the case where _USE_NUMPY is false but we somehow still get an ndarray
...
mostly happens during testing
2020-05-19 00:49:42 -07:00
55638fcde5
fix placement rotation (float modulo int was always returning 0??)
2020-05-19 00:48:22 -07:00
99283aaaf0
enable passing in str where an AString or NString is needed.
2020-05-19 00:47:17 -07:00
705926d443
Add UnfilledModalError, records.verify_modal(), and .get_*() methods.
...
The .get_*() methods are used to verify that we aren't reading from a
pattern with un-filled modals.
The GeometryMixin class was also added here and provides some additional
convenience methods: get_xy() to get an (x,y) tuple and
get_layer_tuple() to get a (layer, datatype) tuple.
2020-05-19 00:42:42 -07:00
4c5f649eec
Force mypy to ignore a bunch of simple situations it's not smart enough to reason about
2020-04-18 15:52:36 -07:00
25b2cecec9
Minor changes to satisfy type checker
2020-04-18 15:50:58 -07:00
c9adca61b6
get_pathext may return None
2020-04-18 15:44:44 -07:00
1a259a1c19
Improve ctrapezoid validity checking
...
width/height might be None; check them against each other only if they
aren't. Also, perform checks after dedup/adjust.
2020-04-18 15:43:25 -07:00
cfb3e90d71
Fix XYmode.absolute
2020-04-18 15:39:27 -07:00
7f0c46525e
improve type annotations
2020-04-18 15:38:52 -07:00
06de10062d
Additional error checking
2020-04-18 15:35:29 -07:00
62fca39a69
Modernize comments and type annotations. Ugly commit with a couple code fixes:
...
- modal variable name change: path_halfwidth -> path_half_width
- Fixed `hasattr(other, 'as_list')` calls in __eq__() functions
2020-04-18 03:08:08 -07:00
6f2200c5ed
Faster/simpler cumsum approach in read_point_list
...
Reqires a special case for ndarrays in dedup_field() -- probably a good
idea anyways if user gives us an ndarray
2020-04-18 03:00:36 -07:00
f4eeb50a6f
Fix incorrect calls to .write()
2020-04-18 01:31:36 -07:00
ab175641fe
Turn <3 points polygon exception into warning
2019-09-08 11:25:04 +02:00
9133245d49
Add debug logging for cblock read()
2018-07-21 14:04:59 -07:00
b1844d6b0d
Layer names should be NStrings
...
Not sure about this -- maybe they're actually AStrings, in which case
the LayerName constructor also needs to change
2018-07-21 13:50:55 -07:00
6cef118534
Fix Circle reader reporting incorrect record id
2018-07-21 13:49:45 -07:00
28cdb34b08
ctrapezoid_type may be None (modal)
2018-07-21 13:49:11 -07:00
055b2b35af
delta_a should be negative for a canonical Trapezoid
2018-07-21 13:48:36 -07:00
493109954b
Fix variable name typo in PropString
2018-07-21 13:47:18 -07:00
ffb211b009
Add default for CBlock decompression_args
2018-07-21 13:46:48 -07:00
07cfe9a74d
Log debug info when reading records
2018-07-21 13:46:22 -07:00
7f0af7d579
Fix XYMode constructor
2018-07-21 13:44:12 -07:00
0cb4cf4d4b
Add generic debug logging to records
2018-07-21 13:43:24 -07:00
dc5538dd68
initial commit
2017-09-18 03:01:48 -07:00