Skip to main content

Caltech Intermediate Form parser in pure Python

Project description

CIFT

Caltech Intermediate Form parser in pure Python

Under construction

Currently, CIFT is a utility for use in unit tests of RAIMAD, a different project I am working on. As such, it is only guaranteed to support CIF files that RAIMAD produces, and not all CIF files in general.

Turning CIFT into a general-purpose CIF parser is a long-term future goal.

Roadmap

  • Basic parsing
    • P (polygons)
    • B (box)
      • rotation
    • Comments
    • Subroutines (DS and DF)
    • Translation and rotation (subroutines)
  • Inspection
    • Get CIF file as a list of geometries on each layer
    • Get CIF file as a tree representing subroutine calls

Overall Goals

  • Pure Python, no dependencies
  • easy to understand code
  • mypy --strict has no complaints
  • in abscence of a CIF spec, emulate KLayout's CIF parser as closely as possible.

Name

  • "CIFT", pronounced like "sift". Think of putting a CIF file into a sieve and letting the syntax crystallize into grains of sand that fall away to reveal the geometries it represents.

License

You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see http://creativecommons.org/publicdomain/zero/1.0/.

Future versions may switch to a difference license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cift-0.0.6.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

cift-0.0.6-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file cift-0.0.6.tar.gz.

File metadata

  • Download URL: cift-0.0.6.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for cift-0.0.6.tar.gz
Algorithm Hash digest
SHA256 2cba5d106065429fb20c4c457c8f2ddba4a2e46e56b86781c07788ca6021b496
MD5 3a955ade8914cd4307935c1f1bbc8a17
BLAKE2b-256 87b3a2b84338686efc5d7c0f8c0a3b929e84a1d4af5cd512054aab0a34f51994

See more details on using hashes here.

File details

Details for the file cift-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: cift-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for cift-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 bb7582eb42fb59b6c4f28b395f6742a0d1a92207deced721cf8a638ed831f877
MD5 adb6f64f4b996ae4f58eaebfc83875f5
BLAKE2b-256 5d44a3f47467c9cb49a114c0b2048332b8558a6b37c02163fdc787170fc8e45d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page