The Wayback Machine - https://web.archive.org/web/20201121033417/https://github.com/schlarpc/ion-python
Skip to content
master
Go to file
Code
This branch is 16 commits behind amzn:master.

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Amazon Ion Python

An implementation of Amazon Ion for Python.

Build Status Documentation Status

This package is designed to work with Python 2.7+ and Python 3.4+

Getting Started

Start with the simpleion module, which provides four APIs (dump, dumps, load, loads) that will be familiar to users of Python's built-in JSON parsing module.

For example:

>>> import amazon.ion.simpleion as ion
>>> obj = ion.loads('{abc: 123}')
>>> obj['abc']
123
>>> ion.dumps(obj, binary=False)
'$ion_1_0 {abc:123}'

Git Setup

This repository contains a git submodule called ion-tests, which holds test data used by ion-python's unit tests.

The easiest way to clone the ion-python repository and initialize its ion-tests submodule is to run the following command.

$ git clone --recursive https://github.com/amzn/ion-python.git ion-python

Alternatively, the submodule may be initialized independently from the clone by running the following commands.

$ git submodule init
$ git submodule update

Development

It is recommended to use venv to create a clean environment to build/test Ion Python.

$ python3 -m venv ./venv
...
$ . venv/bin/activate
$ pip install -r requirements.txt
$ pip install -e .

You can also run the tests through setup.py or py.test directly.

$ python setup.py test

Tox Setup

In order to verify that all platforms we support work with Ion Python, we use a combination of tox with pyenv.

Install relevant versions of Python:

$ for V in 2.7.16 3.4.10 3.5.7 3.6.8 3.7.3 pypy2.7-7.1.1 pypy3.6-7.1.1; do pyenv install $V; done

Once you have these installations, add them as a local pyenv configuration

$ pyenv local 2.7.16 3.4.10 3.5.7 3.6.8 3.7.3 pypy2.7-7.1.1 pypy3.6-7.1.1

Assuming you have pyenv properly set up (making sure pyenv init is evaluated into your shell), you can now run tox:

# Run tox for all versions of python which executes py.test.
$ tox

# Run tox for just Python 2.7 and 3.5.
$ tox -e py27,py35

# Run tox for a specific version and run py.test with high verbosity
$ tox -e py27 -- py.test -vv

# Run tox for a specific version and just the virtual env REPL.
$ tox -e py27 -- python

TODO

The following build, deployment, or release tasks are required:

  • Add support for code coverage reporting.
  • Improve documentation around setup/development/contribution/getting started.
  • Consider using something like PyPy.js to build an interactive shell for playing with Ion python and provide a client-side Ion playground.

About

A Python Implementation of Amazon Ion.

Resources

License

Packages

No packages published

Languages

You can’t perform that action at this time.