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.1.tar.gz (2.0 MB view details)

Uploaded Source

Built Distributions

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

Uploaded CPython 3.7m Windows x86-64

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

Uploaded CPython 3.7m Windows x86

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

Uploaded CPython 3.7m

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

Uploaded CPython 3.7m

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

Uploaded CPython 3.6m Windows x86-64

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

Uploaded CPython 3.6m Windows x86

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

Uploaded CPython 3.6m

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

Uploaded CPython 3.6m

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

Uploaded CPython 3.5m Windows x86-64

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

Uploaded CPython 3.5m Windows x86

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

Uploaded CPython 3.5m

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

Uploaded CPython 3.5m

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

Uploaded CPython 3.4m Windows x86-64

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

Uploaded CPython 3.4m Windows x86

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

Uploaded CPython 3.4m

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

Uploaded CPython 3.4m

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

Uploaded CPython 3.3m Windows x86-64

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

Uploaded CPython 3.3m Windows x86

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

Uploaded CPython 2.7mu

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

Uploaded CPython 2.7mu

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

Uploaded CPython 2.7m Windows x86-64

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

Uploaded CPython 2.7m Windows x86

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

Uploaded CPython 2.7m

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

Uploaded CPython 2.7m

File details

Details for the file dukpy-0.2.1.tar.gz.

File metadata

  • Download URL: dukpy-0.2.1.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.1.tar.gz
