fatamorgana/fatamorgana
2024-03-30 19:44:47 -07:00
..
test Use IO[bytes] everywhere 2023-01-26 13:48:20 -08:00
__init__.py bump version to v0.12 2022-08-18 23:44:59 -07:00
basic.py Modernize type annotations 2024-03-30 19:44:47 -07:00
LICENSE.md move to hatch-based build 2022-08-18 23:44:20 -07:00
main.py Modernize type annotations 2024-03-30 19:44:47 -07:00
py.typed enable type checking for downstream 2020-05-19 00:51:40 -07:00
README.md move to hatch-based build 2022-08-18 23:44:20 -07:00
records.py Modernize type annotations 2024-03-30 19:44:47 -07:00

fatamorgana

fatamorgana is a Python package for reading and writing OASIS format layout files.

Homepage: https://mpxd.net/code/jan/fatamorgana

Capabilities:

  • This package is a work-in-progress and is largely untested -- it works for the tasks I usually use it for, but I can't guarantee I've even tried the features you happen to use! Use at your own risk!
  • Interfaces and datastructures are subject to change!
  • That said the following work for me:
    • polygons
    • layer info
    • cell names
    • compressed blocks
    • basic property I/O

Installation

Dependencies:

  • python >=3.10
  • (optional) numpy

Install with pip from PyPi (preferred):

pip3 install fatamorgana

Install directly from git repository:

pip3 install git+https://mpxd.net/code/jan/fatamorgana.git@release

Documentation

Most functions and classes are documented inline.

To read the inline help,

import fatamorgana
help(fatamorgana.OasisLayout)

The documentation is currently very sparse and I expect to improve it whenever possible!

Examples

Read an OASIS file and write it back out:

    import fatamorgana

    with open('test.oas', 'rb') as f:
        layout = fatamorgana.OasisLayout.read(f)

    with open('test_write.oas', 'wb') as f:
        layout.write(f)