easy-viz 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- easy_viz-0.1.0/LICENSE +21 -0
- easy_viz-0.1.0/PKG-INFO +72 -0
- easy_viz-0.1.0/README.md +41 -0
- easy_viz-0.1.0/pyproject.toml +130 -0
- easy_viz-0.1.0/pyproject.toml.orig +113 -0
- easy_viz-0.1.0/src/easy_viz/__init__.py +21 -0
- easy_viz-0.1.0/src/easy_viz/_data.py +877 -0
- easy_viz-0.1.0/src/easy_viz/_layout.py +328 -0
- easy_viz-0.1.0/src/easy_viz/_meta.py +54 -0
- easy_viz-0.1.0/src/easy_viz/_typing.py +47 -0
- easy_viz-0.1.0/src/easy_viz/_validate.py +218 -0
- easy_viz-0.1.0/src/easy_viz/_warnings.py +34 -0
- easy_viz-0.1.0/src/easy_viz/config.py +79 -0
- easy_viz-0.1.0/src/easy_viz/export.py +284 -0
- easy_viz-0.1.0/src/easy_viz/plots/__init__.py +1 -0
- easy_viz-0.1.0/src/easy_viz/plots/_shared.py +339 -0
- easy_viz-0.1.0/src/easy_viz/plots/comparison.py +1213 -0
- easy_viz-0.1.0/src/easy_viz/plots/timeseries.py +1695 -0
- easy_viz-0.1.0/src/easy_viz/py.typed +0 -0
- easy_viz-0.1.0/src/easy_viz/stats/__init__.py +1 -0
- easy_viz-0.1.0/src/easy_viz/stats/intervals.py +139 -0
- easy_viz-0.1.0/src/easy_viz/stats/smoothing.py +59 -0
- easy_viz-0.1.0/src/easy_viz/theme/__init__.py +6 -0
- easy_viz-0.1.0/src/easy_viz/theme/_color.py +158 -0
- easy_viz-0.1.0/src/easy_viz/theme/registry.py +307 -0
- easy_viz-0.1.0/src/easy_viz/theme/theme.py +364 -0
easy_viz-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Arian Mokhtariha
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
easy_viz-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: easy-viz
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: The Metabase / Power BI of Python at the code level: query result in, finished Plotly figure out.
|
|
5
|
+
Keywords: plotly,visualization,charts,sql,analytics,dataframe
|
|
6
|
+
Author: Arian Mokhtariha
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Classifier: Development Status :: 3 - Alpha
|
|
10
|
+
Classifier: Intended Audience :: Science/Research
|
|
11
|
+
Classifier: Framework :: Jupyter
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
18
|
+
Classifier: Typing :: Typed
|
|
19
|
+
Requires-Dist: plotly>=7.1
|
|
20
|
+
Requires-Dist: narwhals>=2.8
|
|
21
|
+
Requires-Dist: numpy>=2.1
|
|
22
|
+
Requires-Dist: scipy>=1.14.1
|
|
23
|
+
Requires-Dist: kaleido>=1.5 ; extra == 'export'
|
|
24
|
+
Requires-Python: >=3.13
|
|
25
|
+
Project-URL: Homepage, https://github.com/arianmokhtariha/easy-viz
|
|
26
|
+
Project-URL: Repository, https://github.com/arianmokhtariha/easy-viz
|
|
27
|
+
Project-URL: Changelog, https://github.com/arianmokhtariha/easy-viz/blob/main/CHANGELOG.md
|
|
28
|
+
Project-URL: Issues, https://github.com/arianmokhtariha/easy-viz/issues
|
|
29
|
+
Provides-Extra: export
|
|
30
|
+
Description-Content-Type: text/markdown
|
|
31
|
+
|
|
32
|
+
# easy-viz
|
|
33
|
+
|
|
34
|
+
[](https://github.com/arianmokhtariha/easy-viz/actions/workflows/ci.yml)
|
|
35
|
+
|
|
36
|
+
The Metabase / Power BI of Python, at the code level: a query result goes in, a
|
|
37
|
+
finished Plotly figure comes out.
|
|
38
|
+
|
|
39
|
+
Run your SQL (or anything else), pass the table straight to an easy-viz function, and
|
|
40
|
+
get a finished chart. Every feature of the chart is a typed, documented parameter, so a
|
|
41
|
+
plot goes from a one-line default to an advanced chart by changing arguments, not by
|
|
42
|
+
writing plotting code. Every function returns a plain Plotly figure, so anything the
|
|
43
|
+
parameters don't cover can still be done with Plotly.
|
|
44
|
+
|
|
45
|
+
> **Status:** alpha, under active development. The API may still change between
|
|
46
|
+
> 0.x releases; the [changelog](https://github.com/arianmokhtariha/easy-viz/blob/main/CHANGELOG.md)
|
|
47
|
+
> lists every change.
|
|
48
|
+
|
|
49
|
+
## Install
|
|
50
|
+
```
|
|
51
|
+
pip install easy-viz
|
|
52
|
+
```
|
|
53
|
+
For PNG, SVG and PDF export with `ev.save()`, add the `export` extra (it needs
|
|
54
|
+
Chrome; `plotly_get_chrome` installs it):
|
|
55
|
+
```
|
|
56
|
+
pip install "easy-viz[export]"
|
|
57
|
+
```
|
|
58
|
+
Python 3.13 or newer.
|
|
59
|
+
|
|
60
|
+
The [gallery](https://github.com/arianmokhtariha/easy-viz/tree/main/gallery) shows
|
|
61
|
+
every function on a fictional retailer's data, starting from a SQL query each time.
|
|
62
|
+
|
|
63
|
+
## Development
|
|
64
|
+
```
|
|
65
|
+
uv sync --all-extras --all-groups
|
|
66
|
+
uv run pytest
|
|
67
|
+
```
|
|
68
|
+
What easy-viz is for: [`docs/product.md`](https://github.com/arianmokhtariha/easy-viz/blob/main/docs/product.md).
|
|
69
|
+
How it's organised, and why: [`docs/`](https://github.com/arianmokhtariha/easy-viz/tree/main/docs).
|
|
70
|
+
<!-- Links are absolute because this file is also the PyPI project page, where
|
|
71
|
+
relative links break. -->
|
|
72
|
+
|
easy_viz-0.1.0/README.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# easy-viz
|
|
2
|
+
|
|
3
|
+
[](https://github.com/arianmokhtariha/easy-viz/actions/workflows/ci.yml)
|
|
4
|
+
|
|
5
|
+
The Metabase / Power BI of Python, at the code level: a query result goes in, a
|
|
6
|
+
finished Plotly figure comes out.
|
|
7
|
+
|
|
8
|
+
Run your SQL (or anything else), pass the table straight to an easy-viz function, and
|
|
9
|
+
get a finished chart. Every feature of the chart is a typed, documented parameter, so a
|
|
10
|
+
plot goes from a one-line default to an advanced chart by changing arguments, not by
|
|
11
|
+
writing plotting code. Every function returns a plain Plotly figure, so anything the
|
|
12
|
+
parameters don't cover can still be done with Plotly.
|
|
13
|
+
|
|
14
|
+
> **Status:** alpha, under active development. The API may still change between
|
|
15
|
+
> 0.x releases; the [changelog](https://github.com/arianmokhtariha/easy-viz/blob/main/CHANGELOG.md)
|
|
16
|
+
> lists every change.
|
|
17
|
+
|
|
18
|
+
## Install
|
|
19
|
+
```
|
|
20
|
+
pip install easy-viz
|
|
21
|
+
```
|
|
22
|
+
For PNG, SVG and PDF export with `ev.save()`, add the `export` extra (it needs
|
|
23
|
+
Chrome; `plotly_get_chrome` installs it):
|
|
24
|
+
```
|
|
25
|
+
pip install "easy-viz[export]"
|
|
26
|
+
```
|
|
27
|
+
Python 3.13 or newer.
|
|
28
|
+
|
|
29
|
+
The [gallery](https://github.com/arianmokhtariha/easy-viz/tree/main/gallery) shows
|
|
30
|
+
every function on a fictional retailer's data, starting from a SQL query each time.
|
|
31
|
+
|
|
32
|
+
## Development
|
|
33
|
+
```
|
|
34
|
+
uv sync --all-extras --all-groups
|
|
35
|
+
uv run pytest
|
|
36
|
+
```
|
|
37
|
+
What easy-viz is for: [`docs/product.md`](https://github.com/arianmokhtariha/easy-viz/blob/main/docs/product.md).
|
|
38
|
+
How it's organised, and why: [`docs/`](https://github.com/arianmokhtariha/easy-viz/tree/main/docs).
|
|
39
|
+
<!-- Links are absolute because this file is also the PyPI project page, where
|
|
40
|
+
relative links break. -->
|
|
41
|
+
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "easy-viz"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "The Metabase / Power BI of Python at the code level: query result in, finished Plotly figure out."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
license = "MIT"
|
|
7
|
+
license-files = ["LICENSE"]
|
|
8
|
+
requires-python = ">=3.13"
|
|
9
|
+
keywords = [
|
|
10
|
+
"plotly",
|
|
11
|
+
"visualization",
|
|
12
|
+
"charts",
|
|
13
|
+
"sql",
|
|
14
|
+
"analytics",
|
|
15
|
+
"dataframe",
|
|
16
|
+
]
|
|
17
|
+
classifiers = [
|
|
18
|
+
"Development Status :: 3 - Alpha",
|
|
19
|
+
"Intended Audience :: Science/Research",
|
|
20
|
+
"Framework :: Jupyter",
|
|
21
|
+
"Operating System :: OS Independent",
|
|
22
|
+
"Programming Language :: Python :: 3",
|
|
23
|
+
"Programming Language :: Python :: 3.13",
|
|
24
|
+
"Programming Language :: Python :: 3.14",
|
|
25
|
+
"Programming Language :: Python :: 3.15",
|
|
26
|
+
"Topic :: Scientific/Engineering :: Visualization",
|
|
27
|
+
"Typing :: Typed",
|
|
28
|
+
]
|
|
29
|
+
dependencies = [
|
|
30
|
+
"plotly>=7.1",
|
|
31
|
+
"narwhals>=2.8",
|
|
32
|
+
"numpy>=2.1",
|
|
33
|
+
"scipy>=1.14.1",
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
[[project.authors]]
|
|
37
|
+
name = "Arian Mokhtariha"
|
|
38
|
+
|
|
39
|
+
[project.urls]
|
|
40
|
+
Homepage = "https://github.com/arianmokhtariha/easy-viz"
|
|
41
|
+
Repository = "https://github.com/arianmokhtariha/easy-viz"
|
|
42
|
+
Changelog = "https://github.com/arianmokhtariha/easy-viz/blob/main/CHANGELOG.md"
|
|
43
|
+
Issues = "https://github.com/arianmokhtariha/easy-viz/issues"
|
|
44
|
+
|
|
45
|
+
[project.optional-dependencies]
|
|
46
|
+
export = ["kaleido>=1.5"]
|
|
47
|
+
|
|
48
|
+
[dependency-groups]
|
|
49
|
+
dev = [
|
|
50
|
+
"pytest>=9",
|
|
51
|
+
"pytest-cov",
|
|
52
|
+
"syrupy>=6",
|
|
53
|
+
"ruff>=0.17",
|
|
54
|
+
"mypy>=2.4",
|
|
55
|
+
"scipy-stubs",
|
|
56
|
+
"pandas>=2.2",
|
|
57
|
+
"polars>=1.0",
|
|
58
|
+
"pyarrow>=17",
|
|
59
|
+
"kaleido>=1.5",
|
|
60
|
+
"ipykernel",
|
|
61
|
+
"nbformat>=4.2",
|
|
62
|
+
"nbmake",
|
|
63
|
+
"nbclient>=0.10",
|
|
64
|
+
"duckdb>=1.5 ; python_full_version < '3.15'",
|
|
65
|
+
]
|
|
66
|
+
docs = [
|
|
67
|
+
"sphinx",
|
|
68
|
+
"pydata-sphinx-theme",
|
|
69
|
+
"numpydoc",
|
|
70
|
+
"myst-nb>=1.4",
|
|
71
|
+
]
|
|
72
|
+
|
|
73
|
+
[build-system]
|
|
74
|
+
requires = ["uv_build>=0.13,<0.14"]
|
|
75
|
+
build-backend = "uv_build"
|
|
76
|
+
|
|
77
|
+
[tool.uv.build-backend]
|
|
78
|
+
source-exclude = [
|
|
79
|
+
"**/CLAUDE.md",
|
|
80
|
+
"**/CLAUDE.local.md",
|
|
81
|
+
".claude/**",
|
|
82
|
+
]
|
|
83
|
+
|
|
84
|
+
[tool.ruff]
|
|
85
|
+
line-length = 88
|
|
86
|
+
|
|
87
|
+
[tool.ruff.lint]
|
|
88
|
+
select = [
|
|
89
|
+
"E",
|
|
90
|
+
"W",
|
|
91
|
+
"F",
|
|
92
|
+
"I",
|
|
93
|
+
"N",
|
|
94
|
+
"UP",
|
|
95
|
+
"B",
|
|
96
|
+
"SIM",
|
|
97
|
+
"NPY",
|
|
98
|
+
"D",
|
|
99
|
+
"ANN",
|
|
100
|
+
"TID",
|
|
101
|
+
"RUF",
|
|
102
|
+
]
|
|
103
|
+
|
|
104
|
+
[tool.ruff.lint.pydocstyle]
|
|
105
|
+
convention = "numpy"
|
|
106
|
+
|
|
107
|
+
[tool.ruff.lint.flake8-tidy-imports]
|
|
108
|
+
ban-relative-imports = "all"
|
|
109
|
+
|
|
110
|
+
[tool.ruff.lint.per-file-ignores]
|
|
111
|
+
"tests/**" = ["D"]
|
|
112
|
+
"examples/**" = ["D"]
|
|
113
|
+
"gallery/_template.ipynb" = ["F401"]
|
|
114
|
+
|
|
115
|
+
[tool.mypy]
|
|
116
|
+
python_version = "3.13"
|
|
117
|
+
strict = true
|
|
118
|
+
warn_unreachable = true
|
|
119
|
+
|
|
120
|
+
[[tool.mypy.overrides]]
|
|
121
|
+
module = ["plotly.*"]
|
|
122
|
+
ignore_missing_imports = true
|
|
123
|
+
|
|
124
|
+
[tool.pytest.ini_options]
|
|
125
|
+
testpaths = ["tests"]
|
|
126
|
+
addopts = [
|
|
127
|
+
"--strict-markers",
|
|
128
|
+
"-ra",
|
|
129
|
+
]
|
|
130
|
+
markers = ["export: needs Chrome for kaleido static export"]
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "easy-viz"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "The Metabase / Power BI of Python at the code level: query result in, finished Plotly figure out."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
license = "MIT"
|
|
7
|
+
license-files = ["LICENSE"]
|
|
8
|
+
requires-python = ">=3.13"
|
|
9
|
+
authors = [{ name = "Arian Mokhtariha" }]
|
|
10
|
+
keywords = ["plotly", "visualization", "charts", "sql", "analytics", "dataframe"]
|
|
11
|
+
# The Python versions match the CI matrix (tests/test_packaging.py checks it). No
|
|
12
|
+
# license classifier: the SPDX `license` field above replaces it (PEP 639).
|
|
13
|
+
classifiers = [
|
|
14
|
+
"Development Status :: 3 - Alpha",
|
|
15
|
+
"Intended Audience :: Science/Research",
|
|
16
|
+
"Framework :: Jupyter",
|
|
17
|
+
"Operating System :: OS Independent",
|
|
18
|
+
"Programming Language :: Python :: 3",
|
|
19
|
+
"Programming Language :: Python :: 3.13",
|
|
20
|
+
"Programming Language :: Python :: 3.14",
|
|
21
|
+
"Programming Language :: Python :: 3.15",
|
|
22
|
+
"Topic :: Scientific/Engineering :: Visualization",
|
|
23
|
+
"Typing :: Typed",
|
|
24
|
+
]
|
|
25
|
+
# Lower bounds only, never upper caps: easy-viz must fit into users' existing
|
|
26
|
+
# environments without forcing them to up- or downgrade anything.
|
|
27
|
+
dependencies = [
|
|
28
|
+
"plotly>=7.1", # rendering core
|
|
29
|
+
"narwhals>=2.8", # accepts pandas / polars / pyarrow / ... without depending on them;
|
|
30
|
+
# 2.8 is the first that reads DuckDB 1.5 query results
|
|
31
|
+
"numpy>=2.1", # numeric work; 2.1 is the first with Python 3.13 wheels
|
|
32
|
+
"scipy>=1.14.1", # statistics (KDE, regression, clustering, distributions);
|
|
33
|
+
# 1.14.1 is the first with Python 3.13 wheels
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
[project.urls]
|
|
37
|
+
Homepage = "https://github.com/arianmokhtariha/easy-viz"
|
|
38
|
+
Repository = "https://github.com/arianmokhtariha/easy-viz"
|
|
39
|
+
Changelog = "https://github.com/arianmokhtariha/easy-viz/blob/main/CHANGELOG.md"
|
|
40
|
+
Issues = "https://github.com/arianmokhtariha/easy-viz/issues"
|
|
41
|
+
|
|
42
|
+
[project.optional-dependencies]
|
|
43
|
+
export = ["kaleido>=1.5"] # static PNG/SVG/PDF export; needs Chrome (plotly_get_chrome)
|
|
44
|
+
|
|
45
|
+
[dependency-groups]
|
|
46
|
+
dev = [
|
|
47
|
+
"pytest>=9",
|
|
48
|
+
"pytest-cov", # test coverage report
|
|
49
|
+
"syrupy>=6", # snapshot tests of figure output
|
|
50
|
+
"ruff>=0.17", # lint + format
|
|
51
|
+
"mypy>=2.4", # type checking
|
|
52
|
+
"scipy-stubs", # type information for scipy
|
|
53
|
+
"pandas>=2.2", # test inputs: easy-viz must work with every dataframe library
|
|
54
|
+
"polars>=1.0",
|
|
55
|
+
"pyarrow>=17",
|
|
56
|
+
"kaleido>=1.5", # export tests and rendering figures for visual review
|
|
57
|
+
"ipykernel", # use the project's .venv as a notebook kernel
|
|
58
|
+
"nbformat>=4.2", # Plotly needs it to display figures in notebooks
|
|
59
|
+
"nbmake", # runs the gallery notebooks as tests
|
|
60
|
+
"nbclient>=0.10", # executes the gallery notebooks (scripts/build_gallery.py)
|
|
61
|
+
# The gallery notebooks query the showcase data with SQL. DuckDB has no Python
|
|
62
|
+
# 3.15 wheel yet, so the gallery builds and runs on 3.13/3.14 until it does.
|
|
63
|
+
"duckdb>=1.5 ; python_full_version < '3.15'",
|
|
64
|
+
]
|
|
65
|
+
docs = [
|
|
66
|
+
"sphinx",
|
|
67
|
+
"pydata-sphinx-theme",
|
|
68
|
+
"numpydoc",
|
|
69
|
+
"myst-nb>=1.4", # renders Markdown docs and the gallery notebooks
|
|
70
|
+
]
|
|
71
|
+
|
|
72
|
+
[build-system]
|
|
73
|
+
requires = ["uv_build>=0.13,<0.14"]
|
|
74
|
+
build-backend = "uv_build"
|
|
75
|
+
|
|
76
|
+
[tool.uv.build-backend]
|
|
77
|
+
# Agent guides and agent definitions are tracked but are not part of the library.
|
|
78
|
+
source-exclude = ["**/CLAUDE.md", "**/CLAUDE.local.md", ".claude/**"]
|
|
79
|
+
|
|
80
|
+
[tool.ruff]
|
|
81
|
+
line-length = 88
|
|
82
|
+
|
|
83
|
+
[tool.ruff.lint]
|
|
84
|
+
# E/W/F: errors, I: import order, N: naming, UP: modern syntax, B: likely bugs,
|
|
85
|
+
# SIM: simplifications, NPY: numpy, D: docstrings, ANN: type annotations,
|
|
86
|
+
# TID: import rules, RUF: ruff extras
|
|
87
|
+
select = ["E", "W", "F", "I", "N", "UP", "B", "SIM", "NPY", "D", "ANN", "TID", "RUF"]
|
|
88
|
+
|
|
89
|
+
[tool.ruff.lint.pydocstyle]
|
|
90
|
+
convention = "numpy"
|
|
91
|
+
|
|
92
|
+
[tool.ruff.lint.flake8-tidy-imports]
|
|
93
|
+
ban-relative-imports = "all" # absolute imports only
|
|
94
|
+
|
|
95
|
+
[tool.ruff.lint.per-file-ignores]
|
|
96
|
+
"tests/**" = ["D"]
|
|
97
|
+
"examples/**" = ["D"]
|
|
98
|
+
# Its placeholder cells are comments, so `ev` stays unused until a notebook fills them.
|
|
99
|
+
"gallery/_template.ipynb" = ["F401"]
|
|
100
|
+
|
|
101
|
+
[tool.mypy]
|
|
102
|
+
python_version = "3.13" # the supported minimum: flags 3.14/3.15-only features
|
|
103
|
+
strict = true
|
|
104
|
+
warn_unreachable = true
|
|
105
|
+
|
|
106
|
+
[[tool.mypy.overrides]]
|
|
107
|
+
module = ["plotly.*"] # Plotly ships no type information
|
|
108
|
+
ignore_missing_imports = true
|
|
109
|
+
|
|
110
|
+
[tool.pytest.ini_options]
|
|
111
|
+
testpaths = ["tests"]
|
|
112
|
+
addopts = ["--strict-markers", "-ra"]
|
|
113
|
+
markers = ["export: needs Chrome for kaleido static export"]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""easy-viz: analytical plots in one call."""
|
|
2
|
+
|
|
3
|
+
from easy_viz._warnings import EasyVizWarning
|
|
4
|
+
from easy_viz.config import get_config, set_config
|
|
5
|
+
from easy_viz.export import save, save_many
|
|
6
|
+
from easy_viz.plots.comparison import bar_plot
|
|
7
|
+
from easy_viz.plots.timeseries import line_plot
|
|
8
|
+
from easy_viz.theme import Theme, get_theme, set_theme
|
|
9
|
+
|
|
10
|
+
__all__ = [
|
|
11
|
+
"EasyVizWarning",
|
|
12
|
+
"Theme",
|
|
13
|
+
"bar_plot",
|
|
14
|
+
"get_config",
|
|
15
|
+
"get_theme",
|
|
16
|
+
"line_plot",
|
|
17
|
+
"save",
|
|
18
|
+
"save_many",
|
|
19
|
+
"set_config",
|
|
20
|
+
"set_theme",
|
|
21
|
+
]
|