Skip to main content

ts2py

Python-interoperability for Typescript-Interfaces. Transpiles TypeScript-Interface-definitions to Python TypedDicts

What is this

This repo is born as a fork of ts2python written by Eckhart Arnold arnold@badw.de, Bavarian Academy of Sciences and Humanities. The reason behind this fork was that I needed a simpler way to quickly convert TypeScript interfaces to Python TypedDict. Once I started looking into the initial code I decided to change (and remove) a lot of stuff. I also managed to split the code in multiple files and added Typer to create a beautiful CLI. The initial project should be much more powerful and should also have support for run-time type-checking of JSON-data.

Purpose

Nowadays a lot of applications are created with TypeScript. To enable a much better way of developing when dealing with Python backend it could be useful to quickly convert Typescript-Interfaces into Python TypedDicts. In order to enable structural validation on the Python-side, ts2py transpiles the typescript-interface definitions to Python-data structure definitions.

Installation

ts2py can be installed from the command line with the command:

pip install ts2py

ts2py requires the parsing-expression-grammar-framework DHParser which will automatically be installed as a dependency by the pip-command. ts2py requires at least Python Version 3.10 to run. However, the Python-code it produces is backwards compatible down to Python 3.6 thanks to the typing extensions.

Usage

In order to generate TypedDict-classes from Typescript-Interfaces, run ts2py on the Typescript-Interface definitions:

ts2py interfaces.ts

This generates a .py file in same directory as the source file that contains the TypedDict-classes and can simpy be imported in Python-Code:

from interfaces import *

License and Source Code

ts2py is open source software under the Apache 2.0 License

The complete source-code of ts2py can be downloaded from the its git-repository.

Metadata

Release files for ts2py 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ts2py 0.0.2
File Size Uploaded
ts2py-0.0.2.tar.gz 23.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ts2py 0.0.2
File Interpreter ABI Platform
ts2py-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 49.6 kB

Release files / ts2py-0.0.2.tar.gz

Download URL ts2py-0.0.2.tar.gz
Size 23.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b3d447287954beca56b4609c7065d3e6b1dc1782a43f662519872fab93f08091
BLAKE2b-256 checksum
How to use checksums
b08d64e4ee354ba87fa9a8b843555c356f5dbd9636d8cf06d15ce031024214b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.10.9 Linux/5.15.0-1030-azure

Release files / ts2py-0.0.2-py3-none-any.whl

Download URL ts2py-0.0.2-py3-none-any.whl
Size 26.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4c71bc44cb3c23bb610f207bdc0f88dcaf1026fab90f30d688ac92608e9f934f
BLAKE2b-256 checksum
How to use checksums
4fad1ddf7d64f63ca7f7ca271f1e60a8e05b5cee708bd586847afe110116c817
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.10.9 Linux/5.15.0-1030-azure

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page