Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

A python module for jsend

Project Description

# What is it?

A python jsend module with simplication and modification attached.


# Note:
python version: >=3.5

(For python2.7 version, use jsend_version < 0.9, eg: https://github.com/darkdarkfruit/jsend/releases/tag/v_0.7.1)


# JSEND MODIFIED DRAFT


## Original jsend link:
[https://labs.omniti.com/labs/jsend](https://labs.omniti.com/labs/jsend)


## What's modified:
### Fields:


|--------+--------+----------+----------+-------------------------------------------------------|
| Field | type | Required | Optional | Meaning |
|--------+--------+----------+----------+-------------------------------------------------------|
| status | string | * (S/F) | | Is the response successful? |
| code | any | | * | CODE for application logic(Normally it is an integer) |
| data | any | | * | Data(payload) of the response |
| desc | any | | * | Description: normally it's a helping infomation |
| meta | any | | * | eg: servers/ips chain in distributed env. |
| | | | | |
|--------+--------+----------+----------+-------------------------------------------------------|

* Field:status is always in state: "S" or "F"(represents "Successful", "Failed"), no 3th state.
* original states: ('success', 'fail', 'error')
It's too much pain to distinguish fail or error, so 2 states("S", "F") are enough.

* (-) Removed original "message" field, as it is vague. (A whole message? A helping text?)

* (+) Add field:desc to describe this message. (The field is optional)

* (+) Add field:meta to add some meta infomation. (eg: network chain, node name, proxy info, ...)





# Install:
pip install python-jsend or (pip3 install python-jsend)
Or
download the tarbal, decompress it, then run "python setup.py install"

# Test:
> pip3 install pytest
> whereis pytest
> pytest: /usr/local/bin/pytest
> pytest --version
> This is pytest version 3.3.2, imported from /usr/local/lib/python3.6/site-packages/pytest.py
>
> pytest jsend/

* Very simple: only need to use 1 class and 2 functions.
* 1 class: Message
* 2 functions: make_successful_message, make_failed_message


* Usage: (sample)


Python 3.6.2 (default, Aug 10 2017, 10:07:10)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import jsend
...:

In [2]: jsend.__version__
...:
Out[2]: '0.9'

In [3]: msg = jsend.make_successful_message(code=0, data={'payload' : 'yes'})
...:

In [4]: msg
Out[4]:
{'code': 0,
'data': {'payload': 'yes'},
'desc': None,
'meta': None,
'status': 'S'}

In [5]: msg.dumps()
Out[5]: '{"status": "S", "code": 0, "data": {"payload": "yes"}, "desc": null, "meta": null}'

In [6]: msg.dumps(skip_none=True)
Out[6]: '{"status": "S", "code": 0, "data": {"payload": "yes"}}'

In [7]: msg_failed = jsend.make_failed_message()
...:

In [8]: msg_failed
Out[8]: {'code': None, 'data': None, 'desc': None, 'meta': None, 'status': 'F'}

In [9]: msg_failed.dumps()
Out[9]: '{"status": "F", "code": null, "data": null, "desc": null, "meta": null}'

In [10]: msg_failed.dumps(skip_none=True)
Out[10]: '{"status": "F"}'

In [11]: msg_loaded = jsend.Message.loads(msg.dumps())
...:

In [12]: msg_loaded
Out[12]:
{'code': 0,
'data': {'payload': 'yes'},
'desc': None,
'meta': None,
'status': 'S'}

In [13]: msg_loaded.data = 0

In [14]: msg_loaded = jsend.Message.loads(msg.dumps())
...:

In [15]: msg_loaded
Out[15]:
{'code': 0,
'data': {'payload': 'yes'},
'desc': None,
'meta': None,
'status': 'S'}

In [16]: msg_loaded.dumps()
Out[16]: '{"status": "S", "code": 0, "data": {"payload": "yes"}, "desc": null, "meta": null}'

In [17]: msg_loaded.dumps(skip_none=True)
Out[17]: '{"status": "S", "code": 0, "data": {"payload": "yes"}}'

In [18]:

Release History

This version
History Node

0.9.2

History Node

0.7.1

History Node

0.7

History Node

0.6

History Node

0.5.1

History Node

0.5

History Node

0.4.1

History Node

0.3

History Node

0.2.4

History Node

0.2.2

History Node

0.2.1

History Node

0.2

History Node

0.1.7

Download Files

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

File Name & Hash SHA256 Hash Help Version File Type Upload Date
python-jsend-0.9.2.tar.gz
(149.9 kB) Copy SHA256 Hash SHA256
Source Jan 10, 2018

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting