python-bsonjs
- Info:
See github for the latest source.
- Author:
Shane Harvey <shane.harvey@mongodb.com>
About
A fast BSON to MongoDB Extended JSON converter for Python.
Installation
python-bsonjs can be installed with pip:
$ python -m pip install python-bsonjs
Examples
>>> import bsonjs
>>> bson_bytes = bsonjs.loads('{"hello": "world"}')
>>> bson_bytes
'\x16\x00\x00\x00\x02hello\x00\x06\x00\x00\x00world\x00\x00'
>>> bsonjs.dumps(bson_bytes)
'{ "hello" : "world" }'
Using bsonjs with pymongo to insert a RawBSONDocument.
>>> import bsonjs
>>> from pymongo import MongoClient
>>> from bson.raw_bson import RawBSONDocument
>>> client = MongoClient("localhost", 27017, document_class=RawBSONDocument)
>>> db = client.test
>>> bson_bytes = bsonjs.loads('{"_id": 1, "x": 2}')
>>> bson_bytes
'\x15\x00\x00\x00\x10_id\x00\x01\x00\x00\x00\x10x\x00\x02\x00\x00\x00\x00'
>>> result = db.test.insert_one(RawBSONDocument(bson_bytes))
>>> result.inserted_id # NOTE: inserted_id is None
>>> result.acknowledged
True
>>> raw_doc = db.test.find_one({'x': 2})
>>> raw_doc.raw == bson_bytes
True
>>> bsonjs.dumps(raw_doc.raw)
'{ "_id" : 1, "x" : 2 }'
Speed
bsonjs is roughly 10-15x faster than PyMongo’s json_util at decoding BSON to JSON and encoding JSON to BSON. See benchmark.py:
$ python benchmark.py Timing: bsonjs.dumps(b) 10000 loops, best of 3: 0.110911846161 Timing: json_util.dumps(bson.BSON(b).decode()) 10000 loops, best of 3: 1.46571397781 bsonjs is 13.22x faster than json_util Timing: bsonjs.loads(j) 10000 loops, best of 3: 0.0628039836884 Timing: bson.BSON().encode(json_util.loads(j)) 10000 loops, best of 3: 0.683200120926 bsonjs is 11.72x faster than json_util
Installing From Source
python-bsonjs supports CPython 2.6, 2.7, and 3.3+.
Compiler
You must build python-bsonjs separately for each version of Python. On Windows this means you must use the same C compiler your Python version was built with.
Python 2.6 and 2.7 require Microsoft Visual C++ Compiler for Python 2.7
Python 3.3 and 3.4 require Microsoft Visual Studio 2010 Professional
Python 3.5 and up requires Microsoft Visual Studio 2015
Source
Note that this repository contains a git submodule. You must initialize the submodule by using:
$ git clone --recursive https://github.com/mongodb-labs/python-bsonjs.git
Or, if your version of git does not have clone --recursive:
$ git clone https://github.com/mongodb-labs/python-bsonjs.git $ cd python-bsonjs $ git submodule update --init --recursive
Install
Once you have the source properly downloaded, build and install the package:
$ python setup.py install
Test
To run the test suite:
$ python setup.py test
Metadata
Release files for python-bsonjs 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| python-bsonjs-0.1.0.tar.gz | 142.0 kB | Without provenance | Details for python-bsonjs-0.1.0.tar.gz |
Built distributions (wheels)
Total release size: 4.2 MB
Release files / python-bsonjs-0.1.0.tar.gz
| Download URL | python-bsonjs-0.1.0.tar.gz |
|---|---|
| Size | 142.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
09acbb7617c3d2e275e29a157cb40ff3e3c0561230581316d141eba7df3fc14f
|
|
BLAKE2b-256 checksum How to use checksums |
dd851897718b503b45f421450e4f0ed18bc11a179c8ffe1c67356a6ce6169c51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp35-cp35m-manylinux1_x86_64.whl
| Download URL | python_bsonjs-0.1.0-cp35-cp35m-manylinux1_x86_64.whl |
|---|---|
| Size | 256.5 kB |
| Tags | CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
2911a930bf2c1799247af26651f6e4a1be40861de857486ad2f2ff2b9451fbf7
|
|
BLAKE2b-256 checksum How to use checksums |
e8fd9a87bab77f7db6002aa75dace17a39751c73aabe43ed9a825ce78c752b91
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp35-cp35m-manylinux1_i686.whl
| Download URL | python_bsonjs-0.1.0-cp35-cp35m-manylinux1_i686.whl |
|---|---|
| Size | 235.0 kB |
| Tags | CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
d63ed960c947f4c629be2356de66c01385a5f4c3253e4908a4ae65080c4ac4ce
|
|
BLAKE2b-256 checksum How to use checksums |
69a02a9324609862b4628e13408fc36ba3382ce71743be7c7aed96cdf28944a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp35-cp35m-macosx_10_6_intel.whl
| Download URL | python_bsonjs-0.1.0-cp35-cp35m-macosx_10_6_intel.whl |
|---|---|
| Size | 156.9 kB |
| Tags | CPython 3.5 CPython 3.5 pymalloc macOS 10.6+ Intel (x86-64, i386) |
|
SHA-256 checksum How to use checksums |
e1a20b0eb45a42ce22de23ef6462b36f8264fa2a2ddaec34f1004b5800b0e599
|
|
BLAKE2b-256 checksum How to use checksums |
f57645881e31017e88e7c90d65666a8c85f3c53c5e16a708236851f4a8a6633e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp34-cp34m-manylinux1_x86_64.whl
| Download URL | python_bsonjs-0.1.0-cp34-cp34m-manylinux1_x86_64.whl |
|---|---|
| Size | 256.3 kB |
| Tags | CPython 3.4 CPython 3.4 pymalloc Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
6d0968ea150522e554f8c9e83b06c4b26de6a045d36188b9052f9adc007add86
|
|
BLAKE2b-256 checksum How to use checksums |
dbe6961e2720c99eec5f27c641df25322c10d1dad6b590dde9be54dddd189c4b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp34-cp34m-manylinux1_i686.whl
| Download URL | python_bsonjs-0.1.0-cp34-cp34m-manylinux1_i686.whl |
|---|---|
| Size | 234.8 kB |
| Tags | CPython 3.4 CPython 3.4 pymalloc Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
08ef69d103e7f0499bd924f164834f1a1251515bf4d865b4380f06f441b3f1de
|
|
BLAKE2b-256 checksum How to use checksums |
c96fc6675b645c1defaa0ec973677dcf3dc4c464c2b25ef69cecb125af5bcb81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp34-cp34m-macosx_10_6_intel.whl
| Download URL | python_bsonjs-0.1.0-cp34-cp34m-macosx_10_6_intel.whl |
|---|---|
| Size | 156.8 kB |
| Tags | CPython 3.4 CPython 3.4 pymalloc macOS 10.6+ Intel (x86-64, i386) |
|
SHA-256 checksum How to use checksums |
bb3d521a5c1cf741fe301b457ac5f149583326ec98d47984efeadad2bf578dc2
|
|
BLAKE2b-256 checksum How to use checksums |
3c24810020c55191e8f6befbbfddaa49a47d410c841d787477ed54d94ae320ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp33-cp33m-manylinux1_x86_64.whl
| Download URL | python_bsonjs-0.1.0-cp33-cp33m-manylinux1_x86_64.whl |
|---|---|
| Size | 256.2 kB |
| Tags | CPython 3.3 CPython 3.3 pymalloc Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
fda53c6a1b2332bf15cfaf638fb4b18a26f56cd1def555bd3617c6dabc24b47b
|
|
BLAKE2b-256 checksum How to use checksums |
96aebac24502a57dae8ff734441620ad4eb92ec68c71420a46971dc619ce5fa0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp33-cp33m-manylinux1_i686.whl
| Download URL | python_bsonjs-0.1.0-cp33-cp33m-manylinux1_i686.whl |
|---|---|
| Size | 234.8 kB |
| Tags | CPython 3.3 CPython 3.3 pymalloc Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
2b5f8eabc9e5589d768f489b86ae87862550e3df1f1929242657f52927455ebd
|
|
BLAKE2b-256 checksum How to use checksums |
d57f6fb7ba5a2eebe94f63d7520a53fd8320ab17e2d48b5a498f9cf34e77d643
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp27-cp27mu-manylinux1_x86_64.whl
| Download URL | python_bsonjs-0.1.0-cp27-cp27mu-manylinux1_x86_64.whl |
|---|---|
| Size | 255.2 kB |
| Tags | CPython 2.7 CPython 2.7 pymalloc wide-unicode Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
791422eda169d99815c029aaf2bd1239e07658d7a6651ed8a3dbb5e9f9256669
|
|
BLAKE2b-256 checksum How to use checksums |
effb7dd3a20a50c0af376246fa0c915bc343a838b048b0ca937666ee72bb7b9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp27-cp27mu-manylinux1_i686.whl
| Download URL | python_bsonjs-0.1.0-cp27-cp27mu-manylinux1_i686.whl |
|---|---|
| Size | 234.6 kB |
| Tags | CPython 2.7 CPython 2.7 pymalloc wide-unicode Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
a4361b14599bb5dd5ac66f436ece3226e2f3c0b245506d2c462019f021fad117
|
|
BLAKE2b-256 checksum How to use checksums |
9c3765bc49ff82ee67e2bb0a3149d314831fdf9fb0250cf7dfecd476bcc74c9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp27-cp27m-manylinux1_x86_64.whl
| Download URL | python_bsonjs-0.1.0-cp27-cp27m-manylinux1_x86_64.whl |
|---|---|
| Size | 255.2 kB |
| Tags | CPython 2.7 CPython 2.7 pymalloc Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
4c512277137002c6faf1ddae9cf9edfeb7b6a6e5638088f3e62caef6c55182c6
|
|
BLAKE2b-256 checksum How to use checksums |
91a4f6f1ca1418a6da0dbd18dd0f6bd3572dba2c984774a63d43604ffac7ac82
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp27-cp27m-manylinux1_i686.whl
| Download URL | python_bsonjs-0.1.0-cp27-cp27m-manylinux1_i686.whl |
|---|---|
| Size | 234.6 kB |
| Tags | CPython 2.7 CPython 2.7 pymalloc Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
cdf913f20df3116d4d6f8e5b3032d00cb99135ddedcca54df737a0d6c3c33642
|
|
BLAKE2b-256 checksum How to use checksums |
93ca151884cee640b16c1fc68918c2cae37f32fbf19e05b7aa68c1b08b7270d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp27-cp27m-macosx_10_11_intel.whl
| Download URL | python_bsonjs-0.1.0-cp27-cp27m-macosx_10_11_intel.whl |
|---|---|
| Size | 143.1 kB |
| Tags | CPython 2.7 CPython 2.7 pymalloc macOS 10.11+ Intel (x86-64, i386) |
|
SHA-256 checksum How to use checksums |
cc208edecf07f5ac02c1011add1ff309240d28c549f3d679a51d4127f985f18d
|
|
BLAKE2b-256 checksum How to use checksums |
a9717fbd04eb96d27a96caf1a46ea9422308cd8fdce6033c83abedac615d156b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp26-cp26mu-manylinux1_x86_64.whl
| Download URL | python_bsonjs-0.1.0-cp26-cp26mu-manylinux1_x86_64.whl |
|---|---|
| Size | 255.2 kB |
| Tags | CPython 2.6 CPython 2.6 pymalloc wide-unicode Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
7cdc9ab80e0350c2b3ef0e88223842b13028cf2411f2f92a7a7877526b97a292
|
|
BLAKE2b-256 checksum How to use checksums |
e3122a1da73cb32a1f835ef35254fc91cc2fcca2362d3acf9c76d233f2aae2df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp26-cp26mu-manylinux1_i686.whl
| Download URL | python_bsonjs-0.1.0-cp26-cp26mu-manylinux1_i686.whl |
|---|---|
| Size | 234.6 kB |
| Tags | CPython 2.6 CPython 2.6 pymalloc wide-unicode Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
e7daec1d6deca3224ae94f7be067984cfdfc82f6b157a8dcd258889b19003c40
|
|
BLAKE2b-256 checksum How to use checksums |
a4a3d083aa07631558a9bdedf581e8e01177153782e10f46e93c3973df40d2a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp26-cp26m-manylinux1_x86_64.whl
| Download URL | python_bsonjs-0.1.0-cp26-cp26m-manylinux1_x86_64.whl |
|---|---|
| Size | 255.2 kB |
| Tags | CPython 2.6 CPython 2.6 pymalloc Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
693f62b8adda158599be1a9cd001b75e354250ac848ae928fef6dea6b82bb0b8
|
|
BLAKE2b-256 checksum How to use checksums |
e8f8df42b1ae77346deae8efdc8e1a362fbd3054f9d2d63da19907e8765c62ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp26-cp26m-manylinux1_i686.whl
| Download URL | python_bsonjs-0.1.0-cp26-cp26m-manylinux1_i686.whl |
|---|---|
| Size | 234.6 kB |
| Tags | CPython 2.6 CPython 2.6 pymalloc Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
a6f0f704b986dd762b59f5ad289bd584d796e4160d46ec99f6dff1fc228fb6db
|
|
BLAKE2b-256 checksum How to use checksums |
1d6e6059b62dd2739b54646d8c01992019760edef0843acf6e1dc98619891da4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / python_bsonjs-0.1.0-cp26-cp26m-macosx_10_11_intel.whl
| Download URL | python_bsonjs-0.1.0-cp26-cp26m-macosx_10_11_intel.whl |
|---|---|
| Size | 143.1 kB |
| Tags | CPython 2.6 CPython 2.6 pymalloc macOS 10.11+ Intel (x86-64, i386) |
|
SHA-256 checksum How to use checksums |
ca4f6f2af5806c0834dcd6882c29dfb663b9f03bbcce6952566bec0482ca770d
|
|
BLAKE2b-256 checksum How to use checksums |
9b4e00c1acecd23414d23e172e92612ae94425ef182c39d83d44a0228f9d2b93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for python-bsonjs 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.