Status
This project is new and experimental. It works great for local development, but I wouldn't recommend using it for production just yet. You can follow the progress on Twitter @transitive_bs (opens in a new tab)
TODO
- MVP
- e2e working example for MinMaxScaler
- e2e working example for TSNE
- e2e working example for Kmeans
- add support for class attributes
- generate all sklearn classes
- refactor generated code into namespaces / folders
- validate python
scikit-learn
version - generate readme files for each directory
- port changes to python-bridge...
- validate generated code via
tsc
G - refactor into
packages
- test build via CI
- basic readme w/ usage and examples
- publish
sklearn
package to NPM - contact
scikit-learn
for feedback
- current
- docs
- improve python => TS markdown and type edge cases
- fix relative markdown links
- docs
- post-MVP
- add support for sklearn functions (in addition to classes)
- add support for accessing the built-in datasets
- add support for better python exception / error handling
- add support for positional arguments (in addition to the default keyword-based arguments)
- add basic benchmarks
- add python <> TS unit tests
- add support for concurrent python requests and multiple python bridges
- this may work currently, but it's untested and is likely to have race conditions
- consider changing identifier names from python
snake_case
to JScamelCase
- update fork of
python-bridge
to be more modern- update deps
- replace bluebird with native promises
- fix python warnings
- etc
- ideas
- add support for polars (opens in a new tab) and/or danfo.js (opens in a new tab) dataframe formatting
- add support for
pandas
- explore more efficient serialization formats for IPC
- explore memory mapping arrays between node.js and python for efficiency
- would need the two serialized array formats to be byte-equivalent between python and node.js which seems difficult...
- explore pyodide (opens in a new tab) as a possible alternative to the Python bridge