Skip to main content

calculate 2d-diagram from pd_code.

Project description

pd_code_to_diagram

given a pd_code for a topological link or knot, output a possible 2d-diagram.

Install

pip install pd-code-to-diagram

Usage

import pd_code_to_diagram

# pd_code is a list of list of int
pd_code = [[6, 1, 7, 2], [14, 7, 15, 8], [4, 15, 1, 16], [10, 6, 11, 5], [8, 4, 9, 3], [18, 11, 19, 12], [20, 17, 5, 18], [12, 19, 13, 20], [16, 10, 17, 9], [2, 14, 3, 13]]

# last_socket should be int or None
#   the program will ensure in the components contains last_socket
#   there will be at least one arc on the border of 
last_socket = 1

# diagram_2d will be a matrix of int
#   its type will be list of list of int
#   get_diagram_from_pd_code will raise an RuntimeError if such diagram not exists
diagram_2d = pd_code_to_diagram.get_diagram_from_pd_code(pd_code, last_socket)
for line in diagram_2d:
    print(line)

# get string_form diagram and save to file
link = [[2, 9, 3, 10], [4, 11, 5, 12], [6, 7, 1, 8], [8, 5, 7, 6], [10, 1, 11, 2], [12, 3, 9, 4]]
with open("test.txt", "w") as fp:
    fp.write(pd_code_to_diagram.get_diagram_str_from_pd_code(link, last_socket))

diagram_now = pd_code_to_diagram.get_diagram_from_pd_code(link, last_socket)
print(pd_code_to_diagram.diagram_to_pd_code(diagram_now))

# save diagram_2d as a png image
pd_code_to_diagram.diagram_to_png(diagram_now, "diagram.png")

# get a PIL.Image.Image object instead of writing a file
image = pd_code_to_diagram.diagram_to_image(diagram_now)

# optionally resize every grid tile, default tile size is 30 pixels
pd_code_to_diagram.diagram_to_png(diagram_now, "diagram_20px.png", tile_size=20)

# optionally draw small red labels for the four socket ids around each crossing
pd_code_to_diagram.diagram_to_png(diagram_now, "diagram_labeled.png", show_socket_labels=True)

In the diagram matrix, 0 means empty space, positive integers mean arc ids, -1 means the vertical strand is under the horizontal strand, and -2 means the horizontal strand is under the vertical strand.

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

pd_code_to_diagram-0.1.5.tar.gz (47.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pd_code_to_diagram-0.1.5-py3-none-any.whl (76.4 kB view details)

Uploaded Python 3

File details

Details for the file pd_code_to_diagram-0.1.5.tar.gz.

File metadata

  • Download URL: pd_code_to_diagram-0.1.5.tar.gz
  • Upload date:
  • Size: 47.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.11.15 Windows/10

File hashes

Hashes for pd_code_to_diagram-0.1.5.tar.gz
Algorithm Hash digest
SHA256 081dfbb08d68f375bd2388bef9fa61e876f8261e1f0110dd399885a04a879ab4
MD5 37bc16321c5d55bbca7802d2dd8bc22a
BLAKE2b-256 29c67ceaadd8265a3a3733af50cd560fbd123ea434417f4e3277b6ec20879d00

See more details on using hashes here.

File details

Details for the file pd_code_to_diagram-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for pd_code_to_diagram-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 962b4cb0ea2ae5dcaa69bbcfd30776eea2634936674532266fa425ce65a6c46a
MD5 ab3c9bd09484a49c5777f2178cc1bdac
BLAKE2b-256 7b0b624129eeb8c6fe8e978fce578389765ac8cdfcee060e009b62507583e31c

See more details on using hashes here.

Supported by

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