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)
| File | Size | Uploaded | |
|---|---|---|---|
| ts2py-0.0.2.tar.gz | 23.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|