json-timeseries


Namejson-timeseries JSON
Version 0.1.5 PyPI version JSON
download
home_pagehttps://github.com/slaxor505/json-timeseries-py
SummaryJSON-TimeSeries (JTS specification) handling library
upload_time2024-04-09 12:10:19
maintainerNone
docs_urlNone
authorSlava Pisarevskiy
requires_python>=3.9
licenseMIT
keywords json timeseries iot jts
VCS
bugtrack_url
requirements python-dateutil
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # JSON Time Series

[![Documentation Status](https://readthedocs.org/projects/json-timeseries-py/badge/?version=latest)](https://json-timeseries-py.readthedocs.io/en/latest/?badge=latest)
[![PyPI version](https://badge.fury.io/py/json-timeseries.svg)](https://badge.fury.io/py/json-timeseries)

[JSON Time Series](https://docs.eagle.io/en/latest/reference/historic/jts.html) (JTS specification) handling Python library - Time Series data construction, manipulation and serialisation.

## Installation

```shell
pip install json-timeseries
```

Import or require module
```python
from json_timeseries import TsRecord, TimeSeries, JtsDocument
```

## Usage

```python
from json_timeseries import TsRecord, TimeSeries, JtsDocument
from datetime import datetime

# Create Time Series
timeseries1 = TimeSeries(identifier='series_1', name='Series 1', data_type='NUMBER', 
    records=[
    TsRecord(**{"timestamp": datetime.now(), "value": '1.23', "quality": 192, "annotation": 'comment'}),
    TsRecord(**{"timestamp": datetime.now(), "value": '2.34', "quality": 245, "annotation": 'comment number 2'})])

timeseries2 = TimeSeries(identifier='series_2', name='Series 2', data_type='NUMBER', units="C", 
                         records=TsRecord(timestamp=datetime.now(), value=1.11, quality=111, annotation="comment ts2 111")
                         )

# Add record(s)
timeseries1.insert(TsRecord(**{ timestamp: datetime.now(), value: 30 }))

# Output in JSON Time Series document format
jts_doc = JtsDocument([timeseries1, timeseries2])
json_str = jts_doc.toJSONString()
````

## TimeSeries
`TimeSeries` is a class for constructing and manipulating a single dataset.

```python
from json_timeseries import TsRecord, TimeSeries
from datetime import datetime

time_series = TimeSeries(identifier='series_2', name='Series 2', data_type='NUMBER', units="m/s", 
                         records=TsRecord(timestamp=datetime.now(), value=1.11, quality=0, annotation="example comment")
                         )
```
### Options
Optionally provide configuration used for certain output formats such as JTS Document. 
- `data_type`: data type of record **value** attribute. `NUMBER | TEXT | TIME | COORDINATES`
- `id`: string or number to uniquely identify the series to use instead of the automatically assigned id.
- `name`: string
- `units`: string
- `records`: list of data records
  
Alternatively set later:
```python
time_series.data_type = 'NUMBER'
time_series.id = 'Series_1'
time_series.name = 'My Series'
time_series.units = 'm/s'
```

## TsRecord
`TsRecord` is a class for constructing and manipulating a single record.

```python
from json_timeseries import TsRecord
from datetime import datetime

ts_record1 = TsRecord(timestamp=datetime.now(), value=1.11, quality=0, annotation="example comment")
# Or as dict of parameters using ** operator
ts_record2 = TsRecord(**{"timestamp": datetime.now(), "value": 1.11, "quality": 0, "annotation": 'example comment'})
```
### Record attributes
Records require a timestamp and at least one attribute: value, quality or annotation
- `timestamp`: date object. Type of datetime. e.g.`datetime.now()`
- `value` *(optional)*:  number, string, date, null
- `quality` *(optional)*: number (quality code) associated with value
- `annotation` (optional): string description or comment related to the record

### Methods 

See [full documentation](https://json-timeseries-py.readthedocs.io).

### Properties

See [full documentation](https://json-timeseries-py.readthedocs.io).



## JTS Document

`JtsDocument` is a class for outputting `TimeSeries` in 
[JSON Time Series](https://docs.eagle.io/en/latest/reference/historic/jts.html) document format.


```python
# Create a JTS Document from one or more timeseries
jts_document = JtsDocument(series=[timeseries1, timeseries2])
# Output series in JTS Document format
json_str = jts_document.toJSONString()
```

### Options

- `series`: array of `TimeSeries` to include in JTS Document

### Methods 

See [full documentation](https://json-timeseries-py.readthedocs.io).

### Properties

See [full documentation](https://json-timeseries-py.readthedocs.io).

## License
MIT

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/slaxor505/json-timeseries-py",
    "name": "json-timeseries",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "json, timeseries, iot, jts",
    "author": "Slava Pisarevskiy",
    "author_email": "slava@plantbook.io",
    "download_url": "https://files.pythonhosted.org/packages/c2/95/ab16848b61b8078b14dc1f9df51927cf8add4bd4b727aa7d93178171c06a/json_timeseries-0.1.5.tar.gz",
    "platform": null,
    "description": "# JSON Time Series\n\n[![Documentation Status](https://readthedocs.org/projects/json-timeseries-py/badge/?version=latest)](https://json-timeseries-py.readthedocs.io/en/latest/?badge=latest)\n[![PyPI version](https://badge.fury.io/py/json-timeseries.svg)](https://badge.fury.io/py/json-timeseries)\n\n[JSON Time Series](https://docs.eagle.io/en/latest/reference/historic/jts.html) (JTS specification) handling Python library - Time Series data construction, manipulation and serialisation.\n\n## Installation\n\n```shell\npip install json-timeseries\n```\n\nImport or require module\n```python\nfrom json_timeseries import TsRecord, TimeSeries, JtsDocument\n```\n\n## Usage\n\n```python\nfrom json_timeseries import TsRecord, TimeSeries, JtsDocument\nfrom datetime import datetime\n\n# Create Time Series\ntimeseries1 = TimeSeries(identifier='series_1', name='Series 1', data_type='NUMBER', \n    records=[\n    TsRecord(**{\"timestamp\": datetime.now(), \"value\": '1.23', \"quality\": 192, \"annotation\": 'comment'}),\n    TsRecord(**{\"timestamp\": datetime.now(), \"value\": '2.34', \"quality\": 245, \"annotation\": 'comment number 2'})])\n\ntimeseries2 = TimeSeries(identifier='series_2', name='Series 2', data_type='NUMBER', units=\"C\", \n                         records=TsRecord(timestamp=datetime.now(), value=1.11, quality=111, annotation=\"comment ts2 111\")\n                         )\n\n# Add record(s)\ntimeseries1.insert(TsRecord(**{ timestamp: datetime.now(), value: 30 }))\n\n# Output in JSON Time Series document format\njts_doc = JtsDocument([timeseries1, timeseries2])\njson_str = jts_doc.toJSONString()\n````\n\n## TimeSeries\n`TimeSeries` is a class for constructing and manipulating a single dataset.\n\n```python\nfrom json_timeseries import TsRecord, TimeSeries\nfrom datetime import datetime\n\ntime_series = TimeSeries(identifier='series_2', name='Series 2', data_type='NUMBER', units=\"m/s\", \n                         records=TsRecord(timestamp=datetime.now(), value=1.11, quality=0, annotation=\"example comment\")\n                         )\n```\n### Options\nOptionally provide configuration used for certain output formats such as JTS Document. \n- `data_type`: data type of record **value** attribute. `NUMBER | TEXT | TIME | COORDINATES`\n- `id`: string or number to uniquely identify the series to use instead of the automatically assigned id.\n- `name`: string\n- `units`: string\n- `records`: list of data records\n  \nAlternatively set later:\n```python\ntime_series.data_type = 'NUMBER'\ntime_series.id = 'Series_1'\ntime_series.name = 'My Series'\ntime_series.units = 'm/s'\n```\n\n## TsRecord\n`TsRecord` is a class for constructing and manipulating a single record.\n\n```python\nfrom json_timeseries import TsRecord\nfrom datetime import datetime\n\nts_record1 = TsRecord(timestamp=datetime.now(), value=1.11, quality=0, annotation=\"example comment\")\n# Or as dict of parameters using ** operator\nts_record2 = TsRecord(**{\"timestamp\": datetime.now(), \"value\": 1.11, \"quality\": 0, \"annotation\": 'example comment'})\n```\n### Record attributes\nRecords require a timestamp and at least one attribute: value, quality or annotation\n- `timestamp`: date object. Type of datetime. e.g.`datetime.now()`\n- `value` *(optional)*:  number, string, date, null\n- `quality` *(optional)*: number (quality code) associated with value\n- `annotation` (optional): string description or comment related to the record\n\n### Methods \n\nSee [full documentation](https://json-timeseries-py.readthedocs.io).\n\n### Properties\n\nSee [full documentation](https://json-timeseries-py.readthedocs.io).\n\n\n\n## JTS Document\n\n`JtsDocument` is a class for outputting `TimeSeries` in \n[JSON Time Series](https://docs.eagle.io/en/latest/reference/historic/jts.html) document format.\n\n\n```python\n# Create a JTS Document from one or more timeseries\njts_document = JtsDocument(series=[timeseries1, timeseries2])\n# Output series in JTS Document format\njson_str = jts_document.toJSONString()\n```\n\n### Options\n\n- `series`: array of `TimeSeries` to include in JTS Document\n\n### Methods \n\nSee [full documentation](https://json-timeseries-py.readthedocs.io).\n\n### Properties\n\nSee [full documentation](https://json-timeseries-py.readthedocs.io).\n\n## License\nMIT\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "JSON-TimeSeries (JTS specification) handling library",
    "version": "0.1.5",
    "project_urls": {
        "Documentation": "https://json-timeseries-py.readthedocs.io",
        "Homepage": "https://github.com/slaxor505/json-timeseries-py",
        "Source": "https://github.com/slaxor505/json-timeseries-py",
        "Specification": "https://docs.eagle.io/en/latest/reference/historic/jts.html"
    },
    "split_keywords": [
        "json",
        " timeseries",
        " iot",
        " jts"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "58d673ff193c4adde7eb56abe5b8e4acb2f5eb6745c3949b2dd15442b58d5637",
                "md5": "635985c6e890ffdd3ea9f2e06dec17cf",
                "sha256": "e50df174449f520cf8867329d497827efc814432665c3a7857ad9cfc2ce2cfea"
            },
            "downloads": -1,
            "filename": "json_timeseries-0.1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "635985c6e890ffdd3ea9f2e06dec17cf",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 9074,
            "upload_time": "2024-04-09T12:10:14",
            "upload_time_iso_8601": "2024-04-09T12:10:14.855725Z",
            "url": "https://files.pythonhosted.org/packages/58/d6/73ff193c4adde7eb56abe5b8e4acb2f5eb6745c3949b2dd15442b58d5637/json_timeseries-0.1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c295ab16848b61b8078b14dc1f9df51927cf8add4bd4b727aa7d93178171c06a",
                "md5": "3a49dadfd9de84028f0d0148edbad2f3",
                "sha256": "f546a95e105e57a74f66c103e3421ac5e31f7b207768218e383427568e067057"
            },
            "downloads": -1,
            "filename": "json_timeseries-0.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "3a49dadfd9de84028f0d0148edbad2f3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 13228,
            "upload_time": "2024-04-09T12:10:19",
            "upload_time_iso_8601": "2024-04-09T12:10:19.303899Z",
            "url": "https://files.pythonhosted.org/packages/c2/95/ab16848b61b8078b14dc1f9df51927cf8add4bd4b727aa7d93178171c06a/json_timeseries-0.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-09 12:10:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "slaxor505",
    "github_project": "json-timeseries-py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "python-dateutil",
            "specs": []
        }
    ],
    "lcname": "json-timeseries"
}
        
Elapsed time: 0.27131s