Algorithm Hash digest
SHA256 cbba937acd4752c6a99fe2e0614c195ed6ef6543fe6f8b45f5332a9df546c2cb
MD5 ac531742ddb2b4a561e196b032de97e8
BLAKE2b-256 e113c3a0c8773fc1b3eeab36c5d64d77010a06da767110f2666669123a5597d5

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 0b644cd674229052489a5de71c03d2c1cb0a4fafaadaaa45f6dd57a1ec5b50c0
MD5 ee687c8a71cc7da33fd9795caf46410c
BLAKE2b-256 12b253bd867ba2c2bef3f4904c82b6646da06c7607e64049ecca2dbfffea6886

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp37-cp37m-win32.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 038e6bfb15a5cf43fb96477159f5fde19f44ad78abdfdb891828861f36ba7e71
MD5 a7a385e03de139dc3b93260185d2b955
BLAKE2b-256 b8a4b4a4949ba0083c22e7c7d4153ffccce1a2c221cdaa5bfd3eb0cae384277c

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d6ac1ae4659932bd4612d6933d7d975b430c0219de99b31a10e9fea88861c856
MD5 443c9aadf1d78f53267692753e387f47
BLAKE2b-256 d8183e83feeeae94687febd29079e89cef13b6dd1ba34ac073b2d40356879858

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp37-cp37m-manylinux1_i686.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 0299d1ef3af0afb85d3a456441ebe9b9d6a86d5805e0e55a4a6797178276d802
MD5 a62e242d42cd31e2189a7261e0948ba6
BLAKE2b-256 6b922a877a15d506b38254d74f3eec465520796d82b85330ac99b128573c9461

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 f96062f609fdcc01595782952afbbe00aff22db496ad09b63ac7075b15bb9c63
MD5 383d298327abee3d9931d0121a116f1c
BLAKE2b-256 b0a790ea5b5668b3aeb984e13f8d03bbc39f79bc3f098892eec87d4a36722cb3

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp36-cp36m-win32.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 b66b1c8e5497682b40255f312f2a2fee7c368f563aa315d1e5dfd439341a8f7a
MD5 d022a1d1c3f27c5c853207d6dc207e78
BLAKE2b-256 d18b8654ad6ca7258724cd9d6aaae39cd88dee397d4a722b62d03e6f8497a205

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 c51928dcbc0cc2ccd56326de01e46b2ff3ba8871b030987c8796b429aa62bb59
MD5 54af309a9623918427ffbec4f3a2349b
BLAKE2b-256 a1f047aabb473a83f9440c554a8fa58ba2cb6285f687f5d2100dc319daa10172

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp36-cp36m-manylinux1_i686.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 16f504d1fc896d23ab306d9dd84c584b66f63de6725afb2409f8bc2eb04a019b
MD5 e64c5cce4876e5af6db59ca0abd8d992
BLAKE2b-256 1bb88f89627cc6dc01eb0066b5af3ccd4fee46bec2ab85eef36fa3cd952a0423

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 6f35f80f07a823efbff180fd1173e3f1fd98e41c409a1a846eacf17aaebc1281
MD5 8136664a19bb2d4680d7ba093f42e9e2
BLAKE2b-256 a8e3d31a914f1ae5f9742493eadbb6a13e5a9613e667a70bd50683df4fa624f0

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp35-cp35m-win32.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 848902b281feef7c1be4d37731f243124930f12a5dc408392612e5e9a450fa2a
MD5 55a8cb17d1416e291c84a0e182c60091
BLAKE2b-256 df025c26b4a22302dfd35cb16da5f8af3ba33bed63f7d89d5c464b8af20cad2e

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 baab63d3b050eb6c17857e6543824d03243fbef98c964fb4836ec0a22068aa7d
MD5 d816a7d59ffd7822ed863a6d2d1dabd4
BLAKE2b-256 81be6ddbffac15416786ddbd8b8986a0c94233dcaa17d850862bad03a661561b

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp35-cp35m-manylinux1_i686.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 90fbf06d73610fa4c96c62c6e861afb465b467767ca725517645d2adaafce853
MD5 64b951340f9c488a4fa3c8d0c13de473
BLAKE2b-256 995bf91a1626688f206c645c90fc14ce1964483192998e89077c9a6aae1297ab

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp34-cp34m-win_amd64.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp34-cp34m-win_amd64.whl
Algorithm Hash digest
SHA256 a68c802790d23495b708fa5f465beb0b88e46d8bfe61f4b43fbc15b819dbcc3f
MD5 d9b007a2a73ae4966fcdcf22145e8b33
BLAKE2b-256 003f66bcbd38bddc40113beb665bcba93b76c5c2d112dbe58e0ace1bbcd73d50

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp34-cp34m-win32.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp34-cp34m-win32.whl
Algorithm Hash digest
SHA256 a448967be18fe09c6e6a5dc05ea6831c4e3a0e572186fafdd1a440b0dfd3b59f
MD5 9444bea34039f9515b35a088d8745e39
BLAKE2b-256 2c486f7403bcbfd4a2b449b1edd2395936de871dc442754e03515cb720251ba4

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp34-cp34m-manylinux1_x86_64.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 ebaf1ecd4b2d2531a46eaf643097eb69f4bd07da192c9e6f828cbdd0ec9525e3
MD5 f43680f34cc6e21605258c7b6fc6f79e
BLAKE2b-256 4c48ce06fec8bf0d1a95156e516e3471d501839978dade1c52ca39ed913051ec

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp34-cp34m-manylinux1_i686.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp34-cp34m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 e9d364bd2f07d281434edb0ab6014420c6fa683764a0d220442672c297bb00ef
MD5 ac7873ae354d0166456e909bd1b85ade
BLAKE2b-256 9ad5cd524d7f7d55285750ebb1b9333d792188e52a114a7b7db75f24bf093dac

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp33-cp33m-win_amd64.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp33-cp33m-win_amd64.whl
Algorithm Hash digest
SHA256 d558edb088caa7c72f58a2e6dfbef033bace022158fe724690f2dae8e8499adb
MD5 f9fca2362bb8af564e966409eebcfee1
BLAKE2b-256 bfbc29480d4039f3ebd68ee6fff0cacad668e99d521d0690842325d143e56f11

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp33-cp33m-win32.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp33-cp33m-win32.whl
Algorithm Hash digest
SHA256 d591ecdcfcdeeb6a13212f17b061dbeb92211c3ffbd9f727b3be3a10cd64bd44
MD5 d53e7aedcda2da1db9481dcfadd2b3c8
BLAKE2b-256 3bb188ac6f840c6563eb5cb99605d7add09618bd51250c42da381d1cced35c90

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp27-cp27mu-manylinux1_x86_64.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 ab76fbe68b6452f91b8c638d9cc6f64b733e182e827db0b44ce3cf1563a7deb2
MD5 9c88bc37d295fcf65c17716edb496942
BLAKE2b-256 b2f10f05e64ad7a6fda26e55df9f4d8f5246ddf62cd41602100b38d8c292ea12

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp27-cp27mu-manylinux1_i686.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp27-cp27mu-manylinux1_i686.whl
Algorithm Hash digest
SHA256 01411bba91ebcabefbca9fa4b5aa1d308823be13d0e97b14a1329e07f03d4ffc
MD5 895d443b106a18c1c097ee66607699e5
BLAKE2b-256 523d7987fe56323c06753dbf9254cae21eeae8009ab616e52aa56f17076a64e6

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp27-cp27m-win_amd64.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 19308bb772fef6279fa0df1b954401af1a625086f39025fde1ea66fa23ca2f53
MD5 6517c42b25687ad04c6810c601827e48
BLAKE2b-256 85a486dad3ccb6755305d8769ea7b97e913c0d629391f0317af785c9eae32376

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp27-cp27m-win32.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp27-cp27m-win32.whl
Algorithm Hash digest
SHA256 8d2cf0f1dd86c85e6b2596d25b43a77e11c68a8f29bac4192dd4e0614f47b8d2
MD5 6a58456c6c918b0ef3805dd48cfdd7dc
BLAKE2b-256 32847057ea549886960623a501e737f362e938592195d51c48acdb478efdfffe

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp27-cp27m-manylinux1_x86_64.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 89d0a34f1fdab2ed30e9d9baa2db31b7c94c4e7a95b7707f73aadfade039b8b9
MD5 58a5b31c90e5b69b9995cbcb5e5a0f41
BLAKE2b-256 8fcd9f994ed589f36e82d556f676c06a6a80aa644c91e7070bdb70af5b0515e4

See more details on using hashes here.

File details

Details for the file dukpy-0.2.1-cp27-cp27m-manylinux1_i686.whl.

File metadata

  • Download URL: dukpy-0.2.1-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.1-cp27-cp27m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 d5c95bec24bae0f2bcaf82f97605c0679391b01af90072540dd1357886986df3
MD5 801b0cfce1b3260a0bc28b3618d9b0af
BLAKE2b-256 bd5469577aaacb49985af89f84588e2ed9167732532acc4a1d90040ab8ea9df9

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