perspective-python 4.4.1

A data visualization and analytics component, especially well-suited for large and/or streaming datasets.
Documentation
#  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
#  ┃ ██████ ██████ ██████       █      █      █      █      █ █▄  ▀███ █       ┃
#  ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█  ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄  ▀█ █ ▀▀▀▀▀ ┃
#  ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄   █ ▄▄▄▄▄ ┃
#  ┃ █      ██████ █  ▀█▄       █ ██████      █      ███▌▐███ ███████▄ █       ┃
#  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
#  ┃ Copyright (c) 2017, the Perspective Authors.                              ┃
#  ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
#  ┃ This file is part of the Perspective library, distributed under the terms ┃
#  ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
#  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

import perspective as psp

client = psp.Server().new_local_client()
Table = client.table


class TestTableInfer(object):
    def test_table_limit_wraparound_does_not_respect_partial_none(self):
        t = Table({"a": "float", "b": "float"}, limit=3)
        t.update([{"a": 10}, {"b": 1}, {"a": 20}, {"a": None, "b": 2}])
        d1 = t.view().to_json()

        t2 = Table({"a": "float", "b": "float"}, limit=3)
        t2.update([{"a": 10}, {"b": 1}, {"a": 20}, {"b": 2}])
        d2 = t2.view().to_json()

        assert d1[0] == d2[0]
        assert d1[1:] == d2[1:]

    def test_table_limit_wraparound_does_not_respect_partial(self):
        t = Table({"a": "float", "b": "float"}, limit=3)
        t.update([{"a": 10}, {"b": 1}, {"a": 20}, {"a": 10, "b": 2}])
        d1 = t.view().to_columns()

        t2 = Table({"a": "float", "b": "float"}, limit=3)
        t2.update([{"a": 10}, {"b": 1}, {"a": 20}, {"b": 2}])
        d2 = t2.view().to_columns()

        assert d1 != d2

    def test_table_limit_with_json(self):
        t = Table({"a": [1, 2, 3]}, limit=1)
        assert t.size() == 1