Skip to main content

Simple JavaScript interpreter for Python

Project description

https://img.shields.io/travis/amol-/dukpy/master.svg?label=Linux%20build%20%40%20Travis%20CI https://img.shields.io/appveyor/ci/amol-/dukpy/master.svg?label=Windows%20build%20%40%20Appveyor https://coveralls.io/repos/amol-/dukpy/badge.png?branch=master https://img.shields.io/pypi/v/dukpy.svg

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dukpy-0.2.2.tar.gz (2.0 MB view details)

Uploaded Source

Built Distributions

dukpy-0.2.2-cp37-cp37m-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.7m Windows x86-64

dukpy-0.2.2-cp37-cp37m-win32.whl (1.4 MB view details)

Uploaded CPython 3.7m Windows x86

dukpy-0.2.2-cp37-cp37m-manylinux1_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.7m

dukpy-0.2.2-cp37-cp37m-manylinux1_i686.whl (2.0 MB view details)

Uploaded CPython 3.7m

dukpy-0.2.2-cp36-cp36m-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.6m Windows x86-64

dukpy-0.2.2-cp36-cp36m-win32.whl (1.4 MB view details)

Uploaded CPython 3.6m Windows x86

dukpy-0.2.2-cp36-cp36m-manylinux1_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.6m

dukpy-0.2.2-cp36-cp36m-manylinux1_i686.whl (2.0 MB view details)

Uploaded CPython 3.6m

dukpy-0.2.2-cp35-cp35m-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.5m Windows x86-64

dukpy-0.2.2-cp35-cp35m-win32.whl (1.4 MB view details)

Uploaded CPython 3.5m Windows x86

dukpy-0.2.2-cp35-cp35m-manylinux1_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.5m

dukpy-0.2.2-cp35-cp35m-manylinux1_i686.whl (2.0 MB view details)

Uploaded CPython 3.5m

dukpy-0.2.2-cp34-cp34m-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.4m Windows x86-64

dukpy-0.2.2-cp34-cp34m-win32.whl (1.4 MB view details)

Uploaded CPython 3.4m Windows x86

dukpy-0.2.2-cp34-cp34m-manylinux1_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.4m

dukpy-0.2.2-cp34-cp34m-manylinux1_i686.whl (2.0 MB view details)

Uploaded CPython 3.4m

dukpy-0.2.2-cp33-cp33m-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.3m Windows x86-64

dukpy-0.2.2-cp33-cp33m-win32.whl (1.4 MB view details)

Uploaded CPython 3.3m Windows x86

dukpy-0.2.2-cp27-cp27mu-manylinux1_x86_64.whl (2.0 MB view details)

Uploaded CPython 2.7mu

dukpy-0.2.2-cp27-cp27mu-manylinux1_i686.whl (2.0 MB view details)

Uploaded CPython 2.7mu

dukpy-0.2.2-cp27-cp27m-win_amd64.whl (1.4 MB view details)

Uploaded CPython 2.7m Windows x86-64

dukpy-0.2.2-cp27-cp27m-win32.whl (1.4 MB view details)

Uploaded CPython 2.7m Windows x86

dukpy-0.2.2-cp27-cp27m-manylinux1_x86_64.whl (2.0 MB view details)

Uploaded CPython 2.7m

dukpy-0.2.2-cp27-cp27m-manylinux1_i686.whl (2.0 MB view details)

Uploaded CPython 2.7m

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

