Simple JavaScript interpreter for Python
Project description
DukPy is a simple javascript interpreter for Python built on top of duktape engine without any external dependency. It comes with a bunch of common transpilers built-in for convenience:
CoffeeScript
BabelJS
TypeScript
JSX
LESS
Dukpy has been tested on Python 2.7 and Python 3.4, dukpy is currently not production ready and might actually crash your program as it is mostly implemented in C.
CoffeeScript Compiler
Using the coffeescript compiler is as easy as running:
>>> import dukpy
>>> dukpy.coffee_compile('''
... fill = (container, liquid = "coffee") ->
... "Filling the #{container} with #{liquid}..."
... ''')
'(function() {\n var fill;\n\n fill = function*(container, liquid) {\n if (liquid == null) {\n liquid = "coffee";\n }\n return "Filling the " + container + " with " + liquid + "...";\n };\n\n}).call(this);\n'
TypeScript Transpiler
The TypeScript compiler can be used through the dukpy.typescript_compile function:
>>> import dukpy
>>> dukpy.typescript_compile('''
... class Greeter {
... constructor(public greeting: string) { }
... greet() {
... return "<h1>" + this.greeting + "</h1>";
... }
... };
...
... var greeter = new Greeter("Hello, world!");
... ''')
'var Greeter = (function () {\n function Greeter(greeting) {\n this.greeting = greeting;\n }\n Greeter.prototype.greet = function () {\n return "<h1>" + this.greeting + "</h1>";\n };\n return Greeter;\n})();\n;\nvar greeter = new Greeter("Hello, world!");\n'
Currently the compiler has built-in options and doesn’t accept additional ones,
The DukPY based TypeScript compiler also provides a WebAssets ( http://webassets.readthedocs.org/en/latest/ ) filter to automatically compile TypeScript code in your assets pipeline. You register this filter as typescript within WebAssets using:
from webassets.filter import register_filter
from dukpy.webassets import TypeScript
register_filter(TypeScript)
Which makes the filter available with the typescript name.
NOTE: When using the TypeScript compiler for code that needs to run in the browser, make sure to add https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.24/system.js dependency. As import statements are resolved using SystemJS.
EcmaScript6 BabelJS Transpiler
To compile ES6 code to ES5 for everyday usage you can use dukpy.babel_compile:
>>> import dukpy
>>> dukpy.babel_compile('''
... class Point {
... constructor(x, y) {
... this.x = x;
... this.y = y;
... }
... toString() {
... return '(' + this.x + ', ' + this.y + ')';
... }
... }
... ''')
'"use strict";\n\nvar _prototypeProperties = function (child, staticProps, instanceProps) { if (staticProps) Object.defineProperties(child, staticProps); if (instanceProps) Object.defineProperties(child.prototype, instanceProps); };\n\nvar _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } };\n\nvar Point = (function () {\n function Point(x, y) {\n _classCallCheck(this, Point);\n\n this.x = x;\n this.y = y;\n }\n\n _prototypeProperties(Point, null, {\n toString: {\n value: function toString() {\n return "(" + this.x + ", " + this.y + ")";\n },\n writable: true,\n configurable: true\n }\n });\n\n return Point;\n})();\n'
You can pass options to the BabelJS compiler just as keywords on the call to babel_compile().
The DukPY based BabelJS compiler also provides a WebAssets ( http://webassets.readthedocs.org/en/latest/ ) filter to automatically compile ES6 code in your assets pipeline. You register this filter as babeljs within WebAssets using:
from webassets.filter import register_filter
from dukpy.webassets import BabelJS
register_filter(BabelJS)
Which makes the filter available with the babeljs name. Only supported filter option is currently BABEL_MODULES_LOADER with value systemjs or umd to specify that compiled code should use SystemJS or UMD instead of CommonJS for modules.
NOTE: When using the BabelJS compiler for code that needs to run in the browser, make sure to add https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.13.0/polyfill.min.js dependency.
JSX to React Transpiling
DukPy provides a built-in compiler from JSX to React, this is available as dukpy.jsx_compile:
>>> import dukpy
>>> dukpy.jsx_compile('var react_hello = <h1>Hello, world!</h1>;')
u'"use strict";\n\nvar react_hello = React.createElement(\n "h1",\n null,\n "Hello, world!"\n);'
The DukPY based JSX compiler also provides a WebAssets ( http://webassets.readthedocs.org/en/latest/ ) filter to automatically compile JSX+ES6 code in your assets pipeline. You register this filter as babeljsx within WebAssets using:
from webassets.filter import register_filter
from dukpy.webassets import BabelJSX
register_filter(BabelJSX)
Which makes the filter available with the babeljsx name. This filter supports the same options as the babel one.
Less Transpiling
DukPy provides a built-in distribution of the less compiler available through dukpy.less_compile:
>>> import dukpy
>>> dukpy.less_compile('.class { width: (1 + 1) }')
'.class {\n width: 2;\n}\n'
The DukPY based LESS compiler also provides a WebAssets ( http://webassets.readthedocs.org/en/latest/ ) filter to automatically compile LESS code in your assets pipeline. You register this filter as lessc within WebAssets using:
from webassets.filter import register_filter
from dukpy.webassets import CompileLess
register_filter(CompileLess)
Which makes the filter available with the lessc name.
Using the JavaScript Interpreter
Using dukpy is as simple as calling the dukpy.evaljs function with the javascript code:
>>> import dukpy
>>> dukpy.evaljs("var o = {'value': 5}; o['value'] += 3; o")
{'value': 8}
The evaljs function executes the javascript and returns the resulting value as far as it is possible to encode it in JSON.
If execution fails a dukpy.JSRuntimeError exception is raised with the failure reason.
Passing Arguments
Any argument passed to evaljs is available in JavaScript inside the dukpy object in javascript. It must be possible to encode the arguments using JSON for them to be available in Javascript:
>>> import dukpy
>>>
>>> def sum3(value):
... return dukpy.evaljs("dukpy['value'] + 3", value=value)
...
>>> sum3(7)
10
Running Multiple Scripts
The evaljs function supports providing multiple source codes to be executed in the same context.
Multiple script can be passed in a list or tuple:
>>> import dukpy
>>> dukpy.evaljs(["var o = {'value': 5}",
... "o['value'] += 3",
... "o"])
{'value': 8}
This is useful when your code requires dependencies to work, as you can load the dependency and then your code.
This is actually how the coffeescript compiler is implemented by DukPy itself:
def coffee_compile(source):
with open(COFFEE_COMPILER, 'r') as coffeescript_js:
return evaljs((coffeescript_js.read(), 'CoffeeScript.compile(dukpy.coffeecode)'),
coffeecode=source)
Using a persistent JavaScript Interpreter
The evaljs function creates a new interpreter on each call, this is usually convenient and avoid errors due to dirt global variables or unexpected execution status.
In some cases you might want to run code that has a slow bootstrap, so it’s convenient to reuse the same interpreter between two different calls so that the bootstrap cost has already been paid during the first execution.
This can be achieved by using the dukpy.JSInterpreter object.
Creating a dukpy.JSInterpreter permits to evaluate code inside that interpreter and multiple eval calls will share the same interpreter and global status:
>>> import dukpy
>>> interpreter = dukpy.JSInterpreter()
>>> interpreter.evaljs("var o = {'value': 5}; o")
{u'value': 5}
>>> interpreter.evaljs("o.value += 1; o")
{u'value': 6}
Loading modules with require
When using the dukpy.JSInterpreter object it is possible to use the require('modulename') instruction to load a module inside javascript.
Modules are looked up in all directories registered with dukpy.JSInterpreter.loader.register_path:
>>> import dukpy
>>> jsi = dukpy.JSInterpreter()
>>> jsi.loader.register_path('./js_modules')
>>> jsi.evaljs("isEmpty = require('fbjs/lib/isEmpty'); isEmpty([1])")
False
Installing packages from npmjs.org
When using the persistent javascript interpreter it is also possible to install packages from npmjs.org through the dukpy.install_jspackage function:
>>> import dukpy
>>> jsi = dukpy.JSInterpreter()
>>> dukpy.install_jspackage('promise', None, './js_modules')
Packages going to be installed: promise->7.1.1, asap->2.0.3
Fetching https://registry.npmjs.org/promise/-/promise-7.1.1.tgz..........................
Fetching https://registry.npmjs.org/asap/-/asap-2.0.3.tgz............
Installing promise in ./js_modules Done!
The same functionality is also provided by the dukpy-install shell command:
$ dukpy-install -d ./js_modules promise Packages going to be installed: promise->7.1.1, asap->2.0.3 Fetching https://registry.npmjs.org/promise/-/promise-7.1.1.tgz.......................... Fetching https://registry.npmjs.org/asap/-/asap-2.0.3.tgz............ Installing promise in ./js_modules Done!
Please note that currently install_jspackage is not able to resolve conflicting dependencies.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file dukpy-0.2.2.tar.gz
.
File metadata
- Download URL: dukpy-0.2.2.tar.gz
- Upload date:
- Size: 2.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9c63a0f7ae7696c4cba863e1cc45fb6c05b8f00c90eef2c2318dbea36ec3e90 |
|
MD5 | d3929efe2e73cadb664de73fbf909084 |
|
BLAKE2b-256 | 0ed47ebef46a9fe8c5fb0227531b08867b7ab4447259fbb1c29efd41e2c1b184 |
File details
Details for the file dukpy-0.2.2-cp37-cp37m-win_amd64.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp37-cp37m-win_amd64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.7m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3889a8044224d8422555f4b00926a3f1ed1ede2324378f52575bd636823c6747 |
|
MD5 | 232ed0be1f9192b14a2c3c00ec2335e2 |
|
BLAKE2b-256 | e7deb4f1211cc73c65f01ec9bb253dd55e22667dfee612f304074937547e5355 |
File details
Details for the file dukpy-0.2.2-cp37-cp37m-win32.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp37-cp37m-win32.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.7m, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7bc227439fdc9eabed11f4cded336b5f5c4a2796dcb95a071cd03cb9fe194b59 |
|
MD5 | 1fbdf8aa9f62f01886db024c422e8933 |
|
BLAKE2b-256 | 4a4a95afca526bc7b4c400379981ceee46b57ea3561592aacd0c12547b48efe5 |
File details
Details for the file dukpy-0.2.2-cp37-cp37m-manylinux1_x86_64.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp37-cp37m-manylinux1_x86_64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.7m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6277b2b36c1cc4d372d7875491eb3db8907123844e0b54af74dab0f7d02ce533 |
|
MD5 | 0b26e1227756b27c12e19cfbbd9f7e4d |
|
BLAKE2b-256 | ab78bd551aac0f941b96a9f83449cf24a133c8ac2a23e4301fb24855c9b8413f |
File details
Details for the file dukpy-0.2.2-cp37-cp37m-manylinux1_i686.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp37-cp37m-manylinux1_i686.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.7m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbd4abb6457cc08616bc869ac83cedd5f46f2ef8d0081c86940cdca9ebea07ae |
|
MD5 | 36df9191d47fa87cd48beaf3364154c2 |
|
BLAKE2b-256 | 287eb5afedcee2a69a1a898d9b9c8e7855a48eed2c9548eedd2592abd1609cec |
File details
Details for the file dukpy-0.2.2-cp36-cp36m-win_amd64.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp36-cp36m-win_amd64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.6m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddaaa9e9fa06e44523d36af98ccd3416cb61ffa0eeae4e763c7e0876887346be |
|
MD5 | 1c058cd5bed5d3262bfa19ca535a67cc |
|
BLAKE2b-256 | 1f335278eeb91ce522423e829edd19396ed41ee543ac3a37ab6f7e34644fa465 |
File details
Details for the file dukpy-0.2.2-cp36-cp36m-win32.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp36-cp36m-win32.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.6m, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c64b2ad3031259688cbc5d535d75c22a4e541c251ed9c7c53f41fb06ad704840 |
|
MD5 | c15d5cd15db01da7e2596317945dc561 |
|
BLAKE2b-256 | 16568422aa4b1aa02559d225ee7260944ecf44c288fdcdc38fa7595f8838a8ba |
File details
Details for the file dukpy-0.2.2-cp36-cp36m-manylinux1_x86_64.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp36-cp36m-manylinux1_x86_64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.6m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a80833e057e65de73dad6bc396d6aaa4d23683f87efe2483cd969ff3c9279aff |
|
MD5 | d541f11fea6daa656909b766affc39e9 |
|
BLAKE2b-256 | 32019690b743bb058559b91e1e290bad4bda68d7bc572bc1c06c77c664161436 |
File details
Details for the file dukpy-0.2.2-cp36-cp36m-manylinux1_i686.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp36-cp36m-manylinux1_i686.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.6m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f82842f38904a97981c86221a13634b9f5ebc44ffd1aa2d734300608b4b1aaf8 |
|
MD5 | 257f05782ffe9e32ba3a746d76930c03 |
|
BLAKE2b-256 | 1b9840f41170824a123ee959316a0e465484a5f2636dbd889a72ad5fe19aeac8 |
File details
Details for the file dukpy-0.2.2-cp35-cp35m-win_amd64.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp35-cp35m-win_amd64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.5m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.5.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52099282c36e36548a00ce1af078b537061682713d771511160c957e4423713a |
|
MD5 | a9b836d2478a083e02caac80aa8af6ef |
|
BLAKE2b-256 | 2baa9e97724606256223709b2f24788cd8e2b6094d89ea4c08c7f295f202ade7 |
File details
Details for the file dukpy-0.2.2-cp35-cp35m-win32.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp35-cp35m-win32.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.5m, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.5.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cf6fa0931fe0732a9f5857dcf144d8d96c1f7b96fef481bef7c9a9c367083fb |
|
MD5 | 46f3ba53752359058e87455c898833fe |
|
BLAKE2b-256 | c5ef28fc931717e2661160ee90820e02a497ff1327f1315e445d8c35026f771e |
File details
Details for the file dukpy-0.2.2-cp35-cp35m-manylinux1_x86_64.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp35-cp35m-manylinux1_x86_64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.5m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6ad1b26c3e54b0f60616ddadade1382a7b669dd4fc6e095c83b2b6b8e016833 |
|
MD5 | 1ce2e58786adca33806b8ed515bd0036 |
|
BLAKE2b-256 | ea56deee46c12bcbfb0fae58e1585df6c920d9dfe42117e2fa80e48d06d9111b |
File details
Details for the file dukpy-0.2.2-cp35-cp35m-manylinux1_i686.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp35-cp35m-manylinux1_i686.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.5m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7be7ccb621879ac4b409a4a5b691eeafd247916072cb6aa39e47326d020b18b8 |
|
MD5 | 097d3940c8644d4230a39d7c6e7740d9 |
|
BLAKE2b-256 | 71a52a1665fbdd0c994410ede31dd8719837d9ed7eed4e442da546d489a86990 |
File details
Details for the file dukpy-0.2.2-cp34-cp34m-win_amd64.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp34-cp34m-win_amd64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.4m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.4.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5c833e59e0d0992a8a3b5d73e0f3aaf33a32412db85c6c303feac0357e04228 |
|
MD5 | fcfb7a2174ffde5d22cf9f5eb8625035 |
|
BLAKE2b-256 | 818246eb16c0a808cea6fe0160136cf8e2580e9026456b60503655d2aa768fdb |
File details
Details for the file dukpy-0.2.2-cp34-cp34m-win32.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp34-cp34m-win32.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.4m, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.4.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32b1555346cd5f6695534f6a15d78d783cb4a8a081c43ca6e3ff4566b14732ef |
|
MD5 | 0da6b8b74fd1911e5eeea4fdcda30258 |
|
BLAKE2b-256 | 2a27022d22b5b88b43b6a11bb703b23fccc357b4ce69c352c6a5a969e15dda1f |
File details
Details for the file dukpy-0.2.2-cp34-cp34m-manylinux1_x86_64.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp34-cp34m-manylinux1_x86_64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.4m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 111ba2a22465002bbfb6572fd28f81c7c3222bdb566215ef81104bff9357caae |
|
MD5 | f121fedb48ce63e669ac15a0a96e43b5 |
|
BLAKE2b-256 | 5c06ec8fa89095a2d72c64c77e9b08931787dafb505db036429786404c81744e |
File details
Details for the file dukpy-0.2.2-cp34-cp34m-manylinux1_i686.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp34-cp34m-manylinux1_i686.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.4m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7fee6d6400e0e82d75edf5a4266394674805bc5251e01b554cb3ad2a031ee88 |
|
MD5 | 626c418a2f22a29157b39979ee6ba2c3 |
|
BLAKE2b-256 | d700b00609332643ae031537a3af3c1bbb9c5e600ec004202027c7e22c32005c |
File details
Details for the file dukpy-0.2.2-cp33-cp33m-win_amd64.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp33-cp33m-win_amd64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.3m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.3.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b2c868920a43d007985bca459a4bd165597e2aa7d0dad021d4c33cf6611a476 |
|
MD5 | 39ab0d3fba10a21c18110e957b19322d |
|
BLAKE2b-256 | 2efdc8674ef14e359851f0f068fddd6724edd4021778a3a8d88684c81136d678 |
File details
Details for the file dukpy-0.2.2-cp33-cp33m-win32.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp33-cp33m-win32.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.3m, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.3.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c165f452bb2a565ff7082e1a2f17a84c5355a5a3146147ab686fe6c12d1ce04e |
|
MD5 | a0f8325228c20ff451a17e1326d82955 |
|
BLAKE2b-256 | 307c8d8ad4af1750f25bdb0d613442c695f464d45b10558424c8a4cc1658d935 |
File details
Details for the file dukpy-0.2.2-cp27-cp27mu-manylinux1_x86_64.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp27-cp27mu-manylinux1_x86_64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 2.7mu
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e62bb46ba6f1dc45f723a487d4c3ee2fe49502b031fcdfe7dba412243402abe |
|
MD5 | c7f4aa866a38fdfe6ddae2d2222da16a |
|
BLAKE2b-256 | 0b7ad0e8d50859897284409ec2175219879475d6a9dece4947322c9f292807b3 |
File details
Details for the file dukpy-0.2.2-cp27-cp27mu-manylinux1_i686.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp27-cp27mu-manylinux1_i686.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 2.7mu
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0b1b529fcdc296a92e81d80b3b52ed6365ebf7edabf8aaabac5c256e36f39b8 |
|
MD5 | 36008a236b9d5fc28f97bd47b0722b16 |
|
BLAKE2b-256 | 3a6eb3f963ebfee174a6bafb5952a486ce30ebefdb6afd5632410e71a74ad3f1 |
File details
Details for the file dukpy-0.2.2-cp27-cp27m-win_amd64.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp27-cp27m-win_amd64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 2.7m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/2.7.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 411ba7fb244bc1615c26b6b831662b0127d2213e094f65988f5211a0e1de0557 |
|
MD5 | 84c3f4c18fae04f4ec4ad89d315d2382 |
|
BLAKE2b-256 | 5a616cf9dd6913becb6f6111662c0efc13d1b04ab0252ea8231c1fde3f033902 |
File details
Details for the file dukpy-0.2.2-cp27-cp27m-win32.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp27-cp27m-win32.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 2.7m, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/2.7.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8a526ec733b405e366f59c376530ce9f59797bbe6933a0ad6945628fad04626 |
|
MD5 | da25b23eaa0ba97246dd18dcbaa7a7fb |
|
BLAKE2b-256 | fe04d4e9d552f9936e04ea043ecd9436eb2d11150a8d262d95540fd78c15ecbf |
File details
Details for the file dukpy-0.2.2-cp27-cp27m-manylinux1_x86_64.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp27-cp27m-manylinux1_x86_64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 2.7m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10c47bd030c4e224788496d57aef59762fd1531049db3b178a76f9fd708089b5 |
|
MD5 | b623f060c07e2725f9056589bbf357e9 |
|
BLAKE2b-256 | ebf17e8c42c36167637ffd78ce52d3a5cf6a39e9c395bfd97fd108e2a4c0b35e |
File details
Details for the file dukpy-0.2.2-cp27-cp27m-manylinux1_i686.whl
.
File metadata
- Download URL: dukpy-0.2.2-cp27-cp27m-manylinux1_i686.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 2.7m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 296f6c1529ad03722cd1edc5f4bdf0a59b54ed6d7fa6e766c2765dc31a089804 |
|
MD5 | f39bb5b68ce2de8225435237793de009 |
|
BLAKE2b-256 | d4344add34f95625d78eefc0ad122024138151576777492df54599a54b24e980 |