Hashes for dukpy-0.2.2.tar.gz
Algorithm Hash digest
SHA256 f9c63a0f7ae7696c4cba863e1cc45fb6c05b8f00c90eef2c2318dbea36ec3e90
MD5 d3929efe2e73cadb664de73fbf909084
BLAKE2b-256 0ed47ebef46a9fe8c5fb0227531b08867b7ab4447259fbb1c29efd41e2c1b184

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 3889a8044224d8422555f4b00926a3f1ed1ede2324378f52575bd636823c6747
MD5 232ed0be1f9192b14a2c3c00ec2335e2
BLAKE2b-256 e7deb4f1211cc73c65f01ec9bb253dd55e22667dfee612f304074937547e5355

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 7bc227439fdc9eabed11f4cded336b5f5c4a2796dcb95a071cd03cb9fe194b59
MD5 1fbdf8aa9f62f01886db024c422e8933
BLAKE2b-256 4a4a95afca526bc7b4c400379981ceee46b57ea3561592aacd0c12547b48efe5

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6277b2b36c1cc4d372d7875491eb3db8907123844e0b54af74dab0f7d02ce533
MD5 0b26e1227756b27c12e19cfbbd9f7e4d
BLAKE2b-256 ab78bd551aac0f941b96a9f83449cf24a133c8ac2a23e4301fb24855c9b8413f

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 bbd4abb6457cc08616bc869ac83cedd5f46f2ef8d0081c86940cdca9ebea07ae
MD5 36df9191d47fa87cd48beaf3364154c2
BLAKE2b-256 287eb5afedcee2a69a1a898d9b9c8e7855a48eed2c9548eedd2592abd1609cec

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 ddaaa9e9fa06e44523d36af98ccd3416cb61ffa0eeae4e763c7e0876887346be
MD5 1c058cd5bed5d3262bfa19ca535a67cc
BLAKE2b-256 1f335278eeb91ce522423e829edd19396ed41ee543ac3a37ab6f7e34644fa465

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 c64b2ad3031259688cbc5d535d75c22a4e541c251ed9c7c53f41fb06ad704840
MD5 c15d5cd15db01da7e2596317945dc561
BLAKE2b-256 16568422aa4b1aa02559d225ee7260944ecf44c288fdcdc38fa7595f8838a8ba

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 a80833e057e65de73dad6bc396d6aaa4d23683f87efe2483cd969ff3c9279aff
MD5 d541f11fea6daa656909b766affc39e9
BLAKE2b-256 32019690b743bb058559b91e1e290bad4bda68d7bc572bc1c06c77c664161436

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 f82842f38904a97981c86221a13634b9f5ebc44ffd1aa2d734300608b4b1aaf8
MD5 257f05782ffe9e32ba3a746d76930c03
BLAKE2b-256 1b9840f41170824a123ee959316a0e465484a5f2636dbd889a72ad5fe19aeac8

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 52099282c36e36548a00ce1af078b537061682713d771511160c957e4423713a
MD5 a9b836d2478a083e02caac80aa8af6ef
BLAKE2b-256 2baa9e97724606256223709b2f24788cd8e2b6094d89ea4c08c7f295f202ade7

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 7cf6fa0931fe0732a9f5857dcf144d8d96c1f7b96fef481bef7c9a9c367083fb
MD5 46f3ba53752359058e87455c898833fe
BLAKE2b-256 c5ef28fc931717e2661160ee90820e02a497ff1327f1315e445d8c35026f771e

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 a6ad1b26c3e54b0f60616ddadade1382a7b669dd4fc6e095c83b2b6b8e016833
MD5 1ce2e58786adca33806b8ed515bd0036
BLAKE2b-256 ea56deee46c12bcbfb0fae58e1585df6c920d9dfe42117e2fa80e48d06d9111b

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 7be7ccb621879ac4b409a4a5b691eeafd247916072cb6aa39e47326d020b18b8
MD5 097d3940c8644d4230a39d7c6e7740d9
BLAKE2b-256 71a52a1665fbdd0c994410ede31dd8719837d9ed7eed4e442da546d489a86990

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp34-cp34m-win_amd64.whl
Algorithm Hash digest
SHA256 b5c833e59e0d0992a8a3b5d73e0f3aaf33a32412db85c6c303feac0357e04228
MD5 fcfb7a2174ffde5d22cf9f5eb8625035
BLAKE2b-256 818246eb16c0a808cea6fe0160136cf8e2580e9026456b60503655d2aa768fdb

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp34-cp34m-win32.whl
Algorithm Hash digest
SHA256 32b1555346cd5f6695534f6a15d78d783cb4a8a081c43ca6e3ff4566b14732ef
MD5 0da6b8b74fd1911e5eeea4fdcda30258
BLAKE2b-256 2a27022d22b5b88b43b6a11bb703b23fccc357b4ce69c352c6a5a969e15dda1f

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 111ba2a22465002bbfb6572fd28f81c7c3222bdb566215ef81104bff9357caae
MD5 f121fedb48ce63e669ac15a0a96e43b5
BLAKE2b-256 5c06ec8fa89095a2d72c64c77e9b08931787dafb505db036429786404c81744e

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp34-cp34m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 b7fee6d6400e0e82d75edf5a4266394674805bc5251e01b554cb3ad2a031ee88
MD5 626c418a2f22a29157b39979ee6ba2c3
BLAKE2b-256 d700b00609332643ae031537a3af3c1bbb9c5e600ec004202027c7e22c32005c

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp33-cp33m-win_amd64.whl
Algorithm Hash digest
SHA256 3b2c868920a43d007985bca459a4bd165597e2aa7d0dad021d4c33cf6611a476
MD5 39ab0d3fba10a21c18110e957b19322d
BLAKE2b-256 2efdc8674ef14e359851f0f068fddd6724edd4021778a3a8d88684c81136d678

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp33-cp33m-win32.whl
Algorithm Hash digest
SHA256 c165f452bb2a565ff7082e1a2f17a84c5355a5a3146147ab686fe6c12d1ce04e
MD5 a0f8325228c20ff451a17e1326d82955
BLAKE2b-256 307c8d8ad4af1750f25bdb0d613442c695f464d45b10558424c8a4cc1658d935

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 2e62bb46ba6f1dc45f723a487d4c3ee2fe49502b031fcdfe7dba412243402abe
MD5 c7f4aa866a38fdfe6ddae2d2222da16a
BLAKE2b-256 0b7ad0e8d50859897284409ec2175219879475d6a9dece4947322c9f292807b3

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp27-cp27mu-manylinux1_i686.whl
Algorithm Hash digest
SHA256 b0b1b529fcdc296a92e81d80b3b52ed6365ebf7edabf8aaabac5c256e36f39b8
MD5 36008a236b9d5fc28f97bd47b0722b16
BLAKE2b-256 3a6eb3f963ebfee174a6bafb5952a486ce30ebefdb6afd5632410e71a74ad3f1

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 411ba7fb244bc1615c26b6b831662b0127d2213e094f65988f5211a0e1de0557
MD5 84c3f4c18fae04f4ec4ad89d315d2382
BLAKE2b-256 5a616cf9dd6913becb6f6111662c0efc13d1b04ab0252ea8231c1fde3f033902

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp27-cp27m-win32.whl
Algorithm Hash digest
SHA256 f8a526ec733b405e366f59c376530ce9f59797bbe6933a0ad6945628fad04626
MD5 da25b23eaa0ba97246dd18dcbaa7a7fb
BLAKE2b-256 fe04d4e9d552f9936e04ea043ecd9436eb2d11150a8d262d95540fd78c15ecbf

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 10c47bd030c4e224788496d57aef59762fd1531049db3b178a76f9fd708089b5
MD5 b623f060c07e2725f9056589bbf357e9
BLAKE2b-256 ebf17e8c42c36167637ffd78ce52d3a5cf6a39e9c395bfd97fd108e2a4c0b35e

See more details on using hashes here.

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

Hashes for dukpy-0.2.2-cp27-cp27m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 296f6c1529ad03722cd1edc5f4bdf0a59b54ed6d7fa6e766c2765dc31a089804
MD5 f39bb5b68ce2de8225435237793de009
BLAKE2b-256 d4344add34f95625d78eefc0ad122024138151576777492df54599a54b24e980

See more details on using hashes here.

Supported by

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